JK 플립플롭
더 많은 작업
JK 플립플롭(JK flip-flop)은 입력 J·K 두 개를 가진 플립플롭으로, 클록 에지에서 J·K 값에 따라 상태를 유지·리셋·세트하고 J = K = 1 이면 상태를 뒤집는(토글) 1비트 기억 소자이다.
SR 플립플롭은 S = R = 1 을 넣으면 출력이 정해지지 않아 쓸 수 없었다. JK 플립플롭은 출력 Q·Q' 를 입력 쪽 게이트로 되먹여, 이 경우에 상태를 반전하도록 바꾼 것이다. 유지·리셋·세트·토글 네 동작을 모두 할 수 있어 가장 범용적인 플립플롭이고, 입력을 묶어 D·T 플립플롭을 만들 수 있다. 카운터와 분주기에 많이 쓴다.
J·K 앞에 게이트가 있으면 먼저 J·K 의 식을 구하고, 입력이 들어올 때마다 특성표를 따라간다.
예: J = (X + Y)·Y', K = Y' 이고(X·Y 를 OR 한 결과와 Y' 를 AND 해 J 로, Y' 를 그대로 K 로) 지금 Q = 1 일 때 XY 가 11, 10 순으로 들어오면
- XY = 11 : J = (1)·0 = 0, K = 0 → 유지, Q = 1
- XY = 10 : J = (1)·1 = 1, K = 1 → 토글, Q = 0
- 따라서 Q 는 1 → 1 → 0 이다
J = K = 1 로 묶어 두면 클록 에지가 올 때마다 출력이 뒤집힌다. 출력은 클록 두 번에 한 주기가 되므로 주파수가 클록의 1/2 인 구형파다. 이렇게 J·K 를 묶어 입력 하나(T)로 쓴 것이 T 플립플롭이다.
| T | Q(t+1) |
|---|---|
| 0 | Q(t) |
| 1 | Q(t)' |
토글 상태의 JK 플립플롭을 여러 단 이어 앞 단 출력을 뒤 단 클록에 넣으면 단마다 주파수가 반으로 준다. 두 단이면 1/4, n 단이면 1/2n 이다. 2kHz 구형파를 두 단에 넣으면 500Hz 구형파가 나온다 → 카운터 (논리 회로)
클록이 High 인 동안 내내 입력을 받아들이는 레벨 트리거 JK 회로에서 J = K = 1 이면, 클록이 High 로 머무는 동안 출력이 되먹임되어 여러 번 뒤집힌다. 이것을 레이스(race-around) 현상이라 한다. 클록 펄스 폭을 전파 지연보다 짧게 하거나, 마스터-슬레이브 구성 또는 에지 트리거로 만들어 막는다 → D 플립플롭
- D 플립플롭 : J = D, K = D' 로 넣는다
- T 플립플롭 : J = K = T
- SR 플립플롭 : J = S, K = R (S = R = 1 은 쓰지 않는다)