对于我的一个项目,我应该使用RISC-V火箭核心并添加两条新指令,以便在不使用缓存的情况下在FPGA上实例化的两个火箭核心之间发送和接收数据。我们通过添加模仿add指令的自定义操作码进行了实验。我们使用没有ROCC模板的方法,因为它在github的ucb-bar中不可用。
我们按照HPCA-2015 RISCV教程中演示幻灯片24,25,26和27中给出的步骤进行操作。为了测试,我们在汇编器中添加了新指令(ADD_N),模仿了基本的add函数。一旦我们创建了这个操作码,我们重新构建了spike并制作了ac代码并直接通过asm()给出了我们的新操作码,并在我们使用spike运行时生成了elf二进制文件,它确实按预期运行但是当我们使用spike运行时 - d我们根本无法看到我们的指令被执行。
我们尝试通过zed板上的前端服务器运行此代码。但是通过添加新指令生成的精灵二进制文件即使在没有对凿子进行更改的情况下也能在zed板上工作。
任何参加过训练营或风险会议的人都可以提供帮助。