Choose a High Quality Reference Checkpoint - 2023.2 English

UltraFast Design Methodology Guide for FPGAs and SoCs (UG949)

Document ID
Release Date
2023.2 English

Because the incremental implementation flow depends on reuse, the most important input to the flow is the reference checkpoint. When you use automatic incremental implementation in Project Mode, the Vivado tools manage the updating of the reference checkpoint. This ensures that reuse is high and timing is almost closed.

In all other use cases of the incremental implementation flow, you have control over the selection of the reference checkpoint. Following are guidelines to help improve your selection of the reference checkpoint:

  • Use a reference checkpoint that meets timing or is close to meeting timing. If the reference checkpoint is close to meeting timing, it might be beneficial to improve timing as follows before running the incremental implementation flow.
    Note: For automatic incremental implementation, the checkpoint is rejected unless WNS is less than -0.250 ns.
    • Run route_design -tns_cleanup to optimize paths that are not the worst case path.
    • Run the post-route phys_opt_design command to improve timing failures. Although this command might increase run time, these optimizations are replayed quickly in the incremental implementation run.
    • Use the report_qor_suggestions command to generate suggestions to improve the design. New suggestions applied in the incremental implementation flow must be incremental implementation-friendly. Suggestions already applied in the reference checkpoint do not need to be incremental implementation-friendly. For suggestions that are not incremental implementation friendly, consider applying the suggestions and updating the checkpoint using the default flow. For more information, see this link in the Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906).
  • Select the checkpoint with the lowest congestion, which more readily accommodates changes than congested checkpoints.
  • Maximize matching between reference and incremental checkpoints.
    Note: For automatic incremental implementation, the checkpoint is rejected unless cell matching is at least 94% and net matching is at least 90%.
    • Use incremental synthesis to reduce changes introduced into the netlist due to RTL changes. Enable incremental synthesis early in the design closure cycle rather than waiting until you are ready to use incremental implementation.
    • Ensure that synth_design and opt_design options match for the reference checkpoint and the incremental implementation runs.
    • Match tool versions. Although this is not a requirement, thresholds change and new optimizations are added, which can lead to reduced matching.
    • Avoid using opt_design AddRemap and ExploreWithRemap directives unless these are the only directives that close timing. These directives have reduced naming consistency when changes are introduced to the codebase.
  • Use report_qor_assessment to determine whether the design is ready for the incremental implementation flow to be run and whether it is preferable to switch from the default flow.
Tip: To adjust the incremental implementation thresholds, run config_implementation -help for information. To identify differences between the reference and the incremental checkpoints, run report_incremental_reuse.