突然间,我开始研究一些使用$ readmemh和$ writememh的verilog testbench代码.我明白它基本上读取内存并写入内存.如果你能指出一些与这些惯例有关的资源,我将很高兴.PS:我在谷歌搜索没有成功.(我非常......对Verilog来说很新)
我同意它不容易找到关于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
干杯!