Chapter 3: Sequential Logic Design | 순차 논리 설계의 모든 것

Chapter 3: Sequential Logic Design | 순차 논리 설계의 모든 것
Harris & Harris · Digital Design & Computer Architecture

🔄 Chapter 3: Sequential Logic Design

래치, 플립플롭, FSM, 파이프라이닝 — 시간을 기억하는 회로의 세계

Chapter 2의 조합 논리가 “현재”만을 다뤘다면, Chapter 3“과거”를 기억하는 회로를 다룹니다. 순차 논리(Sequential Logic)는 상태(State)라는 개념을 통해 과거의 입력 이력을 보존하며, 프로세서의 레지스터 파일, 캐시 메모리, FSM(유한 상태 기계)의 근간이 됩니다. 이 포스트에서는 래치와 플립플롭의 동작 원리, 핵심 타이밍 제약 수식, FSM 설계 방법론, 그리고 성능을 극대화하는 파이프라이닝까지 정리하고, 2026년 최첨단 CTS(Clock Tree Synthesis) 기술이 어떻게 이 이론을 현실로 구현하는지 살펴봅니다.

⚡ 1. 순차 논리의 기초

순차 논리 회로는 출력이 현재 입력뿐만 아니라 과거의 입력(상태)에도 의존하는 회로입니다. 이를 위해 값을 저장하는 메모리 소자(Memory Element)가 필수적입니다. 조합 논리와의 핵심 차이는 피드백 경로(Feedback Path)의 존재입니다.

핵심 개념 — 상태(State)

상태(State)는 시스템의 과거 이력을 요약한 정보입니다. k비트의 상태 변수는 최대 2k가지의 고유한 상태를 표현할 수 있습니다. 예를 들어, 3비트 카운터는 8가지 상태(000~111)를 순환합니다. 상태 변수의 현재 값과 현재 입력이 합쳐져 다음 상태와 출력을 결정합니다.

🔒 2. 래치와 플립플롭

상태를 물리적으로 저장하는 가장 기본적인 소자들입니다. 각각의 특성과 차이를 명확히 이해하는 것이 순차 논리 설계의 출발점입니다.

🔗 SR 래치 교차 연결된 NOR/NAND 게이트로 구성. S=1이면 Q=1 (Set), R=1이면 Q=0 (Reset). S=R=1인 경우 금지 상태(불안정). 가장 원시적인 메모리 소자입니다.
👁️ D 래치 (레벨 민감형) CLK=1이면 투명(D→Q 직접 전달). CLK=0이면 불투명(이전 값 유지). SR 래치의 금지 상태 문제를 해결하지만, 투명 상태에서 입력 변화가 즉시 출력에 반영되는 것이 문제가 될 수 있습니다.
📸 D 플립플롭 (에지 트리거형) 클럭의 상승 에지(Rising Edge) 순간에만 D를 캡처하여 Q로 전달. 나머지 시간에는 출력 불변. Master-Slave 구조(D 래치 2개 직렬)로 구현. 현대 동기식 설계의 표준 메모리 소자입니다.
SystemVerilog - D 플립플롭 (Reset 포함) module d_flip_flop ( input logic clk, reset, d, output logic q ); always_ff @(posedge clk or posedge reset) if (reset) q <= 1'b0; // 비동기 리셋 else q <= d; // 상승 에지에서 D 캡처 endmodule

🕐 3. 동기식 순차 논리

동기식 설계(Synchronous Design)는 모든 상태 소자(레지스터)가 하나의 전역 클럭(Global Clock)에 맞춰 동시에 업데이트되는 설계 규율입니다. 이 규율 덕분에 설계자는 클럭 주기 사이의 일시적인 글리치나 중간 과도 상태를 무시할 수 있으며, 복잡한 시스템도 예측 가능하게 설계할 수 있습니다.

동기식 순차 회로의 일반 구조
입력
Inputs
조합 논리
Combinational
Logic (Ch.2)
레지스터
State
Registers
출력
Outputs

↺ 레지스터 출력(현재 상태)이 조합 논리 입력으로 피드백 (Feedback Loop)

