首页 > 解决方案 > Verilog 给出 x 输出

问题描述

我一直在寻找一种解决方案,可以让我看到 Q 和 Qb 的输出但找不到。我很新,这是一个大学项目,所以我认为有很多错误。

module TB;
reg [31:0] D;
reg Clk;
wire [31:0] Q, Qb;

Registro f2(D,Clk, Q, Qb);

initial begin

$dumpfile("dump.out");
$dumpvars(0,TB);

        D = 32'b00000000000000000000000000001101; Clk = 1'b0; 
    end
    
initial $monitor("En %2t, D = %b  Q = %b Q' = %b Clk = %b",
                 $time, D, Q, Qb, Clk); 
endmodule 

那是测试台,我认为没有必要提供其他模块,但以防万一:`

module Registro(D,Clk, Q, Qb);

    input [31:0] D;
    input Clk;
    output [31:0] Q,Qb;

    ff_D E0(D[0],Clk,Q[0],Qb[0]);
    ...
    ff_D E31(D[31],Clk,Q[31],Qb[31]);
endmodule


// flip-flop D
module ff_D (D,Clk, Q, Qb);

    input D, Clk;
    output Q, Qb;
    wire a, b, c;
    
    not #(2) n1(c, D);
    and #(3) a1(a, Q, c, Clk);
    and #(3) a2(b, Qb, D, Clk);
    nor #(3) no1(Q, a, Qb);
    nor #(3) no2(Qb, b, Q);

endmodule

我希望有一个人可以帮助我!先感谢您

标签: verilog

解决方案


推荐阅读