【发布时间】:2020-11-06 08:49:35
【问题描述】:
大家好,我在 modelsim 中构建了一个包含大量 verilog 文件的简单设计。我正在尝试获取 RTL 原理图,所以我想将我的项目转移到 quartus。但即使我的代码在 modelsim 上运行正常,我也遇到了很多错误。
module OR_64BITS (out, in1, in2);
input wire [63:0] in1, in2;
output wire [63:0] out;
genvar i;
generate
for (i = 0; i < 64; i = i + 1) begin
or (out[i], in1[i], in2[i]);
end
endgenerate
endmodule
我收到此错误错误 (10644): 在 basic_components_2.v(9) 出现 Verilog HDL 错误:此块需要名称 在这条线上
for (i = 0; i < 64; i = i + 1) begin
请帮助我。谢谢。
【问题讨论】:
-
我没有看到任何问题,尽管我无法访问 Quartus。这是 Quartus 的最新版本吗?如果 Quartus 坚持使用名称,请尝试将行更改为
for (i = 0; i < 64; i = i + 1) begin: a_name,尽管我认为标准不需要这样做。 -
@DavidShah 似乎另一个工具“spyglass lint”(也许是这个?)也会将没有块名称的
generate块视为错误。 -
@Light spyglass lint?
-
您的代码与 Verilog-2005 兼容,但与 Verilog-2001 不兼容。看起来 Quartus 期待 Verilog-2001,而 Modelsim 则适用于 Verilog-2005。在 Verilog-2005 中删除了命名生成块的要求。
标签: verilog fpga modelsim quartus