Routing 뒤 timing이 나빠졌다면: RC 계산으로 고를 physical fix와 재합성
빨간 heatmap만으로 재합성을 결정하지 않는다. 공개 문서, source screenshot과 가정 기반 RC 계산으로 routed timing 손실의 원인을 분리한다.
Routing 뒤 timing이 나빠졌다고 synthesis부터 다시 돌릴 필요는 없습니다. 같은 path에서 wire 길이, load, driver와 분석 조건을 분리해야 placement를 고칠지, buffer를 넣을지, logic 자체를 바꿀지 결정할 수 있습니다.
VLSI Korea view: heatmap은 조사할 위치를 알려줍니다. 어느 팀이 무엇을 고쳐야 하는지는 같은 net과 path의 변화량으로 판단해야 합니다.

이 글은 routed timing regression의 원인을 찾는 PD 엔지니어와, 다시 합성할 근거를 요구하는 RTL·synthesis 엔지니어를 위한 reference입니다. 목표는 원인이 다른 문제에 같은 ECO를 반복하지 않는 것입니다.
아래 계산에서는 wire가 1,000 um에서 1,500 um로 길어지면 RC first moment가 31.6 ps에서 52.4 ps로 늘어납니다. 모든 입력은 설명용 가정이며, 실제 PDK 수치나 OpenROAD 실행 결과가 아닙니다. 이 차이를 출발점으로 물리적 원인과 논리적 한계를 구분합니다.
빨간 화면이 같은 문제를 뜻하지는 않습니다
Routing congestion은 어떤 구역과 layer에서 필요한 배선 자원이 사용할 수 있는 자원을 압박하는 상태입니다. Cell이 차지한 면적을 나타내는 placement density, pin에 접근할 수 있는지의 문제, 완성된 route의 DRC는 서로 연결되지만 같은 측정값은 아닙니다.
아래 이미지는 이 구분을 실제로 확인할 수 있는 OpenROAD 공식 저장소의 화면입니다. 파일명과 README 제목에는 congestion이 들어가지만, 왼쪽 패널에서 선택된 항목은 Placement Density입니다. Routing Congestion은 선택되지 않았습니다.

따라서 이 그림으로 wire overflow나 timing violation을 읽어서는 안 됩니다. 색이 진한 곳에 cell이 몰렸다는 관찰에서 시작해, 어느 layer의 route demand가 어디에서 증가하는지 별도 보고서를 확인해야 합니다. 이미지의 이름보다 화면의 선택 상태가 더 직접적인 증거입니다.
전체 utilization이 낮아도 macro 사이의 좁은 통로, pin access, layer blockage 때문에 국소적인 routing 문제가 생길 수 있습니다. 반대로 cell이 조밀한 구역이라고 모든 critical net이 긴 우회를 하는 것도 아닙니다. 범용 density 임계값 하나로 두 경우를 나누면 실제 원인을 놓칩니다.
기존 P&R reference가 flow와 congestion의 기본 관계를 다뤘다면, 여기서는 같은 path가 왜 느려졌는지와 다음 실험의 선택을 다룹니다. “혼잡하니 넓히자”에서 멈추지 않는 것이 차이입니다.
추정한 배선과 실제 배선 사이에서 무엇이 바뀌나
Spindler와 Johannes의 2007 RUDY 논문은 net의 bounding rectangle 안에 배선 수요를 분포시키는 방법을 설명합니다. 특정 net의 최종 경로를 정확히 예언하기보다 여러 net이 만드는 수요를 빠르게 추정하는 관점입니다.

2026-09-07에 확인한 OpenROAD global placement 문서에서도 RUDY 기반 routability 추정과 timing-driven net weighting은 별개입니다. 혼잡한 tile의 cell area를 부풀려 이동을 유도하는 방법과, slack이 나쁜 net에 가중치를 주는 방법은 서로 다른 목적을 조정합니다.

Global route는 coarse grid에서 자원을 배분하고 layer와 경로의 가이드를 만듭니다. Detailed route는 실제 pin, via, spacing과 다른 제약을 만족하는 형상을 찾아야 합니다. 가이드에서 가능해 보인 연결이 이 단계에서 우회하거나 layer를 바꾸면 앞서 계산한 RC도 달라집니다.
Chhabria 등의 2023-10-02 공개 원고는 이 차이가 design과 tool flow에 따라 달라질 수 있음을 보여줍니다. 같은 비율로 모든 net을 보정하는 것만으로는 해결되지 않는다는 점이 핵심입니다. 논문의 결과를 현재 모든 node나 설계에서 재현되는 개선율로 옮기지는 않습니다.
최종 geometry를 얻어도 RC는 파일 이름만으로 확정되지 않습니다. OpenRCX 문서는 주변 wire와의 거리, 상하 layer의 문맥, extraction rule과 corner를 설명합니다. SPEF를 비교할 때도 어떤 geometry와 어떤 deck에서 나왔는지 함께 남겨야 합니다.
이 증거를 연결하면 “placement timing보다 route timing이 나쁘다”는 현상 안에 추정 오차, 실제 우회, layer 변화, load 변화가 섞일 수 있습니다. 여기서 RC는 저항과 정전용량을 뜻합니다. Placer가 출력하는 routing-congestion metric의 RC라는 약어와 혼동하지 않아야 합니다.

