如何快速上手VexRiscv:FPGA友好的开源RISC-V处理器完整指南 🚀
VexRiscv是一款基于SpinalHDL开发的高效开源RISC-V处理器实现,专为FPGA设计优化,支持RV32I[M][A][F[D]][C]指令集,可灵活配置2至5+级流水线,提供1.44 DMIPS/MHz的性能,且不依赖任何厂商特定IP模块,是嵌入式开发、FPGA原型验证和处理器学习的理想选择。
📋 核心特性解析
🔧 高度可定制的架构设计
VexRiscv采用插件化架构,几乎所有功能模块均可灵活配置,包括:
- 指令集扩展:支持RV32I基础指令集,可选M(乘法除法)、A(原子操作)、F/D(浮点运算)扩展
- 流水线配置:2-5级可变流水线(Fetch*X → Decode → Execute → [Memory] → [WriteBack])
- 缓存系统:可选指令缓存(I),支持不同大小和关联性配置
- 特权模式:支持Machine、Supervisor和User模式,兼容RISC-V特权指令集规范v1.10
核心配置源码位于:src/main/scala/vexriscv/demo/,提供从最小配置(GenSmallest.scala)到Linux兼容配置(Linux.scala)的完整示例。
⚡ 卓越的FPGA适配性
专为FPGA优化的微架构设计,不使用任何厂商特定原语,在主流FPGA上表现优异:
| 配置 | Artix 7 | Cyclone V | iCE40 |
|---|---|---|---|
| 小型RV32I | 243 MHz / 504 LUT | 174 MHz / 352 ALMs | 92 MHz / 1130 LC |
| 全功能带缓存 | 199 MHz / 1840 LUT | 141 MHz / 1166 ALMs | - |
VexRiscv浮点单元设计架构,支持单精度(F)和双精度(D)浮点运算
🚀 快速开始指南
📦 环境准备与依赖安装
在Ubuntu系统上安装必要依赖:
# 安装Java JDK 8
sudo add-apt-repository -y ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk -y
# 安装SBT构建工具
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install sbt -y
# 安装Verilator仿真工具
sudo apt-get install git make autoconf g++ flex bison -y
git clone http://git.veripool.org/git/verilator
cd verilator
git checkout v4.216
autoconf && ./configure && make -j4 && sudo make install
🔧 处理器生成步骤
- 克隆仓库
git clone https://gitcode.com/gh_mirrors/ve/VexRiscv
cd VexRiscv
- 生成RTL代码 VexRiscv提供多种预定义配置,可通过以下命令生成不同特性的处理器:
# 生成最小配置(RV32I,无数据旁路,无中断)
sbt "runMain vexriscv.demo.GenSmallest"
# 生成全功能配置(带缓存、乘法除法、调试模块)
sbt "runMain vexriscv.demo.GenFull"
# 生成Linux兼容配置
sbt "runMain vexriscv.demo.Linux"
生成的Verilog文件(VexRiscv.v)将位于项目根目录,可直接用于FPGA综合或仿真。
💻 典型应用场景
🔬 学术研究与教学
VexRiscv提供透明的处理器实现细节,是计算机体系结构教学的理想平台:
- 完整的流水线可视化与控制逻辑
- 可修改的缓存策略与分支预测机制
- 异常处理与中断控制器实现
教学案例代码位于:doc/gcdPeripheral/,包含GCD协处理器设计与验证环境。
📱 嵌入式系统开发
轻量级配置适合资源受限的嵌入式应用:
- Murax SoC:集成RV32I处理器、8KB片上RAM、UART、GPIO和定时器,仅占用2422个iCE40逻辑单元
- Briey SoC:功能更丰富的系统级设计,包含VGA控制器、SDRAM接口和调试模块
SoC实现源码:src/main/scala/vexriscv/demo/Murax.scala
🖥️ Linux-capable处理器
通过src/main/scala/vexriscv/demo/Linux.scala配置,可生成支持Linux的处理器,已验证能运行Buildroot和用户空间应用(包括Python)。
Briey SoC系统架构,包含VexRiscv处理器、外设和接口控制器
✅ 验证与测试
🔍 回归测试套件
VexRiscv提供全面的测试覆盖:
# 运行回归测试
export VEXRISCV_REGRESSION_SEED=42
sbt "testOnly vexriscv.TestIndividualFeatures"
测试套件包括:
- RISC-V ISA兼容性测试
- Dhrystone和Coremark基准测试
- Zephyr RTOS和Linux启动测试
- 缓存、MMU和调试模块专项测试
🐛 交互式调试
支持GDB+OpenOCD调试流程:
# 1. 生成带调试接口的处理器
sbt "runMain vexriscv.demo.GenFull"
# 2. 运行Verilator仿真
cd src/test/cpp/regression
make run DEBUG_PLUGIN_EXTERNAL=yes
# 3. 启动OpenOCD服务器
openocd -c "set VEXRISCV_YAML cpu0.yaml" -f tcl/target/vexriscv_sim.cfg
# 4. 连接GDB调试
riscv32-unknown-elf-gdb -ex "target remote localhost:3333" your_program.elf
📚 资源与文档
📖 官方文档
- 完整架构说明:doc/
- 插件开发指南:src/main/scala/vexriscv/plugin/
- 测试案例:src/test/scala/vexriscv/
🔧 常用配置示例
- 最小化配置:GenSmallest.scala
- 无缓存高性能:GenNoCacheNoMmuMaxPerf.scala
- 带TCM内存:GenFullWithTcm.scala
- 安全扩展:GenSecure.scala
🎯 结语
VexRiscv凭借其开源许可(Apache 2.0)、高度可定制性和卓越的FPGA性能,为RISC-V生态系统提供了灵活高效的处理器解决方案。无论是硬件爱好者、嵌入式工程师还是学术研究者,都能通过VexRiscv探索处理器设计的无限可能。立即克隆仓库,开始您的RISC-V开发之旅吧!
git clone https://gitcode.com/gh_mirrors/ve/VexRiscv
提示:项目持续活跃开发,定期同步上游更新以获取最新特性和优化
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00