Verilog阵列分配

时间:2016-04-03 21:59:27

标签: arrays verilog fpga modelsim

所以我试图在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 个答案:

答案 0 :(得分:1)

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

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