Skip to content

Reports and artifacts

RustSTA returns rusteda.v1 JSON envelopes. Common fields identify the command, workspace, base_rev, queried rev, committed new_rev, scope, completeness, metrics, diagnostics and errors. Operation-specific fields add tables, paths or verification results. Use the protocol as the exact contract.

Read scope before slack

Timing results identify their operating corner, clock and wire models, parasitics, backend and precision. Endpoint completeness identifies constrained and unconstrained coverage. An unchecked DRC is drc_status: "unchecked". It must not be reported as a zero-violation check. The electrical design rules (max_transition, max_capacitance, max_fanout) and the pulse checks have their own status, max_transition_status, max_capacitance_status, max_fanout_status, drv_status and pulse_width_status, with counts. A status is met only when every check was evaluated without violation: partial when some checks were not evaluated (unclocked pulse pins, pulse pins left out by --pulse-pins clock-ends, values that are not finite, pins without any transition completeness.drv_untimed_pins, pins of an ideal clock network completeness.drv_ideal_clock_pins), when a design rule is checked on some pins but others have no limit (completeness.drv_unlimited), or when a design rule has no limit anywhere; unconstrained when there is nothing to check, and unchecked when nothing was evaluated or the table did not check them. A count without a checked row is null, never zero. The rules of the pulse checks are part of the scope (scope.pulse_rules: groups worst or last, pins all or clock-ends), and so is the clock limit scope of the design rules (scope.drv_rules.clock_limits: paths or domain; the clock network pins on which the two differ are counted in completeness.drv_clock_scope_pins). The drivers of constant nets, which are not checked for capacitance and fanout, and the pins that no transition reaches (netlist literals and their cones, checked with the static transition 0) are counted in completeness.drv_constant_drivers and completeness.drv_static_transition_pins; the pins of constant nets otherwise carry the transition of the delay calculation, which ignores logic values, and no arrival; unconnected instance output pins, which drive no net, are not checked and are counted in completeness.drv_unconnected_output_pins.

ruststa report --workspace ./ws --rev rev2 --section limits --format json
ruststa report --workspace ./ws --rev rev2 --section drv --filter violating --format json
ruststa report --workspace ./ws --rev rev2 --section hold_fix --target-margin 0.05 --format json
ruststa report --workspace ./ws --rev rev2 --section summary --format json
ruststa report --workspace ./ws --rev rev2 --section unconstrained --format json
ruststa report --workspace ./ws --rev rev2 --section endpoints \
  --filter 'slack<0' --limit 10 --format json

Tables expose columns and row counts, including total/matched/shown counts. Bounded output is a window into the result, not proof that the design has only that many endpoints. The limit row sections also give stored and truncated rows: their total counts every checked row, while only the kept rows can match a filter. Path handles refer to the selected revision. ruststa path --to NAME gives the worst path of the endpoint over all corners, or in --corner, and warns T0138 when a requested check has no path. inspect --pin of an endpoint reports the required times of that worst path with the endpoint slacks; the pins section reports node values. report --section endpoints --kind hold orders the endpoints by hold slack unless --sort is given.

Workspace artifacts

Artifact Role
manifest.json Current workspace head and revision allocation
workspace.lock Shared/exclusive coordination lock
history.jsonl Mutation history
cache/*.lib, cache/*.rlib Verbatim and compiled Liberty inputs
revisions/revNNNN/netlist.rbin Compiled structural netlist
revisions/revNNNN/constraints.rbin Compiled SDC
revisions/revNNNN/constraints/merged.sdc Canonical constraints used by checking
revisions/revNNNN/sta.rbin Persisted multi-corner timing state
revisions/revNNNN/sta_check.json Verification verdict, methods, tolerance and differences

The current engine writes a 24-section STA v2 timing store in the shared RBIN v1 container. Mapped queries open the persisted result without another timing propagation. See store format and workspace format.

Full storage supports detailed path and pin queries. Summary storage omits detail; do not assume every query is available after --sta-store summary.