핵심 인사이트
- 레벨 트리거(Level Trigger)는 클록 신호의 레벨(High 또는 Low) 자체가 유지되는 동안 데이터를 통과시키는 방식 — 엣지 트리거(Edge Trigger)가 상승/하강 순간만 감지하는 것과 달리, 레벨이 유지되는 전체 시간 동안 입력이 출력에 영향을 미친다.
- 레벨 트리거의 핵심 문제는 투명성(Transparency)과 글리치(Glitch) — 레벨 High 동안 입력 변화가 즉시 출력에 반영되어(투명), 노이즈나 설계 오류로 의도치 않은 상태 변화(글리치)가 발생할 수 있다.
- 실무에서 D-래치(D-Latch)가 레벨 트리거의 대표 구현 — 반면 D-플립플롭(D-Flip Flop)은 엣지 트리거로 구현되어 더 예측 가능하며, 현대 동기식 디지털 설계에서는 엣지 트리거가 더 선호된다.
Ⅰ. 레벨 트리거 개요
레벨 트리거 vs 엣지 트리거:
클록 신호: _____|‾‾‾‾‾‾‾|_____
레벨 High: ↑↑↑↑↑
이 구간 동안 활성
레벨 Low: ↓↓↓↓↓ ↓↓↓↓↓
이 구간 동안 활성 (Active Low)
레벨 트리거 특징:
클록 High(또는 Low) 유지 구간 → 데이터 통과
유지 구간 내 입력 변화 → 출력 반영
엣지 트리거:
상승 엣지(↑) 순간만 → 데이터 캡처
이후 클록 상태와 무관 → 출력 고정
래치 (Latch) = 레벨 트리거:
SR-래치: 기본 레벨 트리거 소자
D-래치: 단순화된 레벨 트리거
플립플롭 (Flip-Flop) = 엣지 트리거:
D-FF, JK-FF, T-FF
마스터-슬레이브 구조로 엣지에만 반응
실사용:
래치: 비동기 회로, 멀티플렉서 제어
플립플롭: 동기식 순차 회로 (CPU 레지스터 등)
📢 섹션 요약 비유: 레벨 트리거는 열려 있는 문 — 문이 열려 있는(High) 동안 누구든 들어올 수 있어요. 엣지 트리거는 문이 열리는 순간만 통과 가능!
Ⅱ. D-래치 동작
D-래치 (Level-Triggered D-Latch):
구성: D 입력, Enable(EN/CLK), Q 출력, Q̄ 출력
진리표:
EN=1 (High): Q = D (투명, 데이터 통과)
EN=0 (Low): Q = 이전 값 유지 (래치)
타이밍:
CLK: __|‾‾‾‾‾|___
D: ___|‾‾|_______
Q: ___|‾‾|_______ ← EN=1 동안 D 추적
Q: ________|‾‾‾‾‾ ← EN=0 후 마지막 D 유지
글리치 문제:
EN=1 구간에 D가 여러 번 변하면
Q도 따라서 여러 번 변함
노이즈에 의한 D 변화 → Q 오염
CLK: __|‾‾‾‾‾‾‾‾|___
D: _|‾|_|‾‾|______ (글리치 포함)
Q: _|‾|_|‾‾|______ ← 모든 변화 반영
해결책:
마스터-슬레이브 D-FF:
두 개의 래치를 직렬 연결
첫 번째(마스터): 반전 클록으로 동작
두 번째(슬레이브): 정상 클록
→ 클록 상승 엣지에만 데이터 캡처
CMOS 구현:
전송 게이트(CMOS Pass Gate):
EN=1 → 게이트 개방 → D 통과
EN=0 → 게이트 차단 → Q 유지
📢 섹션 요약 비유: D-래치의 글리치는 흔들리는 문 — 문이 열려 있는 동안(EN=1) 바람(노이즈)이 불면 Q가 흔들려요. 마스터-슬레이브(이중 문)로 안정화!
Ⅲ. SR-래치와 NOR/NAND
SR-래치 (SR-Latch):
기본 NOR 게이트 SR-래치:
S (Set) + R (Reset) + Q + Q̄
S=1, R=0: Q=1 (Set 상태)
S=0, R=1: Q=0 (Reset 상태)
S=0, R=0: Q=이전 값 (유지)
S=1, R=1: 금지 상태 (Q=Q̄=0, 불확정)
NAND 게이트 SR-래치:
S̄=0, R̄=1: Q=1 (Active Low)
S̄=1, R̄=0: Q=0
S̄=1, R̄=1: Q=이전 값 유지
S̄=0, R̄=0: 금지 상태
Enable 추가 (Gated SR-Latch):
EN=1: S, R 활성화 → 래치 동작
EN=0: S, R 무시 → 상태 유지
레벨 트리거 구현의 핵심
D-래치로의 발전:
SR-래치의 금지 상태(S=R=1) 제거
D = S, D̄ = R 연결 → 항상 S≠R
→ 단순화된 레벨 트리거 소자
실제 응용:
버튼 디바운싱 (Switch Debouncing):
기계 버튼 접촉 시 노이즈 → SR 래치로 안정화
SRAM 셀: 교차 결합 인버터 = 기본 래치 구조
📢 섹션 요약 비유: SR-래치는 시소 — S 버튼(Set)으로 한쪽 올리기, R 버튼(Reset)으로 다른 쪽 올리기. 둘 다 동시 누르면 불안정(금지 상태). D-래치는 항상 반대쪽 자동 연결!
Ⅳ. 타이밍 분석
레벨 트리거 타이밍 파라미터:
셋업 시간 (tsu, Setup Time):
Enable 상승 엣지(또는 Enable 구간 시작) 전에
D 입력이 안정되어야 하는 최소 시간
위반 시: 래치가 메타스테이블(Metastable) 상태
홀드 시간 (th, Hold Time):
Enable 하강 엣지(또는 Enable 구간 종료) 후
D 입력이 유지되어야 하는 최소 시간
전파 지연 (tpd, Propagation Delay):
D 변화 → Q 변화까지 소요 시간
레벨 트리거: EN=1 동안 즉각 전파
클록-Q 지연 (tCQ):
Enable 상승/하강 → Q 안정화까지 시간
레벨 트리거 타이밍 문제:
윈도우 제약:
EN=1 구간에 D가 변하면 언제든 Q 변화
→ "정적 민감도(Static Sensitivity)"
EN=1 구간 내 여러 번 변화 = 여러 번 캡처
→ 의도치 않은 다중 샘플링
시간 차용 (Time Borrowing):
레벨 트리거 특유의 기법
이전 사이클의 조합 논리 지연이
다음 래치의 Enable 창으로 이어짐
장점: 사이클 타이밍 유연성
단점: 타이밍 분석 복잡
📢 섹션 요약 비유: 셋업/홀드 시간은 버스 탑승 규칙 — 출발(Enable 상승) 전에(셋업) 자리 잡고, 출발 후에도(홀드) 자리에 있어야. 어기면 혼돈(메타스테이블)!
Ⅴ. 실무 시나리오 — ASIC 데이터 캡처
ASIC 설계에서 레벨 트리거 활용:
상황:
고속 ADC (Analog-to-Digital Converter) 인터페이스
ADC: 1GHz 클록, 12비트 출력
ASIC: 500MHz 도메인
클록 도메인 교차 (CDC): 비동기 인터페이스 필요
설계 결정:
ADC 출력 → D-래치 (레벨 트리거) → ASIC 내부
이유:
ADC 데이터 유효 구간(Enable 시간): 500ps
ASIC 플립플롭 셋업 시간: 200ps
레벨 트리거 래치:
유효 구간 동안 데이터 투명하게 통과
→ ASIC 플립플롭이 안정된 값 캡처
타이밍 마진 계산:
Data Valid Window: 500ps
Latch tpd: 80ps
FF 셋업 시간: 200ps
마진: 500 - 80 - 200 = 220ps (충분)
주의사항:
래치 Enable 구간 최소화:
글리치 위험 감소
글리치 필터:
Enable 신호에 RC 필터 + 히스테리시스
→ 의도치 않은 짧은 Enable 펄스 제거
결론:
고속 인터페이스, 비동기 CDC에서 래치 유용
동기식 설계 코어: 플립플롭 사용 원칙
혼용 시: 정확한 타이밍 분석 필수
📢 섹션 요약 비유: ASIC CDC에서 래치 — 두 다른 속도의 도로(클록 도메인) 사이에 잠깐 열리는 게이트(레벨 트리거 래치). 안전하게 데이터 전달하는 교차로!
📌 관련 개념 맵
레벨 트리거
+-- 구현
| +-- D-래치 (EN High 동안 투명)
| +-- SR-래치 (NOR/NAND)
| +-- Gated SR-래치
+-- 문제점
| +-- 글리치 (Glitch)
| +-- 투명성 (Transparency)
| +-- 메타스테이블
+-- 해결
| +-- 마스터-슬레이브 → 엣지 트리거
+-- vs
+-- 엣지 트리거 (D-FF)
+-- 동기식 설계 원칙
📈 관련 키워드 및 발전 흐름도
[초기 논리 회로 (1950s~)]
SR-래치: 기본 기억 소자
NOR/NAND 구현
|
v
[Gated 래치 (1960s)]
Enable 신호 추가
레벨 트리거 명시적 구현
|
v
[마스터-슬레이브 FF (1960s~)]
두 래치 직렬 → 엣지 트리거
글리치 문제 해결
|
v
[동기식 설계 원칙 (1980s~)]
플립플롭 = 표준
래치 = 특수 목적
|
v
[현재: 래치 특수 활용]
CDC 인터페이스
저전력 설계 (시간 차용)
DFT (래치 스캔 체인)
👶 어린이를 위한 3줄 비유 설명
- 레벨 트리거는 열린 문 — 문이 열려 있는(High) 동안 누구든 들어올 수 있어요. 문이 닫히면(Low) 안으로 잠겨요!
- D-래치의 글리치 — 문이 열려 있으면 바람(노이즈)도 들어와요. 마스터-슬레이브(이중 문)로 바람을 막아요!
- 엣지 vs 레벨 — 엣지는 "딸깍!" 소리(전환 순간)만 반응, 레벨은 불이 켜진 동안 계속 반응. 현대 설계는 엣지 트리거를 선호해요!