The write-leveling process in the DDR3
interface imposes a limit on the maximum and minimum skew between the command delay
and the data delay. If these limits are exceeded, the DDR3 interface may fail the
write leveling process and data corruption may occur. These limits are sufficiently
large that well-controlled topologies will not likely exceed the limits.
The command delay is defined as delay
for the clock, command, control, and address group signals from the DSP to a given
SDRAM. The data delay is the delay for the data group signals to that same SDRAM.
The write-leveling result is effectively the difference, or skew, between these two
delays.
The maximum write-leveling skew is the
largest difference between the two delays in the topology to a single SDRAM.
Likewise, the minimum write-leveling skew is the smallest difference between the two
delays in the topology to a single SDRAM.
The write-leveling logic has a
theoretical upper limit of 2500 ps. This limit does not scale with SDRAM data rate.
The theoretical upper limit equates to two full clock cycles when the clock
frequency is 800 MHz for DDR3-1600. It is reduced by half a clock cycle when invert
clock out is enabled, as this effectively lengthens the clock by this amount.
The following set of equations
provides an approximation of the maximum and minimum write-leveling skew
allowed:
- ddrclkoutperiod – period of reference clock
the DSP is providing to SDRAM
- tWLS – from JEDEC
DDR3 SDRAM specification, write-leveling setup time from rising CK,
CK crossing to rising DQS, DQS
crossing
- tJIT(per, lck) –
clock period jitter during DLL locking period
- commanddelay – delay for the clock, command,
control and address group signals from the DSP to a given SDRAM
- datadelay – delay for the data group signals to
that same SDRAM
- write_levelingskew – defined as the value
commanddelay - datadelay
- margin - additional
margin added for preliminary use
Maximum write-leveling skew:
- Case 1: Invert clock
disabled
- write_levelingskew
< 2500 ps - tWLS - tJIT(per, lck) - margin
- Case 2: Invert clock
enabled (adds an additional half-clock period of delay to the command delay
term)
- commanddelay
+ (0.5 *ddrclkoutperiod) - datadelay =
write_levelingskew< 2500 ps - tWLS - tJIT(per,
lck) - margin
- write_levelingskew < 2500 ps - tWLS - tJIT(per, lck)
- (0.5 *ddrclkoutperiod) - margin
Minimum write-leveling skew:
- Case 1: Invert clock
disabled
- write_levelingskew > tWLS + tJIT(per, lck) +
margin
- Case 2: Invert clock
enabled (adds an additional half-clock period of delay to the command delay
term)
- commanddelay +
(0.5 *ddrclkoutperiod) - datadelay
= write_levelingskew > tWLS + tJIT(per, lck) +
margin
- write_levelingskew > tWLS + tJIT(per, lck) - (0.5
*ddrclkoutperiod) + margin
tWLS and tJIT(per, lck) are standard
JEDEC DDR3 SDRAM timing parameters that can be obtained from the specific data sheet
of the SDRAM chosen.
Note: Because this is preliminary
guidance, some small margin should be subtracted from these delays to account for
additional terms such as multi-rank delay skew. TI currently recommends setting the
extra margin term to 100 ps.
Based on the previous equations, the
following calculations and summary table shows the write-leveling skew limitations
for both invert clock out enabled and disabled given the DDR3-1333 and DDR3-1600
JEDEC SDRAM specification. The first column for each speed-grade category lists the
maximum write-leveling skew in picoseconds. The second column for each lists the
maximum write-leveling skew in inches, assuming a signal propagation rate of
180 ps/in.
For DDR3-1333:
- ddrclkoutperiod =
1500 ps
- tWLS = 195 ps
- tJIT(per, lck) = ±70 ps
- margin = 100 ps
Maximum write-leveling skew:
- Case 1: Invert clock
disabled
- write_levelingskew < 2500 ps - tWLS - tJIT(per, lck)
- margin
- write_levelingskew < 2500 ps - 195 ps - 70 ps
-100 ps
- write_levelingskew < 2500 ps - 195 ps - 70 ps
-100 ps
- write_levelingskew < 2135 ps
- Case 2: Invert clock
enabled (adds an additional half-clock period of delay to the command delay
term)
- write_levelingskew < 2500 ps - tWLS - tJIT(per, lck)
- (0.5 *ddrclkoutperiod) - margin
- write_levelingskew < 2500 ps - 195 ps - 70 ps - (0.5
*1500 ps) - 100 ps
- write_levelingskew < 1385 ps
Minimum write-leveling skew:
- Case 1: Invert Clock
disabled
- write_levelingskew > tWLS + tJIT(per, lck) +
margin
- write_levelingskew > 195 ps + 70 ps + 100 ps
- write_levelingskew > 365 ps
- Case 2: Invert clock
enabled (adds an additional half-clock period of delay to the command delay
term)
- write_levelingskew > tWLS + tJIT(per, lck) - (0.5
*ddrclkoutperiod) + margin
- write_levelingskew > 195 ps + 70 ps - (0.5 *1500 ps)
+ 100 ps
- write_levelingskew > -385 ps
Note: This minimum write-leveling skew
calculation with invert clock enabled shows how the invert clock mode can be used to
correct a small amount of negative skew between the command and data groups.
However, as specified in
Section 6.3.1.7, all topologies should be designed for a positive skew between the command delay
and data delay to avoid this situation.
For DDR3-1600:
- ddrclkoutperiod =
1250 ps
- tWLS = 165 ps
- tJIT(per, lck) = ± 60 ps
- margin = 100 ps
Maximum write-leveling skew:
- Case 1: Invert clock
disabled
- write_levelingskew < 2500 ps - 165 ps - 60 ps
-100 ps
- write_levelingskew < 2500 ps - 165 ps - 60 ps
-100 ps
- write_levelingskew < 2175 ps
- Case 2: Invert clock
enabled (adds an additional half-clock period of delay to the command delay
term)
- write_levelingskew < 2500 ps - 165 ps - 60 ps - (0.5
*1250 ps) - 100 ps
- write_levelingskew < 1610 ps
Minimum write-leveling skew:
- Case 1: Invert clock
disabled
- write_levelingskew > 165 ps + 60 ps + 100 ps
- write_levelingskew
> 325 ps
- Case 2: Invert clock
enabled (adds an additional half-clock period of delay to the command delay
term)
- write_levelingskew > 165 ps + 60 ps - (0.5 *1250 ps)
+ 100 ps
- write_levelingskew > -300 ps
Note: This minimum write-leveling skew
calculation with invert clock enabled shows how the invert clock mode can be used to
correct a small amount of negative skew between the command and data groups.
However, as specified in
Section 6.3.1.7, all topologies should be designed for a positive skew between the command delay
and data delay to avoid this situation.
Table 6-7 Maximum Write Leveling Skew
Example
Speed Grade |
Invert
Clock Out State |
Disabled |
Enabled |
Skew in ps |
Skew in
Inches |
Skew in ps |
Skew in
Inches |
DDR3-1333 |
2135 |
11.861 |
1385 |
7.694 |
DDR3-1600 |
2175 |
12.083 |
1610 |
8.944 |
Table 6-8 Minimum Write Leveling Skew
Example
Speed Grade |
Invert
Clock Out State |
Disabled |
Enabled |
Skew in ps |
Skew in
Inches |
Skew in ps |
Skew in
Inches |
DDR3-1333 |
365 |
2.027 |
-385 |
2.138 |
DDR3-1600 |
325 |
1.805 |
-300 |
1.666 |
Note: Because this is preliminary
guidance and some small margin should be subtracted or added from these delays to
account for additional terms such as multi-rank delay skew, TI recommends that the
maximum routing lengths be reduced by 10% and the minimum routing lengths be
increased by 10%.