CVA6 is a configurable six-stage, in-order CORE-V processor family for 32-bit and 64-bit embedded and application-class systems. Its RTL includes both single-issue configurations, such as CV32A60X, and dual-issue configurations, such as CV32A65X. ISA extensions, privilege modes, and virtual memory depend on the selected configuration: application configurations can run Linux, while the embedded CV32A60X and CV32A65X configurations have no MMU or S/U modes. The repository brings together processor RTL, verification, FPGA integration, and documentation for engineers evaluating a core or exploring custom extensions through CV-X-IF.
Start here
At a glance
Further resources
216
Contributors
234
Open Issues
56
Recent Commits (4 weeks)
32
Open PRs
Data as of Sep 28, 2026
The Cost of Application-Class Processing: Energy and Performance Analysis of a Linux-Ready 1.7-GHz 64-Bit RISC-V Core in 22-nm FDSOI Technology
Florian Zaruba, Luca Benini
IEEE Transactions on VLSI Systems, 2019
View PaperOpenPiton+Ariane: The First Open-Source, SMP Linux-booting RISC-V System Scaling From One to Many Cores
Jonathan Balkind et al.
Computer Architecture Research with RISC-V Workshop (CARRV), 2019
View PaperCulsans: An Efficient Snoop-based Coherency Unit for the CVA6 Open Source RISC-V application processor
Riccardo Tedeschi et al.
arXiv preprint, 2024
View PaperCVA6-VMRT: A Modular Approach Towards Time-Predictable Virtual Memory in a 64-bit Application Class RISC-V Processor
Christopher Reinwardt et al.
arXiv preprint, 2025
View PaperOccamy: A 432-Core 28.1 DP-GFLOP/s/W 83% FPU Utilization Dual-Chiplet, Dual-HBM2E RISC-V-Based Accelerator for Stencil and Sparse Linear Algebra Computations with 8-to-64-bit Floating-Point Support in 12nm FinFET
Gianna Paulin, Paul Scheffler, Thomas Benz, et al.
2024 IEEE Symposium on VLSI Technology and Circuits, 2024
View PaperVerified adoption, contributor and lineage records, educational use, presentations, articles, and ecosystem data will be added incrementally from named sources.
core-v-verif is shared functional-verification infrastructure for CORE-V processors. It combines reusable UVM components, simulation Makefiles, verification libraries, utilities, vendor dependencies, and DV plans, with dedicated directories for CV32E40P, CV32E40X, and CV32E40S. Verification engineers can start with the common methodology and then select a core-specific flow. For CVA6, use the verif directory in the CVA6 repository: the current core-v-verif tree does not contain a CVA6-specific directory, although CVA6-related environments can reuse its shared components.
CVFPU, also known as FPnew, is a parameterized SystemVerilog floating-point unit for processors and accelerators. Its built-in formats are FP32, FP64, FP16, FP8, and FP16ALT, with configurable operations, pipeline behavior, and optional packed SIMD. Other exponent and mantissa widths require extending the format definitions and checking the affected operations and verification coverage; binary128 is not a built-in selectable format. The design serves both conventional RISC-V floating point and transprecision research. It targets IEEE 754-2008 behavior, with documented rounding and inexact-flag limitations in the optional PULP DivSqrt implementation.
CV-HPDCache is a configurable, high-performance L1 data-cache controller for RISC-V cores and accelerators. Its multi-requester, non-blocking architecture can keep multiple reads and writes in flight, execute non-overlapping accesses out of order, and support write-through or write-back policies together with RISC-V cache-management and atomic operations. It is aimed at SoC and microarchitecture engineers who need reusable cache IP; CVA6 provides a concrete integration path, while verification limitations should be reviewed in the separate cv-hpdcache-verif project.
CV-X-IF, the CORE-V eXtension Interface, specifies how custom coprocessors and instruction-set extensions connect to a RISC-V CPU. Its basic channels handle compressed instructions, instruction issue, register operands, commit control, and results, allowing accelerator logic to remain outside the host pipeline. Memory and memory-result channels are optional and depend on the specification version and processor implementation. Integrators should check both sides of the interface against the same supported protocol; this is an interface specification, not a ready-made accelerator or a general mechanism for arbitrary control-flow and privileged extensions.
CV-MESH is an early-stage OpenHW repository for cache-coherence and interconnect components derived from the OpenPiton context. Its public tree contains bridges, L1.5 and L2 cache logic, and network-on-chip blocks, and related OpenHW platforms use CV-MESH in multicore integration work. Public top-level documentation is still missing, so the repository is suitable mainly for experienced engineers tracing existing RTL; topology, supported scale, protocol details, and maturity cannot yet be assessed from a stable public specification.
CVA6-Safe is an experimental CVA6-based subsystem that can operate as a dual-core lockstep pair or as two independent cores. In lockstep mode it adds comparison-based fault detection and cache error detection/correction; split mode trades those protections for a regular dual-core asymmetric-multiprocessing setup. The project is relevant to engineers studying fault-tolerant RISC-V architectures, but the public design documentation is still incomplete and the repository does not claim an ISO 26262 certification.
CORE-V Polara APU is a multicore vector-processing research platform that combines ideas and code from Ara with the OpenPiton manycore infrastructure. Its documented configuration connects four RISC-V vector cores and includes low-precision operations relevant to DNN inference. The repository is aimed at researchers evaluating vector and multicore systems; reproducing its flows requires a vector-capable RISC-V LLVM toolchain and supported commercial simulators.
CVA6 SDK is the Buildroot-based path for producing a complete bootable Linux image for CVA6 FPGA systems. A single build coordinates the RISC-V toolchain, OpenSBI, U-Boot and device tree, Linux kernel, initramfs, and root filesystem, then packages them into a flashable SD-card image. It is the practical starting point for users bringing up 32-bit or 64-bit CVA6 on Genesys 2 or Agilex 7; teams committed to Yocto should compare it with meta-cva6-yocto.