Verilog中$readmemh和$writememh的作用是什么?

发布于 2024-07-14 23:22:57 字数 144 浏览 7 评论 0原文

我一直在研究一些大量使用 $readmemh$writememh 的 Verilog 测试平台代码。

我有一个模糊的理解,这些函数基本上是从内存中读取和写入。 它们的具体功能是什么以及如何工作?

I have been looking at some Verilog testbench code that heavily uses $readmemh and $writememh.

I have a vague understanding that these functions basically read to and write from memory. What is their specific function and how do they work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小ぇ时光︴ 2024-07-21 23:22:57

我同意找到有关 readmem/writemem 的内容并不容易。 你可以在这里找到一些:
https://www.fullchipdesign.com/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] = i;
    end
    $writememb("memory_binary.txt", memory);
    $writememh("memory_hex.txt", memory);
end

I agree its not too easy to find something about readmem/writemem. You can find a little bit here:
https://www.fullchipdesign.com/readmemh.htm

Anyway there is not too much to say about these functions, the syntax is:

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

Verilog is very picky about the file format, the number of bit in the text file have to match the number of bits in the array.

I recommend you play around a little bit by defining an array, filling it up with data write it out with writememh/writememb and print it out afterwards.

Something like this should get you started (not tried out!).

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] = i;
    end
    $writememb("memory_binary.txt", memory);
    $writememh("memory_hex.txt", memory);
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文