这是我对 SR 锁存器的门级描述:
module SR_Latch_Nand(input S, R, C, output Q, QB);
wire s1, r1;
nand #8 n1(r1, R, C);
nand #8 n2(s1, S, C);
nand #8 n3(QB, R, Q);
nand #8 n4(Q, S, QB);
endmodule
这是这个 SR 锁存器的测试台:
module SR_Latch_Nand_TB();
logic s, r, clk;
wire q, qb;
SR_Latch_Nand sr(s, r, clk, q, qb);
initial begin
s = 0; r = 0; clk = 0;
#100 s = 1;
#100 clk = 1;
#100 clk = 0;
#100 clk = 1;
#100 s = 0;
#100;
end
endmodule
当我检查波形时,大多数时候 Q 的值是 X。其他时候它大多是不正确的。我尝试过预设 Q、QB 的值,但它似乎仍然不起作用。
那么你能说出这段代码有什么问题吗?