티스토리 뷰
ASIC DEF·LEF 차이와 RTL·Netlist 차이 총정리 | P&R 입력·출력 파일 한눈에
혜숑(hyeshong) 2023. 7. 24. 23:11목차
ASIC 물리 설계(Place & Route)를 처음 접하면 RTL, Netlist, LEF, DEF, Liberty 같은 파일 이름이 한꺼번에 나와서 헷갈립니다. 이름은 비슷하지만 담고 있는 정보와 쓰이는 단계가 전부 다릅니다. 이 글에서는 DEF와 LEF의 차이, RTL과 Netlist의 차이, 그리고 설계 흐름에서 각 파일이 어디에 쓰이는지를 표와 예시로 정리했습니다.
※ 개념 이해를 위해 단순화한 설명과 예시입니다. 실제 파일 문법과 항목은 사용하는 EDA 툴(Cadence, Synopsys 등)과 공정 라이브러리 문서를 기준으로 확인하세요.
한눈에 비교
| 파일 | 이름의 뜻 | 담고 있는 정보 | 주로 쓰이는 단계 |
|---|---|---|---|
| RTL | Register Transfer Level | 레지스터 사이의 데이터 흐름과 동작(Verilog/VHDL) | 합성(Synthesis)의 입력 |
| Netlist | Gate-level netlist | 표준 셀 인스턴스와 그 연결(net) | 합성의 결과, Place & Route의 입력 |
| Liberty (.lib) | Liberty timing library | 셀의 타이밍·전력 모델 | 합성, STA, P&R 최적화 |
| LEF | Library Exchange Format | 공정(레이어·비아·설계 규칙)과 셀의 물리 정보(크기, 핀 위치, 장애물) | Place & Route의 입력 |
| DEF | Design Exchange Format | 특정 설계의 물리 배치·배선 결과(다이 영역, 셀 위치, 핀, 넷) | P&R 입출력, 단계 간 데이터 교환 |
| GDSII / OASIS | — | 마스크 제작용 최종 레이아웃 도형 데이터 | Tape-out |
RTL과 Netlist의 차이
RTL: "무엇을 하는가"를 쓴 코드
RTL은 레지스터와 그 사이의 조합 로직을 동작 수준으로 기술한 코드입니다. 설계자가 직접 작성하며, 어떤 게이트로 구현할지는 정하지 않습니다.
always @(posedge clk) begin
q <= d & en;
end
Netlist: "어떤 부품을 어떻게 연결했는가"
Netlist는 합성 툴이 RTL을 공정 라이브러리의 표준 셀로 바꾼 결과입니다. 어떤 셀을 몇 개 쓰고 핀을 어떻게 연결했는지가 담겨 있습니다.
AND2X1 u1 (.A(d), .B(en), .Y(n1));
DFFX1 u2 (.D(n1), .CK(clk), .Q(q));
위 셀 이름(AND2X1, DFFX1)은 예시이며, 실제 이름은 사용하는 공정 라이브러리마다 다릅니다.
| 구분 | RTL | Netlist |
|---|---|---|
| 추상화 수준 | 동작(Behavior) 수준 | 게이트(셀) 수준 |
| 누가 만드나 | 설계자(사람) | 합성 툴 |
| 공정 의존성 | 없음 (공정 독립) | 있음 (특정 라이브러리 셀 사용) |
| 핵심 용도 | 기능 검증, 합성 입력 | 타이밍 분석, P&R 입력 |
LEF: 셀과 공정의 "물리적 설명서"
LEF는 레이아웃 툴이 셀을 배치하고 배선하는 데 필요한 물리 정보를 담은 파일입니다. 보통 두 종류로 나뉩니다.
- Technology LEF: 금속 레이어, 비아, 배선 간격·폭 같은 공정 설계 규칙, 배치 격자(site) 정의
- Cell(Macro) LEF: 각 셀의 크기, 핀 위치와 방향, 장애물(obstruction) 같은 추상화된 물리 정보
MACRO AND2X1
CLASS CORE ;
SIZE 1.2 BY 2.4 ;
PIN A
DIRECTION INPUT ;
END A
PIN Y
DIRECTION OUTPUT ;
END Y
END AND2X1
(개념 설명용으로 대폭 줄인 예시입니다.)
자주 하는 오해: LEF에 타이밍이 들어 있다?
아닙니다. LEF에는 셀의 지연 시간이나 전력 같은 타이밍·전력 정보가 들어 있지 않습니다. 그 정보는 Liberty(.lib) 파일에 있습니다. 즉 LEF는 "생김새와 규칙", Liberty는 "성능"을 설명한다고 구분하면 쉽습니다.
DEF: 이 설계의 "배치·배선 결과 도면"
DEF는 특정 설계 하나의 물리 정보를 담습니다. 라이브러리 정보(LEF)와 달리, 이 칩에서 각 셀이 어디에 놓였는지를 기록합니다. 주요 항목은 다음과 같습니다.
- DIEAREA: 칩(다이)의 영역
- ROW: 셀을 올릴 수 있는 행(배치 격자)
- COMPONENTS: 배치된 셀(인스턴스)과 그 좌표·방향
- PINS: 칩의 입출력 핀 위치
- NETS / SPECIALNETS: 신호 및 전원 넷과 배선 정보
DESIGN top ;
UNITS DISTANCE MICRONS 1000 ;
DIEAREA ( 0 0 ) ( 100000 100000 ) ;
COMPONENTS 2 ;
- u1 AND2X1 + PLACED ( 1000 2000 ) N ;
- u2 DFFX1 + PLACED ( 3000 2000 ) N ;
END COMPONENTS
NETS 1 ;
- n1 ( u1 Y ) ( u2 D ) ;
END NETS
END DESIGN
(마찬가지로 개념 설명용으로 줄인 예시입니다.)
설계 흐름에서 각 파일은 어디에 쓰이나
- RTL 작성 → 기능 시뮬레이션으로 검증
- 합성(Synthesis): 입력은 RTL + Liberty + 제약 파일(SDC), 출력은 Netlist
- Place & Route: 입력은 Netlist + LEF + Liberty + SDC, 출력은 배치·배선된 설계(DEF 등)
- 검증(STA, DRC, LVS): 타이밍과 레이아웃 규칙 확인
- Tape-out: 최종 레이아웃을 GDSII/OASIS로 내보내 마스크 제작
툴에 따라 라이브러리 형식이 다를 수 있습니다. 예를 들어 Synopsys의 IC Compiler II는 LEF 대신 자체 라이브러리 형식(NDM)을 쓰기도 합니다.
자주 묻는 질문
Q. DEF와 LEF를 한 줄로 구분하면?
LEF는 "부품과 공정의 규격"이고, DEF는 "그 부품을 이 칩에 실제로 어디에 놓았는지"입니다.
Q. Netlist만 있으면 레이아웃을 만들 수 있나요?
아닙니다. Netlist에는 연결 관계만 있고 위치 정보가 없습니다. 레이아웃을 만들려면 셀의 물리 정보(LEF)와 공정 규칙이 필요합니다.
Q. DEF는 어디서 생기나요?
Place & Route 툴이 배치와 배선을 진행하면서 만들거나, 플로어플랜 단계의 결과를 다음 단계로 넘길 때 내보냅니다.
Q. 타이밍 정보는 어느 파일에 있나요?
Liberty(.lib)에 있습니다. LEF나 DEF가 아닙니다.
정리
- RTL은 동작을 쓴 코드, Netlist는 셀 연결 결과
- LEF는 공정·셀의 물리 규격(크기, 핀, 규칙), 타이밍은 없음
- DEF는 특정 설계의 배치·배선 결과(좌표, 넷)
- Liberty는 타이밍·전력, GDSII는 마스크용 최종 도형
'반도체 공정 및 설계 > ASIC 설계' 카테고리의 다른 글
| 논리게이트 총정리 | AND·OR·NOT·NAND·NOR·XOR 진리표와 CMOS 구현 차이 (0) | 2023.07.25 |
|---|---|
| target library와 link library 차이 | Design Compiler 라이브러리 설정 총정리 (2) | 2023.07.25 |
| ASIC & IP (0) | 2022.12.27 |
| 커스텀 레이아웃(Custom layout) (0) | 2022.12.27 |
| floorplan (1) | 2022.12.27 |