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了解更多信息