Answers Database


M1.5i/2.1i: Timing: How the OFFSET IN and OUT calculation is made?


Record #5489

Product Family: Software

Product Line: Merged Core

Product Part: Timing

Problem Title:
M1.5i/2.1i: Timing: How the OFFSET IN and OUT calculation is made?


Problem Description:
Urgency: Standard

General Description: How is the OFFSET IN and OUT calculation made.


Solution 1:

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";

Here is a 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

From the report we see that the Minimum allowable offset is 3.945ns. This value is calculated in the following way.

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

To calculate the minimum allowable offset
OFFSET - SLACK = Minimum Allowable Offset
10.00ns - 6.055ns = 3.945ns

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



Solution 2:

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";

Here is a 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

From the report we see that the Maximum allowable offset is 10.686ns. This value is calculated in the following way.

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

To calculate the Maximum Allowable Offset
OFFSET + SLACK = Maximum Allowable Offset
10.00ns + 0.686ns = 10.686ns

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



Solution 3:

For OFFSET OUT BEFORE.

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

Here is a 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


From the report we see that the Maximum allowable OFFSET
is 5.584ns. This value is calculated in the following way.

PERIOD - OFFSET - clk2out - clknet = slack.
18ns - 10ns - 5.234ns - 7.182ns = -4.416ns. This is the time left
over (slack). In other words I need another 4.416ns to meet
the specified OFFSET.

To determine if the constraint has been met simply add the
slack to the requested OFFSET. In this case it is 5.584ns.

This OFFSET constraint failed.



Solution 4:

For OFFSET OUT AFTER.

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

Here is a 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


From the report we see that the Minimum allowable OFFSET
is 12.416ns. This value is calculated in the following way.

OFFSET - clk2out - clknet = slack.
8.000ns - 7.182ns - 5.234ns = -4.416ns. This is the time left
over (slack). In other words I need another 4.416ns to meet
the specified OFFSET.

To determine if the constraint has been met simply subtract the
slack to the requested OFFSET. In this case it is 12.416ns.

This OFFSET constraint failed.






Solution 5:

Information:
The net delays for the clock signal and the data signal are calculated
for maximum value (worst case).




End of Record #5489 - Last Modified: 09/27/99 15:36

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Technical Tips!