Article ID: 000074300 Content Type: Troubleshooting Last Reviewed: 06/10/2014

Why doesn’t the TimeQuest Timing Analyzer remove all common clock path pessimism on my source synchronous output path?

Environment

BUILT IN - ARTICLE INTRO SECOND COMPONENT
Description

The TimeQuest Timing Analyzer may not remove all common clock path pessimism (CCPP) in some cases, even when you turn on Enable common clock path pessimism removal. The TimeQuest Timing Analyzer removes CCPP up to the clock pin of the last register on a data arrival path. When there is no register on a data arrival path, CCPP is removed up to the last clock source on the path.

In a source synchronous output, there is no register on the data arrival path; the path typically goes from the PLL output, through the select line of the output multiplexer, to the top-level IO. In most cases, the last clock source on the path is a PLL output. Even though the clock path is common for much of the rest of the path, no pessimism is removed after the last clock source.

Resolution

There are two ways to work around this limitation, so that more of the CCPP is removed.

  1. Define an additional generated clock on a node in the clock path after the PLL output, but before the data arrival and data required paths split. In some cases, such as most source synchronous outputs, this solution is not practical because there are no other nodes in the clock path between the PLL output and the point where the paths split.

    If you are able to use this workaround, create the additional generated clock based on the PLL output, with no multiplications, divisions, or shifts. The TimeQuest Timing Analyzer then removes the additional CCPP between the PLL output and the target of the newly created generated clock.


  • Use this script, report_timing_pess.tcl, to report timing on paths where the TimeQuest Timing Analyzer has not removed all CCPP. The script calculates any additional CCPP that should be removed and reports an adjusted slack value that incorporates the additional CCPP that should be removed.

    To use the script, source it in the TimeQuest timing analyzer. That creates a new command called report_timing_pess. It supports the same options as the report_timing command, but the slack values it reports incorporate any additional CCPP that should be removed. Use the report_timing_pess command in place of the report_timing command to analyze timing on any source synchronous outputs, or other paths where the TimeQuest Timing Analyzer has not removed all CCPP.

    The following commands show an example of how you might use the script to analyze timing on a source synchronous output.

    tcl> source report_timing_pess.tcl
    tcl> report_timing_pess -to [get_ports DAC_DATA[*]] -setup \
       -npaths 100 -panel_name "DAC output setup time report"

Related Products

This article applies to 1 products

Intel® Programmable Devices