0

我想用zedboard做一个多核。我对此有 2 个问题。

  1. 我在 rocket-chip/src/main/scala/Configs.scala 中将变量“NTILES”更改为 2,以实现多核系统。

  2. 如果我制作多核,我该如何确认?我尝试使用 fork 和后台执行来检查修改后的系统,但我收到如下图所示的错误消息。并且 pthreads 无法编译。我想知道确认多核系统的方法。

另外,如果您对为 Rocketchip 制作多核有任何想法,请告诉我诀窍。谢谢。

4

1 回答 1

3

使用 NTILES=2 和 DefaultFPGAConfig,两个内核可能不适合 zedboard。我将验证 Vivado 是否能够成功完成。您可能需要减少一些其他参数(BTB、FPU 等)。

代理内核 (riscv-pk) 不支持多核。要使用 linux,您需要在构建时启用 SMP 支持。在为 linux 做 menuconfig 时,在“Platform Type”下打开“Symmetric Multi-Processing”。对于 pthreads,我会将正确的共享库从 riscv-gcc-linux 的编译器目录复制到您的 linux 磁盘映像。

在板上启动 SMP linux 后,您可以确认它是多核的,带有cat /proc/cpuinfo. 为了测试您的软件(Linux、磁盘映像、您的代码),我建议您在确信并行软件已准备好时使用尖峰并转移到 FPGA。Spike 可以模拟多核。

于 2015-09-11T16:16:00.047 回答