非Zynq FPGA上的火箭芯片

use*_*398 5 riscv

我想将火箭芯片移植到非Zynq FPGA(altera Stratix V),这是一块不包含用于运行riscv-fesvr的ARM内核的板.我怎么去启动港口?还有,是否有人试图在这样的电路板上运行火箭芯片?我可以为此指出一些资源吗?

use*_*418 6

这主要是接口问题,因为Rocket Chip内部没有使用任何Zynq特定的东西.如果这种接口正确完成,您不需要更改pk/linux或Rocket Chip本身.您需要将Rocket Chip包装为目标FPGA,并使用前端服务器(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系留.