This quick reference guide presents the following simplified, step-by-
step flows for quickly closing timing, based on the recommendations in
the UltraFast Design Methodology Guide for the Vivado Design Suite
(UG949):
Initial Design Checks: Review utilization, logic levels, and timing
constraints before implementing the design.
Timing Baselining: Review and address timing violations after each
implementation step to help close timing after routing.
Timing Violation Resolution: Identify the root cause of setup or hold
violations, and resolve the timing violations.
The Tcl-based failfast report summarizes key information about the
design and constraints, which allows you to quickly identify and address
common implementation and performance issues. By default, the report
analyzes the entire design and outputs a table with each analyzed metric
compared to a typical guideline. Metrics that do not comply with
guidelines are marked as REVIEW. The report includes the following
sections:
Design characteristics
Critical clock methodology checks
Conservative logic-level assessments based on a target Fmax
Starting in the Vivado® tools 2018.1 release, the report_failfast script
is installed by default and can be called as follows:
xilinx::designutils::report_failfast
Starting in the SDx™ tools 2018.2 release, report_failfast is called
during the compilation flow when using xocc –R 1 or xocc –R 2.
For more information on report_failfast, see Failfast Report
Overview (page 10).
Although implementing a design on a Xilinx® device is a fairly automated
task, achieving higher performance and resolving compilation issues due
to timing or routing violations can be a complex and time-consuming
activity. It can be difficult to identify the reason for a failure based on
simple log messages or post-implementation timing reports generated
by the tools. Therefore, it is essential to adopt a step-by-step design
development and compilation methodology, including the review of
intermediate results to ensure the design can proceed to the next
implementation step.
The first step is to make sure all initial design checks are addressed.
Review these checks at the following levels:
Each kernel made of custom RTL or generated by Vivado HLS
Note: Check that target clock frequency constraints are realistic.
Each major hierarchy corresponding to a subsystem, such as a
Vivado IP integrator block diagram with several kernels, IP blocks,
and connectivity logic
Complete design with all major functions and hierarchies, I/O
interfaces, complete clocking circuitry, and physical and timing
constraints
If the design uses floorplanning constraints, such as super logic region
(SLR) assignments or logic assigned to Pblocks, review the estimated
resource utilization for each physical constraint, and make sure that the
utilization guidelines are met. See the default guidelines in the failfast
report. To generate reports, use the following commands:
report_utilization –pblocks <pblockName>
report_failfast –pblock <pblockName>
report_failfast [–slr SLRn | -by_slr]
UG1292 (v2019.1) June 26, 2019
Open the synthesized design checkpoint (DCP) or the post-opt_design DCP
(if available)
Run report_failfast
Review Check Timing section in
report_timing_summary
Run report_methodology
Proceed to design implementation (logic optimization, placement, routing)
Fix methodology checks that impact
timing closure (Fmax)
Create missing clock constraints to
eliminate unconstrained internal
endpoints and avoid timing loops
Review the detailed reports to identify
the design characteristics or
constraints to improve:
● Estimated device and SLR Pblock
resource utilization
● Constraints preventing optimizations
● Control signals and average fanout
● Clock tree and clock domain
crossing constraints
● High logic levels given the target
frequency
Clean report?
Clean report?
Clean report?
Yes
Yes
Yes
No
No
No
X21574-091818
INITIAL DESIGN CHECKS - DETAILS
INITIAL DESIGN CHECKS FLOW
INITIAL DESIGN CHECKS DETAILS
UltraFast Design Methodology Timing Closure
Quick Reference Guide (UG1292)