$ readmemh $ writememh相关资源

时间:2009-03-10 01:16:33

标签: hardware verilog

突然间,我开始研究一些使用$ readmemh和$ writememh的verilog testbench代码。我明白它基本上读取内存并写入内存。如果你能指出一些与这些惯例有关的资源,我将很高兴。 PS:我在谷歌搜索没有成功。 (我非常......对Verilog来说很新)

2 个答案:

答案 0 :(得分:18)

我同意不太容易找到有关readmem / writemem的内容。你可以在这里找到一点: http://fullchipdesign.com/index_files/readmemh.htm

无论如何,关于这些函数的说法不多,语法是:

$readmem[hb]("File",ArrayName,StartAddr,EndAddr)
$writemem[hb]("File",ArrayName,StartAddr,EndAddr)

Verilog对文件格式非常挑剔,文本文件中的位数必须与数组中的位数相匹配。

我建议你通过定义一个数组来玩一下,用writememh / writememb写出数据然后将其打印出来。

这样的事情应该让你开始(没试过!)。

integer i;
reg [7:0] memory [0:15]; // 8 bit memory with 16 entries

initial begin
    for (i=0; i<16; i++) begin
        memory = i;
    end
    $writememb("memory_binary.txt", memory);
    $writememh("memory_hex.txt", memory);
end

干杯!

答案 1 :(得分:0)

阅读HEX文件的方式如下:

integer i;
reg [7:0] memory [0:15]; // 8 bit memory with 16 entries

initial begin
    for (i=0; i<16; i++) begin
        memory = i;
    end
    $readmemh("memory_binary.txt", memory);

end