阵列

2017-08-23 24 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的链接。