AR# 5489

|

14.x Timing - How are the OFFSET IN and OUT constraint calculations made?

描述

How are the calculations made for OFFSET IN and OUT constraints?

For related information, see (Xilinx Answer 3256) and (Xilinx Answer 8879).

解决方案

For OFFSET OUT AFTER

Example Constraints

NET "MYCLK/bufg_sig" PERIOD = 18 nS
NET "OUTPUT_NET" OFFSET = OUT 8 nS AFTER "MYCLK"

Sample Timing Report

Timing constraint: COMP "OUTPUT_NET" OFFSET = OUT 8 nS

AFTER COMP "MYCLK" ;

1 item analyzed, 1 timing error detected.

Minimum allowable offset is 12.416ns.

-------------------------------------------------------------

Slack:

-4.416ns path MYCLK to OUTPUT_NET relative to
5.234ns delay MYCLK to $Net00005_ and
7.182ns delay $Net00005_ to OUTPUT_NET and
8.000ns offset MYCLK to OUTPUT_NET

In this report, the minimum allowable OFFSET is 12.416 ns. This value is calculated as follows:

OFFSET - clk2out - clknet = slack.
8.000 ns - 7.182 ns - 5.234 ns = -4.416 ns. This is the time leftover (slack; that is, another 4.416 ns is needed to meet the specified OFFSET).

To determine if the constraint has been met, subtract the slack from the requested OFFSET (in this case, it is 12.416 ns).

This OFFSET constraint fails. For more details on timing constraints, please see the Timing Constraints User Guide: http://www.xilinx.com/support/documentation/sw_manuals/xilinx12_1/ug612.pdf


For OFFSET OUT BEFORE

Example Constraints

NET "MYCLK/bufg_sig" PERIOD = 18 nS
NET "OUTPUT_NET" OFFSET = OUT 10 nS BEFORE "MYCLK"

Sample Timing Report

Timing constraint: COMP "OUTPUT_NET" OFFSET = OUT 10 nS
BEFORE COMP "MYCLK" ;

1 item analyzed, 1 timing error detected.

Maximum allowable offset is 5.584ns.

-------------------------------------------------------------

Slack:

-4.416ns path MYCLK to OUTPUT_NET relative to
5.234ns delay MYCLK to $Net00005_ and
7.182ns delay $Net00005_ to OUTPUT_NET and
8.000ns offset MYCLK to OUTPUT_NET

In this report, the maximum allowable OFFSET is 5.584 ns. This value is calculated as follows:

PERIOD - OFFSET - clk2out - clknet = slack.
18 ns - 10 ns - 5.234 ns - 7.182 ns = -4.416 ns. This is the time left over (slack; that is, another 4.416 ns is needed to meet the specified OFFSET).

To determine if the constraint has been met, add the slack to the requested OFFSET (in this case, it is 5.584 ns).

This OFFSET constraint fails.

For OFFSET IN BEFORE

Example Constraints

NET "PAD_CLK2" TNM_NET = "PAD_CLK2";
TIMESPEC "TS_PAD_CLK2" = PERIOD "PAD_CLK2" 15.0 ns HIGH 50%;
TIMEGRP "bin" = PADS( "BIN<10>" "BIN<11>" "BIN<12>" "BIN<13>" "BIN<9>" );
TIMEGRP "bin" OFFSET = IN 10.0 ns BEFORE "PAD_CLK2";

Sample Timing Report

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

Timing constraint: TIMEGRP "bin" OFFSET = IN 10 nS BEFORE COMP "PAD_CLK2" ;

8 items analyzed, 0 timing errors detected.

Minimum allowable offset is 3.945ns.

--------------------------------------------------------------------------------

Slack:

6.055ns path BIN<10> to &__A__6 relative to
2.017ns delay constraint PAD_CLK2 to &__A__6 and
10.000ns offset BIN<10> to PAD_CLK2

In this report, the minimum allowable offset is 3.945 ns. This value is calculated as follows:

OFFSET - PAD2SETUP + CLKNET = SLACK
10.00 ns - 5.962 ns + 2.017 = 6.055 ns

To calculate the minimum allowable offset:

OFFSET - SLACK = Minimum Allowable Offset
10.00 ns - 6.055 ns = 3.945 ns

This is the minimum value you can assign to the OFFSET IN BEFORE constraint.

For OFFSET IN AFTER

Example Constraints

NET "PAD_CLK2" TNM_NET = "PAD_CLK2";
TIMESPEC "TS_PAD_CLK2" = PERIOD "PAD_CLK2" 15.0 ns HIGH 50%;
TIMEGRP "bin" = PADS( "BIN<10>" "BIN<11>" "BIN<2>" "BIN<13>" "BIN<9>" );
TIMEGRP "bin" OFFSET = IN 10.0 ns AFTER "PAD_CLK2";

Sample Timing Report

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

Timing constraint: TIMEGRP "bin" OFFSET = IN 10 nS AFTER COMP "PAD_CLK2" ;

8 items analyzed, 0 timing errors detected.

Maximum allowable offset is 10.686ns.

--------------------------------------------------------------------------------

Slack:

0.686ns path BIN<2> to &__A__6 relative to
2.012ns delay constraint PAD_CLK2 to &__A__6 and
5.000ns offset BIN<2> to PAD_CLK2

In this report, the maximum allowable offset is 10.686 ns. This value is calculated as follows:

PERIOD - OFFSET - PAD2SETUP + CLKNET = SLACK
15.00 ns - 10.00 ns - 6.326 ns + 2.012 = 0.686 ns

To calculate the Maximum Allowable Offset:

OFFSET + SLACK = Maximum Allowable Offset
10.00 ns + 0.686 ns = 10.686 ns

This is the maximum value you can assign to the OFFSET IN AFTER.

For OFFSET IN setup, the path delay for the clock signal and the data signal are calculated using relative mins (minimum delay) on the CLOCK path and worse case (longest delay) on the DATA path.

For OFFSET IN hold, the path delay for the clock signal and the data signal are calculated using relative mins (minimum delay) on the DATA path and worse case (longest delay) on the CLOCK path.

For OFFSET OUT clock-to-out, worse case (longest delay) is used for both CLOCK and DATA path.
AR# 5489
日期 01/20/2013
状态 Active
Type 综合文章
Tools More Less
People Also Viewed