Use the -coverage option with the
report_exceptions command to generate a detailed coverage report of
each valid timing exception applied to the design. All the timing exceptions are
reported, including those that are fully overridden or that do not have a path between
startpoints and endpoints.
report_exceptions -coverage
For each valid timing exception, the report shows the following:
- Constraint position number
- Number of objects selected by the
-from,-through, and-tooptions - Coverage percentage, which compares the number of pins affected by the
constraint to the total number of pins specifiedNote: If you use cells (instead of pins) in your
-from,-through, or-tooptions, Vivado expands those to pins. This expansion often reduces the reported coverage, because not all pins within the cells are tageted by the exception.
The following figure shows the exceptions coverage report.
When a timing exception has no valid path between the specified startpoints and
endpoints, the coverage report shows 0.0%. For example, if constraint position 15 shows
0.0% coverage, it indicates that no path exists. This matches what you see in the
report_exceptions -ignored report, where the same
constraint appears as a Non-Existent Path.
set_multicycle_path -setup 2 -from [all_registers] -to [get_cells
cpuEngine/or1200_cpu/or1200_ctrl/ex_insn_reg[*]]
If the coverage for the -from option is only 0.95%, even though
all_registers returns 15,901 cells, it means that only a small
subset of those registers have paths to the destination.
To improve efficiency and clarity, refine the -from list to include only
the registers that have paths to ex_insn_reg[*]. This prevents
over-constraint and improves the accuracy of your timing exceptions.
In the example shown, the -from option returns 15,901 cell objects using
all_registers, but the coverage is only 0.95%. This low percentage
indicates that most of the specified registers do not have timing paths to the
cpuEngine/or1200_cpu/or1200_ctrl/ex_insn_reg[*] cells.
To improve the efficiency of this constraint, refine the -from list to
include only the registers that actually have paths to the destination cells. This
reduces unnecessary coverage and results in a more accurate and effective timing
exception.