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-psm — power-grid analysis

Installed with the physical engines. Install it with vyges install physical, then run vyges physical psm. It is also a standalone vyges-psm binary 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.

commanddoes
checkevery power and ground shape, and every instance supply pin, reaches the net’s supply
analyzethe grid solved for static IR drop: per-node voltages, the worst and average drop
write-spicethe grid as a SPICE netlist, with the currents of the last analyze of the net
activitiesdiagnostic: 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.