声明数组时Verilog错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了声明数组时Verilog错误相关的知识,希望对你有一定的参考价值。
reg [11:0] rom_sin_type [0:4095]= '{12'h000, 12'h003, 12'h006, 12'h009, 12'h00d, 12'h010, 12'h013, 12'h016, .....};
在verilog中,当我合成上面的代码行时,它包含4096个值,每个12位,它的显示错误如下所示。
期待';',发现'='
期待'endmodule',发现'{'
请任何人可以帮助我,如何克服这个问题?
答案
Verilog不支持'{}
语法。这是一个SystemVerilog(IEEE Std 1800-2012)功能;请参阅第5.10节“结构文字”,第5.11节“数组文字”,第7.2.2节“分配给结构”,“§”和“10.9分配模式”。
您可以启用SystemVerilog(所有现代Verilog模拟器都是SystemVerilog模拟器)或分配Verilog方式:
reg [11:0] rom_sin_type [0:4095];
initial begin
rom_sin_type[0] = 12'h000;
rom_sin_type[1] = 12'h003;
rom_sin_type[2] = 12'h006;
rom_sin_type[3] = 12'h009;
.....
end
另一答案
您也可以尝试循环。
genvar i;
for (i=0;i<4096;i= i+1) begin
assign a[i] = i;
end
我不确定rom_sin_type是否需要assign语句。
以上是关于声明数组时Verilog错误的主要内容,如果未能解决你的问题,请参考以下文章
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”