Quartus® Prime Pro Edition User Guide: Design Optimization

ID 683641
Date 9/30/2024
Public
Document Table of Contents

5.5.9.14.3. Tips for Critical Path Analysis

When analyzing the failing paths in a design, it is helpful to understand the interactions around the critical paths.

To understand what may be pulling on a critical path, the following report_timing command can be useful.

  1. In the project directory, run the report_timing command to find the nodes in a critical path.
  2. Copy the code below in a .tcl file, and replace the first two variable with the node names from the From Node and To Node columns of the worst path. The script analyzes the path between the worst source and destination registers.
    set wrst_src <insert_source_of_worst_path_here>
    set wrst_dst <insert_destination_of_worst_path_here>
    report_timing -setup -npaths 50 -detail path_only -from $wrst_src \
    -panel_name "Worst Path||wrst_src -> *"
    report_timing -setup -npaths 50 -detail path_only -to $wrst_dst \
    -panel_name "Worst Path||* -> wrst_dst"
    report_timing -setup -npaths 50 -detail path_only -to $wrst_src \
    -panel_name "Worst Path||* -> wrst_src"
    report_timing -setup -npaths 50 -detail path_only -from $wrst_dst \
    -panel_name "Worst Path||wrst_dst -> *"
  3. From the Script menu, source the .tcl file.
  4. In the resulting timing panel, locate timing failed paths (highlighted in red) in the Chip Planner, and view information such as distance between the nodes and large fan-outs.

    The figure shows a simplified example of what these reports analyzed.

    Figure 71. Timing Report

    The critical path of the design is in red. The relation between the .tcl script and the figure is:

    • The first two lines show everything inside the two endpoints of the critical path that are pulling them in different directions.
      • The first report_timing command analyzes all paths the source is driving, shown in green.
      • The second report_timing command analyzes all paths going to the destination, including the critical path, shown in orange.
    • The last two report_timing commands show everything outside of the endpoints pulling them in other directions.
If any of these neighboring paths have slacks near the critical path, the Fitter is balancing these paths with the critical path, trying to achieve the best slack.