2016-04-03 768 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並從另一個文件加載查找表。