길이·load·drive를 따로 바꾸면 책임이 보입니다
분석 틀은 Identity → Delta → Intervention입니다. 비교 대상의 정체성을 고정하고, 변화량을 분해한 뒤, 그 원인만 겨냥하는 조치를 시험합니다. 첫 계산은 다른 조건을 고정했을 때 어떤 입력이 delay를 바꾸는지 확인하는 작은 예입니다.
균일하고 가지가 없는 wire를 가정합니다. 단위 길이 저항 r은 0.08 ohm/um, 정전용량 c는 0.2 fF/um, driver 저항 Rd는 100 ohm, 끝단 load CL은 20 fF입니다. CMU의 Elmore model 설명처럼 downstream capacitance를 저항별로 합산하면 다음 first moment를 얻습니다.
tau = Rd × (cL + CL) + rL × (cL / 2 + CL)
여기서 L은 um이며 ohm·fF 결과를 ps로 바꾸려면 1,000으로 나눕니다. 첫 항은 driver가 충전하는 전체 load, 둘째 항은 분포된 wire 저항이 보는 capacitance입니다. 이는 waveform의 특정 전압 통과 시간을 직접 계산한 signoff delay가 아닙니다.

L만 1,000 um에서 1,500 um로 늘리면 결과는 31.6 ps에서 52.4 ps가 됩니다. 길이를 유지하고 CL만 20 fF에서 60 fF로 바꾸면 38.8 ps가 됩니다. 길이와 load를 함께 바꾸면 61.2 ps입니다. 두 변경의 효과를 단순히 더한 값과 실제 계산 사이에는 1.6 ps의 interaction이 있습니다.
원인은 rL × CL 항입니다. 같은 load 증가라도 wire 저항이 더 크면 영향이 커집니다. 따라서 fanout 증가와 detour가 동시에 생긴 net을 보고 “wire 문제”와 “cell 문제” 중 하나만 고르는 것은 잘못된 분류일 수 있습니다.
Rd를 50 ohm으로 낮추는 별도 실험도 봅니다. CL이 20 fF일 때 짧은 wire는 20.6 ps, 긴 wire는 36.4 ps입니다. Driver를 강하게 해도 wire 자체의 분포 저항 항이 사라지지는 않습니다. 실제 cell 교체는 앞단 pin load와 면적, leakage까지 바꾸므로 이 결과를 곧바로 sizing의 순이익으로 읽을 수 없습니다.
계산의 숫자는 원인을 분리하는 교육용 입력입니다. Via, branching, coupling, inductance, nonlinear slew response와 variation은 넣지 않았습니다. 실제 ECO 선택에는 해당 library와 extraction 조건의 STA가 필요하며, 다른 node로 숫자를 전용해서는 안 됩니다.

Buffer를 넣기 전에 새로 생기는 비용을 계산합니다
Buffer는 긴 wire를 나누어 앞단이 보는 분포 RC를 줄일 수 있지만, 입력 capacitance와 자체 delay를 추가합니다. OpenROAD resizer 문서도 long wire와 slew·capacitance violation의 repair를 설명하면서, placement parasitic만으로 routed parasitic을 정확하게 예측할 수 없다고 명시합니다.
같은 wire의 중간에 buffer를 하나 둔다고 가정합니다. Buffer input은 10 fF, output 저항은 100 ohm, intrinsic delay는 15 ps입니다. 앞 절의 wire와 끝단 load 조건을 유지하고, 나뉜 구간의 first moment와 추가 intrinsic delay를 합산합니다.

길이 1,000 um에서는 buffer 없는 31.6 ps가 43.2 ps로 늘어납니다. 반면 3,000 um에서는 138.8 ps가 117.6 ps로 줄어듭니다. 이 가정에서는 짧은 wire에 추가한 cell의 비용이 RC 절감보다 큽니다. 그래프의 교차점을 공정 공통의 buffer 삽입 기준으로 쓰면 안 됩니다.