핵심 원칙: 조합 논리 블록은 현재 상태와 외부 입력으로부터 다음 상태(Next State)출력(Output)을 계산하고, 레지스터는 클럭 에지에서 이 다음 상태를 캡처하여 현재 상태(Current State)로 저장합니다. 이 사이클이 매 클럭 주기마다 반복됩니다.

🤖 4. 유한 상태 기계 (Finite State Machines)

FSM은 동기식 순차 회로를 체계적으로 모델링하고 설계하는 방법론입니다. M개의 입력, N개의 출력, k비트(2k개 상태)의 상태를 가지며, 상태 전이 다이어그램으로 시각화됩니다.

Moore Machine (무어 기계) 출력이 오직 현재 상태(State)에만 의존합니다. 출력은 상태 전이와 동시에 변하므로 글리치에 강합니다. 출력이 상태 노드 안에 표기됩니다.
Mealy Machine (밀리 기계) 출력이 현재 상태 + 현재 입력 모두에 의존합니다. Moore보다 적은 상태로 동일 기능을 구현할 수 있지만, 입력 변화에 즉시 반응하므로 출력에 글리치가 발생할 수 있습니다.

📋 FSM 설계 5단계

1. 상태 전이도(State Transition Diagram) 작성 — 상태, 전이 조건, 출력을 그래프로 표현
2. 상태 인코딩(State Encoding) — 각 상태에 2진 코드 할당 (Binary, One-hot, Gray 등)
3. 상태 전이표 & 출력표 작성 — 현재 상태 + 입력 → 다음 상태 + 출력 매핑
4. 불리언 방정식 도출 — K-map 등으로 다음 상태 논리와 출력 논리 최소화
5. 회로 구현 — 조합 논리(게이트) + 레지스터로 하드웨어 구현 또는 HDL 코딩
SystemVerilog - Moore FSM (3-state 패턴 감지기) module pattern_detector ( input logic clk, reset, x, output logic y ); typedef enum logic [1:0] { S0 = 2'b00, // 초기 상태 S1 = 2'b01, // 첫 번째 1 감지 S2 = 2'b10 // 패턴 "11" 감지 → 출력 1 } state_t; state_t state, next_state; // 상태 레지스터 (순차 논리) always_ff @(posedge clk or posedge reset) if (reset) state <= S0; else state <= next_state; // 다음 상태 논리 (조합 논리) always_comb case (state) S0: next_state = x ? S1 : S0; S1: next_state = x ? S2 : S0; S2: next_state = x ? S2 : S0; default: next_state = S0; endcase // 출력 논리 (Moore: 상태에만 의존) assign y = (state == S2); endmodule
상태 인코딩 방식 비교
인코딩 플립플롭 수 장점 주 용도
Binary log₂(N) 최소 플립플롭, 면적 절약 ASIC (면적 민감)
One-hot N 빠른 디코딩, 단순한 조합 논리 FPGA (LUT 풍부)
Gray log₂(N) 1비트만 변화 → 글리치 감소 카운터, CDC

⏱️ 5. 순차 회로의 타이밍 (Timing Constraints)

순차 논리 설계에서 가장 중요한 주제입니다. 플립플롭이 데이터를 올바르게 캡처하려면 입력 데이터가 클럭 에지 전후로 일정 시간 동안 안정되어야 합니다. 이 타이밍 규칙을 위반하면 메타스테이블리티(Metastability) — 출력이 0도 1도 아닌 불확정 상태 — 가 발생할 수 있습니다.

🔑 핵심 타이밍 파라미터

파라미터 정의 위반 시 결과
tsetup 클럭 에지 이전에 D가 안정되어야 하는 최소 시간 셋업 위반 → 메타스테이블리티
thold 클럭 에지 이후에도 D가 안정되어야 하는 최소 시간 홀드 위반 → 메타스테이블리티
tpcq 클럭 에지 → Q 출력 안정까지 최대 전파 지연 셋업 마진 결정에 관여
tccq 클럭 에지 → Q 출력 변화 시작까지 최소 오염 지연 홀드 마진 결정에 관여

📏 셋업 시간 제약 (Setup Time Constraint)

클럭 주기(Tc)는 레지스터 간 가장 긴 경로(Critical Path)의 지연보다 반드시 길어야 합니다. 이 제약이 시스템의 최대 동작 주파수를 결정합니다.

Setup Time Constraint (최대 지연) Tc ≥ tpcq + tpd + tsetup

📏 홀드 시간 제약 (Hold Time Constraint)

데이터가 너무 빨리 변해서 다음 레지스터가 이전 데이터를 놓치지 않도록, 가장 짧은 경로의 지연이 홀드 시간보다 커야 합니다. 이 제약은 클럭 주파수와 무관하며, 위반 시 주파수 조정으로 해결할 수 없습니다.

Hold Time Constraint (최소 지연) tccq + tcd ≥ thold

⚠️ 클럭 스큐 (Clock Skew)

클럭 스큐(tskew)는 동일한 클럭 신호가 물리적 거리, 버퍼 지연 차이 등으로 인해 서로 다른 레지스터에 다른 시간에 도착하는 현상입니다. 스큐를 고려하면 양쪽 타이밍 제약이 모두 더 엄격해집니다.

스큐 포함 Setup Constraint Tc ≥ tpcq + tpd + tsetup + tskew
스큐 포함 Hold Constraint tccq + tcd ≥ thold + tskew

셋업 제약에서 스큐는 필요한 클럭 주기를 늘리고(최대 주파수 감소), 홀드 제약에서는 필요한 최소 지연을 늘려 설계 여유를 줄입니다. 이것이 현대 SoC에서 클럭 트리 합성(CTS)이 극도로 중요한 이유입니다.

🚄 6. 병렬 처리와 파이프라이닝

시스템 처리량(Throughput)을 높이기 위한 구조적 기법입니다. 현대 프로세서의 성능은 파이프라이닝 없이는 설명할 수 없습니다.

📦 공간적 병렬성 (Spatial) 처리 하드웨어를 여러 개 복제하여 동시에 여러 데이터를 처리합니다. 예: 멀티코어 프로세서, SIMD 유닛. 하드웨어 비용이 비례하여 증가합니다.
🏭 시간적 병렬성 / 파이프라이닝 (Temporal) 작업을 여러 단계(Stage)로 분할하고, 각 단계 사이에 레지스터를 삽입합니다. 컨베이어 벨트처럼 여러 작업이 동시에 중첩 실행되어 처리량이 향상됩니다.
파이프라이닝 동작 시각화 (4단계 파이프라인)
T1 T2 T3 T4 T5 T6 T7
Task A S1 S2 S3 S4
Task B S1 S2 S3 S4
Task C S1 S2 S3 S4
Task D S1 S2 S3 S4

T4 시점: 4개 Task가 동시에 서로 다른 Stage에서 실행 중. 이상적 처리량 = N배 향상 (N=파이프라인 단계 수)

파이프라이닝의 핵심 트레이드오프

파이프라이닝은 개별 작업의 지연(Latency)은 줄이지 않지만, 처리량(Throughput)을 극대화합니다. 각 단계의 클럭 주기는 가장 느린 단계에 의해 결정되므로, 단계별 작업량의 균등 분할이 성능의 열쇠입니다. 파이프라인 레지스터가 추가되는 만큼 면적과 파이프라인 레지스터 자체의 오버헤드(tpcq + tsetup)도 증가합니다.

🚀 7. 2026년 산업 동향: CTS와 타이밍 클로저의 진화

Chapter 3의 타이밍 제약 수식은 실무에서 STA(Static Timing Analysis)CTS(Clock Tree Synthesis)를 통해 수십억 개의 경로에 대해 자동 검증됩니다. 2nm 이하 첨단 공정에서는 이 과정이 이전 세대와는 차원이 다른 복잡성을 띕니다.

2026 UPDATE
🌳 첨단 노드에서의 CTS 도전 과제

3nm 이하 공정에서 CTS가 극도로 어려워진 핵심 이유들:

공정 변동성(Process Variation) 폭발: 2nm 이하에서는 트랜지스터 문턱 전압(Vt), 채널 길이, 산화막 두께의 미세 변동이 지배적입니다. 동일한 클럭 버퍼 두 개도 서로 다른 지연을 가질 수 있어, 스큐가 증가합니다.
전력 문제: 클럭 네트워크는 칩 전체 동적 전력의 25~40%를 소비합니다. 스큐를 줄이기 위해 버퍼를 추가하면 전력이 더 증가하므로, 타이밍과 전력 사이의 트레이드오프가 극도로 섬세해집니다.
배선 밀도(Congestion): 첨단 노드의 극한 셀 밀도로 인해 균형 잡힌 클럭 트리를 물리적으로 배치하고 배선하는 공간 자체가 부족합니다.

🔧 2026년의 해결 전략

기법 설명 교과서 연결
Useful Skew 의도적으로 스큐를 삽입하여 셋업/홀드 위반을 해결. 한 경로의 여유 시간을 인접 경로에 “빌려주는” 개념 tskew 수식의 역발상 응용
Multi-Source CTS 단일 루트 대신 여러 지역 루트에서 로컬 클럭 트리를 생성하여 전체 지연과 부하를 분산 클럭 스큐 최소화 전략
AOCV/POCV 경로 깊이에 따라 변동성을 차등 적용하는 고급 On-Chip Variation 모델링. 비관적 가드밴드 축소 tpd 변동성 정밀 모델링
AI 기반 CTS ML로 버퍼 배치와 트리 토폴로지를 자동 최적화. Synopsys Fusion Compiler와 Cadence Innovus의 AI 엔진 활용 타이밍 클로저 자동화

교과서의 클럭 스큐 수식 Tc ≥ tpcq + tpd + tsetup + tskew이 현실에서는 수십억 개 경로에 대해 PVT(공정/전압/온도) 코너별로 검증되어야 하며, 2nm 이하에서는 경로 하나하나의 변동성까지 통계적으로 모델링됩니다. 교과서의 단순한 수식이 실제 산업에서는 수백만 줄의 STA 리포트로 구체화되는 것입니다.

CDC(Clock Domain Crossing) — 다중 클럭 도메인의 도전

현대 SoC는 단일 클럭 도메인이 아닌 수십~수백 개의 클럭 도메인으로 구성됩니다. 서로 다른 주파수의 클럭 도메인 간 데이터를 전달할 때 메타스테이블리티가 발생할 수 있으며, 이를 방지하기 위해 2-stage 동기화기(Synchronizer), 비동기 FIFO, 핸드셰이크 프로토콜 등이 사용됩니다. CDC 검증은 Synopsys SpyGlass CDC, Cadence JasperGold CDC 같은 전용 도구로 수행됩니다.

📋 핵심 요약

주제 핵심 포인트 핵심 수식/도구
순차 논리 기초 출력 = f(현재 입력, 과거 상태). 피드백 경로 존재
래치 vs 플립플롭 D래치=레벨 민감, D플립플롭=에지 트리거 (Master-Slave) always_ff @(posedge clk)
FSM Moore(상태→출력) vs Mealy(상태+입력→출력). 5단계 설계 상태 전이도 → HDL
셋업 제약 최대 주파수 결정. Critical Path 기반 Tc ≥ tpcq+tpd+tsetup
홀드 제약 주파수 무관. 위반 시 ECO 필요 tccq+tcd ≥ thold
클럭 스큐 양쪽 제약 모두 악화. CTS로 최소화 PrimeTime, Tempus STA
파이프라이닝 Latency 유지, Throughput N배 향상 Tc = max(stage delay) + overhead
2026 CTS 트렌드 Useful Skew, MS-CTS, AOCV, AI 최적화 Fusion Compiler, Innovus

댓글

이 블로그의 인기 게시물

📚 SDC 마스터 클래스 시리즈 | Chapter 1

📚 SDC 마스터 클래스 시리즈 | Chapter 2

📚 SDC 마스터 클래스 시리즈 | Chapter 3