标识符必须用端口模式声明:(对于所有3个输出)(Verilog)

标识符必须用端口模式声明:(对于所有3个输出)(Verilog),verilog,comparator,Verilog,Comparator,我得到三个错误,即必须使用端口模式为我的三个输出声明标识符。我不明白为什么会这样。帮点忙就好了 module Testbench (A2, B2, Zero, One, Two); input [3:0] A2, B2; output Zero1, One1, Two1; wire e0, e1, e2, e3, A10, A11, A12, A13, B10, B11, B12, B13; Compare cp0(A2[0], B2[0], e0, A10, B0); Compare cp

我得到三个错误,即必须使用端口模式为我的三个输出声明标识符。我不明白为什么会这样。帮点忙就好了

module Testbench (A2, B2, Zero, One, Two);
input [3:0] A2, B2;
output Zero1, One1, Two1;
wire e0, e1, e2, e3, A10, A11, A12, A13, B10, B11, B12, B13;
Compare  cp0(A2[0], B2[0], e0, A10, B0);
Compare  cp1(A2[1], B2[1], e1, A11, B1);
Compare  cp2(A2[2], B2[2], e2, A12, B12);
Compare  cp3(A2[3], B2[3], e3, A13, B13);
assign Zero = (e0 & e1 & e2 & e3);
assign One = (A13 | (A12 & e3) | (A11 & e3 & e2) | (A10 & e3 & e2 & e1));
assign Two = (~One & ~Zero);
endmodule 

在端口列表中,您有:

module Testbench (A2, B2, Zero, One, Two);
但您用不同的名称调用输出:

output Zero1, One1, Two1;

在端口列表中,您有:

module Testbench (A2, B2, Zero, One, Two);
但您用不同的名称调用输出:

output Zero1, One1, Two1;

您的端口名称和端口声明名称不匹配

如果使用Verilog-2001语法,您可以消除其中许多类型的错误,其中必须声明名称两次,有时是三次

module Testbench (
    input wire [3:0] A2, B2,
    output wire Zero, One, Two);
...

您的端口名称和端口声明名称不匹配

如果使用Verilog-2001语法,您可以消除其中许多类型的错误,其中必须声明名称两次,有时是三次

module Testbench (
    input wire [3:0] A2, B2,
    output wire Zero, One, Two);
...