RM0082
DDR memory controller (MPMC)
Doc ID 018672 Rev 1
145/844
impedance state. However, DQS is only relevant to the memory controller during reads in
order to capture valid data. For this reason, the DQS signal from memory must be gated so
that it is ignored at all other times. Gating of the DQS signal is shown in Figure 4, DQS
gating.
The timing of when to start gating the DQS depends on the design itself, the flight time of
the clock to memory, and the flight time of the data/DQS to the memory controller, as
follows:
●
If the round trip time is between ½ cycle and 1½ cycles, program the caslat_lin
parameter equal to the caslat parameter.
●
If the round trip time is less than ½ cycle, program the caslat_lin parameter one value
less (which translates to ½ cycle) than the caslat parameter to open the gate ½ cycle
sooner.
●
lf the round trip time is longer than 1½ cycles, program the caslat_lin parameter one
value more (which translates to ½ cycle) than the caslat parameter to open the gate ½
cycle later.
In addition, the caslat_lin_gate parameter controls the opening of the gating signal.
Nominally, caslat_lin_gate should have the same value as the caslat_lin parameter.
However, to accommodate the skew of the memory devices, it may be necessary to open
the gate a 1/2-cycle sooner or later. Adjusting the value of caslat_lin_gate modifies the gate
opening by this factor.
10.11
External pin connection Of DDR interface in SPEAr300
Refer to
10.12 Initialization
protocol
After power on, once the power supply to memory devices and the device itself is stable, the
Memory Controller must be initialized: afterward it will automatically initialize the memory
devices.
The procedure to initialize the Memory Controller is as follows:
1.
Clear the rst_n signal by driving it to 1'b0. All programmable registers will be cleared.
2.
Set the rst_n signal synchronously with the Memory Controller clock by driving the
signal to 1'b1.
3.
Issue write register commands to configure the DRAM protocols and the settings for
the DCC. Keep the start parameter de-asserted during this initialization step. For more
details, refer to
.
4.
Assert the start parameter. This triggers the Memory Controller to execute the
initialization sequence using the parameters written into the registers.
The Memory Controller will automatically initialize the DRAM memory devices and lock the
internal DCC. The DLL will process and send a signal to the initialization block when it has
locked.