래치·플립플롭·클록
래치와 에지 트리거 플립플롭을 구분하고 클록·설정·유지 시간을 상태 표로 읽습니다.
경고 버튼을 짧게 눌렀다가 놓아도 경고등을 켠 채로 두려면 현재 입력만으로는 부족합니다. 순차논리회로는 현재 입력과 이전에 저장한 상태를 함께 사용합니다. 이전 상태를 기억하는 소자가 필요합니다.
래치와 플립플롭
래치(latch)는 입력을 받아 저장할 수 있는 동안 입력 변화가 출력으로 전달됩니다. D 래치는 활성화 신호 E=1일 때 Q가 D를 따라가고 E=0이면 마지막 값을 유지하는 교육용 모델로 이해합니다.
D 플립플롭은 특정 클록 에지에서만 D를 받아 Q를 갱신합니다. 이 절은 상승 에지(0→1)를 사용합니다. 에지 사이에서 D가 바뀌어도 Q는 바로 따라가지 않습니다. 두 소자 모두 상태를 저장하지만 입력을 받아들이는 시간 조건이 다릅니다.
| 사건 | D | 에지 직전 Q | 상승 에지 직후 Q |
|---|---|---|---|
| 첫 상승 에지 | 1 | 0 | 1 |
| 에지 사이 D만 0으로 변화 | 0 | 1 | 1 유지 |
| 다음 상승 에지 | 0 | 1 | 0 |
다른 플립플롭을 상태 규칙으로 읽기
SR 소자는 set(1로 지정)·reset(0으로 지정) 입력으로 상태를 바꿉니다. 먼저 클록이 없는 기본 SR 래치를 읽어 봅니다. 아래 표는 교차 연결된 NOR형 래치에서 입력이 높을 때 활성화되는 안정 상태 규칙이며, Q는 입력을 바꾸기 전 저장 값입니다. 1이 입력 기능을 활성화한다는 뜻입니다.
| S | R | 새 Q | 동작 |
|---|---|---|---|
| 0 | 0 | 이전 Q | 유지 |
| 0 | 1 | 0 | reset |
| 1 | 0 | 1 | set |
| 1 | 1 | 정상 저장 상태로 사용하지 않음 | 금지 조합 |
마지막 조합에서는 Q와 반대 출력이 모두 0이 되어 서로 보수라는 정상 관계를 깨뜨립니다. 두 입력을 동시에 0으로 풀었을 때 어느 상태로 안정될지도 보장하지 않으므로 “아무 값이나 넣어도 되는 입력”으로 읽으면 안 됩니다. 여기서 금지는 이 NOR형 기본 래치의 조건이며 모든 SR 회로의 입력 표가 같다는 뜻이 아닙니다.
입력이 낮을 때 활성화되는 NAND형 기본 SR 래치에서는 입력 이름을 S̅·R̅로 씁니다. 0일 때 기능이 활성화되므로 (S̅,R̅)=11은 유지, 01은 set, 10은 reset, 00은 금지 조합입니다. 먼저 게이트와 입력 극성을 정한 뒤 표를 고르는 습관이 필요합니다. 활성 신호를 추가한 gated SR 래치나 에지 트리거 소자는 입력을 받아들이는 시간 조건도 따로 확인합니다.
이제 JK·T·D 플립플롭을 비교합니다. 다음 표는 세 소자 모두 상승 에지에서 갱신하며 비동기 preset/reset은 사용하지 않는 교육용 모델입니다. Q(t)는 에지 직전, Q(t+1)은 그 에지의 갱신 직후 값입니다. 실제 부품의 동작 에지는 데이터시트로 확인해야 하며, JK라는 이름만으로 상승 에지라고 단정하지 않습니다.
| J | K | JK의 Q(t+1) | Q(t)=0일 때 | Q(t)=1일 때 |
|---|---|---|---|---|
| 0 | 0 | Q(t), 유지 | 0 | 1 |
| 0 | 1 | 0, reset | 0 | 0 |
| 1 | 0 | 1, set | 1 | 1 |
| 1 | 1 | Q(t)의 반대, toggle | 1 | 0 |
JK의 11은 금지가 아니라 에지마다 한 번 반전입니다. 입력 11을 유지한 동안 계속 흔들린다는 뜻이 아닙니다. 예를 들어 초기 Q=0에 네 상승 에지의 JK 입력이 10→11→00→01이면 에지 직후 Q는 1→0→0→0입니다. 두 번째는 바로 직전의 1을 반전하고, 세 번째는 직전 0을 유지합니다.
| 소자·입력 | 에지 직전 Q | 에지 직후 Q | 읽는 방법 |
|---|---|---|---|
| T=0 | 0 또는 1 | 이전 Q | 유지 |
| T=1 | 0 | 1 | 반전 |
| T=1 | 1 | 0 | 반전 |
| D=0 | 0 또는 1 | 0 | 입력 값 저장 |
| D=1 | 0 또는 1 | 1 | 입력 값 저장 |
같은 JK 소자의 J와 K를 T에 함께 연결하면 T=0은 JK의 00, T=1은 JK의 11이므로 위 T 규칙을 얻습니다. D 입력을 같은 다음 상태 규칙으로 만들려면 T의 경우 D=T XOR Q, JK의 경우 D=(J AND NOT Q) OR ((NOT K) AND Q)입니다. 조합논리가 계산한 다음 값을 D 플립플롭이 에지에서 저장한다는 관계이며, 입력 변화만으로 즉시 저장하는 래치 동작과 구분합니다.
클록이 빠르면 항상 좋은가
플립플롭은 에지 근처에서 입력이 안정돼 있어야 합니다. 설정 시간(setup time)은 에지 전 안정 시간, 유지 시간(hold time)은 에지 후 안정 시간입니다. 이 조건을 어기면 언제 안정될지 확정하기 어려운 준안정 상태(metastability)가 발생할 수 있습니다. 외부 버튼과 클록이 서로 동기화돼 있지 않다면 입력 동기화 설계가 필요합니다.
레지스터→조합회로→레지스터 경로에서 클록 주기는 앞 레지스터의 출력 지연+조합회로 최악 지연+뒤 레지스터 설정 시간 등을 고려해야 합니다. 예를 들어 1 ns+6 ns+1 ns=8 ns이면 클록 불확실성을 무시한 최소 주기는 8 ns, 최대 주파수는 1/(8 ns)=125 MHz입니다. 유지 시간은 별도 최소 지연 조건이며 주기를 늘리는 것만으로 항상 해결되지 않습니다.
독립 문제: 변화 시점 읽기
상승 에지 D 플립플롭의 초기 Q=0입니다. 첫 에지 직전 D=1, 첫 에지 이후 D=0, 두 번째 에지 직전 D=0, 두 번째와 세 번째 사이 D=1이며 세 번째 에지에서도 1입니다. 각 에지 직후 Q와 첫 에지 이후 입력만 바뀐 순간의 Q를 쓰세요.
힌트
“입력이 바뀐 사건”과 “저장 시점”을 분리해 시간순으로 적으세요.
풀이와 오개념
각 에지 직후 Q는 1·0·1입니다. 첫 에지 이후 D만 0으로 바뀐 순간 Q는 아직 1입니다. E=1인 D 래치라면 그 순간 Q가 따라 바뀌지만, 여기서는 에지 트리거 플립플롭입니다.
독립 문제: 유지와 반전 구별하기
상승 에지 JK 플립플롭의 초기 Q=1이며 네 에지 직전 입력은 00→10→11→01입니다. 각 에지 직후 Q를 구하세요. 별도 T 플립플롭은 초기 Q=1이고 세 에지의 T는 1→0→1입니다. 같은 상태열을 얻으려면 각 에지의 D 입력을 무엇으로 정해야 하나요? NOR형 기본 SR 래치에 11을 넣는 일과 JK에 11을 넣는 일이 왜 다른지도 설명하세요.
상태 문제 힌트
한 행을 계산한 뒤 그 결과를 다음 행의 이전 Q로 옮깁니다. T의 D 입력은 T 자체가 아니라 T와 현재 Q가 결정하는 다음 값입니다.
상태 문제 풀이
JK의 상태열은 1→1→0→0입니다. 순서대로 유지·set·반전·reset을 적용합니다. T의 상태열은 0→0→1이므로 같은 에지에서 D에 넣을 값도 0→0→1입니다. T=0인 두 번째 에지는 0을 유지한다는 뜻이며 무조건 0으로 reset한다는 일반 규칙이 아닙니다. NOR형 기본 SR의 11은 보수 출력 관계를 깨뜨리는 금지 조합이고, 이 JK 모델의 11은 에지마다 저장 값을 한 번 반전하는 유효 조합입니다.
다음 레지스터·상태기계에서 이 저장 규칙을 여러 비트로 확장합니다.