모든 이야기

폭과 간격을 통과한 배선에도 끊김이 남는 이유

배선 결과에 DRC 위반이 0개라고 적혀 있다. 이제 모든 핀이 연결되고 목표 주파수도 만족한다고 판단해도 될까? Detailed routing에서 확인하는 조건들은 서로 관련되어 있지만 같은 질문은 아니다. 금속 형상이 규칙을 지키는지, 필요한 핀이 실제로 이어졌는지, 그 연결의 지연이 마감 안에 들어오는지를 각각 읽어야 한다.

형상을 만들면서 연결 요구를 만족한다

상세 배선은 가이드 영역 안팎의 조건을 고려해 구체적인 트랙과 비아를 선택한다. 핀에 접근할 수 있는 위치를 찾고, 다른 연결과 충돌하지 않는 금속 형상을 만들어야 한다. 같은 공간을 두 net이 요구하면 어느 트랙을 누구에게 줄지 조정한다. 필요한 층간 연결에는 비아도 있어야 한다.

TritonRoute 초기 원문은 routing segment와 via를 배정하는 문제에서 연결성 제약과 설계 규칙을 함께 명시한다. 층 사이의 연결과 같은 층 안의 연결도 나누어 다룬다. 현재 OpenROAD의 detailed router 문서에는 pin access, track assignment, 초기 상세 배선, search and repair, DRC 엔진이 구성 요소로 나열되어 있다. 원문의 초기 알고리즘이 현재 구현의 모든 동작과 같다는 뜻은 아니다. TritonRoute 원문, 4.1·4.3절, OpenROAD Detailed Routing

폭과 간격이 맞아도 끊긴 선은 가능하다

좌표 단위를 임의의 길이로 정한 가상 단층 배선을 생각해 보자. Net A는 왼쪽과 오른쪽 핀을 이어야 하지만, 금속이 두 사각형으로 나뉘어 있다.

A의 첫 금속: x=0–6,  y=0–2
A의 둘째 금속: x=8–14, y=0–2
B의 금속:     x=0–14, y=4–6

이 예제의 형상 검사 규칙은 최소 폭 2, 서로 다른 net 사이의 최소 간격 2뿐이라고 하자. 세 사각형의 폭은 조건에 맞고 A와 B 사이의 수직 간격도 2다. 이 한정된 검사는 통과한다. 그러나 A의 x=6–8 구간은 비어 있어서 양 끝 핀은 연결되지 않는다.

실제 도구의 검사 범위가 무엇인지는 명령과 보고서를 확인해야 한다. 여기서는 폭·간격 검사와 연결성 검사가 다른 조건이라는 점을 보여 주려고 규칙을 명시했다. DRC라는 이름의 모든 검사가 반드시 같은 항목만 본다고 일반화할 수는 없다.

A에 x=6–8, y=0–2의 금속을 추가하면 두 조각이 이어진다. B와의 간격도 그대로다. 반면 x=6–8, y=2–4의 세로 금속을 추가하면 A와 B를 잇는 잘못된 연결이 생긴다. 선이 서로 닿았다는 것만으로 좋은 연결이 아니다. 어느 핀들이 같은 net에 속해야 하는지와 실제 연결 성분을 비교해야 한다.

층이 여러 개면 화면의 겹침도 충분하지 않다. 같은 x·y 위치에 다른 층의 금속이 있어도 그 사이의 적법한 비아가 없다면 연결되지 않는다. TritonRoute 원문의 access point 설명도 필요한 segment와 via를 함께 붙여 물리적 연결을 만든다는 조건을 강조한다. 원문의 층간 연결 설명

완성된 연결에도 시간 마감은 남는다

이제 필요한 핀들이 모두 올바르게 연결되고 형상 검사도 통과했다고 하자. 타이밍 요구는 별도다. 설명용 경로의 capture 에지가 100ps, setup 시간이 5ps, launch 이후 데이터 도착이 102ps라고 가정하면 요구 시간은 95ps이고 slack은 −7ps다. 금속의 폭과 간격을 바꾸지 않아도 도착이 마감보다 늦으면 setup 조건은 실패한다.

우회를 줄여 도착이 90ps가 되면 이 가상 setup slack은 +5ps다. 하지만 이것만으로 최소 지연이나 다른 경로를 판단할 수 없다. 두 도착 값은 주어진 예제 입력이며 실제 RC 추출이나 상세 배선 실행에서 얻은 결과가 아니다. 실제 회로에서는 최종 금속의 저항·정전용량과 셀 지연, 클록 도착 조건을 반영해 계산해야 한다.

따라서 상세 배선의 완료 여부를 읽을 때 세 종류의 기록이 필요하다. 형상 규칙 위반이 얼마나 남았는지, 요구된 연결과 실제 연결이 일치하는지, 추출된 경로가 setup·hold 등의 타이밍 조건을 만족하는지다. 한 기록의 0이라는 숫자로 다른 질문의 답을 대신하지 않는다.

검사 결과에는 적용 범위가 붙는다

OpenROAD 문서는 상세 배선에서 DRC 결과와 guide coverage를 출력하는 옵션을 제공한다. 이 둘도 의미가 다르다. 가이드에 따라 경로가 얼마나 배치되었는지 보는 정보가 최종 연결성이나 타이밍 결과 자체는 아니다. 일부 net을 제외한 시험 실행이었다면 그 범위도 함께 기록해야 한다. detailed_route의 결과 출력 옵션

또한 router 내부의 규칙 검사와 전체 제조 규칙을 적용한 최종 검증의 범위를 맞춰야 한다. OpenROAD의 전체 흐름 설명도 상세 배선 이후 기생 성분 추출, 최종 타이밍과 물리 검증을 별도 단계로 둔다. OpenROAD의 Chip Finishing 단계

Detailed routing의 결과는 선을 그렸다는 사실보다 어떤 조건을 완료했는지로 평가하는 편이 정확하다. 규칙을 지킨 금속으로 필요한 핀을 이어 놓고, 그 연결이 시간 마감까지 만족하는지 확인한다. 이 세 질문을 따로 통과시켜야 깨끗해 보이는 배선이 동작 가능한 회로의 근거가 된다.