我想将火箭芯片移植到非Zynq FPGA(altera Stratix V),这是一块不包含用于运行riscv-fesvr的ARM内核的板。我怎么去启动港口?还有,是否有人试图在这样的电路板上运行火箭芯片?我可以为此指出一些资源吗?
答案 0 :(得分:5)
这主要是接口问题,因为Rocket Chip内部没有使用任何Zynq特定的东西。如果这种接口正确完成,您不需要更改pk / linux或Rocket Chip本身。您需要为目标FPGA包装Rocket Chip,并使用前端服务器(fesvr)将其连接到它。
对于包装Rocket Chip,我会看一下它所期望的顶级IO(RocketChip.scala),其中最重要的包括HostIO(用于HTIF)和MemIO(用于DRAM)。有关这些接口的其他信息,请参阅slides中的first workshop。我们当前的包装器(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系留。
答案 1 :(得分:-1)
看一下在便携式VHDL顶级内部使用Rocket芯片内核的例子。该项目与Leon3的结构非常相似,可能很容易移植到任何FPGA板上。参见: