尝试将我的Verilog代码从modelim转移到quartus时遇到很多错误

问题描述

大家好,我在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符合哪个标准版本。