在verilog语句中,对文件的操作函数有$readmemh和$readmemb函数来操作,两者的区别是前者读取的文件是十六进制的,后者是二进制的。
用法有如下:
比如对存储器rom进行初始化,将文件filename.dat中的数据读取到rom中,数据格式是十六进制的。
reg [7:0]rom[0:1024];
$readmemh("./filename.dat",rom);
如果需要存入在存储器中的一段地址中,那么可以如下写:
$readmemh("./filename.dat",rom,10,50);
同时在文件中写的数据可以包含地址:
@address vaule
比如写着 @100 67h
这种情况下数据就被读入指定的地址单元中进行初始值赋值。