我没有从4位全加器Verilog得到任何输出

我没有从4位全加器Verilog得到任何输出,verilog,xilinx,hdl,Verilog,Xilinx,Hdl,大家好,这是我与verilog合作的第一周。这里我展示了一个四位加法器的代码。我只是想知道为什么当我模拟测试台时会得到ZXXX0的输出?我做错什么了吗?:/ 您键入了一项作业: assign out = (a & b) | (cin & a) | (cin & b); 应该是(cout): 这就产生了r[4]不被驱动(z)的效果 当z被驱动到cin中时,当它碰到布尔逻辑时,会变成未知(x)值: assign s = a ^ b ^ cin; 工作实例 modul

大家好,这是我与verilog合作的第一周。这里我展示了一个四位加法器的代码。我只是想知道为什么当我模拟测试台时会得到ZXXX0的输出?我做错什么了吗?:/






您键入了一项作业:

assign out = (a & b) | (cin & a) | (cin & b);
应该是(cout):

这就产生了r[4]不被驱动(
z
)的效果

当z被驱动到cin中时,当它碰到布尔逻辑时,会变成未知(
x
)值:

assign s = a ^ b ^ cin;
工作实例

module test_bench();

    // Inputs
    reg [3:0] p;
    reg [3:0] q;
    reg ci;

    // Outputs
    wire [4:0] r;

    // Instantiate the Unit Under Test (UUT)
    full_adder uut (
        .p(p), 
        .q(q), 
        .ci(ci), 
        .r(r)
    );

    initial begin
        // Initialize Inputs
        p = 0;
        q = 0;
        ci = 0;

        // Wait 100 ns for global reset to finish
        #100;

        // Add stimulus here
        p=4'b0011;
        q=4'b0001;
        #100 $finish;


    end

endmodule
assign out = (a & b) | (cin & a) | (cin & b);
assign cout = (a & b) | (cin & a) | (cin & b);
adder fa3(p[3],q[3],carry[2],r[3],r[4]);
assign s = a ^ b ^ cin;