verilog陣列表示及初始化,以三維陣列為例,二維及一維應該類似;
reg [19:0] array1 [0:7][0:15][0:8]; //3維陣列,用來儲存梯度直方圖
always@(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
//array1 [0:7][0:15][0:8] <= 0;
$readmemh("pds_cell_0.txt", array1);
end首先直接給陣列賦值—— //array1 [0:7][0:15][0:8] <= 0;,報錯;
網上搜了一下,要用給memery賦值的方式,於是生成了乙個txt文件,注意文件的內容格式要符合如下要求:
1101
1110
1000
0111
0000
1001
0011
我這裡是直接賦值為0,所以我的pds_cell_0.txt內容就是
這種方法用modelsim**是ok的,
但是quartusii綜合不能通過,怎麼辦呢?
Verilog陣列表示及初始化
這裡的記憶體模型指的是記憶體的行為模型。verilog 中提供了兩維陣列來幫助我們建立記憶體的行為模型。具體來說,就是可以將記憶體宣稱為乙個 reg型別的陣列,這個陣列中的任何乙個單元都可以通過乙個下標去訪問。這樣的陣列的定義方式如下 reg wordsize 0 array name 0 arra...
陣列的初始化與賦值
以乙個整型陣列和乙個char型陣列為例 int a 2 char s 5 這樣初始化時可以的,使用cout輸出s陣列的時候,不報錯,但直接使用s這個陣列名輸出缺少了乙個適當的 0 結尾 對比上面的初始化,只能對陣列的元素賦值,而不能用賦值語句對整個陣列賦值 c 程式設計 譚浩強 149頁 例如下面是...
字元陣列初始化與賦值
char a 10 怎麼給這個陣列賦值呢?1 定義的時候直接用字串賦值 char a 10 hello 注意 不能先定義再給它賦值,如char a 10 a 10 hello 這樣是錯誤的!2 對陣列中字元逐個賦值 char a 10 3 利用strcpy char a 10 strcpy a,he...