DarkRISCV
darkriscv
⭐⭐⭐☆☆ (3/5)
🧩 软硬件结合
已发布
项目简介
opensouce RISC-V cpu core implemented in Verilog from scratch in one night!
这是一个基于Verilog硬件描述语言实现的32位RISC-V处理器核心开源项目,同时配套提供了指令集模拟器,完整支持RV32IM指令集架构。项目核心价值在于为嵌入式系统、FPGA开发以及RISC-V生态研究提供了一个可配置、可综合的处理器参考实现。
标签
项目特点
**高性能软核**:在 Ultrascale KU040 上可达 250MHz,超频可达 400MHz;在 Spartan-6 上可达 100MHz,处理密度高达 233 DMIPS/1kLUT
**紧凑设计**:核心仅占用 850-1500 LUTs(取决于使能的特性和优化),可适配 XC3S100E 等小型 FPGA
**灵活的哈佛架构**:易于集成缓存控制器、总线桥等外设
**DSP 风格流水线**:流水线级之间无需互锁/停顿/转发,大部分时间可维持每周期一条指令
**丰富的可选特性**:支持 CSR(控制和状态寄存器)用于中断和调试、RV32E 支持、16x16 MAC 指令、粗粒度多线程(MT)、指令和数据缓存、哈佛到冯·诺依曼桥接、SDRAM 控制器、大端支持、M 扩展等
**BSD 许可证**:完全开源,可无限制用于任何场景
**广泛的 FPGA 兼容性**:已验证可在 Xilinx(Spartan-3/6/7、Artix-7、Kintex-7、Kintex Ultrascale)、Altera 和 Lattice 等 FPGA 上正常工作
技术规格
| 指令集架构 | |
|---|---|
| 流水线级数 | |
| 最大频率 | |
| 资源占用 | |
| IPC(每时钟指令数) | |
| 处理密度 | |
| 处理效率 | |
| 许可证 | |
| 开发语言 | |
| 可选特性 |
项目资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| Xilinx Spartan-3E (XC3S100E) | 1 | — | 最小目标板 |
| Xilinx Spartan-6 | 1 | — | 推荐开发板 |
| Xilinx Artix-7 / Kintex-7 | 1 | — | 高性能开发板 |
| Xilinx Kintex Ultrascale (KU040) | 1 | — | 最高性能开发板 |
| Xilinx ISE / Vivado | 1 | — | FPGA 综合与实现工具 |
| Icarus Verilog | 1 | — | 开源 Verilog 仿真器 |
| GTKWave | 1 | — | 查看仿真 VCD 波形文件 |
所需工具
| 工具 | 用途 | 是否必需 |
|---|---|---|
| Icarus Verilog | Verilog 仿真 | ✅ 是 |
| GTKWave | 查看仿真波形 | ▢ 推荐 |
| Xilinx ISE / Vivado | FPGA 综合、实现与下载 | ▢ 推荐 |
| GCC for RISC-V (≥9.0) | 编译 RISC-V 固件 | ✅ 是 |
| Make | 构建自动化 | ✅ 是 |
| Git | 版本控制与代码克隆 | ✅ 是 |
能力画像
记忆与知识检索
1/5
逻辑推演
4/5
表达与交流
1/5
感知与观察
1/5
数理与计算
4/5
动手与操作
4/5
狂热与坚持
5/5
创造与创新
5/5
项目图库
所需技能
🔧 **动手能力**:需要掌握 FPGA 开发板的使用,包括下载线连接、配置、烧录等硬件操作;具备焊接和调试基本电路的能力
💻 **编程能力**:需要精通 Verilog 硬件描述语言,理解数字电路设计;熟悉 C 语言以编写测试固件;了解 RISC-V 指令集架构;掌握 Makefile 构建系统和 Git 版本控制
⚡ **电子电路**:需要理解 FPGA 内部架构(如 LUT、BRAM、DSP 等资源);了解时钟域、时序约束、流水线等数字电路设计概念;熟悉仿真和波形分析工具
适用场景
**嵌入式系统教学**:作为学习 RISC-V 架构和 CPU 设计的优秀教学案例,代码简洁且功能完整
**FPGA 原型验证**:在 FPGA 上快速验证 RISC-V 软核的性能和功能,适合学术研究和工业原型开发
**低成本 SoC 设计**:利用其紧凑的资源占用,在低成本 FPGA 上构建完整的片上系统(SoC)
**数字信号处理**:通过可选的 MAC 指令和 DSP 风格流水线,适用于需要实时信号处理的应用
**替换传统 MCU**:作为 680x0/Coldfire 等传统处理器的替代方案,提供更高的性能和更低的资源消耗