2017-05-02 14 views
0

여기에 작동하지 않습니다는 SR 래치의 내 게이트 수준의 설명입니다의 SystemVerilog : 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 

언제 waverform을 확인하면, Q의 값은 대부분의 경우 X입니다. 다른 때에는 대부분 부정확합니다. Q, QB 값을 미리 설정하려고했지만 여전히 작동하지 않습니다.

이 코드의 문제점은 무엇입니까?

답변

0

테스트 벤치에 문제가 있습니다. r과 s가 모두 활성 낮음이면 테스트 벤치 테스트 중 하나만 활성 낮음을 확인하십시오.

1

SR_Latch_Nand 코드가 잘못되었습니다. 출력 NAND 게이트 n3n4s1r1을 사용하지 않으 셨습니다. 수정 된 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, s1, Q); 
    nand #8 n4(Q, r1, QB); 
endmodule