Jul
16
和Kingbeful同学讨论了infer memory的问题。
Infer ROM/RAM,一般使用Language Template --> Verilog --> Synthesis Constructs --> Coding Examples --> RAM/ROM。
要对ROM/RAM做初始化,可以用readmemb/readmemh这两个system task。功能都是读取外部的文件来初始化内存。
XST, ISIM, ModelSim都支持readmemh/readmemb。
readmemb的基本格式是:
initial begin
$readmemh("mem.data", my_memory, start_address, end_address);
end
其中,start_address和end_address都是可选项。
不写start_address的时候,默认从高位地址写起。
如果要从低位写起,start address = 0。
例子工程:
下载文件
参考资料:
asic-world - 不过XST不支持数据文件中有任何其他字符,包括注释和下划线。
XST User Guide
Infer ROM/RAM,一般使用Language Template --> Verilog --> Synthesis Constructs --> Coding Examples --> RAM/ROM。
要对ROM/RAM做初始化,可以用readmemb/readmemh这两个system task。功能都是读取外部的文件来初始化内存。
XST, ISIM, ModelSim都支持readmemh/readmemb。
readmemb的基本格式是:
initial begin
$readmemh("mem.data", my_memory, start_address, end_address);
end
其中,start_address和end_address都是可选项。
不写start_address的时候,默认从高位地址写起。
如果要从低位写起,start address = 0。
例子工程:
下载文件 参考资料:
asic-world - 不过XST不支持数据文件中有任何其他字符,包括注释和下划线。
XST User Guide





