陣列

2017-08-23 30 views
0

我有被限定成陣列的列表:陣列

bit [2:0] Param1[8]; 
. 
. 
bit [2:0] Param16[8]; 

我想以創建這些陣列的列表,以iterarte超過它們:

bit [2:0] array[16][8] = {Param1, Param2 ... Param16}; 

但是當我嘗試向該數組中的每個數組寫入3位長的位,結果是錯誤的。我錯過了什麼?

+0

在這種情況下,您認爲索引的無效順序。我想你的意思是說'bit [2:0]數組[8] [16]' – Serge

+1

你需要用你得到的結果來澄清你期待的結果。 –

回答

0

您必須遍歷多維數組才能爲其分配值。因爲它有以下到的問題

下面的代碼將無法正常工作:

  1. 而你需要8rows和16columns數組它將創建16rows和8columns的數組。
  2. 它會期望一個3位值被分配給數組元素[8] [16]。

下面的代碼可能有助於實現您想要的功能:

module test(); 

bit [2:0] Param1[8]; 
bit [2:0] Param2[8]; 
bit [2:0] Param3[8]; 
bit [2:0] Param4[8]; 
bit [2:0] Param5[8]; 
bit [2:0] Param6[8]; 

int i=0; 
int j=0; 

bit [2:0] array [8][6]; 

initial begin 
    array[0][0] = 'd1; 
    array[0][1] = 'd1; 
    array[0][2] = 'd1; 

foreach(array[i,j]) 
    $display("array[%0d][%0d] = %0d",i,j,array[i][j]); 

for(i=0;i<6;i++) 
    array[0][i] = Param1[i]; 

foreach(array[i,j]) 
    $display("array[%0d][%0d] = %0d",i,j,array[i][j]); 

end 

endmodule 

請找到運行代碼here的鏈接。