2016-04-03 449 views
1

所以我想编号分配给Verilog内的阵列,它是这样的:Verilog的数组赋值

initial begin 

waveforms[0] = 16'b1100100100000000; 
waveforms[1] = 16'b1000000000000000; 
waveforms[2] = 16'b1111111111111111; 

end 

而下面的代码可以通过编译器的ModelSim。不过,我有一个巨大的查找表需要存储在这个“波形”中,所以显然赋值一个一个的效率不高。所以,我想这一点:

initial begin 

waveforms [0:2] = '{16'b1100100100000000,16'b1000000000000000,16'b1111111111111111}; 

end 

而且,通过做上述,我得到以下错误:

(vlog-2110) Illegal reference to memory "waveforms". 

Illegal array access into "waveforms" 

Illegal LHS of assignment. 

所以,问题是如何解决这些错误?

谢谢

回答

1

只有SystemVerilog允许您指定数组作为聚合。将文件扩展名从*.v更改为*.sv

另一种方法是使用$ readmemb并从另一个文件加载查找表。