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.
route_design -tns_cleanupto optimize paths that are not the worst case path.
- Run the post-route
phys_opt_designcommand 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_suggestionscommand 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
opt_designoptions 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
ExploreWithRemapdirectives unless these are the only directives that close timing. These directives have reduced naming consistency when changes are introduced to the codebase.
report_qor_assessmentto 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 -helpfor information. To identify differences between the reference and the incremental checkpoints, run