pub fn place_routed(
alloc: &Allocation,
t: &PlasticineTarget,
budget: LinkBudget,
router: &dyn MeshRouter,
) -> Result<Placement, Unplaceable>Expand description
Place alloc on the checkerboard with row-balanced PCU cells and each edge’s PMU(s) on the free PMU
cells nearest its writer and reader (a perimeter-hosted end pulls the PMU toward the nearer side), then
route every vector net — writer tail → PMU → reader head per buffer, DRAM ↔ PMU for perimeter-hosted
stages, and the PCU→PCU links inside every chain (reported as a route on the self-edge
(stage, stage)) — through router, whose independent legality verdict is routed_statically.
max_link_occupancy counts the channels one directed link — or one direction of a perimeter port —
carries (never above the budget when legal).