배선 가이드가 있어도 실제 트랙 연결은 남아 있다
배선 가이드 파일을 열어 보면 연결별로 지나갈 위치와 층이 정해진 듯 보인다. 그렇다면 이제 그 선을 그대로 금속으로 만들기만 하면 될까? Global routing guide는 배선할 영역을 전달하는 정보다. 실제 트랙, 비아와 핀 접근까지 정리한 최종 금속 형상과는 해상도와 의무가 다르다.
거친 공간에서 연결과 자원을 맞춘다
Global routing은 칩을 작은 영역으로 나누고 이웃 영역을 잇는 자원을 사용하여 연결 경로를 찾는다. 각 경계의 용량은 그곳에서 사용할 수 있다고 가정한 배선 자원이다. 연결들이 요구한 수요가 용량을 넘으면 overflow가 발생한다. 단순한 한 경계의 초과량은 max(수요−용량, 0)으로 볼 수 있다.
가상 경계에서 용량이 3인데 연결 네 개가 통과하면 overflow는 1이다. 다른 경계를 이용해 하나를 우회시키거나 사용할 층을 바꾸는 후보를 검토할 수 있다. 다만 모든 연결이 반드시 같은 절단면을 지나야 하고, 모든 가능한 층과 통로의 용량 합도 3이라면 네 연결을 수용할 수 없다. 더 좋은 탐색이 부족한 자원 자체를 만들어 내지는 않는다.
OpenROAD의 global router는 사용할 신호·클록 층의 범위를 지정하고 혼잡을 줄이는 반복을 수행한다. 자원 조정으로 가정한 트랙 수를 줄여 보다 여유 있는 경로 선택을 유도할 수도 있다. 이런 용량은 분석 모델이며 도구의 설정과 장애물에 영향을 받는다. OpenROAD Global Routing
가이드는 영역이고, 실제 배선은 그 안의 형상이다
Global routing 결과를 가이드로 바꾸면 net에 대응하는 영역과 층 정보를 저장할 수 있다. OpenROAD의 실제 saveGuides 구현도 경로 segment를 사각형으로 바꾸고 해당 net과 routing layer에 연결한다. 층을 바꾸는 segment는 비아에 관련된 층 정보를 포함한다. 코드에 저장된 guide 객체를 최종 금속 트랙 그 자체로 읽으면 안 된다. GlobalRouter.cc의 saveGuides
예를 들어 설명용 가이드가 M3의 x=0–20, y=0–10 영역을 허용한다고 하자. 이것만으로 실제 금속 중심선이 y=5인지, 몇 개의 트랙을 점유하는지, 경계에서 어떤 비아를 사용하는지는 결정되지 않는다. 단위와 좌표 형식은 파일과 데이터베이스 규칙을 따라야 하며, 여기의 숫자는 단순한 영역 예제다.
Detailed routing은 그 안에서 핀의 합법적인 접근점을 찾고, 트랙과 비아를 선택하며, 배선 간 간격 등의 규칙을 만족하는 구체적인 연결을 만든다. OpenROAD의 TritonRoute 설명도 pin access, track assignment, 초기 상세 배선, search and repair, DRC 엔진을 각각 구성 요소로 소개한다. 거친 경로가 있었다는 사실이 이 단계들을 완료했다는 뜻은 아니다. OpenROAD Detailed Routing
Overflow가 0이어도 좁은 핀 입구는 남는다
같은 가이드 영역에 들어 있는 두 핀을 생각해 보자. 거친 경계의 용량은 두 연결을 수용할 수 있다고 계산했지만, 핀 근처의 장애물과 간격 규칙을 적용하면 특정 좁은 입구에서 한 개의 연결만 가능하다고 가정하자. 다른 층이나 우회로도 없다는 이 가상 조건에서는 두 연결이 그 입구를 동시에 사용할 수 없다.
Global routing에서 overflow가 0이라는 결과는 설정한 거친 자원 모델에서 수요가 넘지 않았다는 의미다. 핀 근처의 모든 접근점과 실제 비아 enclosure까지 만족한다는 증명은 아니다. 반대로 상세 배선이 국소적인 우회와 가이드 조정으로 문제를 해결할 수도 있으므로, 거친 혼잡 지표와 최종 DRC가 언제나 일대일로 대응하는 것도 아니다.
가이드 결과를 타이밍 추정에 사용할 때도 같은 주의가 필요하다. 경로 길이와 층이 정리되면 위치만 사용한 추정보다 구체적인 기생 성분을 예상할 수 있다. 그러나 최종 배선은 추가 우회와 비아, 주변 연결과의 관계를 포함하므로 가이드 기반 결과가 최종 지연을 확정하지는 않는다. 최종 연결성과 설계 규칙, 추출 기생 성분에 따른 타이밍을 확인하는 과정이 남는다.
파일의 존재보다 남은 조건을 읽는다
OpenROAD는 남은 혼잡을 허용한 채 global routing 결과를 생성하는 옵션도 제공한다. 따라서 guide 파일이 생성되었다는 사실만으로 overflow가 없다고 가정할 수 없다. 실제 설정과 혼잡 보고서를 확인해야 한다. 특정 net을 제외하는 추정용 옵션을 사용했다면 그 net의 배선까지 완료했다고 해석해서도 안 된다. global_route 옵션
가이드 단계에서 평가할 것은 경로가 이어져 있는지, 층 범위와 용량 가정이 적절한지, 혼잡이 어디에 남았는지다. 이후 상세 배선 단계에서는 핀 접근과 트랙·비아 선택, DRC 및 연결성을 확인한다. 단계별로 필요한 증거를 구분하면 배선 실패가 거친 통로 부족인지 국소적인 규칙 문제인지 찾아가기 쉬워진다.
Global routing guide의 가치는 최종 형상을 미리 완성하는 데 있지 않다. 큰 배선 문제에서 각 연결이 사용할 공간과 자원을 정리하여 다음 단계의 탐색을 이끄는 데 있다. 그 가이드를 실제 규칙을 만족하는 금속 형상으로 완성했는지까지 확인해야 배선이 끝났다고 말할 수 있다.