我想把火箭芯片移植到一个非Zynq(),一个不包含用于运行riscv-fesvr的ARM核心的板。我怎样才能开始港口呢?还有,有没有人试图在这样的板上运行火箭芯片?我能指出一些资源吗?
发布于 2015-05-27 22:41:05
这主要是接口问题,因为火箭芯片不使用任何Zynq特定的内部。如果正确地完成了这个接口,您就不需要改变pk/linux或火箭芯片本身。您需要为目标FPGA封装火箭芯片,并与前端服务器(fesvr)进行接口。
对于包装火箭芯片,我将查看它期望的顶级IO (RocketChip.scala),其中最重要的包括HostIO (用于HTIF)和MemIO (用于DRAM)。有关这些接口的更多信息,我将从幻灯片查询第一次讲习班。我们的当前包装器(wrapper.v)通过AXI将这些接口多路复用到运行fesvr的主机ARM核心。
您的建议发送到在NIOS II内核上运行fesvr并通过AXI与其通信的邮件列表可以工作。这将需要修改(fesvr-zedboard.cc)以匹配NIOS提供给软件的AXI接口。这种方法可能需要最少的新开发,但软核将消耗FPGA资源,而且速度可能更慢。
实现这一目标的另一种方法是在通过以太网连接到板上的PC上运行前端服务器。你需要在火箭芯片的MemIO和车载内存之间架起一座桥梁.您还需要在以太网上运行HTIF,这将需要在HostIO和板的以太网MAC之间建立另一个桥。多年前,fesvr支持这一点(fesvr-eth.cc),但是该代码还没有被维护,而且几乎肯定需要更新。
这都假设您希望以绑定的方式运行处理器。要使它自动引导将需要更多的工作。有一个平台规范的工作,将标准化这一点,但在此之前,你将需要设计自己的或继续使用火箭芯片拴。
发布于 2015-11-23 11:15:25
我已经在非Zynq(板: ML605和KC705)上移植了单核火箭芯片,并且我很有兴趣将它移植到其他目标上(参见‘vhdl’上面的消息)。因此,如果您想使用建议的vhdl设计并准备好协作,我想我可以帮助您,并因此将Quartus项目文件添加到存储库中。
此外,还有可能重用在“grlib”:http://www.gaisler.com/index.php/downloads/leongrlib中实现的GPL许可的外围设备。如MAC,SD-控制器和许多其他.
发布于 2015-11-17 18:41:55
看看在便携式VHDL顶层使用火箭芯片核心的例子。该项目的结构非常类似于Leon3,这可能很容易移植到任何FPGA板。请参见:
https://stackoverflow.com/questions/30491842
复制相似问题