에지 트리거 플립플롭의 동작 원리와 타이밍 설계
에지 트리거 플립플롭의 동작 방식, D·JK·T 플립플롭, 타이밍 제약과 메타스테이빌리티 관리 방법을 정리한다.
2026-08-14 · 최초 발행 2026-01-16
클록이 변하는 순간에 상태를 고정한다
에지 트리거 플립플롭(Edge-Triggered Flip-Flop)은 클록 신호의 상승 에지 또는 하강 에지에서만 입력을 받아 출력 상태를 갱신하는 순차 논리 회로다. 클록 레벨이 유지되는 동안 입력 변화가 전달될 수 있는 래치와 달리, 정해진 에지에서만 데이터를 샘플링한다. 이 특성은 데이터 저장과 동기화가 필요한 디지털 시스템에서 정밀한 타이밍 제어의 기반이 된다.
플립플롭은 1비트 정보를 보관하는 기본 단위다. 전원이 공급되는 동안 0 또는 1의 안정 상태를 유지하며, 이전 상태와 현재 입력에 따라 다음 상태가 정해진다. 레지스터, 카운터, 메모리처럼 상태를 가져야 하는 회로가 이 소자를 중심으로 구성된다.
| 구분 | 레벨 트리거 | 에지 트리거 |
|---|---|---|
| 동작 시점 | 클록이 HIGH/LOW인 동안 | 클록 에지 순간 |
| 투명성 | 투명(Transparent) | 불투명(Opaque) |
| 글리치 민감도 | 높음 | 낮음 |
| 타이밍 제어 | 어려움 | 정밀함 |
| 대표 소자 | D 래치, SR 래치 | D 플립플롭, JK 플립플롭 |
상승 에지와 하강 에지에서의 샘플링
상승 에지 트리거는 클록이 0에서 1로 바뀌는 시점에 동작하며, 일반적으로 삼각형 표시(>)로 나타낸다. 가장 널리 쓰이는 방식이다. 하강 에지 트리거는 클록이 1에서 0으로 바뀔 때 입력을 받아들이고, 삼각형에 버블(○)을 붙인 기호로 표시한다. 특수 목적 회로에서 사용된다.
입력을 한 순간에만 캡처하므로 레이스 컨디션(Race Condition)과 글리치(Glitch)를 효과적으로 피할 수 있다.
마스터-슬레이브(Master-Slave) 구조는 에지 트리거 플립플롭을 구현하는 대표적인 방법이다. 클록이 HIGH일 때는 마스터 래치가 입력을 받아들이고 슬레이브는 잠긴다. 클록이 LOW로 전환되면 마스터는 잠기고 슬레이브가 마스터 출력을 받아들인다. 이 구조에서는 결과적으로 하강 에지에서 출력이 변한다.
저장·범용 제어·토글에 쓰이는 플립플롭
D 플립플롭은 에지가 발생한 시점의 D 입력을 Q 출력에 전달하는 가장 단순한 형태다. 레지스터, 파이프라인 스테이지, 데이터 동기화에 적합하다.
| CLK | D | Q(next) |
|---|---|---|
| ↑ | 0 | 0 |
| ↑ | 1 | 1 |
| 그 외 | X | Q(유지) |
특성 방정식: Q(next) = D
JK 플립플롭은 SR 플립플롭의 불확정 상태 문제를 해결한 범용 구조다. 카운터, 주파수 분주기, 시퀀스 발생기에서 사용할 수 있다.
| CLK | J | K | Q(next) |
|---|---|---|---|
| ↑ | 0 | 0 | Q(유지) |
| ↑ | 0 | 1 | 0(리셋) |
| ↑ | 1 | 0 | 1(셋) |
| ↑ | 1 | 1 | Q'(토글) |
특성 방정식: Q(next) = JQ' + K'Q
T 플립플롭은 토글(Toggle) 동작에 맞춘 구조로, JK 플립플롭에서 J=K로 연결해 구현한다. 2진 카운터, 분주기 회로, 주파수 합성기에 사용된다.
| CLK | T | Q(next) |
|---|---|---|
| ↑ | 0 | Q(유지) |
| ↑ | 1 | Q'(토글) |
특성 방정식: Q(next) = TQ' + T'Q = T ⊕ Q
타이밍 제약이 회로 주파수를 결정한다
셋업 타임(Setup Time)은 클록 에지 이전에 입력 데이터가 안정되어 있어야 하는 최소 시간이다. 이 조건을 어기면 데이터가 올바르게 캡처되지 않거나 메타스테이블 상태가 발생할 수 있으며, 회로의 최대 동작 주파수에도 영향을 준다.
홀드 타임(Hold Time)은 클록 에지 뒤에도 입력이 유지되어야 하는 최소 시간이다. 위반하면 잘못된 데이터를 캡처할 수 있고, 같은 클록을 사용하는 플립플롭 사이의 경쟁 조건으로 이어질 수 있다. 현대 공정에서는 그 중요성이 커진다.
클록-투-출력 지연(Clock-to-Q Delay)은 클록 에지 이후 유효한 출력이 나올 때까지의 시간이다. 내부 게이트 지연, 부하 커패시턴스, 동작 온도와 전압이 이 지연에 영향을 준다.
최대 동작 주파수는 다음 관계로 검토한다.
f_max = 1 / (t_co + t_logic + t_su)
- t_co: 클록-투-출력 지연
- t_logic: 조합 논리 지연
- t_su: 다음 플립플롭의 셋업 타임
메타스테이빌리티가 비동기 입력을 위험하게 만드는 이유
셋업 타임이나 홀드 타임을 만족하지 못한 플립플롭은 메타스테이블(Metastable) 상태에 들어갈 수 있다. 이때 출력은 0이나 1로 즉시 결정되지 않으며, 예측할 수 없는 시간이 지난 뒤 임의의 상태로 수렴한다. 출력 전파 지연이 길어지거나 다운스트림 논리로 오류가 전달되어 시스템 오동작을 일으킬 수 있다.
비동기 신호를 받아야 할 때는 2단계 이상의 플립플롭 체인으로 동기화기를 구성한다. 메타스테이블 상태가 다음 단계로 전파될 확률을 지수적으로 낮추기 위한 구조다.
MTBF (Mean Time Between Failures)는 다음 식으로 표현한다.
MTBF = e^(t_r / τ) / (f_clk × f_data × T_w)
- t_r: 해결 시간(Resolution Time)
- τ: 메타스테이빌리티 시상수
- T_w: 취약 윈도우
상태를 저장하고 이동시키는 회로
여러 D 플립플롭을 병렬 연결하면 n비트 레지스터를 만들 수 있다. 하나의 클록으로 모든 비트를 동시에 갱신하므로 데이터 일관성을 유지할 수 있다.
플립플롭을 직렬로 이어 붙인 시프트 레지스터는 데이터를 한 비트씩 이동시킨다. 직렬-병렬 변환, 지연선, 링 카운터가 대표적인 활용처다.
카운터는 모든 플립플롭에 동일한 클록을 연결하는 동기식 구조와, 이전 플립플롭 출력을 다음 클록으로 사용하는 비동기식 리플 구조로 나뉜다. 동기식 카운터는 상태가 동시에 전이해 고속 동작이 가능하다. 비동기식 카운터는 전파 지연이 누적되지만 구조가 간단하다.
FSM의 상태 레지스터도 에지 트리거 플립플롭으로 구성한다. 클록 에지에서 다음 상태로 전이하고, 조합 논리와 결합해 제어 유닛이나 프로토콜 처리 같은 제어 로직을 구현한다.
배치와 기능 선택에서 확인할 항목
클록 스큐(Clock Skew)는 같은 클록이 각 플립플롭에 도달하는 시간 차이다. 양의 스큐는 홀드 타임 위반을, 음의 스큐는 셋업 타임 위반을 유발할 수 있다. 클록 트리 합성(CTS)을 최적화하고, 버퍼 삽입으로 지연을 균형화하며, 클록 도메인 교차에는 동기화기를 적용해 대응한다.
에지 트리거 플립플롭의 전력 소모는 클록 주파수와 스위칭 활동에 비례한다. 클록 게이팅(Clock Gating), 동적 전압/주파수 스케일링, 멀티 임계 전압 셀 사용이 저전력 기법으로 쓰인다.
플립플롭은 칩 면적의 상당 부분을 차지할 수 있다. 스캔 체인을 포함한 테스트 기능이나 비동기 리셋·세트 기능은 필요한 경우에만 포함해 면적을 최적화한다.