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}
| Input | Type | Required | Description |
|---|---|---|---|
sdc | string | yes | the SDC constraints to check |
netlist | string | no | gate-level Verilog (or Yosys JSON) netlist the constraints apply to; without it only the checks the file alone supports run |
lib | string | no | Liberty library of the netlist’s cells (required with netlist) |
metadata | string | no | vyges-metadata.json: its clock_domains are checked against the SDC’s clocks |
fail_on_warning | boolean | no | treat 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}
| Input | Type | Required | Description |
|---|---|---|---|
sdc | string | yes | the SDC to read |
out | string | yes | path to write the SDC to |
netlist | string | no | netlist, to evaluate object queries that need the design |
lib | string | no | Liberty, with netlist, for pin directions in those queries |
design | string | no | the current_design name to write |
partial | boolean | no | write even when commands are dropped (each as a # not written: line) |
Artifacts: sdc (out)
Assertion: sdc-written-whole — passes when complete is true