도구에서 buffer 수가 늘었는데 WNS가 좋아지지 않았다면 단순히 repair effort를 더 올리기 전에 실제 위치와 load를 확인합니다. 적절한 위치에 legal site가 없거나, 추가 pin이 접근을 어렵게 만들거나, 주변 net이 더 길어졌을 수 있습니다. 개선을 의도한 변경이 다음 routing 문제의 입력이 되는 것입니다.
또한 buffer 추가는 netlist를 바꿉니다. “같은 netlist에서 RC 추정만 바꾼 실험”과 “buffer를 추가한 ECO 결과”는 별도 비교여야 합니다. 전자는 원인 진단이고 후자는 수정 효과의 검증입니다. 두 결과를 한 표에 섞으면 모델 개선과 회로 개선을 구분하기 어렵습니다.
VLSI Korea view: buffer 수나 resizer 실행 횟수는 완료 지표가 아닙니다. 수정 뒤의 routed timing, hold, pin access와 다른 critical path가 함께 살아 있어야 합니다.
언제 물리 설계를 고치고 언제 합성으로 돌아갈까
예시의 data-path budget을 180 ps로 둡니다. Clock-to-Q, setup, uncertainty와 clock 관계를 반영한 뒤 남은 가상의 budget입니다. 비교를 단순하게 만들기 위해 intrinsic path delay는 고정된 항으로 두고, 앞서 계산한 RC proxy를 더합니다.

Intrinsic 항이 80 ps인 얕은 path는 초기 모델에서 111.6 ps입니다. Wire가 3,000 um로 우회한 조건은 218.8 ps가 되어 budget을 넘습니다. 같은 intrinsic 항에서 wire 길이를 1,500 um로 줄일 수 있다면 132.4 ps가 됩니다. 이는 물리적 원인을 먼저 조사할 이유를 보여주지만, 실제로 그 route를 만들 수 있다는 증명은 아닙니다.
반대로 intrinsic 항을 200 ps로 고정한 깊은 path는 모든 wire·pin-load RC를 이상적으로 없애도 budget을 넘습니다. 이 “zero wire” 행은 L만 0으로 바꾼 회로가 아닙니다. Load까지 제거한 극단적인 사고실험으로, 고정 가정 안에서 물리 배선만 고쳐서는 해소되지 않는 잔여 한계를 보여줍니다.
실무에서는 이처럼 단순히 cell delay 합을 영구적인 하한으로 선언할 수 없습니다. Cell 종류, input slew와 output load가 바뀌면 그 값도 달라집니다. 검증된 library 조건에서 가능한 cell 선택과 물리 개선을 확인한 뒤에야 logic depth, fanout topology, replication이나 pipeline의 재검토가 설득력을 얻습니다.

Resynthesis 요청에는 실패한 endpoint와 path family, 해당 constraint, before/after netlist identity, RC 변화량, 이미 시험한 물리 조치와 실패 조건을 붙입니다. “혼잡해서 안 된다”보다 어느 구조가 어떤 자원을 지속적으로 요구하는지 보여주는 편이 RTL 담당자가 바꿀 수 있는 질문이 됩니다.
Logic 변경을 선택하면 equivalence, latency·protocol 계약과 constraint부터 다시 확인합니다. 물리적 ECO는 현재 구현에서 끝날 수 있지만, register 경계나 동작을 바꾸는 수정은 verification 범위까지 바꿉니다. 이 차이를 일정에 반영하지 않으면 빠른 해결처럼 보였던 재합성이 더 큰 재작업이 됩니다.
비교 파일의 정체성을 먼저 고정합니다
WNS는 그 시점의 가장 나쁜 slack 한 개입니다. 다른 endpoint가 새로 최악이 되면 전후 WNS 차이는 동일 path의 악화량이 아닙니다. 먼저 매칭한 path 또는 path family를 비교하고, 그다음 전체 violating endpoint 집합과 TNS, hold 결과를 함께 봅니다.

진단용 비교에서는 netlist hash, driver와 sink 집합, clock 정의, exception, library·corner, SI 분석 모드를 고정합니다. Placement와 routing을 바꾼 실험이라면 바뀐 geometry를 명시하고, extraction deck과 단위가 일치하는지 확인합니다. Clock topology까지 바뀌었다면 data path RC만으로 전체 slack 변화를 설명하지 않습니다.
각 net에는 route 길이와 layer별 길이, via 변화, total·coupling capacitance, 저항과 sink slew를 연결합니다. 경로의 cell sequence가 바뀌면 같은 이름의 endpoint라도 별도 구조 비교가 필요합니다. Net 이름이 사라지는 ECO에는 매핑 기록이 있어야 전후의 같은 물리적 문제를 추적할 수 있습니다.

