6

我想将火箭芯片移植到非 Zynq FPGA(altera Stratix V)上,该板不包含用于运行 riscv-fesvr 的 ARM 内核。我该如何启动端口?另外,有没有人试图在这样的板上运行火箭芯片?我可以为此指出一些资源吗?

4

3 回答 3

6

这主要是一个接口问题,因为 Rocket Chip 在内部没有使用任何 Zynq 特定的东西。如果此接口正确完成,您不需要更改 pk/linux 或 Rocket Chip 本身。您需要为目标 FPGA 封装 Rocket Chip,并与前端服务器 (fesvr) 连接。

对于封装 Rocket Chip,我会查看它所期望的顶级 IO(RocketChip.scala),其中最重要的是包括 HostIO(用于 HTIF)和 MemIO(用于 DRAM)。有关这些界面的更多信息,我会查阅第一次研讨会的幻灯片。我们当前的包装器 ( rocketchip_wrapper.v ) 通过 AXI 将这些接口多路复用到运行 fesvr 的主机 ARM 内核。

您的建议发送到在 NIOS II 内核上运行 fesvr 并通过 AXI 与其通信的邮件列表可以工作。这将需要修改 ( fesvr-zedboard.cc ) 以匹配 NIOS 提供的 AXI 接口到软件。这种方法可能需要最少的新开发,但软核会消耗 FPGA 资源并且可能会更慢。

实现此目的的另一种方法是在通过以太网连接到电路板的 PC 上运行前端服务器。您需要在 Rocket Chip 的 MemIO 和板载 DRAM 之间架起一座桥梁。您还需要通过以太网运行 HTIF,这将需要 HostIO 和主板的以太网 MAC 之间的另一个桥接。几年前 fesvr 支持这一点(fesvr-eth.cc),但该代码尚未维护,几乎肯定需要更新。

这一切都假设您希望以拴系的方式运行处理器。要使其自启动需要更多的工作。有一个平台规范可以对此进行标准化,但在此之前,您需要自己设计或继续使用 Rocket Chip tethered。

于 2015-05-27T22:41:05.077 回答
3

我已经在非 Zynq FPGA 上移植了单核 Rocket 芯片(板:ML605 和 KC705),我有兴趣将它移植到其他目标上(参见上面的消息' https://github.com/sergeykhbr/riscv_vhdl ' )。因此,如果您想使用建议的 vhdl 设计并准备好进行协作,我想我可以帮助您,并将 Quartus 项目文件添加到存储库中。

此外,还可以重新使用在“grlib”中实现的 GPL 许可外围设备:http ://www.gaisler.com/index.php/downloads/leongrlib 。例如 MAC、SD 控制器等。

于 2015-11-23T11:15:25.490 回答
-1

看一下在可移植 VHDL 顶层内部使用 Rocket-chip 内核的示例。该项目的结构与 Leon3 非常相似,可能很容易移植到任何 FPGA 板上。看:

https://github.com/sergeykhbr/riscv_vhdl

于 2015-11-17T18:41:55.363 回答