Verilog输入错误

时间:2017-06-05 23:52:51

标签: input compiler-errors verilog

我编译时弹出的verilog代码中有几个错误。我相信他们都是相关的。但我无法弄清楚错误是什么。任何帮助将不胜感激。

错误是:输入两个

vlog_a:错误31004找到`input'附近的语法错误

blog_a:错误31004找到'output'附近的语法错误

module threeBitComparator; 
  input A2,A1,A0;
  input B2,B1,B0;
  output E,GE; //E-Equal,  GE-Greater than or Equal to

  wire X1,X2,X3; //xnor gate
  wire Y1,Y2,Y3,Y4,Y5,Y6; // and & or gates

  xnor
      G1a(X1,A2,B2),
      G1b(X2,A1,B1),
      G1c(X3,A0,B0);

  and
     G2a(Y1,A2,~B2),
     G2b(Y2,A1,~B1),
     G2c(Y3,A0,~B0),
     G2d(Y4,X1,Y2),
     G2e(Y5,X1,X2,Y3),
     G2f(E,X1,X2,X3);

  or
    G3a(Y6,Y1,Y4,Y5),
    G3b(GE,Y6,E);
endmodule

2 个答案:

答案 0 :(得分:0)

我想您忘记在模块端口列表中声明您的输入和输出。将A2,A1 ......等添加到端口列表将解决编译错误。

您可以查看更新的代码here

答案 1 :(得分:0)

您已声明输入和输出,但尚未声明端口列表。您的模块标题需要看起来像下面的代码才能成为IEEE 1364-1995投诉

module threeBitComparator(A2,A1,A0,B2,B1,B0,E,GE); // <-- port list
  input A2,A1,A0;
  input B2,B1,B0;
  output E,GE; //E-Equal,  GE-Greater than or Equal to

或者您可以使用IEEE Std 1364-2001中引入的ANSI样式标头。这种风格适用于任何现代的Verilog模拟器。

module threeBitComparator(
  input A2,A1,A0,
  input B2,B1,B0,
  output E,GE ); //E-Equal,  GE-Greater than or Equal to