无法获得使用 zed 板的默认 Accumulator 示例构建的 RoCC 加速器

Unable to get the RoCC accelerator built with the default Accumulator example for zed board

尝试为 zed board 构建 RoCC 加速器默认累加器示例,但出现 "illegal instruction"

错误

我在 configs.scala 文件中尝试了以下配置:-

class WithAccumRocc extends Config(
(pname,site,here) => pname match {
case RoccNMemChannels => 1
case RoccMaxTaggedMemXacts => 0
case BuildRoCC => {
Some((p: Parameters) =>
Module(new AccumulatorExample()(p.alterPartial({ case CoreName => "AccumRocc" }))))
}

}
)
class WithRoCCConfig extends Config(new WithAccumRocc ++ new DefaultFPGAConfig)

比特流已成功生成,但是当我运行从riscv-isa-sim中给出的示例生成的dummy_rocc_test二进制文件时,我在zed板上收到以下错误。

root@zynq:~# ./fesvr-zynq pk /sdcard/Custom\ elfs/dummy_rocc 
z 0000000000000000 ra 0000000000010044 sp 000000000feffb10 gp 0000000000017880
tp 0000000000000000 t0 0000000000017178 t1 0000000000017178 t2 0000000000000000
s0 000000000feffb40 s1 0000000000000000 a0 0000000000000001 a1 000000000feffb48
a2 0000000000000000 a3 0000000000000000 a4 0000000000000000 a5 000000000000007b
a6 0000000000000000 a7 0000000000000001 s2 0000000000000000 s3 0000000000000000
s4 0000000000000000 s5 0000000000000000 s6 0000000000000000 s7 0000000000000000
s8 0000000000000000 s9 0000000000000000 sA 0000000000000000 sB 0000000000000000
t3 0000000000000000 t4 0000000000000000 t5 0000000000000000 t6 0000000000000000
pc 0000000000010168 va 0000000000010168 insn 0027e00b sr 8000000000003008
An illegal instruction was executed!

如有任何帮助,我们将不胜感激。

P.S。 :- dummy_rocc_test 示例在 spike 上运行良好,并且已使用 riscv64-unknown-elf-gcc

编译

大家好,这个问题已经解决了,一旦做出改变,火箭就需要用新的 pga 配置构建,vivid 项目也必须相应地更新以生成新的比特流。