Reporting the Timing Exceptions Coverage - 2023.2 English

Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)

Document ID
Release Date
2023.2 English

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:

report_exceptions -coverage

The report includes, for each valid timing exception, the following information:

  • Constraint position number.
  • Number of objects selected by the -from/-through/-to command 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/-to command 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.

Figure 1. 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 constraint:

set_multicycle_path -setup 2 -from [all_registers] -to [get_cells 
Figure 2. Multicycle Path Coverage

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 cpuEngine/or1200_cpu/or1200_ctrl/ex_insn_reg[*].