【发布时间】:2015-08-10 02:13:22
【问题描述】:
我想将火箭芯片移植到非 Zynq FPGA(altera Stratix V)上,该板不包含用于运行 riscv-fesvr 的 ARM 内核。我该如何启动端口?另外,有没有人试图在这样的板上运行火箭芯片?我可以为此指出一些资源吗?
【问题讨论】:
标签: riscv
我想将火箭芯片移植到非 Zynq FPGA(altera Stratix V)上,该板不包含用于运行 riscv-fesvr 的 ARM 内核。我该如何启动端口?另外,有没有人试图在这样的板上运行火箭芯片?我可以为此指出一些资源吗?
【问题讨论】:
标签: riscv
我已经在非 Zynq FPGA(板:ML605 和 KC705)上移植了单核 Rocket 芯片,我有兴趣将它移植到其他目标上(参见上面的消息“https://github.com/sergeykhbr/riscv_vhdl”)。因此,如果您想使用建议的 vhdl 设计并准备好进行协作,我想我可以帮助您,并将 Quartus 项目文件添加到存储库中。
此外,还可以重新使用“grlib”中实现的 GPL 许可外设:http://www.gaisler.com/index.php/downloads/leongrlib。 例如 MAC、SD 控制器等。
【讨论】:
看一下在可移植 VHDL 顶层内部使用 Rocket-chip 内核的示例。该项目的结构与 Leon3 非常相似,可能很容易移植到任何 FPGA 板上。见:
【讨论】:
这主要是一个接口问题,因为 Rocket Chip 在内部没有使用任何 Zynq 特定的东西。如果此接口正确完成,您不需要更改 pk/linux 或 Rocket Chip 本身。您需要为目标 FPGA 封装 Rocket Chip,并与前端服务器 (fesvr) 连接。
对于封装 Rocket Chip,我会查看它所期望的顶级 IO (RocketChip.scala),其中最重要的是包括 HostIO(用于 HTIF)和 MemIO(用于 DRAM)。有关这些接口的更多信息,我会从first workshop 咨询slides。我们当前的包装器 (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。
【讨论】: