| Metric | v2 (no congestion) | v3 (congestion-aware) |
|---|---|---|
| Overflowed cells | 16 / 110 | 2 / 110 |
| Total overflow (tracks) | 15.5 | ~2 |
| Peak cell overflow | 2.4 tracks | 1.33 tracks |
| Wirelength (WL) | 272.1 | 317.1 |
v3 adds a congEnergy(x, z) term to the SA legalization energy function. The 10×11 gcell grid (each ~1×1 mm²) estimates per-cell routing demand via HPWL bounding-box spreading of each net, weighted by net priority (RF signal chain w=3, bias w=1.5, bypass w=1). Overflow² is penalized with weight CONG_GAMMA = 1.8.
SA now actively moves components away from routing hotspots instead of only resolving geometric overlaps and MI keep-out violations.
WL increased ~17% (272 → 317). This is the classic congestion-vs-wirelength tradeoff: SA pushes components out of congested corridors, which lengthens some nets. CONG_GAMMA controls this balance — higher values prioritize congestion reduction at the cost of longer wires.
Peak overflow = 1.33 tracks means the hottest gcell still exceeds capacity by 1.33 routing tracks. In practice, ≤1.0 is considered clean (routable without detours). This is likely in the RF signal chain corridor (Lin → M1 → M2 → Linter) where multiple w=3 nets converge.
| Knob | Current | Suggested | Effect |
|---|---|---|---|
CONG_GAMMA | 1.8 | 2.5 | Stronger congestion avoidance; WL rises further |
CONG_CAP_INNER | 4.0 | 3.5 | More conservative capacity estimate; forces earlier spreading |
CONG_CAP_EDGE | 2.5 | 2.0 | Tighter edge-cell budget; keeps components away from pad ring |
SA_ITERS_PER_CYCLE | 60 | 80 | More SA budget per reheat cycle; may resolve last 2 cells |