Determining if Hold-Fixing is Negatively Impacting the Design - 2023.2 English

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

Document ID
Release Date
2023.2 English

The Vivado Design Suite router prioritizes fixing hold over setup. This is because your design might work in the lab if you are failing setup by a small amount. There is always the option of lowering the clock frequency. If you have hold violations, the design will most likely not work.

In most cases, the router can meet the hold timing without affecting the setup. In some cases (mostly due to errors in the design or the constraints), the setup time will be significantly affected. Improper hold checks are often caused by improper set_multicycle_path constraints in which the -hold was not specified. In other cases, large hold requirements are due to excessive clock skew. In this case, AMD recommends that you review the clocking architecture for that particular circuit. For more information, see this link in the UltraFast Design Methodology Guide for FPGAs and SoCs (UG949).

This can occur if your design meets setup timing post placement, but fails setup post route. You can use the report_design_analysis command with the -show_all option to view path delay due to routing detours added by the router to fix hold violations. The following figure shows an example of report_design_analysis report with the Hold Fix Detour column indicating the delay (in ps) added to the timing path by the router due to hold fixing.

Figure 1. Report Design Analysis with Hold Fix Detour

Tip: Analyze the estimated hold timing post place and identify any unusually large hold violations (over 500 ps).

If you suspect that hold fixing is affecting timing closure, you can use one of the following to determine if this is the case: