awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
OpenXiangShan avatar

OpenXiangShan/XiangShan

0
View on GitHub↗
7,081 stars·914 forks·Scala·MulanPSL-2.0·28 viewsxiangshan.cc↗

XiangShan

XiangShan is a high-performance RISC-V processor core and a hardware description language framework. It provides a construction-based system for designing, simulating, and verifying complex processor micro-architectures and peripheral devices. The project includes a high-performance CPU simulator used for architectural exploration and functional verification of processor execution.

The project implements a superscalar out-of-order CPU architecture that uses renaming and reorder buffers to execute instructions in parallel. It generates synthesizable Verilog files from hardware descriptions to support logic synthesis and hardware verification workflows, enabling the transition of processor simulations into physical hardware prototypes using field programmable gate arrays.

The architecture covers advanced memory management, including non-blocking cache hierarchies and address translation. It includes capabilities for instruction scheduling, tagged geometric branch prediction, and data prefetching to increase processing throughput.

The framework includes a dedicated toolchain for accelerating functional verification and performance evaluation when adding new instructions or peripheral devices.

Features

  • RISC-V Processor Cores - Provides a high-performance synthesizable implementation of the RISC-V processor core.
  • Superscalar Out-of-Order Execution - Implements a high-performance superscalar out-of-order CPU architecture using renaming and reorder buffers.
  • Hardware Synthesis Workflows - Provides a dedicated workflow for converting processor simulations into physical FPGA hardware prototypes.
  • CPU Architectural Simulators - Ships a high-performance CPU simulator for architectural exploration and functional verification of processor execution.
  • Hardware Description Frameworks - Provides a construction language for implementing high-performance hardware micro-architectures for rapid development.
  • FPGA Hardware Design - Supports the transition of processor simulations into physical hardware prototypes using FPGA design workflows.
  • Processor Prototypes - Translates processor simulations into synthesizable Verilog for deployment on FPGA hardware prototypes.
  • Architectural Exploration Simulators - Includes a calibrated software simulator used for architectural exploration and development of processor designs.
  • Instruction-Level Pipelining - Manages execution order using renaming and reorder buffers to exploit instruction-level parallelism.
  • Hardware Branch Prediction - Forecasts branch outcomes and targets using tagged geometric history to minimize pipeline stalls.
  • Out-of-Order Execution Architectures - Implements a superscalar out-of-order CPU architecture using renaming and reorder buffers for parallel execution.
  • Out-of-Order Execution Engines - Builds superscalar engines with branch prediction and instruction scheduling to increase processing throughput.
  • Hardware Construction Languages - Provides a construction-based framework using hardware construction languages to design and verify processor micro-architectures.
  • Hardware Construction Languages - Provides a high-level hardware construction language to define micro-architectures and synthesize hardware code.
  • Processor Execution Simulators - Provides a software environment for verifying hardware behavior by executing binary workloads prior to physical implementation.
  • Hardware Core Verifications - Verifies processor core correctness by simulating binary workloads in a software environment before manufacturing.
  • Hardware Cache Replacement Policies - Utilizes re-reference interval prediction for cache line eviction to maintain high hit rates.
  • Re-reference Interval Prediction - Uses re-reference interval prediction (RRIP) for cache replacement to maintain higher hit rates than LRU.
  • Non-blocking Caches - Implements a non-blocking cache hierarchy that tracks pending requests to prevent pipeline stalls during memory misses.
  • Hardware Design Toolchains - Includes a dedicated hardware design toolchain for accelerating functional verification and performance evaluation.
  • Pipeline and Cache Optimizations - Develops non-blocking caches and prefetching mechanisms to optimize pipeline and cache throughput.
  • Verilog Generators - Generates synthesizable Verilog files from high-level hardware descriptions for logic synthesis.
  • Geometric Branch Predictors - Implements tagged geometric branch prediction to minimize pipeline stalls in the instruction stream.
  • Memory Dependency Predictors - Provides store-set memory dependency prediction to optimize the execution order of load and store operations.
  • Hardware Arithmetic Units - Implements signed binary multiplication and division using optimized digit-recurrence and fast multiplier techniques.
  • Hardware Data Prefetching - Reduces data access penalties via spatial memory streaming and stride or temporal prefetching patterns.
  • Instruction Fetch Units - Provides a scalable front-end architecture designed to deliver instruction streams to the processor at high speeds.
  • Instruction Prefetching - Loads instructions into the cache before they are explicitly requested to reduce fetch latency.
  • Memory Banking Implementation - Implements hardware memory banking to allow simultaneous access to different memory locations and increase cache bandwidth.
  • Memory Dependency Prediction - Analyzes store sets and wait tables to predict dependencies between memory operations and optimize execution order.
  • Non-blocking Cache Architectures - Implements a memory system capable of handling multiple outstanding cache misses without stalling the pipeline.
  • Coalesced Translation Lookaside Buffers - Implements coalesced translation lookaside buffers to optimize virtual-to-physical address translation.
  • Page Table Translators - Implements virtual-to-physical address translation using coalesced large-reach translation lookaside buffers.
  • Cache Banked Memory Optimizations - Enhances memory access speed through the implementation of multi-port banked data arrays.

Star history

Star history chart for openxiangshan/xiangshanStar history chart for openxiangshan/xiangshan

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does openxiangshan/xiangshan do?

XiangShan is a high-performance RISC-V processor core and a hardware description language framework. It provides a construction-based system for designing, simulating, and verifying complex processor micro-architectures and peripheral devices. The project includes a high-performance CPU simulator used for architectural exploration and functional verification of processor execution.

What are the main features of openxiangshan/xiangshan?

The main features of openxiangshan/xiangshan are: RISC-V Processor Cores, Superscalar Out-of-Order Execution, Hardware Synthesis Workflows, CPU Architectural Simulators, Hardware Description Frameworks, FPGA Hardware Design, Processor Prototypes, Architectural Exploration Simulators.

Which projects share features with openxiangshan/xiangshan?

Projects with overlapping indexed features include: chipsalliance/rocket-chip — Rocket-chip is a framework for the parametric design, synthesis, and verification of RISC-V based processors and… chipsalliance/chisel — Chisel is a hardware construction language and description tool used to define digital circuits. It functions as a… enjoy-digital/litex — LiteX is an FPGA SoC development suite and SoC builder framework used to programmatically design system-on-chips. It… yosyshq/picorv32 — picorv32 is a size-optimized RISC-V CPU core and synthesizable processor IP designed for integration into FPGA and… ghdl/ghdl — GHDL is a compiler and simulator for VHDL hardware descriptions. It functions as a multi-pass analysis elaborator that… inkboxsoftware/excelcpu — excelCPU is a spreadsheet-based computer emulator that simulates a 16-bit central processing unit. It functions as an…

Projects sharing features with XiangShan

These projects share indexed features with XiangShan. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • chipsalliance/rocket-chipchipsalliance avatar

    chipsalliance/rocket-chip

    3,798View on GitHub↗

    Rocket-chip is a framework for the parametric design, synthesis, and verification of RISC-V based processors and system-on-chip hardware. It functions as a generator that converts high-level specifications into synthesizable Verilog files for FPGA or ASIC implementation. The project utilizes a Scala-based hardware description framework to produce customizable pipelined processor cores, memory hierarchies, and peripheral devices. It employs a parameter-driven model and a two-phase negotiation process to resolve hardware interface specifications between modules during the elaboration phase. Th

    Scalachip-generatorchiselriscv
    View on GitHub↗3,798
  • chipsalliance/chiselchipsalliance avatar

    chipsalliance/chisel

    4,691View on GitHub↗

    Chisel is a hardware construction language and description tool used to define digital circuits. It functions as a generator that converts high-level hardware descriptions into synthesizable Verilog code for use in ASIC and FPGA design. The project enables the creation of parameterizable hardware templates and reusable digital components. It leverages functional and object-oriented programming patterns to transform complex circuit representations into finalized hardware descriptions. The toolset covers the register-transfer level design workflow, allowing users to model digital circuits usin

    Scalachip-generatorchiselchisel3
    View on GitHub↗4,691
  • enjoy-digital/litexenjoy-digital avatar

    enjoy-digital/litex

    3,963View on GitHub↗

    LiteX is an FPGA SoC development suite and SoC builder framework used to programmatically design system-on-chips. It provides a hardware description toolchain that uses a scriptable framework to define hardware layouts and automate the generation of hardware description language code. The project distinguishes itself by orchestrating multiple vendor and open-source toolchains to synthesize digital logic and generate deployable bitstreams. It supports multi-language logic integration, allowing disparate hardware description languages to be combined into a single project. The framework covers

    Pythonfpgahardwaresystem-on-chip
    View on GitHub↗3,963
  • yosyshq/picorv32YosysHQ avatar

    YosysHQ/picorv32

    4,222View on GitHub↗

    picorv32 is a size-optimized RISC-V CPU core and synthesizable processor IP designed for integration into FPGA and ASIC hardware designs. It serves as an open-source CPU architecture and embedded system-on-chip component that implements a standard RISC-V instruction set. The design features a modular architecture that allows for the integration of external coprocessors to implement custom non-branching instructions. It includes a parameterized integer unit with configurable multiplication and division cores to balance performance against total logic gate count. The project covers a broad ran

    Verilog
    View on GitHub↗4,222
Compare all 25 related projects→