UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 13040

4.1i Timing Analyzer/Trace(TRCE) - PERIOD constraint fails to constrain cross-clock domain paths

Description

Keywords : DCM, Phase Constraint, Unconstrained, Phase Shift, Cross Clock, Timing Analyzer, Trace

Urgency : Standards

General Description:

The PERIOD constraint fails to constrain cross clock domain paths between clocks that are related or when multiple DCMs are used. As a result, these path are not analyzed and appear in the unconstrained path report. How do I have these paths analyzed?

Solution

Currently, the timng tools cannot relate clocks through multiple levels of association. For example, if clkb is related to clka and clkc is related to clkb, clkc will not be correctly related to clka. Without these clocks related, the cross-clock domain paths are not analyzed by the PERIOD constraint. This can also occur if DCMs are cascaded. As a workaround, apply the PERIOD constraint on the output of the global buffer (BUFGMUX) and relate them to a single clock.

Example:

==============Constraints generated by constraint editor======================

NET "clk133_pad" TNM_NET = "clk133_pad";

TIMESPEC "TS_clk133_pad" = PERIOD "clk133_pad" 7.5 ns HIGH 50 %;

NET "clk33_3p75_pad" TNM_NET = "clk33_3p75_pad";

TIMESPEC "TS_clk33_3p75_pad" = PERIOD "clk33_3p75_pad" "TS_clk133_pad" * 4.0 PHASE + 3.75 ns HIGH 50 %;

=================================================================

++++++++++++++++++++++++Work around constraints +++++++++++++++++++++++++++

NET "clk66" TNM_NET = "clk66_clkdv_grp";

NET "clk133" TNM_NET = "clk133_clk0_grp";

NET "clk133_bar" TNM_NET = "clk133_clk180_grp";

NET "clk3p75" TNM_NET = "clk33_clk0_grp";

TIMESPEC "TS_clk66" = PERIOD "clk66_clkdv_grp" 100 ns HIGH 50 %;

TIMESPEC TS_clk133_clk0 = PERIOD "clk133_clk0_grp" TS_clk66 / 2 HIGH 50 %;

TIMESPEC TS_clk133_clk180 = PERIOD "clk133_clk180_grp" TS_clk66 / 2 PHASE + 50 nS HIGH 50 %;

TIMESPEC TS_clk33_clk0 = PERIOD "clk33_clk0_grp" TS_clk66 * 2.000 HIGH 50 %;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

AR# 13040
Date Created 10/30/2001
Last Updated 01/18/2010
Status Archive
Type General Article