vyges-psm — power-grid analysis
Installed with the physical engines. Install it with
vyges install physical, then runvyges physical psm. It is also a standalonevyges-psmbinary on your PATH (the integration contract for flow authors). Source: vyges-tools/psm.
vyges-psm reads the power grid straight from the design database, so a grid with an open strap
or a starved macro is found where the grid is built, not after extraction.
| command | does |
|---|---|
check | every power and ground shape, and every instance supply pin, reaches the net’s supply |
analyze | the grid solved for static IR drop: per-node voltages, the worst and average drop |
write-spice | the grid as a SPICE netlist, with the currents of the last analyze of the net |
activities | diagnostic: the timer’s switching-activity propagation and each instance’s power terms |
Run it
vyges install physical # one-time
vyges physical psm check routed.odb --net VDD --error-file vdd.rpt # opens and shorts
vyges physical psm analyze routed.odb --net VDD --voltage-file vdd.csv \
--save-solution session.json # static IR drop
vyges physical psm write-spice routed.odb vdd.sp --net VDD --save-solution session.json
--save-solution keeps a session’s solutions between calls, so write-spice writes the currents
of the analyze before it, and --allow-reuse reports a saved solution instead of solving again.
With --enable-em, analyze also reports the current through each grid connection (--em-file
writes them all).
psm is analysis, but it ships in vyges-physical: the timer it builds for instance currents
comes from the placement and routing engines already there, so it is linked once.
What it reports
check exits 1 when a shape or pin does not reach the supply, and can write the unconnected and
shorted shapes as a marker report. A shape this build cannot read exactly (an octilinear wire, an
off-grid polygon) is refused with exit 3 rather than skipped, so a clean check means every shape
was read.