memory 定义
命名规则:reg[n-1:0] 存储器名[m-1:0]
说明:这是m个n位的存储器,该存储器的地址范围是0-(m-1)
eg:
reg[7:0] data_rd[99:0];//100个8位的存储器,地址范围0~99
赋值:memo[200] = 4'b1010;
说明:给第200地址单元赋值4'b1010;
精确到位:memo[56][2]
说明:第56地址的第2位数据
赋值:wire data=memo[56][1];
说明:把memo中第56地址的第1位数据赋值给data;
赋值:wire data=memo[56][31:0];
说明:把memo中第56地址的前32位数据赋值给data;
memory 初始化赋值
(1)
$readmemh("data.txt",data_rd);//16进制为存储器赋值
$readmemb("data.txt",data_rd);//16进制为存储器赋值
这些系统任务从指定的文本文件中读取数据并加载到存储器。文本文件必须包含相应的二进制或者十六进制数。
eg:
initial
begin
$readmemh("data.txt",data_rd);//16进制为存储器赋值
for(n=0;n<=99;n=n+1)
$display("%h",data_rd[n]);
end
(2)分别对存储器中的每个字赋值。例如:
reg [0:3] Xrom [1:4];
Xrom[1] = 4'hA;
Xrom[2] = 4'h8;
Xrom[3] = 4'hF;
Xrom[4] = 4'h2;