Flip Flop(플립플롭)과 Latch(래치)는 1 또는 0을 저장 하는 소자이다.
Latch는 값이 변화하는 즉시 즉시 작동되는 소자이고, FlipFlop은 클럭에 의해서만 작동되는 소자이다.
D-Flip Flop을 Verilog HDL Behavior모델로 작성한 코드는 아래와 같다.
output Q,iQ;
input D,CLK,CLR,PR;
reg Q,iQ;
if((~CLR)&(~PR))
begin
Q = 1’b1;
iQ = 1’b1;
end
else if(CLR&(~PR))
begin
Q = 1’b1;
iQ = 1’b0;
end
else if((~CLR)&PR)
begin
Q = 1’b0;
iQ = 1’b1;
end
else if(CLK&PR&CLR)
begin
Q = D;
iQ = ~Q;
end
endmodule
D-Flip Flop 작동되는 기준은 아래의 Truth Table이다.
——————————————————-
INPUT | OUTPUT
Preset Clear Clock D | Q Q’
——————————————————-
0 1 X X | 1 0
1 0 X X | 0 1
0 0 X X | 1 1
——————————————————-
1 1 ↑ 0 | 0 1
1 1 ↑ 1 | 1 0
1 1 0 X | No Change
——————————————————-
Preset 과 Clear가 1,1 일 경우에만 클럭에 의해 작동되고
Preset과 Celar가 1,1이 아닐경우에는 각각 표에 따라 값이 출력된다.
이것이 Asynchronous(비동기) Preset 과 Clear를 가진 D-Flip Flop이다.