Address Timing
Perform a system run and if it completes with no violations, then the migration is successful.
If timing has not been met you might need to specify some custom constraints to help meet timing. Refer to UltraFast Design Methodology Guide for the Vivado Design Suite (UG949) for more information on meeting timing.
Custom Constraints
Custom Tcl constraints for floorplanning, placement, and timing of the kernels will need to be reviewed in the context of the new target platform (.xsa). For example, if a kernel needs to be moved to a different SLR in the new target platform, the placement constraints for that kernel will also need to be modified.
In general, timing is expected to be comparable between different target platforms that are based on the 9P Virtex UltraScale device. Any custom Tcl constraints for timing closure will need to be evaluated and might need to be modified for the new platform.
Custom constraints can be passed to the Vivado® tools using the [advanced]
directives of the v++
configuration file specified by
the --config
option. Refer to Managing FPGA Synthesis and Implementation Results in the Vivado Tool more information.
Timing Closure Considerations
Design performance and timing closure can vary when moving across Vitis releases or target platform(s), especially when one of the following conditions is true:
- Floorplan constraints were needed to close timing.
- Device or SLR resource utilization was higher than the typical guideline:
- LUT utilization was higher than 70%
- DSP, RAMB, and UltraRAM utilization was higher than 80%
- FD utilization was higher than 50%
- High effort compilation strategies were needed to close timing.
v++ --config
option, as described
in Mapping Kernel Ports to Global Memory, while verifying that any floorplan constraint
ensures the following: - The utilization of each SLR is below the recommended guidelines.
- The utilization is balanced across SLRs if one type of hardware resource needs to be higher than the guideline.
For designs with overall high utilization, increasing the amount of pipelining in the kernels, at the cost of higher latency, can greatly help timing closure and achieving higher performance.
For quickly reviewing all aspects listed above, use the fail-fast reports
generated throughout the Vitis application
acceleration development flow using the -R
option as
described below (refer to Controlling Report Generation for more information):
v++ –R 1
report_failfast
is run at the end of each kernel synthesis stepreport_failfast
is run afteropt_design
on the entire designopt_design
DCP is saved
v++ –R 2
- Same reports as with
-R 1
, plus: report_failfast
is post-placement for each SLR- Additional reports and intermediate DCPs are generated
- Same reports as with
All reports and DCPs can be found in the implementation directory, including kernel synthesis reports:
<runDir>/_x/link/vivado/prj/prj.runs/impl_1
For more information about timing closure and the fail-fast report, see the UltraFast Design Methodology Timing Closure Quick Reference Guide (UG1292).