Verilog 警告:实例化深度。。。这可能表示递归实例化

Verilog 警告:实例化深度。。。这可能表示递归实例化,verilog,Verilog,我想用2to1mux实现4to1mux。但是,我不能模拟4to1mux测试台 我已经在其他来源中搜索了这些问题,但找不到问题 module mux2to1(I0,I1,A,Z); input I0,I1,A; output Z; assign Z = (~A & I0) | (A & I1); endmodule 当我在另一个模拟器上编译您的代码时,会收到以下有用的编译错误消息: mux4to1 mux5 (I0,I1,I2,I3,A,B,Z,

我想用2to1mux实现4to1mux。但是,我不能模拟4to1mux测试台

我已经在其他来源中搜索了这些问题,但找不到问题

module mux2to1(I0,I1,A,Z);
    input I0,I1,A;
    output Z;

    assign Z = (~A & I0) | (A & I1);
endmodule

当我在另一个模拟器上编译您的代码时,会收到以下有用的编译错误消息:

    mux4to1 mux5 (I0,I1,I2,I3,A,B,Z,R3,R4);
                                     |
xmelab: *E,RANOTL : A reg is not a legal lvalue in this context [6.1.2(IEEE)].
将信号连接到模块输出时,应将其声明为
wire
,而不是
reg
。在测试台中,更改:

reg I0,I1,I2,I3,A,B,R3,R4;
wire Z;
致:


这将为我清除错误,模拟将在没有警告的情况下为我运行。您还可以尝试在EDA上的不同模拟器上运行代码。有时您会收到更多有用的消息。

当我在另一个模拟器上编译代码时,会收到以下有用的编译错误消息:

    mux4to1 mux5 (I0,I1,I2,I3,A,B,Z,R3,R4);
                                     |
xmelab: *E,RANOTL : A reg is not a legal lvalue in this context [6.1.2(IEEE)].
将信号连接到模块输出时,应将其声明为
wire
,而不是
reg
。在测试台中,更改:

reg I0,I1,I2,I3,A,B,R3,R4;
wire Z;
致:

这将为我清除错误,模拟将在没有警告的情况下为我运行。您还可以尝试在EDA上的不同模拟器上运行代码。有时你会收到更多有用的信息

reg I0,I1,I2,I3,A,B;
wire Z,R3,R4;