해당 강의노트는 S. Brown and Z. Vranesic, McGraw-Hill의 [Fundamentals of Digital Logic with VHDL Design, 3rd Edition] 책과 ktword의 <정보통신기술용어해/플립플롭>을 기반으로 작성되었습니다
Flip-Flop
- Flip-Flop
- D Flip-Flop
- T Flip-Flop
- JK Flip-Flop
Flip-Flop
플립플롭(Flip-Flop)이란?
클럭(Clk) 입력을 갖는 2진 기억소자(memory)로, 클럽 입력에만 반응하여 출력의 상태를 바꾼다.
클럭 입력 및 래치 소자로 구현되며, 주로 비트 기억용도로 사용된다.
플립플롭의 종류
- SR 플립플롭(거의 사용되지 않음)
- JK 플립플롭(가장 많이 사용됨)
- T 플립플롭
- D 플립플롭
플립플롭의 적절한 동작 보상
클럭이 1인 상태가 길어질 때, 예측하지못한 여러차례의 동작 수행을 방지하는 방법
1. 마스터 슬레이브 플립플롭(Master Slave Flip-Flop)
2. 에지 트리거드 플립플롭(Edge triggered Flip-Flop)
플립플롭의 논리 상태
플립플롭 출력에 대한 2가지 논리 상태 구분
1. HIGH 상태
- 1 상태(Q=1, Q'=0), 셋(SET) 상태, 프리셋(PRESET) 상태라고도 함
2. LOW 상태
- 0 상태(Q=0, Q'=1), 리셋(RESET) 상태, 클리어(CLEAR) 상태라고도 함
D Flip-Flop
D 플립플롭(D Flip-Flop)
D(데이터), Clk(클럭) 두 입력을 갖는 가장 간단한 플립플롭으로 D래치와 달리 클럭에만 반응하여 출력이 변함
- Q(t+1): Next state, Q(t+1) =D
- Q(t): Present state
마스터-슬레이브 D 플립플롭(Master-slave D Flip-Flop)
두 개의 게이트형 D 래치(Gated D Latch) 및 1개의 인버터(inverter)로 구현
Clk가 0인 경우: 현재 상태 유지(no change)
첫째 D래치는 입력 D를 그래도 첫째 출력에 전달
둘째 D래치는 현재 Q 출력을 저장(유지)
Clk가 1인 경우: 현재 상태 유지(no change)
첫째 D래치 출력은 현재 D값을 저장(유지)
둘째 D래치는 첫째 출력을 그대로 둘째 출력 Q에 전달함
Edge-Triggered D Flip Flop
1. 상승 에지 트리거(Rising edge trigger)
상승 에지는 클럭이 0에서 1로 바뀌는 구간을 말함
2. 하강 에지 트리거(Falling edge trigger)
하강 에지는 클럭이 1에서 0으로 바뀌는 구간을 말함
(상승 에지 트리거에서 클럭에 버블을 붙인 형태)
D Flip Flop with Clear and Preset
1. 비동기(Asynchronous)
클럭 무관 혹은 다른 클럭
2. 동기(Synchronous)
클럭 기반 혹은 다른 클럭
T Flip-Flop
T 플립플롭(T Flip-Flop)이란?
다음 출력값이 입력갑스이 반전으로 카운터 구성에 자주 활용된다.
T = 0 이면 $Q^+ = Q$, T = 1 이면 $Q^+ = Q'$인 플립플롭으로, 토클 플립플롭이라고도 한다.
T 플립플롭 회로 구현
위의 진리표를 따르면 Q(t+1)은 다음과 같이 표현할 수 있다.
- Q(t+1) = T'Q(t) + TQ(t)'
이를 D 플립플롭을 이용해 구현하면 아래와 같다.
T'Q(t) + TQ(t)' = T⊕Q(t)이므로 xor로 더 간단하게 회로 구현이 가능하다.
JK Flip-Flop
JK 플립플롭(JK Flip-Flop)이란?
SR 플립플롭을 보완한 개념으로J입력을 S, K입력을 R이라고 생각하면 된다. 기존의 SR 플립플롭과의 차이점은 S=R=1이 SR래치에서는 허용되지 않는 반면, JK 플립플롭에서는 J=K=1은 허용한다.
JK 플립플롭 회로 구현
위의 진리표를 따르면 Q(t+1)은 다음과 같이 표현할 수 있다.
- Q(t+1) = J'K'Q(t) + JK' + JKQ(t)'
이를 카르노맵을 이용해 줄이면 다음과 같다.
이를 D 플립플롭을 이용해 구현하면 아래와 같다.
'Computer Science > 논리회로' 카테고리의 다른 글
[Sequential Logic Circuit] 카운터(Counter) (0) | 2022.06.13 |
---|---|
[Sequential Logic Circuit] 레지스터(Register) (0) | 2022.06.13 |
[Sequential Logic Circuit] 래치(Latch) (0) | 2022.06.11 |
[Combinational Logic Circuit] 코드 컨버터(Code converters) (0) | 2022.06.08 |
디지털 논리회로(Digital Logic Circuit) 소개 (0) | 2022.06.08 |