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

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

vyges physical sdc — SDC constraint checking and writing

USAGE:
  vyges physical sdc check --sdc <f.sdc> [--netlist <n.v|n.json> --lib <l.lib> [--lib ...]]
                       [--top NAME] [--keep MODULE ...] [--metadata <vyges-metadata.json>]
                       [--define NAME=VALUE ...] [--fail-on-warning] [--json] [-q|-v ...]
  vyges physical sdc write --sdc <f.sdc> [-o out.sdc] [--netlist <n.v> --lib <l.lib> [--lib ...]]
                       [--top NAME] [--keep MODULE ...] [--define NAME=VALUE ...]
                       [--design NAME] [--partial] [--json] [-q|-v ...]
  vyges physical sdc --describe | --version | --help
  vyges physical sdc --bug-report | --feature-request | --sponsor | --star

COMMANDS:
  check   completeness + consistency of the constraints against the design: I/O with no delay,
          registers no clock reaches, exceptions naming no object or path, endpoint coverage,
          and (with --metadata) the IP's declared clock domains. Without --netlist: the checks
          the file alone supports, and every command not applied (an error when it affects
          timing: a constraint the timer will not see is a hole, not a detail).
  write   the constraints back out as SDC. Refuses — nothing written — when a command would be
          dropped, listing each; --partial writes anyway, with a `# not written:` line per
          dropped command. A netlist (+ Liberty) lets object queries that need the design
          (-filter, -of_objects, -regexp) be evaluated instead of refused.

OPTIONS:
  --sdc FILE            the SDC to read
  --netlist FILE        gate-level Verilog, or Yosys JSON (.json); gzipped is read too. A
                        hierarchical netlist is flattened, as the timer reads it
  --top NAME            the netlist's top module, when the file has more than one candidate
  --keep MODULE         a module kept as a block, not flattened (repeatable)
  --lib FILE            Liberty (repeatable; merged in order)
  --metadata FILE       vyges-metadata.json whose clock_domains `check` tests the SDC against
  --define NAME=VALUE   a Tcl variable set before the SDC is read (repeatable): what a flow's
                        setup script defines and its constraint files only use
  --fail-on-warning     `check`: exit 1 on a warning too, not only on an error
  -o, --out FILE        `write`: the SDC to write (default stdout; with --json, the envelope's `text`)
  --design NAME         `write`: the current_design name to write
  --partial             `write`: write even when commands are dropped
  --json                emit the JSON result envelope on stdout
  -q, --quiet           fewer events (repeatable): -q warn, -qq error, -qqq none
  -v, --verbose         more (repeatable): -v debug (adds what was read), -vv trace
  --describe            print the machine-readable tool contract (for `vyges mcp`)
  --bug-report          file a bug (central: vyges/community)
  --feature-request     request a feature (central)
  --sponsor             sponsor Vyges (github.com/sponsors/vyges-ip)
  --star                star this tool on GitHub

ENVIRONMENT:
  VYGES_LOG             level when no -q/-v is given: off|error|warn|info|debug|trace or 0-5
                        (inherited from `vyges`, so it sets the whole command tree)
  VYGES_LOG_FORMAT      events on stderr as `json` (JSONL) or `text`; default text on a TTY, JSONL piped

EVENTS (stderr, vyges-events):
  SDC-READ     debug  what the SDC held: clocks, I/O delays, exceptions, ignored commands
  SDC-<code>   per finding of `check` (e.g. SDC-UNCONSTRAINED-OUTPUT), at its severity
  SDC-CHECK    the `check` summary
  SDC-NOT-WRITTEN  per command `write` left out
  SDC-WRITE    the `write` summary: complete, PARTIAL or REFUSED
  SDC-IPMETA   --metadata could not be read; the other checks still ran
  SDC-FLATTEN  a hierarchical netlist was flattened, and anything it found (undefined cells)
  SDC-INPUT    an input could not be read

EXIT STATUS:
  0  ok        check: no errors (and with --fail-on-warning no warnings); write: written
  1  finding   check found an error (or a warning with --fail-on-warning); write REFUSED
  2  error     usage, or an input that could not be read

Contract

Generated from vyges physical sdc --describe.

sdc

SDC constraint check: completeness and consistency of a design’s constraints against its netlist and Liberty (unconstrained I/O, clocks reaching no register, exceptions naming no path, endpoint coverage).

Maturity: structured

check --sdc {sdc}
InputTypeRequiredDescription
sdcstringyesthe SDC constraints to check
netliststringnogate-level Verilog (or Yosys JSON) netlist the constraints apply to; without it only the checks the file alone supports run
libstringnoLiberty library of the netlist’s cells (required with netlist)
metadatastringnovyges-metadata.json: its clock_domains are checked against the SDC’s clocks
fail_on_warningbooleannotreat a warning (e.g. an unconstrained output) as a failure, not only an error

Consumes: sdc, netlist, liberty

Assertion: sdc-clean — passes when clean is true

Provenance limitations

  • input_hash covers the argument vector, not the content of the SDC, netlist, Liberty or metadata files it names.

sdc.write

write SDC constraints back out, normalised; refuses (nothing written) when any command would be dropped, listing each, unless partial is set

write --sdc {sdc} -o {out}
InputTypeRequiredDescription
sdcstringyesthe SDC to read
outstringyespath to write the SDC to
netliststringnonetlist, to evaluate object queries that need the design
libstringnoLiberty, with netlist, for pin directions in those queries
designstringnothe current_design name to write
partialbooleannowrite even when commands are dropped (each as a # not written: line)

Artifacts: sdc (out)

Assertion: sdc-written-whole — passes when complete is true