我在 Verilog 中初始化推断 ram 的内容时遇到问题。ram的代码如下:
module ram(
input clock, // System clock
input we, // When high RAM sets data in input lines to given address
input [13:0] data_in, // Data lines to write to memory
input [10:0] addr_in, // Address lines for saving data to memory
input [10:0] addr_out, // Address for reading from ram
output reg data_out // Data out
);
reg [13:0] ram[2047:0];
// Initialize RAM from file
// WHAT SHOULD GO HERE?
always @(posedge clock) begin
// Save data to RAM
if (we) begin
ram[addr_in] <= data_in;
end
// Place data from RAM
data_out <= ram[addr_out];
end
endmodule
我遇到了 $readmemh 命令。但是,它的文档似乎很少。我应该如何格式化包含数据的文件?另外,如何在实例化此模块时将文件作为参数传递,以便可以从不同文件加载此模块的不同实例?
我希望初始化的内容可用于模拟和实际实现。这样 FPGA 就已经在 RAM 中使用此内容启动。
我正在使用 Vivado 2015.4 对 Kintex xc7k70 FPGA 进行编程。