핵심 인사이트

  1. 레벨 트리거(Level Trigger)는 클록 신호의 레벨(High 또는 Low) 자체가 유지되는 동안 데이터를 통과시키는 방식 — 엣지 트리거(Edge Trigger)가 상승/하강 순간만 감지하는 것과 달리, 레벨이 유지되는 전체 시간 동안 입력이 출력에 영향을 미친다.
  2. 레벨 트리거의 핵심 문제는 투명성(Transparency)과 글리치(Glitch) — 레벨 High 동안 입력 변화가 즉시 출력에 반영되어(투명), 노이즈나 설계 오류로 의도치 않은 상태 변화(글리치)가 발생할 수 있다.
  3. 실무에서 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줄 비유 설명

  1. 레벨 트리거는 열린 문 — 문이 열려 있는(High) 동안 누구든 들어올 수 있어요. 문이 닫히면(Low) 안으로 잠겨요!
  2. D-래치의 글리치 — 문이 열려 있으면 바람(노이즈)도 들어와요. 마스터-슬레이브(이중 문)로 바람을 막아요!
  3. 엣지 vs 레벨 — 엣지는 "딸깍!" 소리(전환 순간)만 반응, 레벨은 불이 켜진 동안 계속 반응. 현대 설계는 엣지 트리거를 선호해요!