핵심 인사이트

  1. 래치(Latch)는 레벨 트리거(Level-Triggered) 방식의 1비트 기억 소자 — 입력 신호가 활성 레벨인 동안 계속 상태가 변할 수 있어, 플립플롭(Flip-Flop)과 달리 클럭 에지가 아닌 레벨 구간 전체에서 데이터를 통과시킨다.
  2. SR 래치가 모든 래치의 기초 — NOR/NAND 게이트 2개의 피드백 연결만으로 기억 기능을 구현하며, S=1·R=1(NAND: S=0·R=0)의 금지 상태가 설계 시 반드시 고려해야 할 제약이다.
  3. 래치의 투명성(Transparency)이 타이밍 해저드의 원인 — 인에이블(EN) 신호가 HIGH인 동안 입력 변화가 즉시 출력에 반영되므로, 클럭 스큐(Clock Skew)나 글리치(Glitch)에 취약하여 현대 동기식 설계에서는 D 플립플롭을 선호한다.

Ⅰ. SR 래치 (SR Latch)

NOR 게이트 SR 래치:

구조:
  S ──┬──[NOR]── Q
      │     ↑
  R ──┼──[NOR]── Q̄
      │     ↑
      └─────┘ (피드백)

진리표:
  S  R  Q(다음)  동작
  0  0  Q(현재)  유지 (Hold/Memory)
  1  0     1     세트 (Set)
  0  1     0     리셋 (Reset)
  1  1  금지!    불정의 (Forbidden)

NAND 게이트 SR 래치 (액티브 LOW):
  S̄ ──[NAND]── Q
  R̄ ──[NAND]── Q̄
  
  S=0, R=1 → Set (Q=1)
  S=1, R=0 → Reset (Q=0)
  S=0, R=0 → 금지! (NAND의 금지 상태)
  S=1, R=1 → 유지

SR 래치 동작 원리:
  기억 상태 (S=0, R=0):
  가정: Q=1, Q̄=0
  Q NOR: S=0, Q̄=0 → 출력 1 ✓ (자기 유지)
  Q̄ NOR: R=0, Q=1 → 출력 0 ✓ (자기 유지)
  → 피드백이 상태를 유지!

금지 상태 (S=1, R=1):
  Q NOR: S=1 → 출력 무조건 0
  Q̄ NOR: R=1 → 출력 무조건 0
  Q=0, Q̄=0 → Q ≠ Q̄ 조건 위반!
  이후 S=R=0으로 가면 예측 불가 상태

📢 섹션 요약 비유: SR 래치는 시소 — S 누르면 Q 쪽으로(Set), R 누르면 Q̄ 쪽으로(Reset), 아무것도 안 누르면 그대로(Hold). 둘 다 동시에 누르면(금지) 시소가 뒤집히는 재앙!


Ⅱ. D 래치와 투명성

D 래치 (Data Latch):

SR 래치의 문제: S=R=1 금지 상태
해결: S와 R을 단일 입력 D로 연결 (R = D̄)

구조:
  D ──┬──────────────[NOR]── Q
      └──[NOT]── R ─[NOR]── Q̄
       S = D

진리표:
  EN  D  Q(다음)
   0  X  Q(현재)  유지 (래치됨)
   1  0     0     D 통과
   1  1     1     D 통과

투명성 (Transparency):
  EN=1인 동안:
  D 변화 → 즉시 Q 변화
  (D가 "투명하게" Q로 전달됨)
  
  EN=0인 순간:
  D 변화 → Q 무변화 (래치됨)

투명성 문제:
  EN 신호 HIGH 구간에 D가 여러 번 변하면?
  → Q도 여러 번 변함 (글리치)
  
  조합 논리 루프:
  래치 Q → 조합 논리 → 래치 D → ...
  EN=1 동안 루프 발진 가능

  vs D 플립플롭:
  EN=1 전체가 아닌 EN의 에지(↑)에서만 변화
  → 타이밍 예측 가능
  → 동기식 설계에 적합

📢 섹션 요약 비유: D 래치 투명성 = 유리문 — EN=1(열림): 밖 상황(D) 즉시 보임(Q 변화). EN=0(닫힘): 마지막 상태 유지. 문 열린 동안 변화가 많으면 불안정(글리치 위험)!


Ⅲ. 래치 vs 플립플롭

비교:

특성         | 래치          | D 플립플롭
-------------|---------------|---------------
트리거 방식  | 레벨 (Level)  | 에지 (Edge ↑/↓)
샘플 타이밍  | EN=1 전체 구간| 클럭 에지 순간
투명성       | 있음          | 없음
메타스태빌리티| 높음         | 낮음 (에지 설계)
면적         | 작음          | 큼 (~2×래치)
전력         | 낮음          | 높음
설계 복잡도  | 낮음          | 높음

현대 설계에서의 래치 사용:

ASIC/SoC에서 래치 적극 활용:
  면적: 래치 ≈ D FF / 2
  전력: 래치 ≈ D FF × 0.6
  → 모바일 SoC에서 전력 절감에 활용

Latch-Based Pipeline:
  전통: D FF → 조합 → D FF
  래치 기반: 마스터 래치 → 조합 → 슬레이브 래치
  
  이점: 사이클 "빌림(borrowing)" 가능
  단점: 타이밍 분석 복잡

FPGA에서:
  LUT 기반 래치 구현 비효율
  기본 소자가 D FF → FPGA에선 FF 선호

