Skip to main content

place_routed

Function place_routed 

Source
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).