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;