我想使用zedboard制作多核。我有两个问题。
我更改了一个变量“NTILES'用于实现多核系统的rocket-chip / src / main / scala / Configs.scala中的2。
如果我制作多核,我该如何确认?我尝试使用fork和后台执行来检查修改后的系统,但是我收到了如下图所示的错误信息。并且pthreads无法编译。我想知道确认多核系统的方法。
另外,如果您对为rocketchip制作多核有任何想法,请通知我。感谢。
答案 0 :(得分:3)
使用NTILES = 2和DefaultFPGAConfig时,两个核心可能不适合zedboard。我会验证Vivado是否能够成功完成。您可能需要减少一些其他参数(BTB,FPU等)。
代理内核(riscv-pk)不支持多核。要使用linux,您需要在构建时启用SMP支持。在为linux进行menuconfig时,在“Platform Type”下打开“Symmetric Multi-Processing”。对于pthread,我会将riscv-gcc-linux的编译器目录中正确的共享库复制到你的linux磁盘映像。
在主板上启动SMP Linux后,您可以使用cat /proc/cpuinfo
确认它是多核的。为了测试你的软件(linux,磁盘映像,你的代码),我建议你使用spike并在确信并行软件准备就绪时转移到FPGA。 Spike可以模拟多核。