Вот мое описание защелки 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
а вот тестовый стенд для этой защелки S-R:
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, но это все еще не работает.
Итак, вы можете сказать, в чем проблема с этим кодом?