Vyges Loom · Physical implementation
Turn route guides into real wires and vias — until no design-rule marker stands.
Pin access, track assignment and search-and-repair, written as a DEF or a database.
Used by: anyone taking a block to GDS — detailed routing is where the design becomes manufacturable metal.
Global routing says which region each net passes through. Detailed routing draws the actual wires and vias, on tracks, obeying every spacing, width and via rule the technology defines — and keeps repairing until the design is clean.
vyges-drt computes pin access for every cell class and instance, processes the guides, runs track assignment, then iterates search-and-repair until no design-rule marker stands. Nets already routed in the database are kept and counted; the result is written as a DEF or a database.
.odb with route guides ──► vyges-drt ──► routed DEF or .odb + JSON report
pin_access is its own command: it groups instances into unique classes, finds every pin's access points — each planar direction and via checked against the design rules — chooses an access pattern per class and per row of abutting cells, and writes the result into the database.
Run it alone to see how your cells will be reached before committing to a full route, or let detailed_route run it as its first stage.
The routing layers and non-default rules are the ones the database already holds — no second copy to drift.
Status is written, markers or error. Written means routed with no design-rule marker standing. Markers means routed and written with markers still standing — reported with its own exit code, so CI cannot mistake a dirty route for a clean one.
Exit status is the verdict: 0 written, routed clean · 1 routed with markers standing · 2 error.
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 →