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位,它的显示错误如下所示。
期待&#39 ;;',找到' ='
期待' endmodule',找到' {'
请有人帮助我,如何克服这个问题?
答案 0 :(得分:3)
Verilog不支持'{}
语法。它是SystemVerilog(IEEE Std 1800-2012)功能;请参阅第5.10节结构文字,第5.11节数组文字,第7.2.2节分配给结构,§和10.9 分配模式< / em>的
您可以启用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
答案 1 :(得分:0)
您也可以尝试进行循环。
genvar i;
for (i=0;i<4096;i= i+1) begin
assign a[i] = i;
end
我不确定rom_sin_type是否需要assign语句。