BCM1250/BCM1125/BCM1125H
User Manual
10/21/02
B r o a d c o m C o r p o r a t i o n
Page
128
Section 6: DRAM
Document
1250_1125-UM100CB-R
I/O C
ONTROL
The memory controller supports a wide range of SDRAM speeds and configurations. In particular the signal
loading and propagation delays will be very different in a system that is fully populated with DIMMs than it is in
a system with point-to-point connections between the part and SDRAMs soldered to the main board. The
termination schemes may differ too. The timing budget and electrical characteristics must be calculated for
each board the BCM1250 or BCM1125/H is used on. In most cases the correct values for the I/O control
registers will be calculated during board design and verified during bring up.
The electrical characteristics of the memory controller outputs can be adjusted to match the environment it is
in. The drive strength (and thus slew rate for a particular loading) of the clock, address/command and data
output drivers can be set in the channel configuration register (
mc_clock_cfg
). There is one bit of coarse
control which changes the driver configuration between SSTL_2 Class 1 (7.6mA min. drive) and SSTL_2 Class
2 (15.2mA min. drive). In addition there are three slew bits that control the slew rate of the driver from fast
(3’b111) to slow (3’b000). In most cases the correct setting will be the fast slew rate, but the slower rates may
work better for systems with lower loading and when non-standard termination is used.
IMPORTANT! The rest of this description explains the DLLs for the BCM1250 and
BCM1125/H where the system_revision indicates PERIPH_REV2 or later. The address DLL
was organized differently on the early-access prototype pass-1 parts (marked BCM12500),
please see an earlier revision of this User Manual for description of those parts.
An internal master DLL is used to control slave DLLs to allow adjustment of input and output timing. Each DLL
has a fixed
Offset
, a linear delay adjustment (6 bit unsigned number
N
) and a proportional delay adjustment
(4 bit unsigned number
M
). The total DLL delay is given by:
Delay
=
Offset
+ (
N
*
dll_step
)*(1+((
M
-8)*5%))
This is the ideal case, in practice there is a part dependent error to the 5%, and it rolls off to more like 4% at
the low end.
gives the typical multiplier
mult
that results from the (1+((
M
-8)*5%)) term. The master
DLL is fixed to have
M
=8 and derives
Nmaster
from the memory clock period
Tmclk
such that:
Delay
=
Offset
+ (
Nmaster
*
dll_step
) =
Tmclk
/4
The
Offset
is typically 500ps, and the resolution of
dll_step
is sufficient to cover memory clock frequencies
from 95-200MHz. At lower frequencies the delay may saturate, however at these speeds the cycle time is so
long that the proportional adjustment provided by the DLL is not required.
Table 70: Adjustment Percentages and Multiplier for Values of DLL M
M
M-8
Adjustment%
Simulation Result for (M-8)*5%
Multiplier
Simulation Result for 1+((M-8)*5%)
4'b0000
-8
-35%
0.65
4'b0001
-7
-31%
0.69
4'b0010
-6
-27%
0.73
4'b0011
-5
-23%
0.77
4'b0100
-4
-19%
0.81
4'b0101
-3
-15%
0.85
4'b0110
-2
-10%
0.90
4'b0111
-1
-5%
0.95