【问题标题】:How to boot ddr memory of an FPGA?如何启动 FPGA 的 DDR 内存?
【发布时间】:2021-11-14 10:32:41
【问题描述】:

我有 nexys 4 ddr 板,它有 128MiB 板载内存,我通过 Vivado 内部名为 Memory Interface Generator 的 IP 访问它。但例如,与 BRAM IP 不同,它有一个 .coe 文件来初始化板的 BRAM,在这里对于板的 ddr 内存,我找不到用一些数据初始化它的方法。我有一个 Ibex 处理器,它利用这个内存作为它的主内存,但现在我不知道如何将我编写的编译代码放入这个 ddr2 内存中。任何人都可以帮忙吗?有没有办法用一些初始数据(如 BRAM)轻松启动这些内存?

【问题讨论】:

    标签: fpga riscv vivado


    【解决方案1】:

    要使用 DDR2 等外部存储器作为处理器主存储器,您必须使用引导加载程序。引导加载程序很小,可以在 FPGA 内部的 BRAM 上运行。当板子上电时,它会从外部非易失性存储器(如 SPI Flash)中读取主程序并将其加载到外部 DDR2 上。

    我不熟悉您使用的处理器,但 Xilinx 在 Vitis 中为其 Microblaze 处理器提供了模板 SREC-Bootloader。您可以使用它作为起点并编写自己的引导加载程序。

    【讨论】:

    • 感谢您的回答...但是作为初学者,编写此引导加载程序有多难?我实际上希望找到可能更简单的解决方案,但显然不会那么容易......
    • @seyed-kian 我不确定,但我想您可以将大部分 SREC-Bootloader 模板项目用于您的应用程序。如果是这样,那就不难了。您还需要将 .elf 文件转换为 SREC 格式,以便 SREC-Bootloader 可以加载它。赛灵思也为此提供了一个工具。
    • 好的...谢谢您的回答...让我看看我能找到什么:)
    • 很抱歉再次打扰您,但我在 github 中找到了 [github.com/Xilinx/u-boot-xlnx]... 这东西有帮助吗?你有这方面的知识吗?
    • @SeyedKian 我曾使用 U-Boot 作为 Linux 引导加载程序,但我没有使用它引导独立应用程序的经验。
    猜你喜欢
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-01-25
    相关资源
    最近更新 更多