Checking the constraints
The cards come in more than one shape: a command to explain, and a description whose command you name. A missed card returns later in the round and starts the schedule over. A card answered correctly moves up the schedule and next appears after 1, 3, 7, then 21 days. Keys 1 to 4 choose an option, h shows a hint, and Enter moves on. A hint keeps the card where it is on the schedule. An ordering card is answered by clicking its items in order, and one wrong click ends it. Time values are in nanoseconds. Progress is stored in this browser.
All 6 cards in this section, with answers
-
check_setup -verboseChecks the constraints for problems and names each offender.
Hint: The name is about checking the setup of the constraints, not about setup timing.
The checks cover inputs with no input delay, outputs with no output delay, registers with no clock or several clocks, unconstrained endpoints, combinational loops, and generated clocks without a source clock. Without
-verboseonly counts are printed. OpenSTA reference -
check_setup -unconstrained_endpointsWarns about endpoints that no timing check covers.
Hint: An endpoint is unconstrained when nothing checks it: no timing check and no output delay.
An unconstrained endpoint is never checked, so it can hide a real failure. Input ports without input delay are a separate check,
-no_input_delay. OpenSTA reference -
if {![check_setup]} { exit 1 }Stops the script when any constraint check produces a warning.
Hint: The command returns a value. Ask what a flow would do with it.
check_setupreturns 1 when there are no warnings, so a flow can refuse to continue with broken constraints. OpenSTA reference -
report_disabled_edgesLists the disabled timing arcs and the reason for each.
Hint: A disabled arc carries no timing at all. Ask what could have disabled one.
The reason is constraint, constant, or loop. Arcs can be disabled by
set_disable_timing, by constants from case analysis, or automatically to break combinational loops. Unexpected entries often explain paths that are missing from reports. OpenSTA reference -
check_setup -no_clock -unconstrained_endpoints -loopsRuns only those three checks, rather than the whole set.
Hint: Three separate checks are named. Ask what running all of them at once would take.
With no keywords every check runs: missing input and output delays, registers with no clock or several clocks, unconstrained endpoints, combinational loops, and generated clocks whose source is not a clock. Naming a few narrows a long run, or focuses a script on what it cares about. OpenSTA reference
-
Before trusting any number, you want to know whether the constraints themselves are sound: unclocked registers, endpoints nothing checks, ports with no delay.check_setup
Hint: The others report timing; this one reports whether timing means anything.
A design with half its registers unclocked reports beautiful timing, because nothing is checked. This is the command that says so, and it is the first thing to run on a new constraints file. Listing unconstrained paths is useful too, but it answers a narrower question. OpenSTA reference