Skip to main content

Module stack_place

Module stack_place 

Source
Expand description

3D placement over composed analog tiers — vertical interconnect as a COUNTED, refusable resource, and the cross-tier Pelgrom category priced into the budget.

The 2D placer’s greedy operand adjacency generalizes: sites now span every analog tier, the cost of an operand edge is lateral pitches plus hop_cost_pitches per crossed gap, and each crossing CONSUMES one via from each crossed gap’s budget — running out is a typed AnaUnplaceable::VerticalResourceExhausted, never an overcommit. The budget composes through the SAME engine as 2D (nonideal_budget_with), fed the full separation law: a cross-tier leg pays the flat categorical ceiling (Separation::CrossTier), which is how the budget itself teaches the placer to keep matched clusters in-tier. place_stack_blind is the deliberate straw man the anti-vacuity lock beats three ways (wire, ε, vias).

Structs§

StackPlacement
Per-cell site assignment plus the per-gap via ledger.
StackSite
A physical site in the stack: which STACK tier, and where on its array.

Functions§

error_budget_nonideal_stacked
The stacked physical budget: the SAME composition engine as 2D, fed the full separation law — cross-tier legs pay the categorical ceiling, so hot scattering provably costs ε.
error_budget_thermal_stacked
The thermally-coupled stacked budget: the stacked budget PLUS the drift terms priced against the CERTIFIED thermal map — offset drifts with each tile’s absolute rise (offset_tempco · ΔT), gain with the tile-to-operand GRADIENT (gain_tempco · |ΔT_cell − ΔT_operand|) — matching cares about gradients. One Picard pass, deterministic: placement + power → temperature → ε; hot placement provably costs ε (thermal_cooking_lock measures it). The ℚ→f64 bridge rounds outward.
place_stack
Greedy operand-adjacent 3D placement: seat cells in SSA order at the FEASIBLE free site minimizing lateral-plus-hop cost to the placed operands (tier-major row-major tie-break — deterministic forever). A cell with no feasible site refuses on the blocking gap.
place_stack_blind
The deliberate straw man: max-stride scatter over the tier-major site list, adjacency- and hop-blind (it still refuses rather than overcommit a gap — legality is non-negotiable).