当前位置:
首页 >
Rocket之加速器
发布时间:2024/3/12
47
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Rocket之加速器
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
文章目录
- RoCC简介
- riscv-tools
- pk
- 加速器
- fpga-zynq
- 测试
- 测试样例
- 测试结果
- 参考文献
RoCC简介
Rocket Custom Coprocessor
riscv-tools
- 由于custom指令并不是标准指令集的一部分,所以最新的risc-tools(汇编器)不支持直接写custom0指令。
- riscv-tools还是为custom指令预留了opcode。
- 可以参考这里。直接将custom指令转换成二进制。核心代码如下:
pk
在Rocket处理器有一个寄存器mstatus,有一个XS,只有为非0时,才会执行自定义指令。
可以通过修改pk解决这个问题,参考这里。
核心修改代码如下:
具体操作如下:
cd fpga-zynq/rocket-chip/riscv-tools/riscv-pk git apply rocket-rocc-examples/patches/riscv-pk.patch mkdir build cd build ../configure --prefix=$RISCV/riscv64-unknown-elf --host=riscv64-unknown-elf make make install scp pk root@192.168.1.5:/home/root加速器
fpga-zynq
修改位置:fpga-zynq/common/src/main/scala/Configs.scala
class RoccExampleConfig extends Config(new WithBootROM ++ new freechips.rocketchip.system.RoccExampleConfig) class RoccZynqConfig extends Config(new WithZynqAdapter ++ new RoccExampleConfig) class RoccZynqFPGAConfig extends Config(new WithoutTLMonitors ++ new RoccZynqConfig)执行命令
cd zedboard make rocket CONFIG=RoccZynqFPGAConfig make project CONFIG=RoccZynqFPGAConfig // 之后用vivado生成bit流测试
测试样例
https://github.com/seldridge/rocket-rocc-examples/blob/master/pk/accumulator.c
测试结果
参考文献
- http://www.doc88.com/p-2783563467689.html
- http://www-inst.eecs.berkeley.edu/~cs250/fa13/handouts/lab3-sumaccel.pdf
- https://github.com/riscv/riscv-gnu-toolchain/issues/190
- https://github.com/seldridge/rocket-rocc-examples
总结
以上是生活随笔为你收集整理的Rocket之加速器的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: C语言频率计程序,基于单片机的频率计的C
- 下一篇: Zynq7000 USB2.0协议解析及