RTL to GDS — 반도체 칩 설계의 완전한 해부Semiconductor Design · Whitepaper
RTL to GDS
트랜지스터 하나에서 수십억 개의 게이트로 이루어진 실리콘까지 — 반도체 칩 설계의 완전한 해부
TL;DR — 전체 흐름 요약Transistor물리가 논리가 된다. 전압으로 제어하는 ON/OFF 스위치.→ 스위치 소자Logic Gate스위치가 모여 Boolean 연산을 수행하는 게이트가 된다.→ AND, OR, NOT, XORRTL Design회로를 HDL로 추상화해 기술한다. Gate 배치는 신경 쓰지 않는다.→ Verilog / VHDL 소스SynthesisHDL을 실제 Gate 셀 연결로 컴파일한다.→ Gate-level netlistPhysical DesignGate를 실리콘 위에 배치하고 금속선으로 연결한다.→ Layout databaseTape-out (GDS)최종 geometry를 파운드리에 넘겨 제조를 개시한다.→ GDS file → FabDefinition
RTL-to-GDS란 무엇인가
RTL-to-GDS(Register Transfer Level to Graphic Data System)는 디지털 집적 회로 개발에 사용되는 엔드투엔드 설계 흐름이다. 엔지니어가 HDL(Hardware Description Language)로 작성한 칩의 동작 기술(behavioral description)에서 시작해, 반도체 파운드리가 실제 소자를 제조하는 데 사용하는 기하학적 레이아웃 파일까지의 모든 단계를 포함한다. 현업에서는 RTL2GDS, 혹은 단순히 "design flow" 또는 "implementation flow"라고도 부른다.
이 흐름은 추상화의 연쇄다. 각 단계는 이전 단계의 출력을 받아 더 구체적이고 물리적인 표현으로 변환한다. 트랜지스터의 물리적 특성에서 출발해, 논리 게이트, 레지스터, RTL 코드, 합성된 넷리스트, 배치된 셀, 배선된 레이아웃, 최종 GDS 파일에 이르기까지 — 각 단계는 이전 단계 없이 존재할 수 없다.
Introduction
왜 이 흐름이 존재하는가
현대 SoC(System-on-Chip)는 수십억 개의 트랜지스터, 복수의 프로세서 코어, 메모리 컨트롤러, 고속 I/O 인터페이스, 아날로그 서브시스템을 손톱만 한 실리콘 위에 통합한다. 이 수준의 복잡도는 수동 설계로 접근하는 것이 불가능하다.
집적 회로 설계의 초창기에는 엔지니어가 트랜지스터와 배선을 종이에 직접 그리거나 디지타이저 태블릿으로 입력했다. 트랜지스터 수가 수천 개에서 수백만, 수십억 개로 증가하면서 그 방식은 범주적으로 불가능해졌다. RTL-to-GDS 흐름과 이를 지원하는 EDA(Electronic Design Automation) 소프트웨어 산업은 바로 이 복잡도를 관리하기 위해 탄생했다. 유한한 시간 안에 예측 가능한 방식으로 수십억 개 트랜지스터 칩을 설계할 수 있게 해주는 것이 이 방법론의 존재 이유다.
Background & Context
물리적 기반 — 반도체란 무엇인가
반도체(Semiconductor) 소재
도체(conductor)는 전류를 자유롭게 흐르게 한다. 부도체(insulator)는 완전히 막는다. 반도체(semiconductor)는 그 사이에 있다 — 특정 조건에서는 전도하고, 다른 조건에서는 차단한다. 실리콘(silicon)이 그 대표적 예시다. 순수한 실리콘은 전도성이 낮지만, 도핑(doping)이라는 공정으로 제어된 불순물을 주입하면 전기적 특성이 정밀하게 조정 가능해진다.
이 제어 가능성이 현대 전자공학 전체의 물리적 토대다. 지구상에 존재하는 모든 CPU, GPU, 메모리 칩은 도핑된 실리콘의 동일한 근본 특성을 이용한다.
Process node: "3nm"는 무엇을 의미하는가
언론에서 자주 접하는 "TSMC N3," "Samsung 3GAE," "Intel 18A" 같은 공정 노드 이름은 원래 트랜지스터 게이트 길이의 물리적 치수에서 유래했다. 그러나 현재 관행에서 이 숫자는 정확한 물리적 치수보다 세대적 레이블로 기능한다. 노드 숫자가 작을수록 단위 면적당 트랜지스터 밀도가 높고 동적 전력 소모가 낮다는 것이 신뢰할 수 있는 의미다.
| 세대 | 구조 | 핵심 특성 | 적용 노드 |
|---|---|---|---|
| Planar | 게이트가 평면 채널 위에 위치 | 단순하지만 28nm 이하에서 누설 전류 제어 한계 | ≥ 28nm |
| FinFET | 게이트가 핀(fin) 형태의 채널 3면을 감쌈 | 정전기적 제어력 향상, 미세화 가능 | 16nm ~ 3nm |
| GAA (Gate-All-Around) | 게이트가 채널을 완전히 둘러쌈 | 최고 수준의 채널 제어력, 3nm 이하 필수 | ≤ 3nm |
Samsung의 3GAE와 TSMC의 N2는 산업계의 FinFET에서 GAA 아키텍처로의 전환을 대표한다. 이 전환은 단순한 형태 변화가 아니라 채널 전류 제어 방식의 근본적 패러다임 전환이다.
Core Concepts
설계의 기본 단위들
1. 트랜지스터 — 물리가 스위치가 되는 순간
트랜지스터는 현대 디지털 로직의 분할 불가능한 단위다. 칩 안의 모든 연산, 모든 메모리 동작, 모든 신호 전송은 궁극적으로 두 상태 사이를 전환하는 트랜지스터로 귀결된다.
VDD (전원)
│
┌──────┴──────┐
│ │
Gate ──► [채널] ← 전압에 의해 ON/OFF 제어
│ │
└──────┬──────┘
│
GND
Gate에 전압 인가 → 채널 개방 → 전류 흐름 (1)
Gate에 전압 없음 → 채널 차단 → 전류 차단 (0)MOSFET 트랜지스터 동작 원리 — 전압 제어 스위치
이 이진 스위칭 동작이야말로 디지털 시스템이 2진법으로 작동하는 이유다. 트랜지스터는 두 개의 안정적이고 노이즈에 강한 상태를 가진다. 중간 상태는 공정 편차, 온도, 전자기 간섭에 의해 열화되어 신호 무결성을 해친다. 2진 인코딩의 선택은 철학적 결정이 아니라 트랜지스터 물리학의 직접적 귀결이다.
2. Logic Gate — 스위치에서 연산으로
트랜지스터 하나는 단 하나의 질문에 답한다: 전압이 있는가 없는가. 연산은 더 복잡한 질문을 요구한다. 복수의 트랜지스터를 구조화된 방식으로 결합하면, 특정 Boolean 연산을 수행하는 로직 게이트가 만들어진다.
NOT (Inverter) AND Gate OR Gate
─────────────── ─────────────── ───────────────
A ──►[▷o]── Y A ─┐ A ─┐
B ─┤[&]─── Y B ─┤[≥1]── Y
Y = Ā Y = A · B Y = A + B
XOR Gate NAND Gate NOR Gate
─────────────── ─────────────── ───────────────
A ─┐ A ─┐ A ─┐
B ─┤[=1]── Y B ─┤[&o]── Y B ─┤[≥1o]─ Y
Y = A ⊕ B Y = ̄(A·B) Y = ̄(A+B)6대 기본 로직 게이트 — Boolean 연산의 물리적 구현
이 세 가지 원시 게이트(AND, OR, NOT)로부터 다른 모든 게이트를 유도할 수 있다. 그리고 그 게이트들로부터, 계산 가능한 모든 함수를 구현할 수 있다. 이것은 추측이 아니라, Boolean 기저 {AND, OR, NOT}의 완전성(completeness)에서 따라오는 확립된 결과다.
게이트에서 산술로 — Half Adder
개별 게이트에서 의미있는 연산으로의 도약은 생각보다 짧다. 가장 간단한 산술 회로인 1비트 Half Adder를 보자. 두 개의 단일 비트 입력 A와 B를 받아 합(S)과 올림수(C)를 출력한다.
| A | B | S (Sum) | C (Carry) | 게이트 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | S = A XOR B C = A AND B |
| 0 | 1 | 1 | 0 | |
| 1 | 0 | 1 | 0 | |
| 1 | 1 | 0 | 1 |
S는 A와 B가 다를 때 1이 된다 — 이것이 XOR의 정의다. C는 A와 B가 모두 1일 때만 1이 된다 — 이것이 AND의 정의다. 게이트 두 개. 덧셈기 하나. 이 원리를 확장하면 모든 프로세서 안의 ALU(Arithmetic Logic Unit)가 만들어진다.
PDK와 Standard Cell Library
파운드리와 PDK의 선택은 프로젝트에서 가장 결과적인 결정 중 하나다. 프로젝트 중반에 파운드리를 변경하는 것은 사실상 처음부터 재설계를 의미한다.
PDK(Process Design Kit)는 파운드리가 제공하는 기술 패키지로, 특정 제조 공정에서 트랜지스터가 어떻게 동작하는지 정의한다. 소자 모델, 설계 규칙, 기생 성분 정보, 레이어 정의를 포함한다. TSMC N3 PDK로 설계된 칩은 오직 TSMC의 N3 공정에서만 제조할 수 있다 — 물리적 파라미터는 설계와 분리될 수 없다.
Standard Cell Library는 특정 PDK 위에 구축된 사전 설계·사전 특성화된 게이트 셀의 큐레이팅된 집합이다. 각 셀(AND, OR, NOT, XOR, Flip-Flop)은 타이밍 모델(얼마나 빠르게 전환하는가), 전력 모델(얼마나 많은 에너지를 소비하는가), 면적 데이터(얼마나 많은 실리콘을 차지하는가)와 함께 제공된다.
3. Flip-Flop과 Clock — 기억과 동기화
조합 논리(combinational logic)만으로는 상태를 유지할 수 없다. 게이트 단독으로는 입력이 바뀌면 출력도 즉시 바뀐다 — 저장 능력이 없다. 순차적 연산에는 중간 결과를 보존하는 저장 능력이 필요하며, 그 기본 저장 소자가 Flip-Flop이다.
D ──────┤> ├──── Q
CLK ─────┤ ├
└───┘
D Flip-Flop
CLK의 상승 에지(rising edge)에서 D의 값을 샘플링해 Q에 저장.
다음 CLK 에지까지 Q 값은 D 변화와 무관하게 유지됨.
여러 개의 FF를 병렬로 묶은 것이 레지스터(Register).D-type Flip-Flop — 1비트 동기 저장 회로
Clock은 칩의 모든 Flip-Flop에 배포되는 주기적 구형파다. 모든 클락 에지는 설계 전체에 걸쳐 동시적인 상태 업데이트를 트리거한다 — 이것이 동기 설계(synchronous design)다. 클락 주파수(GHz 단위)는 단위 시간당 칩이 수행할 수 있는 연산량을 결정한다.
클락 에지 사이마다, 조합 논리는 유효한 출력으로 안정되어야 한다. 논리 경로가 하나의 클락 주기보다 오래 걸리면, Flip-Flop은 잘못된 값을 샘플링한다. 이 제약 — 셋업 타임(setup time) 충족 — 이 정적 타이밍 분석(STA)의 핵심 과제다.
4. Architecture — 칩이 무엇을 할 것인가
아키텍처는 근본적인 질문에 답한다: 이 칩은 무엇을 하는가, 그리고 내부 구조가 그것을 어떻게 달성하는가. 아키텍처 결정은 명령어 집합(instruction set), 병렬성 모델, 메모리 계층, 대역폭 요구사항, 전력 엔벨로프를 결정한다.
모바일 배터리 구동 환경을 위한 칩과 액체 냉각 데이터센터 랙을 위한 칩은, 동일한 수학적 연산을 구현하더라도 아키텍처 수준에서 완전히 다른 모습을 띤다. 이 단계에서 내려지는 아키텍처 결정은 설계 흐름의 모든 후속 단계에 전파된다.
Silicon IP — 검증된 설계의 재사용
현대 칩은 모든 기능 블록을 처음부터 설계하지 않는다. 검증된 회로 블록 — IP(Intellectual Property) — 을 라이선스해 사용하는 것이 표준이다. 주요 IP 카테고리는 다음과 같다:
IP
Processor Core
ARM이 모바일·임베디드를 지배한다. RISC-V는 SiFive 등 상업 벤더를 통해 빠르게 성장 중이다.
IP
High-speed I/O Interface
PCIe, CXL, USB, Ethernet SerDes — Synopsys, Cadence, Alphawave Semi, Rambus가 주요 공급자다.
IP
Memory Interface
DDR, LPDDR, HBM, GDDR 컨트롤러 및 PHY. 메모리 대역폭은 현대 SoC 성능의 핵심 제약이다.
IP
Die-to-Die Interconnect
UCIe, BoW, 독점 인터페이스 — 칩렛(chiplet) 기반 설계의 부상과 함께 중요성이 급증하고 있다.
Implementation — RTL-to-GDS Pipeline
파이프라인 단계별 상세 해부
5. RTL 설계 — 언어로 회로를 기술하다
아키텍처가 정의되고 IP 선택이 완료되면, 엔지니어는 RTL(Register Transfer Level)에서 설계를 구현하기 시작한다. RTL은 오늘날 대부분의 디지털 설계가 이루어지는 추상화 레이어다. 개별 트랜지스터나 게이트를 명시하는 대신, 레지스터와 그 사이에서 데이터를 변환하는 조합 논리의 관점에서 설계를 기술한다.
RTL은 HDL(Hardware Description Language)로 작성되며, 가장 일반적으로 Verilog 또는 SystemVerilog가 사용된다. 문법은 표면적으로 소프트웨어 코드를 닮았지만, 의미론은 근본적으로 다르다: HDL은 순차적으로 실행되는 명령어가 아니라 병렬로 동작하는 하드웨어를 기술한다.
counter_4bit.v — RTL 설계 예시// 4비트 동기 카운터 — RTL 기술 예시
// CLK 상승 에지마다 count를 1씩 증가 (0~15 순환)
module counter_4bit (
input clk,
input rst_n, // active-low reset
output reg [3:0] count
);
always @(posedge clk or negedge rst_n) begin
if (!rst_n)
count <= 4'b0000; // 비동기 리셋
else
count <= count + 1'b1; // 1 증가
end
endmodule
이 RTL 블록은 매 상승 클락 에지마다 증가하는 레지스터를 기술한다. 어떤 게이트가 덧셈을 구현하는지, Flip-Flop이 물리적으로 어떻게 배열되는지는 전혀 언급하지 않는다. 그 결정은 다음 단계인 합성(synthesis)에서 이루어진다. 동작 의도와 물리적 구현의 이 분리가 RTL 설계의 정의적 특성이다.
검증에 대해
RTL 설계와 RTL 검증은 동시에 진행된다. 기능 검증 — RTL이 사양대로 동작하는지 확인 — 은 시뮬레이션, 형식 검증(formal verification), FPGA 기반 에뮬레이션을 통해 수행된다. 현대 프로젝트에서 검증은 설계 자체보다 일관되게 더 많은 엔지니어링 노력을 소비한다. 제조 후 기능 버그를 발견하는 비용은 시뮬레이션에서 발견하는 것보다 몇 자릿수 더 크다.
6. 합성(Synthesis) — RTL을 Gate로 컴파일하다
합성은 RTL 소스 코드를 게이트 레벨 넷리스트(netlist)로 자동 변환하는 과정이다. 소프트웨어 컴파일러가 소스 코드를 기계어로 변환하는 것과 유사하다. 합성 툴은 HDL을 읽고, 로직 최적화를 적용하여, 타겟 라이브러리에서 사용 가능한 표준 셀로 표현된 출력을 생성한다.
①
Translation
HDL 소스를 파싱해 기술 독립적(technology-independent)인 일반적 Boolean 표현으로 변환한다.
②
Optimization
Boolean 대수, 중복 제거, 기술 독립적 재구성을 사용해 일반 논리를 단순화한다. 제공된 제약 조건에 따라 최소 면적, 지연, 또는 전력을 목표로 한다.
③
Technology Mapping
최적화된 논리를 Standard Cell Library의 실제 셀에 매핑한다. 덧셈기, 멀티플렉서, 레지스터가 특정 라이브러리 인스턴스로 표현된다.
counter.v (synthesized) — 합성된 게이트 레벨 넷리스트// 합성 결과물: Gate-level netlist 발췌
// RTL의 추상적 설명이 실제 셀 인스턴스로 변환됨
DFFX1 count_reg_0 (.D(n_next_0), .CK(clk), .Q(count[0]));
DFFX1 count_reg_1 (.D(n_next_1), .CK(clk), .Q(count[1]));
DFFX1 count_reg_2 (.D(n_next_2), .CK(clk), .Q(count[2]));
DFFX1 count_reg_3 (.D(n_next_3), .CK(clk), .Q(count[3]));
XOR2X1 U_xor_0 (.A(count[0]), .B(1'b1), .Y(n_next_0));
XOR2X1 U_xor_1 (.A(count[1]), .B(n_carry_0), .Y(n_next_1));
AND2X1 U_and_0 (.A(count[0]), .B(1'b1), .Y(n_carry_0));
7. Physical Design — 게이트를 실리콘 위에 구현하다
Physical Design — 흔히 PnR(Place-and-Route) 또는 백엔드 구현이라 불림 — 은 게이트 레벨 넷리스트를 실제 실리콘 위의 기하학적 레이아웃으로 변환한다. 추상적 연결이 물리적 현실이 되는 지점: 실제 위치에 놓인 실제 트랜지스터들이 실제 금속선으로 연결된다.
Physical Design 단계별 흐름①
Floorplanning
칩의 전체 기하학과 주요 기능 블록의 배치를 확립한다. 다이 면적과 종횡비, I/O 패드 위치, 메모리·아날로그 블록 같은 매크로 배치, 전원 분배 네트워크(PDN) 그리드를 결정한다. Floorplan 품질은 모든 후속 단계에 연쇄적 영향을 미친다.
②
Placement
Floorplan 위에 모든 Standard Cell 인스턴스에 물리적 좌표를 할당한다. 현대 SoC는 수억 개의 셀을 포함할 수 있으며, 타이밍·congestion·밀도 제약을 동시에 만족하는 배치를 찾는 것은 계산 집약적 최적화 문제다. 타이밍 크리티컬 경로의 셀은 가까이 배치하고, 특정 영역의 셀 과밀집을 방지해 이후 라우팅 공간을 확보해야 한다.
③
CTS (Clock Tree Synthesis)
칩의 모든 Flip-Flop에 클락 신호를 배포하되, 각 FF에서의 도착 시간을 수십 피코초 수준으로 제어한다. 클락 신호도 전선을 타고 이동하므로 시간이 걸린다 — 칩 한쪽 끝과 반대쪽 끝의 FF가 클락을 받는 시점 차이(clock skew)가 크면 회로가 오작동한다. CTS는 계층적 버퍼 트리를 구성해 도착 시간을 균등화한다.
④
Routing
넷리스트의 모든 신호를 연결하는 금속 배선을 그린다. 현대 칩은 10개 이상의 금속 레이어를 사용한다 — 수직으로 적층하고 비아(via)로 연결해 수십억 개의 연결을 소화한다. DRC(Design Rule Check)와 LVS(Layout-vs-Schematic) 검증으로 레이아웃이 파운드리 규칙과 원본 넷리스트에 부합하는지 확인한다.
Clock Tree Synthesis — 클락 분배 구조
[Clock Source]
│
┌─────────┴─────────┐
[BUF] [BUF]
│ │
┌─────┴─────┐ ┌─────┴─────┐
[BUF] [BUF] [BUF] [BUF]
│ │ │ │
[FF_0] [FF_1] [FF_2] [FF_3]
목표: 모든 FF에서 클락 도착 시간의 편차(skew)를 최소화.
버퍼 삽입과 배선 길이 조정으로 도착 시간 균등화.Clock Tree — 심장 박동을 전체 칩에 균등하게 배포
아날로그 회로 — PLL, ADC/DAC, SerDes 프론트엔드, 밴드갭 기준 전압 — 는 자동 합성이 불가능하다. 성능이 트랜지스터 사이징, 매칭, 대칭, 기생 캐패시턴스에 극도로 민감하기 때문이다. 이러한 커스텀 레이아웃 작업에는 Cadence Virtuoso가 사실상 업계 표준으로 사용된다.
8. GDS와 Tape-out
모든 구현 단계가 완료되고 물리 검증이 완전히 통과되면, 설계는 GDS(Graphic Data System) 파일로 내보내진다. GDS는 칩 레이아웃의 모든 레이어 위의 모든 폴리곤을 인코딩하는 계층적 바이너리 포맷이다 — 파운드리가 포토마스크(photomask) 제조에 사용하는 정확한 기하학이다.
Tape-out
GDS 파일을 파운드리에 전달하는 것이 Tape-out이다. 이 순간이 설계에서 제조로의 전환을 표시한다. 용어의 기원은 설계 데이터를 자기 테이프로 전달하던 시대다. 현대적 용법에서 Tape-out은 설계 팀의 작업이 완료되고 칩이 제조에 진입했음을 의미한다. Tape-out 이후 파운드리는 자체 검증 단계를 거쳐 마스크 생산을 확정하며, 이후 수백 단계의 제조 공정이 수개월에 걸쳐 진행된다.
9. EDA — 설계의 소프트웨어 인프라
RTL-to-GDS 흐름의 모든 단계는 전문 소프트웨어 도구에 의존한다. EDA(Electronic Design Automation) 산업이 이 인프라를 제공한다. 세 회사가 상업용 EDA 소프트웨어의 대부분을 공급한다.
Synopsys시장 선도 — 1위
- Design Compiler / Fusion Compiler 합성
- IC Compiler 2 Place & Route
- PrimeTime Static Timing Analysis
- VCS 시뮬레이션
- VC Formal Formal Verification
Cadence주요 경쟁자 — 2위
- Genus 합성
- Innovus Place & Route
- Tempus Static Timing Analysis
- Xcelium 시뮬레이션
- Virtuoso 아날로그·커스텀 레이아웃
Siemens EDA구 Mentor Graphics
- Questa 시뮬레이션 & Formal
- Calibre DRC/LVS — 업계 sign-off 표준
- Tessent Design-for-Test
EDA 툴 라이선스는 설계 조직에 상당한 고정 비용을 부과한다. 대형 반도체 기업은 EDA 벤더와 다년 엔터프라이즈 계약을 체결하며, 소규모 팹리스 스타트업이나 학술 기관은 접근에 상당한 장벽에 직면한다. 오픈소스 EDA 툴(OpenROAD, Yosys, Magic)의 등장은 교육·연구 분야의 장벽을 낮추기 시작했지만, 상업적 sign-off 품질은 여전히 독점 영역에 머물러 있다.
References & Remarks
참고 자료 및 주석
심화 학습을 위한 권장 자료
CMOS VLSI Design
Weste & Harris 저. 디지털 IC 설계의 표준 교과서. 회로 원리에서 전체 설계 흐름까지 엄밀하게 다룬다.
Digital Integrated Circuits
Rabaey, Chandrakasan & Nikolić 저. 회로 레벨 동작 이해에 필수적이다.
Synopsys / Cadence 방법론 문서
두 회사 모두 기술 문서 포털을 통해 방법론 가이드와 백서를 공개적으로 게시한다.
파운드리 PDK 문서
TSMC, Samsung, Intel Foundry는 공정 설계 킷 개요와 설계 지원 문서를 인증된 고객에게 제공한다.
용어 주석
"백엔드 설계(back-end design)"라는 용어는 업계에서 일관되지 않게 사용된다. 일부 조직은 Physical Design만을 지칭하고, 다른 곳은 합성까지 포함한다. "프론트엔드"(RTL 이상)와 "백엔드"(합성 이하 또는 Physical Design만)의 구분은 항상 문맥 안에서 명확히 해야 한다.
"Tape-out"은 구어적으로 GDS 전달이 아닌 내부 설계 마일스톤 동결을 지칭하는 데도 확장해 사용된다. 공식적 기술 문맥에서는 GDS를 파운드리에 전달하는 사건이라는 정밀한 의미를 유지해야 한다.
복잡도와 시간에 대해
일반적인 모바일 SoC 설계는 RTL 동결부터 첫 실리콘까지 18개월에서 36개월이 걸린다. 선단 공정 노드에서의 대형 칩 Physical Design 단독으로도 수십 명의 엔지니어 팀이 1년 이상 투입될 수 있다. RTL-to-GDS 흐름은 단순한 기술 절차가 아니다 — 반도체 산업의 경쟁적 템포를 정의하는 지속적인 조직적·공학적 노력이다.
RTL to GDS
반도체 설계 방법론 시리즈 — 다음 편: Static Timing Analysis, Physical Verification, Design-for-Test