Chapter 15

도전 과제

원리를 안다는 것은 결국 손으로 풀 수 있다는 뜻이다. 이 장에는 앞 장들의 문제를 게임으로 바꾼 네 가지 도전이 있다. 면적 예산 안에서 타이밍을 맞추고, 교차 없이 배선하고, 레이아웃 속 규칙 위반을 찾고, 멀티 패터닝 마스크를 색칠한다. 기록과 배지는 이 브라우저에 저장되며, 맨 아래에서 책 전체의 학습 진행을 한눈에 볼 수 있다.

타이밍 클로저 퍼즐

14장의 흐름으로 합성·배치·배선한 회로가 목표 주기를 맞추지 못한다. 게이트를 눌러 크기를 X1 → X2 → X4 → X1로 바꿀 수 있다. 크게 하면 그 게이트는 빨라지지만 입력 커패시턴스가 커져 앞단 게이트가 느려지고, 면적도 쓴다. 면적 예산 안에서 모든 출력의 슬랙을 0 이상으로 만들자.

GAME

면적 예산 안에서 슬랙 맞추기

게이트를 눌러 크기 바꾸기
최악 슬랙—
면적 / 예산—
점수 (남은 예산)—
규칙: 게이트 지연 \(d = \tau\,(p + g\,C_L / (C_{in}\,s))\), 크기 \(s\)인 게이트의 입력 C는 \(s\)배, 면적은 X2가 +60%, X4가 +180%. 배선 C는 14장처럼 실제 배선 길이에서 온다. 목표 주기는 풀 수 있도록 미리 확인한 값이다. 요령: 큰 부하를 구동하는 게이트를 키우되, 그 앞단까지 함께 생각하자(3장 논리적 노력).

배선 퍼즐

같은 번호의 핀 두 개를 선으로 잇자. 선은 칸의 가운데를 가로·세로로만 지나고, 다른 선과 겹치거나 교차할 수 없다(배선층 하나). 핀에서 시작해 끌면 선이 그려지고, 이미 그린 선 위로 되돌아가면 그만큼 지워진다. 처음엔 쉬워 보여도, 먼저 그은 선이 다른 넷의 길을 막는다는 것을 곧 알게 된다. 7장에서 배선기가 립업·리라우트를 반복하는 이유다.

GAME

한 층 배선: 모든 넷 잇기

이은 넷—
총 배선 길이—
푼 퍼즐—
퍼즐은 무작위로 길을 먼저 깔고 그 양 끝을 핀으로 남겨 만든다. 그래서 반드시 풀린다(답이 하나만은 아닐 수 있다). 총 길이가 짧을수록 좋은 배선이지만, 모든 넷을 잇는 것이 먼저다. 실제 칩에서는 층이 여럿이라 다른 층으로 비아를 타고 넘어갈 수 있다(7장 2층 모드).

DRC 위반 찾기

4장의 셀 하나에 설계 규칙 위반이 몇 개 숨어 있다. 60초 안에 위반 위치를 눌러 찾자. 맞히면 그 규칙과 공정 쪽 이유가 나오고, 엉뚱한 곳을 누르면 감점이다. 막히면 레이어를 끄고 켜 보자. 10장 규칙 탐색기에서 본 모양들이다.

GAME

숨은 위반 찾기

“새 판 시작”을 누르자.
남은 시간—
찾은 위반—
점수—
채점: 찾을 때마다 +100, 헛짚으면 −30, 남은 시간 1초당 +5. 한 판에서 모든 위반을 헛짚지 않고 찾으면 “DRC 사냥꾼” 배지. 위반 위치는 이 책의 DRC 엔진(CELL.drc)이 판정한다.

멀티 패터닝 색칠

M1 선들이 너무 촘촘해 한 장의 마스크로 찍을 수 없다. 서로 가까운(같은 마스크 최소 간격보다 가까운) 선은 서로 다른 마스크(색)에 넣어야 한다. 선을 눌러 색을 바꾸자. 충돌은 빨간 선으로 보인다. 어떤 단계에서는 두 색으로는 아무리 해도 안 된다. 그때는 이유를 찾고 세 번째 마스크(LELELE)를 쓰자. 공정은 ProcessBook 5장(멀티 패터닝), 설계 쪽은 11장.

GAME

마스크 분해 = 그래프 색칠

선을 눌러 색 바꾸기
선 하나 = 그래프의 꼭짓점, 같은 마스크 최소 간격보다 가까운 두 선 = 변이다. 2색 분해는 그래프가 이분 그래프일 때만, 즉 홀수 길이의 사이클이 없을 때만 가능하다. 실제 도구는 홀수 사이클을 찾으면 선을 잘라 두 마스크로 나눠 찍는 스티치(stitch)를 넣거나, 설계자에게 레이아웃 수정을 요구하거나, 3장(LELELE)으로 분해한다. 그래서 첨단 공정은 선을 처음부터 색칠 가능한 격자 위에만 그리게 하고, SADP처럼 색이 저절로 정해지는 공정을 쓴다.

학습 진행과 배지

장을 열고, 시뮬레이터를 만지고, 퀴즈를 풀고, 게임을 깨면 기록이 쌓인다. 기록은 이 브라우저(localStorage)에만 저장되며 서버로 보내지 않는다.

장별 진행