SpinalHDL之RiscV

本文作为SpinalHDL学习笔记第四十五篇,介绍SpinalHDL RiscV设计。

Note::本文仅记录在 SpinalHDL 中创造的第一代 RISC-V CPU。未记录 VexRiscV CPU,它是该CPU 的第二代,可在 此处 <https://github.com/SpinalHDL/VexRiscv> 获取,并提供更好的性能/面积/特性。

目录:

1.特性

2.基础 FPGA 项目

3.如何生成 CPU VHDL

4.调试

1.特性

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(使用默认综合选项)

2.基础 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。

3.如何生成 CPU VHDL

警告: 最近版本的 SpinalHDL 中不存在该 Avalon 版本的 CPU。请考虑使用 VexRiscv 。

4.调试

你可以在这里找到 openOCD 分支:
https://github.com/Dolu1990/openocd_riscv
可以在此处找到示例目标配置文件:
https://github.com/Dolu1990/openocd_riscv/blob/riscv_spinal/tcl/target/riscv_spinal.cfg
然后就可以使用 RISCV GDB 了。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千穹凌帝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值