声明数组时出现 Verilog 错误
Verilog error while declaring a array
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
您也可以尝试 for 循环。
genvar i;
for (i=0;i<4096;i= i+1) begin
assign a[i] = i;
end
我不确定 rom_sin_type 是否需要赋值语句。
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
您也可以尝试 for 循环。
genvar i;
for (i=0;i<4096;i= i+1) begin
assign a[i] = i;
end
我不确定 rom_sin_type 是否需要赋值语句。