플립플롭(Flip-Flop)은 순서 논리 회로에 필수적으로 들어가는 1비트 저장 회로입니다. 0과 1, 두 가지 상태를 저장하는 회로이며 "회로의 상태"를 저장하기 위하여 사용되는 저장 소자입니다. 이것이 지난 순서 논리 회로의 특성 포스팅(여기)에서 배운 플립플롭의 개념이었습니다. 지금부터는 조금 더 자세히 플립플롭에 대해 파헤쳐보는 시간을 가져보겠습니다.
다양한 종류의 플립플롭
플립플롭은 동작하는 방식에 따라 4종류로 나뉩니다. 구성하고자 하는 회로에 따라 필요한 방식이 있기에 알맞는 플립플롭을 선택해서 사용합니다. 그 4가지의 종류로는 SR 플립플롭, JK 플립플롭, D 플립플롭, T 플립플롭이 있습니다.
SR 플립플롭 (Set / Reset Flip-Flop)
SR 플립플롭은 Set(S)과 Reset(R)을 입력 변수로 가지며, S에서 신호를 보내면 다음 상태를 1로 만들고(Set) R에서 신호를 보내면 0으로 초기화(Reset)하는 플립플롭입니다.
- 0과 0이 입력될 경우에는 이전의 상태가 유지됩니다.
- 1과 1이 입력될 경우에는 모순으로 인해 "부정 상태"가 되어 작동하지 않습니다.
SR 플립플롭 특성표
$ S $ | $ R (Reset) $ | $ Q(t+1) $ |
0 | 0 | $ Q(t) $ |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | 부정 |
SR 플립플롭 회로도
JK 플립플롭 (Jack / Kilby Flip-Flop)
JK 플립플롭은 SR 플립플롭이 입력값으로 (1, 1)을 사용하지 못하는 것을 수정한 SR 플립플롭의 확장 버전입니다. 입력값이 (1, 1)인 경우 현재의 출력값이 반전(Toggle)되도록 수정한 것입니다.
JK 플립플롭 특성표
$ J $ | $ K $ | $ Q(t+1) $ |
0 | 0 | $ Q(t) $ (불변) |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | (toggle) |
JK 플립플롭 회로도
D 플립플롭 (Data or Delay Flip-Flop)
D 플립플롭은 입력된 값을 그대로 저장하는 플립플롭입니다. 즉, 입력값과 출력값이 같은 플립플롭입니다. 현재의 입력이 클럭 입력 이후에 지연(Delay)되어서 출력되는 구조입니다.
D 플립플롭 특성표
$ D $ | $ Q(t+1) $ |
0 | 0 |
1 | 1 |
D 플립플롭 회로도
T 플립플롭 (Toggle Flip-Flop)
T 플립플롭은 JK플립플롭의 J와 K의 입력값을 하나로 묶어서 T(Toggle)로 표현한 플립플롭입니다. 입력 변수로 오직 T 하나만을 가지고 T가 0인 경우 현재 상태를 유지하고, T가 1인 경우 다음 값을 반전(Toggle)시킨 값이 나오게 됩니다.
T 플립플롭 특성표
$ T $ | $ Q(t+1) $ |
0 | $ Q(t) $ |
1 | $ \overline{Q}(t) $ |
T 플립플롭 회로도