问题描述
大家好,我在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
请帮助我。谢谢。
解决方法
我有一个verilog标准pdf文件,其版本为:IEEE Std 1364-2001,2001年9月28日。
在其中,我可以找到generate
-for
块的标准BNF定义:
generate_loop_statement ::=
for ( genvar_assignment ; constant_expression ; genvar_assignment )
begin : generate_block_identifier { generate_item } end
据此,: generate_block_identifier
部分是必需的。
您可以按照@David Shah的建议修改代码。在该: a_uniq_block_name
行中添加for(...)
。
编辑:
我只有这个verilog-2001标准文档。正如@Matthew Taylor所评论的那样,此要求已在IEEE Std 1364-2005中删除。也许您可以在一些深层对话框中找到您的quartus符合哪个标准版本。