The Vivado tools can generate a detailed coverage 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.
The exceptions coverage report is generated using the
-coverage command line option:
The report includes, for each valid timing exception, the following information:
- Constraint position number.
- Number of objects selected by the
-tocommand line options.
- The coverage, expressed as a percentage, between the number of pins reached by the timing exception compared to the number of pins specified by the
-from/-through/-tocommand line options.Note: When cells objects are specified, Vivado tools expand the cells into valid pins objects. This cell-to-pin conversion tends to bring the coverage down because typically the timing exception only reaches a subset of pins.
The following figure shows the exceptions coverage report.
When a timing exception does not have a path between the startpoints and endpoints, the coverage report shows 0.0. In the above example, timing exception position 15 does not have a timing path. This matches the result from
report_exceptions -ignored where constraint position 15 is reported as Non-Existent Path.
A coverage reports can assist in writing effective timing exceptions. The following figure shows another example of a coverage report for the following
set_multicycle_path -setup 2 -from [all_registers] -to [get_cells cpuEngine/or1200_cpu/or1200_ctrl/ex_insn_reg[*]]
In the example shown in the previous figure, the coverage for the
-from option is only 0.95% for 15901 cells objects returned by
all_registers. The efficiency of the constraint can be improved by refining the list of objects specified for the
-from option to only those objects that have a path to the cells