Rocket之加速器
生活随笔
收集整理的這篇文章主要介紹了
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协议解析及