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 upf — CLI reference

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

vyges physical upf — power intent (UPF) for designs with several power domains: domains, isolation, level shifters, power switches

USAGE:
  vyges physical upf run    <design.odb> <intent.upf> -o OUT.odb [--trace]
                                                    read the power intent into the database
  vyges physical upf write  <design.odb> [-o FILE]  write the database's power intent as UPF
  vyges physical upf eval   <design.odb> -o OUT.odb [--liberty FILE]... [--trace]
                                                    make the power intent physical: a fence region
                                                    and group per domain, the domain hierarchy,
                                                    isolation cells and level shifters between domains
  vyges physical upf --describe
  vyges physical upf --help
  vyges physical upf --version

OPTIONS:
  -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
  --liberty FILE        eval: a Liberty library (repeatable, in read order): inverters, cell
                        areas and isolation pins for the cells eval inserts
  --trace               run: one VYG-UPF line per database-layer call, in call order;
                        eval: one VYGEV line per database write, in the order made
  --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 upf --describe.

upf

Power intent (UPF) for designs with several power domains: domains, isolation, level shifters, power switches.

Maturity: discovered

write {design} -o {out}
InputTypeRequiredDescription
designstringyesdesign database (.odb)
outstringyesUPF file to write

Consumes: odb

Artifacts: upf (out)

Assertion: upf-written — none; this operation establishes no engineering claim

Threads

Runs on one thread; there is no thread option. Several jobs can run side by side, one core each.

Provenance limitations

  • input_hash covers the argument vector, not the content of the database it names.
  • write writes the power intent already in the database: power domains, logic ports, power switches with their cell map, isolation and level-shifter strategies, each section in the database’s creation order. It matches the reference’s own UPF writer line for line, after the first line (which names the writing tool), on 6 of 6 cases: every UPF in the reference’s regression data and one written to reach what those do not (objects declared out of name order, a switch state with no supply port, an acknowledge with no net, a sense with no signal, thresholds at an exact binary tie).
  • A power switch with no cell map is written without map_power_switch; the reference’s writer stops on one.
  • run reads a UPF file into the database as the reference’s read_upf does: the ten UPF commands (create_power_domain, create_logic_port, create_power_switch, set_isolation, use_interface_cell, set_domain_area, map_power_switch, set_level_shifter, set_domain_voltage, set_level_shifter_cell) with the reference’s argument rules (a key may be abbreviated to a unique prefix; repeatable switch options keep their order), defaults and warnings. A UPF file is Tcl: a variable or command substitution, or any other Tcl command, is refused (exit 3), not guessed at. An error the reference stops on stops the read with exit 2 and writes nothing.
  • A level shifter’s cell (set_level_shifter_cell) is held in memory only, as in the reference: it is not part of the stored database, so it is gone from the database run writes.