Latch Inference 경고:
  HDL 설계 시 의도치 않은 래치 생성 주의
  
  Verilog: always 블록에서 일부 조건 미정의
  → 합성기가 래치로 구현 (경고 발생)

📢 섹션 요약 비유: 래치 vs 플립플롭 = 문 vs 카메라 셔터 — 래치는 문 열린 동안 계속 들어옴(레벨). 플립플롭은 셔터 누르는 순간만(에지). 모바일은 에너지 절약 위해 래치 선호!


Ⅳ. 실용 래치 회로

SR 래치 응용:

1. 디바운싱 (Debouncing):
  기계 스위치는 눌릴 때 여러 번 튐(바운싱)
  
  SPDT 스위치 + NAND SR 래치:
  스위치 A → S
  스위치 B → R
  
  바운싱 동안:
  SR 래치가 최초 전환 후 상태 유지
  → 깨끗한 단일 전환 신호 생성

2. 우선순위 회로:
  인터럽트 신호 래치:
  여러 인터럽트 소스 → SR 래치
  처리 완료 → R 신호로 래치 클리어

D 래치 응용:

1. 버스 인터페이스:
  8비트 데이터 버스 → 8개 D 래치
  주소 디코더 → EN
  
  특정 주소 접근 시: EN=1 → 데이터 통과
  → 출력 레지스터에 저장

2. 파이프라인 스테이지 (CPU):
  클럭 HIGH: 마스터 래치 투명 (입력 통과)
  클럭 LOW: 슬레이브 래치 투명 (출력 통과)
  = 마스터-슬레이브 D FF 구현

구현 비교:
  SR 래치: NOR × 2 또는 NAND × 2
  D 래치: SR 래치 + NOT + 2 AND ≈ 6 게이트
  D FF: D 래치 × 2 (마스터-슬레이브) ≈ 12 게이트

📢 섹션 요약 비유: SR 래치 디바운싱 = 출입문 센서 — 문 살짝 건드려도 여러 번 신호 발생(바운싱). SR 래치가 "한 번 열렸으면 계속 열림"으로 깔끔하게 처리!


Ⅴ. 실무 시나리오 — ASIC 전력 최적화

모바일 SoC ASIC 설계에서 래치 활용:

배경:
  스마트폰 SoC 설계 (7nm 공정)
  배터리 최적화 최우선

문제:
  모든 상태 저장 소자를 D FF로 구현
  D FF 수: 5,000,000개
  전력 소비: FF 클럭 토글 → 동적 전력 주요 원인

래치 기반 최적화:

분석:
  전체 FF 중 40%는 단방향 데이터 흐름
  → 레벨 트리거 래치로 대체 가능

교체 전략:
  Critical Path FF: D FF 유지 (타이밍 중요)
  Non-Critical Path FF: 래치 쌍으로 대체

결과:
  교체된 FF: 2,000,000개 → 래치
  
  면적: -18% (래치 = FF의 약 50% 면적)
  동적 전력: -12% (클럭 토글 감소)
  
  주의:
  래치 타이밍 분석 복잡도 증가
  STA(Static Timing Analysis) 도구 추가 설정
  검증 시간 15% 증가

결론:
  전력 최적화: 고사양 모바일 SoC에서 래치 전략 가치 있음
  단, 타이밍 분석 전문성 필수
  
  현대 EDA 도구(Cadence, Synopsys) 래치 최적화 자동화 지원

📢 섹션 요약 비유: ASIC 래치 최적화 = 전등 스위치 절약 — 항상 켜둘 필요 없는 등(FF)을 조명 센서(래치)로 교체. 면적 18%, 전력 12% 절감. 스마트폰 배터리 늘리는 작은 기술!


📌 관련 개념 맵

래치 (Latch)
+-- 유형
|   +-- SR 래치 (NOR/NAND)
|   +-- D 래치 (투명 래치)
|   +-- JK 래치, T 래치
+-- 특성
|   +-- 레벨 트리거 (Level-Triggered)
|   +-- 투명성 (Transparency)
|   +-- 금지 상태 (Forbidden State)
+-- 비교
|   +-- D 플립플롭 (에지 트리거)
|   +-- 마스터-슬레이브 FF
+-- 응용
    +-- 디바운싱
    +-- ASIC 전력 최적화
    +-- 버스 인터페이스

📈 관련 키워드 및 발전 흐름도

[SR 래치 발명 (1918년경)]
전화 교환기 릴레이 기반
피드백 기억 원리
      |
      v
[D 래치 / 플립플롭 (1940s~)]
전자식 컴퓨터 레지스터
마스터-슬레이브 FF
      |
      v
[CMOS 집적화 (1970s~)]
소형화 + 저전력
레지스터 파일 구현
      |
      v
[ASIC 래치 최적화 (1990s~)]
모바일 SoC 전력 절감
Latch-Based Pipeline
      |
      v
[현재: 차세대 메모리 소자]
스핀트로닉스, MRAM
비휘발성 래치 연구

👶 어린이를 위한 3줄 비유 설명

  1. SR 래치는 시소 기억 장치 — S 누르면 Q 쪽으로, R 누르면 반대로. 손 떼도 그 상태 유지! 둘 다 동시에 누르면 고장(금지 상태)!
  2. D 래치 투명성 = 유리문 — EN=1(열림)이면 D가 즉시 Q로 보임. EN=0(닫힘)이면 마지막 상태 유지. 문 열린 동안 불안정!
  3. ASIC 래치 최적화 = 조명 절약 — 항상 켜둘 필요 없는 불(D FF)을 센서 등(래치)으로. 스마트폰 전력 12% 절감!