Computer/Computer Structure

Latch & Flip-Flop

고양이는생선을좋아해 2013. 5. 12. 17:21

Latch와 Flip-Flop을 이전 값을 유지하고 있는 저장 소자이다.

 

* SR Latch

S(set)과 R(reset)으로 set이 on 되었을 경우 Q값이 1로 되고

reset이 on 되었을 경우 Q값이 0으로 출력 한다.

 

 

 

* D Latch

Latch는 Clock이 enable 상태를 유지하는 동안 입력 D 값을 변화를 출력한다.

 

 

 

 

 

* D Flip-Flop

Flip-Flop은 Clock이 Rising edge일 경우에서만 D값으로 출력이 바뀐다. 다른 경우는 이전 Q값을 그대로 유지한다.

 

 

#Latch와 Flip-Flop의 차이점

 

 

 

 


 

SR Latch

module _srlatch(r,s,q,q_bar);
input r,s;
output q,q_bar;

 

_nor2 U0_nor2(.a(r),.b(q_bar),.y(q));
_nor2 U1_nor2(.a(s),.b(q),.y(q_bar));

endmodule

 

 


 

D Latch

module _dlatch(clk,d,q,q_bar); input clk,d;
output q,q_bar;
wire d_bar,r,s;

 

_inv U0_inv (.a(d),.y(d_bar));

_and2 U1_and2(.a(clk),.b(d_bar),.y(r));
_and2 U2_and2(.a(clk),.b(d),.y(s));
_srlatch U3_srlatch(.r(r),.s(s),.q(q),.q_bar(q_bar));

endmodule

 

 


 

D Flip-Flop

module _dff(clk,d,q,q_bar);

input clk,d;
output q,q_bar;
wire clk_bar,w_q;

 

_inv U0_inv (.a(clk),.y(clk_bar)); 
_dlatch U1_dlatch (.clk(clk_bar),.d(d),.q(w_q));
_dlatch U2_dlatch (.clk(clk),.d(w_q),.q(q),.q_bar(q_bar));

endmodule