文章目录

  • RoCC简介
  • riscv-tools
    • pk
  • 加速器
  • fpga-zynq
  • 测试
    • 测试样例
    • 测试结果
  • 参考文献

RoCC简介

Rocket Custom Coprocessor

riscv-tools

  • 由于custom指令并不是标准指令集的一部分,所以最新的risc-tools(汇编器)不支持直接写custom0指令。
  • riscv-tools还是为custom指令预留了opcode。
  • 可以参考这里。直接将custom指令转换成二进制。核心代码如下:
#define XCUSTOM(x, rd, rs1, rs2, funct)         \XCUSTOM_OPCODE(x)                   |         \(rd                   << (7))       |         \(0x3                  << (7+5))     |         \((rd != 0) & 1        << (7+5+2))   |         \(rs1                  << (7+5+3))   |         \(rs2                  << (7+5+3+5)) |         \(EXTRACT(funct, 7, 0) << (7+5+3+5+5))#define ROCC_INSTRUCTION_RAW_R_R_R(x, rd, rs1, rs2, funct)      \.word XCUSTOM(x, ## rd, ## rs1, ## rs2, funct)
// .word 可以理解为在当前地址位置放置一条指令,汇编器不对其进行处理

pk

在Rocket处理器有一个寄存器mstatus,有一个XS,只有为非0时,才会执行自定义指令。
可以通过修改pk解决这个问题,参考这里。
核心修改代码如下:

// fpga-zynq/rocket-chip/riscv-tools/riscv-pk/machine/minit.c : mstatus_init()
if (supports_extension('X'))set_csr(mstatus, (MSTATUS_XS & (MSTATUS_XS >> 1)));

具体操作如下:

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之加速器相关推荐

  1. Rocket Chip 介绍

    Rocket  Chip 是基于 Chisel 开发的一款开源的 SoC 生成器,具有可综合的RTL.通过配置可以生成两种基于 RISC-V 指令集的通用处理器就.Rocket-Chip 中有两种处理 ...

  2. Imagination 的神经网络加速器和 Visidon 的去噪算法被证明是完美的搭档

    Imagination 的神经网络加速器和 Visidon 的去噪算法被证明是完美的搭档 本文是总部位于芬兰的Visidon和总部位于英国的 Imagination合作的结果.Visidon 是公认的 ...

  3. VTA:深度学习加速器堆栈

    VTA:深度学习加速器堆栈 多功能Tensor加速器(VTA)是一个开放的,通用的,可定制的深度学习加速器,具有完整的基于TVM的编译器堆栈.设计VTA来展示主流深度学习加速器的最显着和共同的特征.T ...

  4. 深度学习加速器堆栈Deep Learning Accelerator Stack

    深度学习加速器堆栈Deep Learning Accelerator Stack 通用张量加速器(VTA)是一种开放的.通用的.可定制的深度学习加速器,具有完整的基于TVM的编译器堆栈.设计了VTA来 ...

  5. 英特尔Intel® Arria® 10 FPGA加速器设计

    英特尔Intel® Arria® 10 FPGA加速器设计 Introducing the Intel® Vision Accelerator Design with Intel® Arria® 10 ...

  6. 硬件加速器为人工智能应用服务

    硬件加速器为人工智能应用服务 Hardware accelerators serve AI applications 硬件加速器(Hardware accelerators)是用于执行特定任务(如对对 ...

  7. 神经网络AI加速器技术

    神经网络AI加速器技术 能够直接加速卷积神经网络,还能够直接运行常见的网络框架,如TensorFlow.Caffe.PyTorch,DarkNet等,支持用户定制化的网络和计算类型. 功能特点: ● ...

  8. NVIDIA TensorRT:可编程推理加速器

    NVIDIA TensorRT:可编程推理加速器 一.概述 NVIDIA TensorRT™是一个用于高性能深度学习推理的SDK.它包括一个深度学习推理优化器和运行时间,为深度学习推理应用程序提供低延 ...

  9. 基于FPGA实现的MobileNet V1,FPGA深度学习加速器设计 CNN Accelerators based on FPGAs

    Automatic Generation of Multi-precision Multi-arithmetic CNN Accelerators for FPGAs 最近arXiv上挂出来一篇文章, ...

最新文章

  1. saltstack学习-9:批量安装nginx服务并定时更新配置(pillar)
  2. 《算法图解》第四章笔记与课后练习_快速排序算法
  3. 阿里云引领云原生进化,智能、互联、可信三位一体
  4. php excel导入mysql_使用PHPExcel导入Excel到MySql
  5. 命令行开启windows下的iis信息服务,开启及配置http端口,开启及配置ftp端口
  6. 中video拖动_【小功能】UE4中实现UI的拖拽
  7. 占空比50%的奇数分频
  8. MySQL Event
  9. eclipse中monokai插件的安装
  10. Spring事务操作-事务
  11. 无法为类型 CuteEditor.Editor 授予有效的许可证。
  12. 用arp-scan扫描局域网IP地址
  13. python time
  14. javaSE基础之字符串
  15. 浅谈谷歌(Google)退出中国大陆市场事件
  16. android 模拟器声音设置,android模拟器用mediaplayer播放没有声音
  17. 有趣的密码学介绍~古典密码之凯撒密码来咯~
  18. DeepLab语义分割
  19. imazing是什么?为什么选择 iMazing?
  20. w10计算机配置在哪看,win10如何查看电脑配置参数(一招查看电脑配置好坏)

热门文章

  1. vb.net 模拟鼠标 失去焦点_健身房模拟器中文版 游戏攻略分享
  2. 51单片机控制小舵机
  3. Winform UI界面设计例程——自定义PictureBox
  4. 我的世界服务器显示你没有权限,你没有权限与....交互 - 有问必答 - 最MC论坛 - 我的世界_Minecraft_联机_服主_资讯_MOD_皮肤_交流_作品_中文论坛...
  5. x77.be/bbs/index.php,试驾体验东风风行CM7 视频体验/外观内饰空间一览
  6. DSRC通信协议标准
  7. 《算法图解》学习笔记(十一):十种经典的算法与数据结构
  8. C++中mutable的用法和存在意义
  9. 《炬丰科技-半导体工艺》硅片湿法清洗槽中兆声波下的水和气泡运动
  10. 大连海洋计算机专业校址,大连海洋大学有几个校区,哪个校区最好及各校区介绍...