如何引导FPGA的ddr内存?

How to boot ddr memory of an FPGA?

我有 nexys 4 ddr 板,板载内存为 128MiB,我通过 Vivado 内部名为 Memory Interface Generator 的 IP 访问它。但是例如,与 BRAM IP 不同的是,它有一个 .coe 文件来初始化电路板的 BRAM,这里对于电路板的 ddr 内存,我找不到用一些数据初始化它的方法。我有一个 Ibex 处理器,它使用此内存作为其主内存,但现在我不知道如何将我编写的编译代码放入此 ddr2 内存中。谁能帮忙?有没有办法像 BRAM 一样使用一些初始数据轻松引导这些存储器?

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

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