【问题标题】:Rocket Chip on Non-Zynq FPGAs非 Zynq FPGA 上的火箭芯片
【发布时间】:2015-08-10 02:13:22
【问题描述】:

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

【问题讨论】:

    标签: riscv


    【解决方案1】:

    我已经在非 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 控制器等。

    【讨论】:

      【解决方案2】:

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

      https://github.com/sergeykhbr/riscv_vhdl

      【讨论】:

        【解决方案3】:

        这主要是一个接口问题,因为 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。

        【讨论】:

        • ARM内核上的主机接口映射为通用内存映射IO。该接口在 ARM 内核上创建文件 /dev/mem,然后火箭内核将访问此物理内存。我对吗?所以我不认为它提供了任何 AXI 特定的访问权限。那么我需要在 fesvr 代码中修改什么?另外,如何获取 mmap (dev_paddr) 中使用的偏移量?
        • 另外,一旦我安装了修改后的 fesvr,我会在构建目录中生成某些文件。我该如何使用这个新的 fesvr?在哪里包含它才能使用它?
        • 我能找到的是:安装 fesvr-zynq 时,不要忘记复制库(build/libfesvr.so 到板上的 /usr/local/lib)。你能详细说明一下吗?
        • 正确,大部分复杂性都通过内存映射 IO 抽象出来。 dev_paddr 就是这个映射(所以你需要为你的平台找到它)。
        • 对于使用 fesvr 的示例,我将查看我们已经发布的四个示例(带有尖峰的 ISA 仿真、带有 QEMU 的 ISA 仿真、Rocket Chip 的 C++ 仿真以及在 Zynq 上运行)。对于其中一些平台,fesvr 是隐式的,但它用于所有平台。 Zynq 的用法可能是最相似的。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多