RiscV
警告
本页仅记录在SpinalHDL中创造的第一代RISC-V CPU。本页面未记录VexRiscV CPU,它是该CPU的第二代,可在 此处 <https://github.com/SpinalHDL/VexRiscv> 获取,并提供更好的性能/面积/特性。
特性
RISC-V CPU
- 5级流水线(获取 解码 执行0 执行1 回写) 
- 多种分支预测模式:(禁用、静态或动态) 
- 数据路径可在完全旁路和完全互锁之间进行参数化 
扩展
- 一周期的乘法 
- 34个周期的除法 
- 迭代移位器(N次移位 -> N个周期) 
- 单周期移位器 
- 中断控制器 
- 调试模块(带有JTAG桥、openOCD端口和GDB) 
- 具有封装的突发内存接口的指令缓存,单向 
- 具有清除/刷新整个缓存或特定地址的指令的数据缓存,单向 
性能/面积(在cyclone II上)
- 小核 -> 846 LE, 0.6 DMIPS/Mhz 
- 调试模块(无 JTAG)-> 240 LE 
- JTAG Avalon主控 -> 238 LE 
- 带MUL/DIV/全移位器/I$/中断/调试的大核 -> 2200 LE,1.15 DMIPS/Mhz,至少100Mhz(使用默认综合选项) 
基础FPGA项目
您可以在这里找到一个DE1-SOC项目,它将两个CPU实例与 MUL/DIV/全移位器/I$/中断/调试集成在一起:
https://drive.google.com/drive/folders/0B-CqLXDTaMbKNkktb2k3T3lzcUk?usp=sharing
CPU/JTAG/VGA IP是预先生成的。 Quartus Prime:15.1。
如何生成CPU VHDL
警告
最近版本的SpinalHDL中不存在该Avalon版本的CPU。请考虑使用 VexRiscv 。
如何调试
你可以在这里找到openOCD分支:
https://github.com/Dolu1990/openocd_riscv
可以在此处找到示例目标配置文件:
https://github.com/Dolu1990/openocd_riscv/blob/riscv_spinal/tcl/target/riscv_spinal.cfg
然后就可以使用RISCV GDB了。
Todo
- 文档 
- Optimize instruction/data caches FMax by moving line hit condition forward into combinatorial paths. 
联系spinhdl@gmail.com了解更多信息