Skip to content

Your first timing run

Analyze an eight-cell chain, inspect the result, and check the saved timing state. All inputs below are included in the repository. Run from the checkout root after building the tools.

The Liberty file is a synthetic test library, not a characterized manufacturing process. The example has one corner and uses the default CPU f64 backend.

Import the inputs

Choose a fresh workspace directory; rusteda init creates its initial rev0.

export PATH="$PWD/target/release:$PATH"
FIX=verification/fixtures/synthetic/sta
WS=.work/first-timing

rusteda init --workspace "$WS" --format json
rusteda import --workspace "$WS" --base-rev rev0 \
  --lib "$FIX/lib/wt_15.lib" \
  --netlist "$FIX/net/chain_8.v" \
  --sdc "$FIX/sdc/chain_8.sdc" --format json

The import creates rev1. It caches the verbatim Liberty input and compiles netlist, library and constraint tables. Unsupported semantic constructs produce explicit diagnostics; read stderr even when stdout is JSON.

Analyze and inspect

ruststa run --workspace "$WS" --base-rev rev1 \
  --threads 2 --max-paths 5 --max-state-gib 1 --format json
ruststa report --workspace "$WS" --rev rev2 --section summary --format json
ruststa report --workspace "$WS" --rev rev2 --section paths --limit 5 --format json
ruststa report --workspace "$WS" --rev rev2 --section unconstrained --format json

The analysis creates rev2 with sta.rbin. Reports query that revision directly. Read the corner, wire model and constrained/unconstrained endpoint counts before interpreting slack. A successful command indicates that the operation completed; it does not establish that timing is met.

Path handles such as path1 are scoped to the analyzed revision. Resolve a handle returned by your path report:

ruststa path --workspace "$WS" --rev rev2 --target path1 --format json

Check the saved result

ruststa check --workspace "$WS" --base-rev rev2 --method both --format json
rusteda show --workspace "$WS" --rev rev3 --format json

both compares the saved result with a full engine rerun and the independent checker. The command commits sta_check.json in rev3; inspect the artifact and diagnostics for the verification status. A resource limit or unsupported case must not be interpreted as agreement.

The checker has a bounded scope, including known limitations on large exception cases. See checking and verification scope.

Next steps