Vyges Loom · Physical implementation

vyges-grt

Plan every net's route across the die — the guides detailed routing works within.

Congestion-aware, timing-aware, with antenna repair — replayed in the order your script states it.

View source on GitHub →

What it does

Used by: anyone routing a block — global routing decides where congestion lands and which nets get the short way through.

Routing a whole design wire by wire, all at once, is intractable. Global routing breaks it up: it divides the die into a coarse grid, decides which grid cells and layers each net will pass through, and resolves congestion before a single real wire is drawn.

vyges-grt reads a placed design, applies your layer ranges and capacity adjustments (per layer, global or per region), routes every net with congestion iterations and optional timing- and resistance-aware priority, repairs antenna violations, and writes the route guides and the database detailed routing reads.

.odb / LEF + DEF + JSON job  ──►  vyges-grt  ──►  route guides + .odb + SPEF

Your routing script, as a job file

The job is the steps you would give a router — layer settings, adjustments, nets to route, global route, antenna repair, write guides — replayed in the order you state them. Nothing reorders behind your back, so a change in the result traces to a change in the steps.

Clocks, input and output delays and per-layer RC can be part of the job, so critical nets are routed with real slack in hand. It can also write the parasitics of the routes it planned, as SPEF.

Nets already wired in the database are recognised and left alone, and the report counts them.

"Already routed" comes with a count

Status is routed, up to date, vacuous or error. Up to date means every routable net was already wired — and the report says how many. Vacuous means every step ran and none produced anything, and it is not a pass.

Try it

$ vyges install physical   # one-time: fetch the implementation engines into ~/.vyges/bin
$ vyges physical grt route job.json   # route, repair antennas, write guides
$ vyges physical grt route job.json -o grt.json   # keep the report

Exit status is the verdict: 0 routed or up to date · 2 vacuous or error.

Where it sits in the flow

After placement and cts, and directly before drt, which turns its guides into real wires.

Open core · Apache-2.0

A clean-room Rust engine working on the shared design database through vyges-opendb, so the block you check is the block you built. See all the engines & the data spine →