所以我试图在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.
那么,问题是如何解决这些错误?
由于
答案 0 :(得分:1)
只有SystemVerilog允许您将数组指定为聚合。将文件扩展名从*.v
更改为*.sv
另一种选择是使用$ readmemb并从另一个文件加载查找表。