위 공식 Ibex routing 화면은 layer와 연결 형상을 확인하는 예입니다. 앞의 density 화면과 instance 수 및 표시 상태가 다르므로 통제된 before/after 실험으로 사용하지 않습니다. 두 그림은 각각 다른 관찰 도구가 무엇을 보여주는지 설명하는 자료입니다.
Global routing 문서의 layer resource adjustment는 router가 사용할 수 있다고 가정하는 track 수를 조정합니다. 설정을 바꾸어 혼잡 지표가 좋아졌다고 실제 metal layer의 물리적 capacity가 늘어난 것은 아닙니다. Detailed route와 추출 결과가 그 가정을 견디는지 확인해야 합니다.
명령 하나의 성공이나 깨끗해진 heatmap은 release 근거가 아닙니다. 설치된 tool revision의 공개 문서를 확인하고, 작은 통제 실험을 실행한 뒤 route legality와 timing을 다시 확인하는 것이 이 절차의 핵심입니다. 본문은 특정 commercial tool command나 foundry signoff 기준을 추정해서 제시하지 않습니다.

한국 팀의 handoff에는 수정 가능한 질문을 남깁니다
RTL, synthesis, PD가 조직이나 회사 경계로 나뉘면 문제 설명 자체가 다음 실험의 품질을 좌우합니다. 국내 fabless와 design service의 협업에서도 공정명이나 툴 브랜드보다 “같은 조건에서 무엇이 달라졌는가”를 전달하는 편이 실용적입니다.
공개할 수 없는 PDK나 고객 report를 외부에 보내라는 뜻은 아닙니다. 승인된 내부 환경에서 netlist·constraint·deck의 식별자와 변경 책임자를 관리하고, 외부 공유가 필요할 때에는 허용된 추상화와 별도 공개 예제를 사용합니다. 이 글의 계산도 그 경계를 지키기 위한 교육용 예입니다.

비용은 ECO 횟수만으로 계산하지 않습니다. 동일 실패를 반복하는 compute 시간, 수정마다 늘어나는 verification 범위, signoff 재실행과 일정 위험을 구분합니다. 여기에는 관측된 비용 절감률이나 투자 수익률을 제시할 공개 데이터가 없으므로 특정 절감액은 주장하지 않습니다.
실행 checklist는 간단합니다. 비교 조건을 고정했는지, 같은 path를 보고 있는지, RC 변화가 설명하는 margin과 설명하지 못하는 잔여분이 얼마인지, 제안한 조치가 다른 경로·hold·routing legality에 어떤 비용을 만드는지 기록합니다. 답을 모르는 항목은 해결된 것으로 처리하지 않습니다.
이 논지가 틀렸음을 보여줄 조건도 남깁니다. 동일 분석 조건의 RC 변화가 timing 손실을 설명하지 못하거나, route를 줄인 뒤 다른 critical path가 더 나빠지거나, library 검증으로 intrinsic 가정이 크게 바뀌면 기존 진단을 폐기하고 원인을 다시 분해해야 합니다.
2027-03-07에는 layer와 macro 거리별 GR/DR 잔차를, 2027-06-07에는 buffer 수정 후 hold·pin access·extraction 일관성을, 2027-09-07에는 placement·routing 인터페이스와 추정 방식의 변화를 재검토할 관측 항목으로 둡니다. 이는 편집상 검증 목표일이며, 업체가 발표한 일정이나 미래 개선의 약속이 아닙니다.

다음 handoff의 결론은 “다시 돌려 달라”보다 구체적이어야 합니다. 어떤 identity를 고정하고, 어느 변화량을 설명하며, 어떤 조치를 시험할 것인가. 그래야 synthesis와 PD 사이를 오가는 feedback이 반복 작업 대신 원인을 줄이는 과정이 됩니다.
원출처와 계산
Global Placement · Global Routing · Gate Resizer · Parasitics Extraction · A Machine Learning Approach to Improving Timing Consistency between Global Route and Detailed Route · Fast and Accurate Routing Demand Estimation for Efficient Routability-driven Placement · Electrical Timing Issues: The Elmore Delay Model
OpenROAD screenshots: Copyright (c) 2018-2025, The OpenROAD Authors. BSD 3-Clause license. Watermark added; no endorsement.
OpenROAD screenshot license: conditions and disclaimer
BSD 3-Clause License
Copyright (c) 2018-2025, The OpenROAD Authors. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
AI는 공개 자료 정리와 원고·도식 제작을 보조했습니다. 독립 사실 검토를 거쳤으며, 계산은 명시된 가정의 재현 가능한 예입니다. 실제 설계나 commercial tool의 benchmark를 수행한 것으로 읽지 마십시오.