Chapter 14
칩 하나 끝까지
지금까지 각 단계를 따로 배웠다. 이 장에서는 그 모든 단계를 한 번에 이어서 돌린다. 논리식 한 줄을 쓰면 그것이 게이트로 합성되고, 4장의 표준 셀로 한 행에 배치되고, 금속으로 배선되고, 배선 길이까지 반영해 타이밍을 계산하고, 설계 규칙과 회로를 검증한 뒤, 마스크 열두 장과 진짜 GDSII 파일이 나온다. 그 파일은 KLayout 같은 실제 레이아웃 도구에서 열린다.
- RTL → 합성 → 배치 → 배선 → STA → DRC·LVS → 마스크로 이어지는 흐름에서 각 단계의 입력과 출력을 확인한다.
- 식을 바꾸면 게이트 수·면적·배선 트랙·임계 경로·마스크가 어떻게 함께 바뀌는지 본다.
- 버그를 일부러 넣고 어느 검증 단계가 그것을 잡는지 확인한다.
설계 흐름 실행기
FLOW
식 → GDSII
연산자:
~ NOT · & AND · ^ XOR · | OR · 괄호. 한 줄에 출력 하나.진리표 (입력 5개까지)
입력한 식은 Verilog
assign 문의 조합 논리다. 2장에서 본 것처럼 이 코드는 차례로 실행되는 명령이 아니라 동시에 존재하는 회로의 설명이다. 오른쪽 진리표는 원래 식으로 계산한 값이며, 합성 탭에서 이 표와 합성 결과를 모든 입력 조합으로 비교한다(등가성 검사).해볼 것: ① 최적화를 끄면 AND = NAND + INV, OR = NOR + INV, XOR = NAND 4개로 바꾼 그대로가 나온다. 켜면 INV 두 개가 겹친 곳이 사라지고, INV 두 개를 입력으로 받는 NAND가 NOR + INV로 바뀌는 식의 정리가 일어난다(3장). ② 같은 부분식(전가산기의 A ^ B)은 한 번만 만들어 두 출력이 함께 쓴다. ③ 등가성 검사는 모든 입력 조합에서 원래 식과 같은지 확인한다.
해볼 것: ① 처음 배치는 게이트를 논리 깊이(입력에서 먼 정도) 순서로 늘어놓는다. 신호가 왼쪽에서 오른쪽으로 흘러 배선이 짧다. ② 무작위 배치에서 시작을 누르고 재생하면, 두 셀의 자리를 바꿔 HPWL(5장)이 줄어들 때만 받아들이는 개선이 단계별로 보인다. 곡선(선)은 넷마다 핀을 잇는 플라이라인이다. 입력은 왼쪽 끝, 출력은 오른쪽 끝에서 들어오고 나간다.
강조할 넷
셀 행 위에 배선 채널을 두고, 넷마다 M1 수평 트랙 하나와 핀에서 올라오는 M2 수직 기둥, 그 양끝의 V1 비아로 잇는다. 트랙은 왼쪽 끝이 작은 넷부터 겹치지 않는 가장 아래 트랙에 넣는 좌측 우선 알고리즘(left-edge)으로 정했다. 한 행·한쪽 채널에서는 이것이 트랙 수를 최소로 만든다. 7장의 미로 배선기는 이런 채널 구조가 없는 일반적인 경우를 다룬다.
임계 경로 지연—
슬랙—
fmax—
배선 C의 몫—
입력은 앞단 플롭에서 시각 0에 출발하고, 출력은 다음 클럭 엣지보다 셋업 20 ps 먼저 도착해야 한다고 가정했다(8장). 게이트 지연은 논리적 노력 \(d = \tau(p + gh)\), \(\tau\) = 3 ps(FO4 = 15 ps)로 계산하고, 부하 \(h\)에는 다음 게이트 입력 C와 함께 배선 탭에서 실제로 그린 넷 길이 × 단위 C가 들어간다. 배선 C를 0으로 하면 배치·배선 전(합성 직후)의 추정치가 된다. 둘의 차이가 배선 후 타이밍이 나빠지는 이유다.
버그 넣기
해볼 것: ① 비아를 빼면 DRC는 깨끗하지만 LVS가 핀이 넷에서 떨어진 것(개방)을 소자 연결 불일치로 잡는다. ② 트랙을 이으면 LVS가 두 넷의 단락을 보고한다. ③ 트랙을 넓히면 회로는 같지만 M1 간격 위반으로 DRC가 실패한다. ④ NAND를 NOR로 바꾸면 레이아웃과 넷리스트는 서로 일치(LVS 통과)하지만 RTL과의 등가성 검사가 실패한다. 검사마다 잡는 버그가 다르다(10장, 3장).
마스크 1~10은 ProcessBook 12장 공정 흐름의 번호, 11·12는 그 위의 V1·M2다. 회색은 빛을 막는 크롬이다(12장과 같은 톤: OD·PO는 남길 곳이 어둡고, CO·M1·V1·M2는 구멍이 밝다). 내려받은 .gds 파일은 레이어 번호가 4장 대응표의 GDS 번호와 같아 KLayout 등에서 바로 열린다. 좌표 단위는 1 nm.
게이트 (최적화 전 → 후)—
면적 (셀 행)—
트랜지스터—
배선 트랙 · 길이—
이 실행기가 하는 일과 하지 않는 일
각 단계는 앞 장의 원리를 그대로 축소했다. 합성은 3장의 기술 매핑을, 배치는 5장의 교환 기반 개선을, 배선은 7장의 채널 배선을, 타이밍은 3·8장의 논리적 노력과 배선 C를, 검증은 10장의 DRC 엔진과 4장의 추출기를 쓴다. 공통 논리의 여러 출력 이름은 같은 물리 넷에 별칭 핀으로 남고 출력 부하도 합산한다. 게이트가 있는 회로에 섞인 입력 직결 출력도 배선·검증한다. 실제 도구와 다른 점도 분명히 해 두자.
| 단계 | 이 실행기 | 실제 흐름 |
|---|---|---|
| RTL | 조합 논리식만 | 레지스터·FSM·메모리를 포함한 수백만 줄 RTL (2장) |
| 합성 | INV·NAND2·NOR2, 국소 규칙 최적화 | 수백 종 셀, 타이밍 구동 매핑·사이징·재구성 (3장) |
| 배치 | 한 행, 이웃 교환 | 수천 행, 해석적 전역 배치 + 합법화 + 상세 배치 (5장) |
| CTS | 없음 (조합 논리) | 클럭 트리 합성과 스큐 균형 (6장) |
| 배선 | 한쪽 채널, 좌측 우선 | 10층 이상 금속, 전역·상세 배선, 협상 기반 (7장) |
| STA | 논리적 노력 + 배선 C | NLDM/CCS 표, SPEF 기생, 다중 코너·OCV (8장) |
| 검증 | EDU45 규칙 22개, 이름 기반 LVS | 수천 개 규칙, 그래프 동형 LVS, 안테나·밀도·ERC (10장) |
| 마스크 | 레이어 연산으로 12장 | OPC·SRAF·멀티 패터닝 분해 후 60~100장 (11·12장) |
핵심 정리
- 설계 흐름은 각 단계의 출력이 다음 단계의 입력이 되는 사슬이다. 식 → 넷리스트 → 배치 → 배선 → 기생 → 타이밍 → 레이아웃 → 마스크.
- 앞 단계의 선택(최적화, 배치 순서)이 뒤 단계의 결과(트랙 수, 배선 C, 임계 경로)를 바꾼다.
- 등가성 검사·DRC·LVS는 서로 다른 버그를 잡는다. 셋 모두 통과해야 테이프아웃한다.
- 최종 산출물은 레이어 번호가 붙은 다각형의 파일(GDSII)이고, 그 레이어들이 ProcessBook의 마스크가 된다.