我编译时弹出的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
答案 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