Content is user-generated and unverified.

Changelog: PA Placer v3 → 28nm RF

Scope

v3 is electrical + physical co-optimization (3 optimizers over 13-D RF param space + Laplacian placer + SA). 28nm is physical placement only — RF sliders rebuild geometry, no electrical cost is minimized.


Added

Cell-spread phase between QP and SA

  • Up to 25 passes of congestion-aware diffusion
  • Overflowed-cell nodes drift toward lowest-overflow 8-neighbor
  • Damping by per-cell collision count + intra-cell jitter for tie-breaking
  • Single congGrid() snapshot per pass (not per node)
  • Hands SA a much cleaner starting point

Final escape phase (post-SA)

  • 7×7 probe grid across die
  • Up to 10 rounds, lexicographic viols → energy
  • Catches stuck configurations SA's local moves can't resolve

Geometry-anchored SA temperature

  • T_anchor = OV_ALPHA · (0.4 · minSep)² from median footprint radius
  • Replaces v3's hard-coded [5.0, 2.5, 1.0]
  • Independent of Phase-1 residual energy (kills the perverse self-correcting direction where good QP → unescapable SA)

Reheat that actually reheats

  • Cycle T fractions [0.05, 0.04, 0.02] of T_anchor — T rises at cycle boundaries
  • Small basin perturbation kicks [0, 0.08, 0.04] (textbook reheat semantics)
  • v3's [5.0, 2.5, 1.0] was monotonic cooling mislabeled as reheat

UI / observability

  • Real-time HPWL + violations convergence chart (240-pt rolling)
  • Ghost rings at origin positions (dashed, fade post-SA)
  • 32-frame motion trails per cell
  • Before / post-QP / after summary card with delta column + snap-view toggle
  • Speed multiplier 0.5× / 1× / 2× / 4×
  • Phase banner (Phase 0 / 1 / 2 / 3) with color-coded state

Changed

SA energy weights — legality is now intrinsic, not patched at runtime

v328nm
OV_ALPHA6.050
MI_BETA4.520
CG_GAMMA1.81.5

At α=50, one moderate overlap (gap = 0.4·minSep) costs ≈ 1.3 — comfortably above typical congestion residuals. v3's α=6 let γ·Σov² rival overlap penalties numerically, so legality was enforced by the lex-best acceptance check rather than by the energy itself. Lex-best is now a defensive guard.

WL_LAMBDA ramp: quadratic → linear

  • v3: WL_LAMBDA_MAX · p², range 0 → 0.30
  • 28nm: MIN + (MAX − MIN) · p, range 0.02 → 0.10
  • Quadratic kept λ < 0.03 through the first ~70% of iterations — anchor was decorative during exploration, exactly when SA most needed grounding to QP's WL-optimal floorplan

SA cooling: faster but more cycles

  • Cooling rate 0.95 → 0.93
  • 60 iters/cycle (unchanged)
  • 3 cycles (unchanged) but each one matters now that T actually rises

Footprint radii: live → baked

  • v3: read from _lastGeomP every SA step (keep-out shrinks/grows with L sliders mid-run)
  • 28nm: stored in g.userData.radius at build time
  • v3's behavior was pedagogically nice but means SA sees a moving cost surface

tryIdx widening narrowed and justified

  • v3: 1.6× move-range "endgame boost" at low T — actually greedy descent in disguise (acceptance of uphill moves ≈ 0 at low T)
  • 28nm: removed boost; kept tryIdx widening when viols ≤ 3 (lets non-violating "blocker" nodes move out of the way — the genuinely useful part)

Cell-spread loop structure

  • Restructured from O(N²·grid) per-node recomputation to one snapshot per pass + pre-computed targets
  • Same heuristic, but the code now reflects what the algorithm actually is

Removed

  • Click-component-to-optimize flow — v3's per-component optimizer dispatch (A* / GD / QP buttons in right panel)
  • A* search optimizer — 7-D grid best-first search over discrete RF parameters
  • Gradient descent with momentum — central-finite-difference gradient + Adam-like momentum
  • Newton-QP electrical optimizer — diagonal Hessian + trust region in 13-D parameter space
  • MNA solver — 13×13 complex linear system per frequency (forward + adjoint for NF)
  • Resonance pre-conditioning penalty — RFC-corrected C_eff resonance terms steering Lin/Lout
  • Layer explode view — 7-layer Z-stack with per-layer slide animation
  • Cross-section clipping plane — animated X-section with clip face
  • Signal path overlay — colored RF / bias / GND / Ls trace lines
  • QP Hessian matrix visualizer — center-screen H ⊕ g overlay during Newton-QP
  • Endgame move-range boost — 1.6× at low T (see "Changed")

Fixed (implicit, by the rewrites above)

  • Legality being enforceable only via lex-best, not via energy — α=50 fixes
  • T schedule self-correcting wrong-way (good Phase-1 → small T → SA stuck) — geom anchor fixes
  • WL anchor inactive during exploration — linear ramp fixes
  • "Reheat" that monotonically cooled — true reheat schedule fixes
  • SA cost surface drifting under live geometry updates — baked radii fixes

Migration notes for v3

Four changes are independent of v3's electrical architecture and could be backported:

  1. OV_ALPHA: 6 → 50, MI_BETA: 4.5 → 20
  2. Replace hard-coded SA_REHEAT_TEMPS with geomTempAnchor() · [0.05, 0.04, 0.02]
  3. Replace quadratic λ with linear [0.02, 0.10]
  4. Add 7×7 probe escape phase after SA termination

These tighten Phase-3 results without disturbing the multi-optimizer Phase-1 / Phase-2 flow or the layer / signal / cross-section visualizations.

Content is user-generated and unverified.
    PA Placer v3 → 28nm RF: Complete Changelog & Updates | Claude