vyges physical psm — CLI reference
Generated from vyges physical psm --help — this page is the tool’s own output, verbatim.
vyges physical psm — power-grid analysis on the design database: connectivity check, static IR drop, per-node voltages, SPICE export
USAGE:
vyges physical psm check <design.odb> --net NET [--floorplanning] [--dont-require-terminals]
[--error-file FILE] [--dump-dir DIR] [--stats]
every power/ground shape and instance pin reaches a supply
vyges physical psm analyze <design.odb> --net NET [--voltage-file FILE] [--enable-em [--em-file FILE]]
[--save-solution FILE [--allow-reuse]] [--dump-dir DIR]
[--corners C,C] [--liberty FILE | --liberty-corner C FILE ...] [--sdc FILE]
[--corner C] [--inst-power FILE]
static IR drop: per-node voltages, worst and average drop;
each instance's power from the timer on the libraries
and constraints
vyges physical psm write-spice <design.odb> <file> --net NET --save-solution FILE [--vsrc FILE]
the power grid as a SPICE netlist, with the currents
of the session's last analyze of the net
vyges physical psm activities <design.odb> [--corners C,C] --liberty FILE | --liberty-corner C FILE ...
[--sdc FILE] [--powers [--corner C]]
diagnostic: the timer's switching-activity propagation,
each value set (IEEE bits), in the order it was set;
--powers: then each instance's power terms (IEEE bits)
vyges physical psm --describe
vyges physical psm --help
vyges physical psm --version
OPTIONS:
--net NET the supply net to analyse
--floorplanning check: only FIXED instances count (the grid before placement)
--dont-require-terminals check: a net without a placed block terminal is not an error
--error-file FILE check: write the net's unconnected and shorted shapes as a marker report
--voltage-file FILE analyze: write each instance terminal's voltage (CSV)
--enable-em analyze: report the grid's connection currents (maximum, average, count)
--em-file FILE analyze: with --enable-em, write each connection's current (CSV)
--save-solution FILE analyze: the session's solutions, kept between calls (read, then updated)
--allow-reuse analyze: report the saved solution of this net and corner instead of solving
--liberty FILE a Liberty library, in read order (gzip read); --liberty-corner C FILE: for corner C only
--sdc FILE analyze: the constraints the instance power is timed under (clocks, activities)
--corners C,C analyze: the corners defined (define_corners); --corner C: the one analysed
--inst-power FILE analyze: each instance's power given (`INSTANCE WATTS` per line) instead of the
timer's: a diagnostic
--dump-dir DIR write the network after each construction stage (psm_<stage>.txt) to DIR
--stats print the network's shape, node and connection counts
-o FILE write the report (or the output database) to FILE
--json machine-readable output instead of the text report
-q, --quiet suppress non-essential output
-v, --verbose extra detail on stderr
--describe print a machine-readable JSON description of the command
--bug-report file a bug (central: vyges/community)
--feature-request request a feature (central)
EXIT STATUS:
0 ok
1 a finding — the check ran and failed
2 usage or unreadable input
3 refused — this build does not implement the command yet
Contract
Generated from vyges physical psm --describe.
psm
Power-grid analysis on the design database: connectivity check, static IR drop, per-node voltages, SPICE export.
Maturity: discovered
analyze {design} --net {net}
| Input | Type | Required | Description |
|---|---|---|---|
design | string | yes | design database (.odb) holding the power grid |
net | string | yes | supply net to analyse, e.g. VDD |
inst_power | string | no | file of per-instance power, one INSTANCE WATTS pair per line, used instead of the timer’s (diagnostic) |
user_power | string | no | one instance’s power as INST=WATTS[@CORNER] |
liberty | string | no | Liberty library (.lib, may be gzipped): the cells the instance power is computed from, the supply voltage and RC units |
sdc | string | no | constraints (SDC) the instance power is timed under: clocks set the switching activity |
net_voltage | string | no | a supply net’s voltage as NET=VOLTS[@CORNER], overriding the Liberty’s |
vsrc | string | no | voltage-source location file (it also gives the source voltage); without it the sources are the net’s block-terminal pins, else generated as source_type says |
source_type | string | no | the generated source pattern when there is no vsrc and the net has no block-terminal pins (default BUMPS) |
corner | string | no | corner name (default: default) |
voltage_file | string | no | CSV file to write each instance terminal’s voltage to |
Consumes: odb, liberty, sdc
Artifacts: instance_voltages (voltage_file)
Assertion: ir-drop-reported — none; this operation establishes no engineering claim
Provenance limitations
- check: an error file holding a short whose overlap is not one rectangle refuses (exit 3).
- check refuses (exit 3) on an octilinear special wire of another net, a pin layer mixing a polygon off the Manhattan grid with other metal, and an off-grid obstruction polygon.
- analyze and write-spice are built end to end; a solution is kept between calls only through –save-solution (write-spice reads it).
- The described call is
analyze: the net’s connectivity checked, then its static IR drop solved and the IR report printed (supply voltage, worst and average voltage, worst and average drop, percentage drop). - Instance power is computed by the timer from
libertyandsdc(switching activity propagated from the clocks and the default input activity, then internal, switching and leakage power per instance), as the solve needs it. Withoutlibertyno instance has a liberty cell and the power isuser_poweralone. A timer this build does not reproduce (liberty k_ scale factors, set_clock_transition, more than one constraints file) refuses (exit 3) rather than solving at 0 W.inst_powerreplaces the timer’s power with the file’s, for diagnosis.libertyalso gives the supply voltage (its nominal voltage) and the RC units; without it ornet_voltagethe supply voltage is unknown and analyze stops (PSM-0079, exit 1). analyzeprints its report; it has no –json output (a –json is refused as an unknown option, exit 2), so emits_json is false and the result is the printed report.- analyze sets no IR-drop or current limit, so it establishes no pass/fail claim: the assertion is not_applicable. A net whose shapes are not all connected stops the call with exit 1 (PSM-0069) before any solve. EM reporting, a saved solution and repeated
net_voltageoruser_powerentries need the engine’s own arguments. - input_hash covers the argument vector, not the content of the database, source, power or Liberty files it names.