Quartus® Prime Pro Edition User Guide: Timing Analyzer

ID 683243
Date 4/01/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

2.1. Using Timing Constraints throughout the Design Flow

To ensure accurate timing analysis, it is essential to define proper timing constraints that specify your design's clock frequency requirements, timing exceptions, and I/O timing specifications for comparison with actual conditions.

You specify the timing constraints in various Synopsys Design Constraint (SDC) files that you add to the project. You can define SDC files and run timing analysis at two key stages of the design compilation flow:

  • After running Analysis & Synthesis—you can run Early Timing Analysis based on the synthesized design and initial SDC-on-RTL constraints you specify. If you're starting a new design, you can use SDC-on-RTL constraint methodology to learn benefits of timing analysis after synthesis. If you've already partially completed an existing design, it is best to use conventional SDC constraints.
  • After running the Fitter—you can run post-fit timing analysis that accounts for actual path delays and the conventional SDC constraints you specify.

Post-Synthesis Early Timing Analysis Constraints

After running Analysis & Synthesis, you can run post-synthesis Early Timing Analysis based on the synthesized design and initial constraints that you define with SDC-on-RTL (.rtlsdc) or a synthesis-only conventional (.sdc). SDC-on-RTL allows you to define constraints using the same names in your design RTL, ensuring that your timing constraints names align closely with the RTL node names in the elaborated netlist.

Early timing analysis uses the initial SDC-on-RTL constraints that you specify to perform post-synthesis static timing analysis without needing to run the Fitter. The Compiler reads the constraints during Analysis & Elaboration, and then applies the SDC-on-RTL constraints for all downstream stages of compilation. For more details, refer to Specifying SDC-on-RTL Timing Constraints for step by step instructions.

As an alternative to SDC-on-RTL, you can define a conventional synthesis-only .sdc that applies the constraints only for design synthesis, as Specifying Synthesis-Only SDC Timing Constraints describes.

Post-Fit Timing Analysis Constraints

After running the Fitter's Plan, Place Route, Fitter (Finalize) stage, you can run post-fit timing analysis that accounts for actual path delays based on the Planned, Placed, or Routed design with constraints that you define in conventional SDC (.sdc) files. This post-fit timing analysis provides the most precise control over timing constraints.

You can define a conventional .sdc file directly in the Timing Analyzer GUI, or use the SDC file templates available using Edit > Insert Template. You can alternatively define an .sdc file in any text editor and then integrate it into your project. Refer to Specifying Conventional SDC Timing Constraints.

The SDC File Types Supported table summarizes the differences between the various SDC file types and when the Quartus® Prime software uses them.

Table 4.  Supported SDC File Types
  SDC-on-RTL Synthesis-Only SDC Conventional SDC
Stage where constraints are read Analysis & Elaboration Synthesis Fitter, Signoff
Stage where constraints are processed Synthesis through Fitter Synthesis only Fitter, Signoff
QSF assignment RTL_SDC_FILE (supports entities) SDC_FILE SDC_ENTITY_FILE -read_during_post_syn_and_post_fit_timing_analysis SDC_FILE
SDC_FILE SDC_ENTITY_FIL E -read_during_post_syn_and_not_post_fit_timing_analysis
Syntax supported Tcl with SDC 2.1 commands

Tcl with Quartus® Prime SDC commands

Tcl with Quartus® Prime SDC commands
SDC 2.1-compliant Yes No No
Target type RTL

Quartus® Prime timing graph

Quartus® Prime timing graph
Hierarchical targets Yes No No
Buried timing nodes (used by IP) No Core fabric only. Such nodes do not exist for the periphery in post-synthesis timing analysis. Yes
STA command to load constraints Executes the read_sdc or import_sdc command in any snapshot.

Executes the read_sdc command only during static timing analysis on the synthesized snapshot.

Executes the read_sdc command during static timing analysis on any fitter snapshot (plan, place, route, retime). Not loaded during synthesis.