Step 6: Rerunning Synthesis and Implementation - 2023.2 English

Vivado Design Suite Tutorial: Implementation (UG986)

Document ID
Release Date
2023.2 English
With changes to the RTL source now made, synthesis and implementation must be rerun. As Incremental Implementation has already been configured, all that must be done is to relaunch the tool flow as would be done in the default flow.
  1. In the Flow Navigator, click on Run Implementation. At this point, all the runs are reset and relaunched.

    In the Sources window, the Utility Sources is updated with the checkpoint from the previously routed impl_1 if the checkpoint has met certain criteria to ensure it is a good quality reference checkpoint for future runs.

    Also, updated is the Incremental column in the Design Runs window. This should now say Auto. If the checkpoint did not meet the criteria to be used as a suitable reference, it shows Auto(Skipped) as before.

    After implementation is complete, the Design Runs window shows the completed run.

    In the Design Runs window, it is possible to examine runtime and timing criteria. In this case:

    • Runtime has reduced for implementation as seen in the Elapsed column.
    • WNS > 0.000 has been maintained
    Note: Synthesis has not been run in a different mode than before; hence, its outcome is expected to resemble that of the prior occurrences.

    The “Elapsed” column measurement includes improvements to the place_design (phys_opt_design is not run here) and route_design and also the extra commands that are required in the incremental flow such as read_checkpoint -incremental and the extra reporting. To see more significant runtime improvements, the flow should be used on larger designs with a good reference checkpoint.

    Note: opt_design is not incremental and runtime for opt_design is unimpacted.

    Designs that have a complex flow, requiring the most effort in the reference run see the highest benefit. Ideally, reference checkpoints are timing-closed, with fewer than 5% of the leaf cells different than the updated design.

  2. Select the Reports window and double-click the Incremental Reuse Report in the Route Design section, as shown in the following figure.

    So far, you have modified the generation of the readEgressFifo so that the signal is zero when the error signal is non-zero. This is a small change to the design so you would expect the reuse to be high. Now examine the Incremental Reuse Report to confirm this is the case.

    In the report, you can confirm that a high percentage of cells, nets, and ports are fully reused.

    In the Reference Checkpoint Information section, you can see information reported on the reference checkpoint. This is useful when the source of the checkpoint is unknown.

    In the Comparison with Reference Run section, you can see how the runtime and WNS at each stage of the flow compare. This is good for debugging purposes to understand where WNS and runtime diverge when there are issues. These designs are not 100% the same so this information is only a guide.

    When run with the RuntimeOptmized directive, the target WNS of this run is either 0.0 or the WNS from the reference run if it is < 0.0. To always target a timing closed design (Target WNS = 0.0 ns), the incremental directive must be set TimingClosure. This can be done by applying the following command:
    set_property -name INCREMENTAL_CHECKPOINT.MORE_OPTIONS -value {-incremental_directive TimingClosure} -objects [get_runs impl_1]