Path reports
The cards come in more than one shape: a command to explain, and a command with a gap to fill. 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 20 cards in this section, with answers
-
report_checksReports the worst setup path in each path group, in full detail.
Hint: Three defaults decide what you get: which analysis, how much detail per path, and how many paths per group.
With no options,
-path_delayismax(setup),-formatisfull, and one path is reported per path group. Paths are grouped by the clock that captures them, with separate groups for unclocked and unconstrained paths. OpenSTA reference -
report_checks -path_delay minReports the worst hold path in each path group.
Hint: In a timing tool, min and max name the two analyses, not the size of anything.
minuses the earliest arrivals, which are checked against hold requirements;maxuses the latest arrivals, checked against setup. OpenSTA reference -
report_checks -path_delay min_maxReports both the worst setup path and the worst hold path in each group.
Hint: Read it as min plus max: the two analyses in one report.
min_maxruns both analyses in one report: the setup (max) paths and the hold (min) paths. OpenSTA reference -
report_checks -group_path_count 10Reports up to 10 of the worst paths in each path group.
Hint: There are two counts in this command: one per path group, one per endpoint. This is the first.
The default is 1 per group. Because
-endpoint_path_countdefaults to 1, each endpoint contributes at most one path, so these are the 10 worst endpoints of each group. OpenSTA reference -
report_checks -group_path_count 5 -endpoint_path_count 3Reports 5 paths per group, allowing up to 3 different paths into one endpoint.
Hint: The group count caps the whole group; the endpoint count only decides how those paths may be shared out.
-group_path_countcaps the paths per group;-endpoint_path_countcaps how many of them may end at the same endpoint. Many of those paths can differ only in rise and fall edges;-unique_paths_to_endpointkeeps one path per set of pins. OpenSTA reference -
report_checks -format end -group_path_count 20Lists the 20 worst endpoints per group, one line per endpoint.
Hint: The end of a path is its endpoint, and the format keeps only that.
The
endformat drops the stage-by-stage detail and keeps one line per path end: required time, arrival, and slack. It is the usual way to see how many endpoints fail and by how much. OpenSTA reference -
report_checks -format full_clockReports the data path plus the launch and capture clock paths, stage by stage.
Hint: The default report compresses each clock into a single `clock network delay` line. Ask what expanding it shows.
The default
fullformat shows the clock network delay as a single line.full_clockexpands it into the clock buffers on both sides, which shows where skew comes from.full_clock_expandedalso shows the path from a generated clock's source. OpenSTA reference -
report_checks -fields {slew cap fanout}Adds slew, capacitance, and fanout columns to every stage of the path.
Hint: Fields add columns to each stage; they do not filter which paths are reported.
The extra columns explain a slow stage: a large load, a high fanout, or a slow input slew.
input_pinandnetadd the input pins and the nets as rows. OpenSTA reference -
report_checks -slack_max 0 -group_path_count 100Reports up to 100 paths per group with slack below 0, the failing ones.
Hint: Read `-slack_max` as an upper bound on the slack of the paths you want listed.
-slack_maxkeeps paths with less slack than the value, and-slack_minkeeps paths with more. Together with a large path count,-slack_max 0lists the failing paths. OpenSTA reference -
report_checks -through [get_pins u_alu/sum*]Reports the worst path that passes through one of the pins u_alu/sum*.
Hint: `-from`, `-through`, and `-to` mean here what they mean in a timing exception.
-from,-through, and-tonarrow the report the same way they narrow a timing exception: from start points, through intermediate pins, to endpoints. OpenSTA reference -
report_checks -unconstrainedAlso reports paths that have no timing requirement at all.
Hint: A path with no requirement has no slack, so ask where such paths are normally put.
They are reported in their own group. Without this option the unconstrained group is not reported at all. An unconstrained path usually means a constraint is missing, for example an output port with no output delay. OpenSTA reference
-
report_checks -group_path_count 5 -sort_by_slackReports the paths in slack order across all groups, not group by group.
Hint: By default paths are listed group by group, sorted inside each group.
By default paths are listed group by group, worst first within each group.
-sort_by_slackmerges the groups into one list ordered by slack. OpenSTA reference -
report_checks -path_group core_clockReports only the paths in the path group named core_clock.
Hint: A path's group is the clock that captures it, unless `group_path` moved it.
A path's default group is the clock that captures it, so this reports paths captured by core_clock. Groups made with
group_pathare selected the same way. OpenSTA reference -
set paths [find_timing_paths -path_delay max -group_path_count 10]Stores the 10 worst setup paths as path objects in a variable, printing nothing.
Hint: The name says find, not report. Ask what a script would want back.
find_timing_pathstakes the same selection options asreport_checksbut returns objects for a script.get_propertyreads their fields, such asslack,startpoint, andendpoint. OpenSTA reference -
report_checks -format summary -group_path_count 10Prints one line per path with its start point, end point, and slack.
Hint: Between the full path and one line per end, there is a middle.
summarykeeps the start point, whichenddrops, and omits the required and arrival columns thatendshows. It is the quickest way to see which registers the failing paths run between. OpenSTA reference -
report_checks -path_delay min_max -format shortPrints only each path's header, with no stages and no numbers.
Hint: Ask what remains when the stages and the numbers are both dropped.
What is left is the start point, end point, path group, and path type. That alone answers which paths would be reported, which is how a selection is checked before a long report is run. Confirm it by reading the header lines: the path type says whether it is a setup or a hold path. OpenSTA reference
-
report_checks -format json > paths.jsonWrites the paths in a machine-readable form, ignoring the field options.
Hint: Ask who reads this one.
A script that post-processes timing should not parse the human report, whose layout changes between versions. The JSON (JavaScript Object Notation) form is stable, and
-fieldsis ignored because every field is present. OpenSTA reference -
report_checks ____ min -digits 3-path_delay
Hint: The report wanted here is the hold report.
Minimum delay paths are the hold checks and maximum delay paths the setup checks, and
min_maxasks for both. Other timers spell the same option-delay_type, which is why a script moved between tools trips here rather than anywhere more interesting. OpenSTA reference -
report_checks -format ____full_clock_expanded
Hint: Two of these show the clock. Only one expands it cell by cell.
The plain full format shows the data path with the clock arrival as a single number. Adding the clock shows the clock edges, and expanding it shows every buffer in the tree, which is what you need when the skew itself is the suspect. OpenSTA reference
-
report_checks ____ 10 -path_group reg2reg-group_path_count
Hint: The other counting option limits how many paths may share one endpoint.
By default one path is reported per endpoint and a handful per group. Raising the group count gives a longer list of the worst paths; raising the endpoint count gives several paths through the same endpoint, which is what you want when one register is failing for more than one reason. OpenSTA reference