Routing

Each card shows a command to explain. A missed card returns later in the round and starts the schedule over. A card answered correctly moves up the schedule and next appears after 1, 3, 7, then 21 days. Keys 1 to 4 choose an option, h shows a hint, and Enter moves on. A hint keeps the card where it is on the schedule. An ordering card is answered by clicking its items in order, and one wrong click ends it. Time values are in nanoseconds. Progress is stored in this browser.

SourceThese cards cover the make variables that drive OpenROAD-flow-scripts, the reference flow built on OpenROAD. Each card shows a line as it appears in a design's or a platform's config.mk, and each answer links to that variable in the flow's own variable reference. Variables come and go between releases; this deck follows the version in the openroad/orfs image. Reference: flow variable reference (OpenROAD-flow-scripts on GitHub).
All 6 cards in this section, with answers
  • export MIN_ROUTING_LAYER = metal2 export MAX_ROUTING_LAYER = metal10
    Confines routing to metal2 through metal10, leaving metal1 alone.

    Hint: Ask why the lowest layer is not metal1.

    metal1 is left out because the standard cells' own pins and supply rails already occupy it. The upper bound keeps routing off layers the power grid or the package needs. Both become set_routing_layers inside the flow. OpenROAD-flow-scripts reference

  • export MIN_CLK_ROUTING_LAYER = metal4
    Keeps clock routing off the lowest layers, starting it at metal4.

    Hint: It is usually higher than the signal minimum. Ask what is gained higher up.

    Upper layers are thicker and so less resistive, which keeps clock delay and skew down. The variable is the lower bound of set_routing_layers -clock, and it is typically higher than the signal minimum. OpenROAD-flow-scripts reference

  • export ROUTING_LAYER_ADJUSTMENT = 0.3
    Tells the global router each layer has 30% less capacity.

    Hint: The number derates something the global router counts. Ask which way the trade runs.

    Thirty percent of each layer's tracks are treated as unavailable. Some are already taken by pins, the power grid, and blockages. A larger adjustment spreads routing out and eases detailed routing, at the cost of detours and longer global routing; a smaller one risks congestion the detailed router cannot solve. The default is 0.5. OpenROAD-flow-scripts reference

  • export FASTROUTE_TCL = $(PLATFORM_DIR)/fastroute.tcl
    Runs a script of routing settings before global routing starts.

    Hint: It runs before the router, so ask what it can still change.

    The script holds the per-platform routing setup: the layer ranges, the clock layers, and the layer adjustments. Platforms ship one because those choices depend on the metal stack. OpenROAD-flow-scripts reference

  • export ENABLE_RESISTANCE_AWARE = 1
    Passes the resistance-aware flag to global routing.

    Hint: It is passed straight through to the global router as a flag.

    Resistance-aware routing weighs the resistance of the layer a net is assigned to, instead of treating layers as interchangeable capacity. The OpenROAD documentation marks the option as not ready for production. OpenROAD-flow-scripts reference

  • export DISABLE_VIA_GEN = 1
    Stops the detailed router generating its own vias, using only the technology's.

    Hint: It is a flag for the detailed router, and vias come in two kinds.

    The router can either build via shapes from rules or use the fixed vias the technology defines. Restricting it to the fixed set is used when a technology's generated vias would not be manufacturable. OpenROAD-flow-scripts reference