Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

vyges physical pdn — CLI reference

Generated from vyges physical pdn --help — this page is the tool’s own output, verbatim.

usage: vyges-pdn generate <db> --out-def <def> --power <net> --ground <net>
         [--starts-with power|ground]   (default ground)
         [--domain <region>:<power>:<ground>]  (per grid; region domain)
         [--followpins <layer>[:<extend>[:<width>]]]   (micron, repeatable)
         [--stripe <layer>:<width>:<pitch>:<offset>[:<extend>[:<count>[:<snap>[:<spacing>]]]]]
         [--ring <layer0>,<layer1>:<width>:<spacing>:<offset>[:boundary]]
         [--pins <layer>[,<layer>...]]  (shapes there are never shrunk)
         [--split-cuts <layer>:<pitch>[:stagger]]   (micron, repeatable)

   vyges-pdn global-connect <db> --connect NET:PINPAT:INSTPAT:power|ground|signal
         [--connect ...]  [--force]  [--out-odb FILE]
         creates the supply nets and connects matching instance pins to them.
         Patterns are FULL matches, as OpenROAD's are. Without this, `generate`
         refuses: there is no net to build a grid on.
         status is applied or vacuous. VACUOUS IS NOT APPLIED: the rules matched no
         pin and nothing was connected. Exit is still 0 -- a design already wired
         correctly connects nothing on a second run -- so read connections.

   vyges-pdn --describe | --help | --version

⚠️ Shapes are emitted BEFORE trimming, which belongs with the via stage. Compare against
the reference run with `pdngen -skip_trim`.

Contract

Generated from vyges physical pdn --describe.

pdn

power distribution network generation: rings, straps, follow pins and the vias between them

Maturity: structured

generate {odb}

Consumes: odb

Artifacts: pdn_def (def_written)

Assertion: pdn-generated — passes when status equals generated

Provenance limitations

  • input_hash covers the argument vector, not the content of the .odb it names.
  • MEASURED 2026-08-23 against the upstream pdn goldens at pin 945a9f48dc6e5cc91d865daa92c45a1094cb682c: 110 of 110 comparable cases exact on shapes, vias and block terminals, 0 failing, and 9 of 9 on the diagnostic a refused command raises. A SCORE IS ONLY TRUE OF ONE COMMIT – quote the pin beside it.
  • 36 of the suite’s cases are skipped rather than passed, and the reasons are counted, not hidden: 29 build no grid at all, 2 have a reference that built no grid, 2 compute a -pitch in Tcl this translation cannot read, and one each use -existing, repair_pdn_vias and add_sroute_connect.
  • Diagnostics implemented so far: PDN-0003, 0004, 0005 (connect rules), 0106, 0107, 0108, 0114, 0117, 0118, 0191 (argument validation), 0185 and 0215 (runtime). A case whose golden names any other code is skipped with that code named, never silently passed.
  • status is one of generated, vacuous or error. VACUOUS IS NOT GENERATED: it means the run laid no metal at all, and this assertion passes only on generated, so a no-op fails it rather than reporting a grid that was never built. Zero can still be the right answer for the design; read shapes and decide.
  • The engine validates inside the ordinary build path, as the reference does inside addRing and addStrap, so every design it accepts has passed those checks too – the diagnostics are not a separate check mode.
  • Written against the upstream pdn regression suite. The algorithm is reimplemented from the published behaviour and the goldens’ implementation-defined details (snapping, tie-breaks, rounding), not transliterated from the source.