User Manual
BCM1250/BCM1125/BCM1125H
10/21/02
B r o a d c o m C o r p o r a t i o n
Document
1250_1125-UM100CB-R
Section 6: DRAM Page
129
The slave DLLs are adjusted to have their
N
set to
Nmaster
and
M
set to the four bit dqi_skew, dqo_skew or
addr_skew field from the
mc_clock_cfg
register. This value
M
can be converted to a multiplier
mult
according
to
. The slave DLL delay is given by:
SlaveDelay
=
Offset
+ (
Nmaster
*
dll_step
)*
mult
Substituting for
Nmaster
:
SlaveDelay
=
Offset
+ (((
Tmclk
/4 -
Offset
)/
dll_step
)*
dll_step
)*
mult
SlaveDelay
=
Offset
*(1-
mult
) + (
Tmclk
/4)*
mult
The DLLs are used in three places: to shift the received DQS into the center of the data valid window, to shift
the relationship between the output clock and signals, and to shift the DQS driven into the center of the data
window.
The first is the most straightforward. During a Read the DRAM will drive the data at the same time as it changes
DQS. Since the board traces between the DRAM and the controller are length matched (across a group of 8
data bits and one DQS for regular DDR parts, and a group of 32 data bits and DQS for SGRAM) the data and
DQS transitions are still aligned when they are received at the memory controller. The controller delays the
DQS using a DLL controlled by dqi_skew. The data is valid for half of a memory cycle, so the quarter cycle
base delay (with
M
= 4'b1000 thus
mult
= 1) will position the delayed DQS at the center of theoretical data
window. The DLL can be adjusted about 8.75% of the memory cycle (or 35% of the quarter cycle) either side
of this point.
The second use of the DLL is to position the address and data signals relative to the memory clock. This is
done by driving the data/address/control from a fixed internal clock and using the DLL to move the external
Mn_CLK with respect to the internal one. Since it is the clock moving rather than the data the direction of a
change can seem backwards!
shows the external view with timings relative to the clock, this is the
view needed when designing the memory system.
The position of the clock relative to the point at which the address and control signals change is set by the
addr_skew parameter.
shows the range as t0 to t1. To get the address change earliest in the external
clock cycle (shown by t0) the clock needs to be delayed by its maximum, so the addr_skew (which sets the
DLL
M
parameter from
) needs to be 4'b1111. The other extreme is shown by t1, which has the
addr_skew set to 4'b0000. The range gives the delay from the rising Mn_CLK edge to the address transition
point of approximately 16% to 34% of the memory clock cycle time.
4'b1000
0
center
1.0
4'b1001
1
5%
1.05
4'b1010
2
10%
1.10
4'b1011
3
15%
1.15
4'b1100
4
20%
1.20
4'b1101
5
25%
1.25
4'b1110
6
30%
1.30
4'b1111
7
35%
1.35
Table 70: Adjustment Percentages and Multiplier for Values of DLL M
(Cont.)
M
M-8
Adjustment%
Simulation Result for (M-8)*5%
Multiplier
Simulation Result for 1+((M-8)*5%)