2010-08-10 3 views
0

Verilog Pro에서 NAND 게이트를 사용하여 기본 플립 플롭을 코딩하려고 시도했지만 파형이 올바르지 않습니다. 그게 뭐가 잘못되었는지보십시오.Verilog Pro에서 기본 플립 플롭을 어떻게 코딩합니까?

//design module 
module rstt(s,r,q,qbar); 
input r,s; 
output q,qbar; 
nand n1(q,r,qbar); 
nand n2(qbar,s,q); 
endmodule 

//stimulus module 
module test; 
reg r,s; 
wire q,qbar; 
initial begin 
r=1'b1; 
s=1'b0; 
#25 r=1'b0; 
    s=1'b1; 
#25 r=1'b1; 
    s=1'b1; 
#100 $finish; 
end 
endmodule 
+1

파형의 플롯과 잘못된 점에 대한 설명은 – Marty

+2

입니다. q 및 qbar에서 직선을 얻습니다. n은 s와 r에 아무런 줄도 없다. 이들은 낸드 게이트를 사용하는 기본 플립 플롭을위한 잘못된 웨이브입니다. –

답변

2

당신은 당신의 test 모듈 내부에 rstt 모듈을 인스턴스화하지 않았다. 이것은 모듈 test 내부의 와이어 (qqbar)가 구동되지 않음을 의미합니다. 그래서 토글 대신 직선으로 유지됩니다. IEEE Verilog 표준에 따르면, 비 구동 wire은 기본값이 1'bz입니다. 이 같은

시도 뭔가 : 문제가있는 시뮬레이터 특정하지 않습니다

//design module 
module rstt(s,r,q,qbar); 
input r,s; 
output q,qbar; 
nand n1(q,r,qbar); 
nand n2(qbar,s,q); 
endmodule 

//stimulus module 
module test; 
reg r,s; 
wire q,qbar; 

rstt i0 (
    .s (s), 
    .r (r), 
    .q (q), 
    .qbar (qbar) 
); 

initial begin 
r=1'b1; 
s=1'b0; 
#25 r=1'b0; 
    s=1'b1; 
#25 r=1'b1; 
    s=1'b1; 
#100 $finish; 
end 
endmodule 

참고.

관련 문제