본문 바로가기

래치·플립플롭·클록

래치와 에지 트리거 플립플롭을 구분하고 클록·설정·유지 시간을 상태 표로 읽습니다.

경고 버튼을 짧게 눌렀다가 놓아도 경고등을 켠 채로 두려면 현재 입력만으로는 부족합니다. 순차논리회로는 현재 입력과 이전에 저장한 상태를 함께 사용합니다. 이전 상태를 기억하는 소자가 필요합니다.

래치와 플립플롭

래치(latch)는 입력을 받아 저장할 수 있는 동안 입력 변화가 출력으로 전달됩니다. D 래치는 활성화 신호 E=1일 때 Q가 D를 따라가고 E=0이면 마지막 값을 유지하는 교육용 모델로 이해합니다.

D 플립플롭은 특정 클록 에지에서만 D를 받아 Q를 갱신합니다. 이 절은 상승 에지(0→1)를 사용합니다. 에지 사이에서 D가 바뀌어도 Q는 바로 따라가지 않습니다. 두 소자 모두 상태를 저장하지만 입력을 받아들이는 시간 조건이 다릅니다.

사건D에지 직전 Q상승 에지 직후 Q
첫 상승 에지101
에지 사이 D만 0으로 변화011 유지
다음 상승 에지010

다른 플립플롭을 상태 규칙으로 읽기

SR 소자는 set(1로 지정)·reset(0으로 지정) 입력으로 상태를 바꿉니다. 먼저 클록이 없는 기본 SR 래치를 읽어 봅니다. 아래 표는 교차 연결된 NOR형 래치에서 입력이 높을 때 활성화되는 안정 상태 규칙이며, Q는 입력을 바꾸기 전 저장 값입니다. 1이 입력 기능을 활성화한다는 뜻입니다.

SR새 Q동작
00이전 Q유지
010reset
101set
11정상 저장 상태로 사용하지 않음금지 조합

마지막 조합에서는 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라는 이름만으로 상승 에지라고 단정하지 않습니다.

JKJK의 Q(t+1)Q(t)=0일 때Q(t)=1일 때
00Q(t), 유지01
010, reset00
101, set11
11Q(t)의 반대, toggle10

JK의 11은 금지가 아니라 에지마다 한 번 반전입니다. 입력 11을 유지한 동안 계속 흔들린다는 뜻이 아닙니다. 예를 들어 초기 Q=0에 네 상승 에지의 JK 입력이 10→11→00→01이면 에지 직후 Q는 1→0→0→0입니다. 두 번째는 바로 직전의 1을 반전하고, 세 번째는 직전 0을 유지합니다.

소자·입력에지 직전 Q에지 직후 Q읽는 방법
T=00 또는 1이전 Q유지
T=101반전
T=110반전
D=00 또는 10입력 값 저장
D=10 또는 11입력 값 저장

같은 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은 에지마다 저장 값을 한 번 반전하는 유효 조합입니다.

다음 레지스터·상태기계에서 이 저장 규칙을 여러 비트로 확장합니다.