Verilog陣列初始化賦值

2021-08-04 15:07:35 字數 581 閱讀 8929

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...