
LatticeECP/EC and LatticeXP
Lattice Semiconductor
DDR Usage Guide
10-13
DQS Postamble
At the end of a READ cycle, the DDR SDRAM device executes the READ cycle postamble and then immediately
tristates both the DQ and DQS output drivers. Since neither the memory controller (FPGA) nor the DDR SDRAM
device are driving DQ or DQS at that time, these signals float to a level determined by the off-chip termination
resistors. While these signals are floating, noise on the DQS strobe may be interpreted as a valid strobe signal by
the FPGA input buffer. This can cause the last READ data captured in the IOL input DDR registers to be overwrit-
ten before the data has been transferred to the free running resynchronization registers inside the FPGA.
Figure 10-14. Postamble Effect on READ
LatticeECP/EC and LatticeXP devices have extra dedicated logic in the in the DQS Delay Block that will prevent
this postamble problem. The DQS postamble logic is automatically implemented when the user instantiates the
DQS Delay logic (DQSBUFB software primitive) in a design.
This postamble solution was implemented in all the devices of the LatticeECP/EC and LatticeXP families except
the LFEC20/LFECP20 device. For this device, it is recommended that the user issue an extra READ command to
assure correct data has been transferred to the synchronization registers.
The circumstances under which the extended READ cycle is issued are given in
Table 10-8.Table 10-8. DDR Read Postamble
Current Command
Next Command
Action
Lost Cycles
Read (Row x, Bank y)
None.
None
Read (any address)
NOP
Extend the current read command.
1
3
Read (Row x, Bank y)
Read (Row n, Bank y)
Extend the current read to (Row x, Bank y) consecutive to
current command
3
Read (Row x, Bank y)
Read (Row x, Bank n)
If the Row x, Bank n was open, do nothing. Else, extend
the current read to Row x, Bank y
3
Read (any address)
Write/LMR
Extend the current read command.
3
1. Current read is extended one or more additional clock cycles.
P0
P1
N0
P0
DQ at IOL
DQS at PIN
DQ at PIN
DQS at IOL
P0
N0
N1
P1
N1
P0
N0
N1
P1
CLK at
synce reg
DATAIN_P
DATAIN_N
A
B
C
P0
N0