Intel® Quartus® Prime Standard Edition User Guide: Design Optimization

ID 683230
Date 11/12/2018
Document Table of Contents Tips for Analyzing Paths from/to the Source and Destination of Critical Path

When analyzing the failing paths in a design, it is often helpful to get a fuller picture of the interactions around the 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 fanouts.

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

    Figure 28. 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.