Sie sind auf Seite 1von 16

WP003 Rev. 1.0 September 16, 2009 www.achronix.

com PAGE 1
Overview
The Achronix Speedster

SPD60 device contains four embedded DDR3 controllers which can


be used to interface with and control off-chip DDR3 memory devices or DIMMs (Figure 1). Each
of the DDR3 controllers supports up to 72 bits of data at speeds of up to 1066 Mbps.
The DDR3 controller supports both automatic and custom modes. Under the automatic mode,
functions such as (but not limited to) activating/precharging banks/rows, calibration
algorithms, and initialization sequences are handled transparently to the user by the
embedded DDR controller. The mapping of byte lanes to pins is handled by the embedded
DDR PHY.
Under custom mode, the user has the option to manually override functions such as
automated refresh and initialization engines/sequences.
SPD60 DDR3 Feature List
Features supported by the embedded DDR3 controllers are highlighted below:
8:1 DQ-to-DQS ratio
This ratio assumes full use of the 72-bit data bus.
A 4:1 ratio can be used at the cost of half the available memory space.
2 chip selects per controller
The external memory connected to each controller can comprise of up to two ranks
(either two single-rank DIMMs or a single dual-rank DIMM)
SPD60 DDR3 Solution Guide
WP003 Rev. 1.0 September 16, 2009 White Paper
Figure 1: Top-Level Overview of ACX DDR Control Logic
ACX SPD60
nw
sw
ne
se
DDR Controller
DDR PHY
DDR Memory
(off-chip)
WP003_01_091509
Embedded DDR3 Control Logic SPD60 DDR3 Solution Guide
PAGE 2 www.achronix.com WP003 Rev. 1.0 September 16, 2009
Registered DIMM and unbuffered DIMM support
Each controller can independently support either RDIMMs or UDIMMs
Address mirroring is not supported. This feature is typically required for dual-rank
UDIMMs.
Multi-burst mode
Each controller supports multi-burst mode, up to a burst length of 252. This allows the
embedded controller to automatically issue up to 252 cascaded read or write com-
mands to automatically increment addresses based on a single command from the
fabric.
Propagation delay
Write latency, as defined from the time the write command is issued from the fabric to
the time the write command appears on the memory interface, is nine clock cycles.
Read latency, as defined from the time the read command is issued from the fabric to
the time the read data appears at the fabric interface, is ten clock cycles (plus AL/CL).
A CAS latency of one is supported.
Backwards-compatible
The embedded DDR controllers can support DDR3 (up to 1066 Mbps), DDR2 (up to
800 Mbps) and DDR protocols.
Bypassable
If the user does not require all four DDR controllers, any (or all) can be bypassed to
leverage use of the designated I/Os for other purposes.
Minimal LUT usage
The DDR controllers are embedded, and as such do not use any of the LUTs in the fab-
ric
LUTs are required to drive the DDR controllers. This driving logic is user-defined,
and minimal in size.
Zero licence fees
Embedded DDR3 Control Logic
The Achronix SPD60 device contains four embedded DDR3 controller macros. Each macro is
comprised of a DDR3 controller and a DDR3 PHY, and is controlled by the user by means of
the DDR core logic.
The DDR3 controller macros manage the interface between the DDR3 driving logic (housed
within the fabric) and the off-chip DDR3 memory itself. A more detailed description of these
interfaces is shown in the Figure 2.
SPD60 DDR3 Solution Guide Embedded DDR3 Control Logic
WP003 Rev. 1.0 September 16, 2009 www.achronix.com PAGE 3
The embedded DDR3 controller macro function performs:
All required initialization sequences such as the programming of AL and CL values based
on user-defined parameters
All required calibration algorithms, including:
Write levelization
Read levelization
DQS enable (to control read-write turnaround of DQ/DQS bidirectional busses)
DQS delay (to skew the DQS by 90 relative to the corresponding DQ, such that the
latter can be sampled in the middle of the bit transition)
Translation of read and write requests received from the DDR driver into the DDR proto-
col (RAS, CAS and WE).
Translation of data to and from SDR to DDR
Maintaining integrity of memory contents by issuing periodic auto-refresh and zqcal com-
mands
Managing the activating and pre-charging of memory banks and rows, as required.
Figure 2: Top-level Overview of Embedded DDR Control Logic
ACX SPD60
DDR Driver Logic DDR Control Logic
DDR
Memory
(off-chip)
Read/Write Shared Interface
l_busy
l_addr[33:0]
l_b_size[3:0]
l_w_req
l_d_req
l_data_in[143:0]
l_dm_in[17:0]
l_r_req
l_data_out[143:0]
l_r_valid
l_auto_pch
l_self_refresh[1:0]
l_power_down[1:0]
l_ref_req
l_zq_cal_req[1:0]
ctrl_init
init_zq_cal[1:0]
init_force_reset
init_disable_cke
init_autoinit_disable
reset_n
clk_ddr
sd_clk_out_p[2:0]
sd_clk_out_n[2:0]
sd_reset_n
sd_cas
sd_ras
sd_we
sd_a[15:0]
sd_ba[2:0]
sd_cs_n[1:0]
sd_odt[1:0]
sd_cke[1:0]
sd_dq[71:0]
sd_dqs[8:0]
sd_dqs_n[8:0]
sd_dm[8:0]
sd_dummy
sd_pad
Write Interface
Read Interface
General Memory Control Interface
Manual Refresh Control Interface
Manual Initialization Control Interface
reference_clock
DCC/
RS232
Register
Interface
ACX_PLL (optional)
wp003_02_091609
Embedded DDR3 Control Logic SPD60 DDR3 Solution Guide
PAGE 4 www.achronix.com WP003 Rev. 1.0 September 16, 2009
Managing the driving of the memory address pins (with column or row information, as
well as A10 function (precharge-all, auto-precharge, etc.).
Providing a data request signal (l_d_req) to the DDR driver logic, some number of cycles
after a corresponding write transaction request is received. This ensures that CAS latency,
additive latency and burst length are all managed internally to the ACX DDR controller.
Providing a read data valid signal (l_r_valid) to accompany read data provided in
response to a read request. This signal ensures that the round-trip latency to (and
through) the memory is managed internally to the ACX DDR controller.
Providing a back pressure mechanism to the DDR Driver logic (l_busy).
RTL Interface to DDR3 Controller
The RTL interface to the DDR3 controller and the associated parameters are covered in
Table 1 and Table 2.
Table 1: I/O List of Interface of DDR Driver Logic with ACX DDR Controller
Signal
Name
Bus Width Direction Description
clk 1 Input
Driven by user. Clock signal. This is the reference
clock coming in from the board.
reset_n 1 Input Driven by user. Reset. Asserted active low.
reset_ddr_n 1 Input Driven by user. Reset. Asserted active low.
core_reset_n 1 Input Driven by user. Reset. Asserted active low.
l_start 1 Input
Driven by user. Start test. Level signal. Asserted
active high.
Sd_clk_out_p Output SDRAM clock signal
Sd_clk_out_n Output SDRAM clock signal
Sd_cke 2 Output SDRAM clock enable control signal
Sd_odt 2 Output SDRAM on die termination control signal
Sd_ras_n 1 Output SDRAM RAS control signal
Sd_cas_n 1 Output SDRAM CAS control signal
Sd_we_n 1 Output SDRAM write enable control signal
Sd_reset_n 1 Output SDRAM reset signal
Sd_a 16 Output SDRAM address bus
Sd_ba 3 Output SDRAM bank select
Sd_cs_n 2 Output SDRAM chip select
Sd_dm Output SDRAM data mask
Sd_dummy Output
Sd_dq Input SDRAM data bus
Sd_dqs Input SDRAM DQS bus, which is used to clock DQ bus
SPD60 DDR3 Solution Guide Embedded DDR3 Control Logic
WP003 Rev. 1.0 September 16, 2009 www.achronix.com PAGE 5
Sd_dqs_n Ipout SDRAM DQS bus, which is used to clock DQ bus
Sd_pad Input
Table 1: I/O List of Interface of DDR Driver Logic with ACX DDR Controller
Signal
Name
Bus Width Direction Description
Table 2: Parameter Values of the DDR3 Controller
Parameter
Default
Value
(hex)
Valid Values Description
DSIZE 16 Multiples of 8 from 8-72 Local side data width
CONTROLLER_REFRESH_EN 1'h1
0-1 Enable controller initiated
refreshes.
0 Embedded DDR Controller
automatically handles cyclic
autorefreshing of memory.
1 User manually overrides
autorefresh control of memory.
DELAY_ACTIVATE_TO_PRECHARGE 5'h15 4-30 clock cycles Minimum ACTIVE to PRECHARGE
DELAY_ACTIVATE_TO_RW 4'h5
2-12 clock cycles Minimum time between ACTIVATE
and READ/WRITE
DELAY_ACTIVATE_TO_ACTIVATE_DIFF
_BANK
3'h4
2-6 clock cycles Minimum time between ACTIVATE
to ACTIVATE in different banks
DELAY_PRECHARGE_TO_ACTIVATE 4'h5 1-12 clock cycles Minimum PRECHARGE to ACTIVATE.
DELAY_ACTIVATE_TO_ACTIVATE_SAME
_BANK
6'h20
5-42 clock cycles Minimum ACTIVATE to ACTIVATE/
AUTO-REFRESH in same bank
BANK_ACTIVATE_PERIOD 6'h20 7-32 clock cycles Four bank activate period
DELAY_AUTO_REFRESH_TO_ACTIVATE
_SAME_BANK
9'h044
6-511 clock cycles Minimum AUTO-REFRESH to ACTI-
VATE/AUTO-REFRESH in same bank
DELAY_READ_TO_PRECHARGE 3'h4
4-6 clock cycles Minimum Read to precharge (DDR3
only)
DELAY_WRITE_TO_PRECHARGE 4'h6
5-12 clock cycles Minimum time from write to PRE-
CHARGE
DELAY_WRITE_TO_READ 3'h4 2-6 clock cycles Minimum time from write to read.
DELAY_READ_TO_WRITE 3'h2 1-7 clock cycles Read to write delay (valid values: 1
DELAY_WRITE_TO_WRITE_DIFF_BANK 3'h2
0-7 clock cycles Minimum delay from write to write
(different ranks)
DELAY_READ_TO_READ_DIFF_BANK 3'h2
1-7 clock cycles Minimum delay from read to read
(different ranks)
Embedded DDR3 Control Logic SPD60 DDR3 Solution Guide
PAGE 6 www.achronix.com WP003 Rev. 1.0 September 16, 2009
DELAY_ADDITIVE_DDR2_LATENCY 3'h0 0-5 clock cycles Additive latency value (DDR2)
CAS_LATENCY 4'h6 5-11 clock cycles Cas latency
BURST_LENGTH 2'h2
1 - 2 local side transfer
2 - 4 local side transfer
Controller Burst length (encoded)
REFRESH_PERIOD 16'h3120
10-65535 refresh time
interval / tCK
Refresh period. This is the number
of clock cycles between refresh
commands.
DELAY_STARTUP 19'h000c8 10-524287 clock cycles Initialization delay after reset
NUM_COLUMN_BITS 3'h5
5, 6, 7 Number of column bit
5 10 column bits
6 11 column bits
7 12 column bits
NUM_ROW_BITS 3'h3
2, 3, 4, 5 Number of row bits
2 13 row bits
3 14 row bits
4 15 row bits
5 16 row bits
NUM_BANK_BITS 1'h0
0, 1 Number of bank bits
0 2 bank bits
1 3 bank bits
REGISTERED_DIMM 1'h0
0,1 Registered DIMM support
0 UDIMM
1 RDIMM
ODT_READ_CS[0-7] 8'h0e
Each bank contains 8
bits, one per DQ. ODT is
enabled when set to 1
On die termination selection for
reads on cs0
ODT_WRITE_CS[0-7] 8'h01
Each bank contains 8
bits, one per DQ. ODT is
enabled when set to 1
On die termination selection for
writes on cs0
READ_EN_DELAY_LANE 3'h5
0-5 Adjusts the delay of the read data
out of the PHY
EXTENDED_MODE_REG2_VALUE 16'h0000
16 bit register Extended mode register 2 pro-
gramming
EXTENDED_MODE_REG3_VALUE 16'h0000
16 bit register Extended mode register 2 pro-
gramming
TWO_CYCLE_TIMING_EN 1'h0 0,1 Enable 2T timing
Table 2: Parameter Values of the DDR3 Controller (Continued)
Parameter
Default
Value
(hex)
Valid Values Description
SPD60 DDR3 Solution Guide Embedded DDR3 Control Logic
WP003 Rev. 1.0 September 16, 2009 www.achronix.com PAGE 7
The DDR3 Driving logic, which is implemented in the fabric, contains the interface signals
listed in Table 3.
TWO_CYCLE_TIMING_SEL 1'h0
0 - cs_n asserted during
1st cycle
1 - csn asserted during
2nd cycle
Clock cycle of 2T command to
assert chip select on (0 first clock, 1
second clock)
ZQ_CALIBRATION_TYPE 1'h0
0 - Short ZQ calibration
1 - Long ZQ calibration
Type of ZQ calibration (0 short, 1
long)
ZQ_CALIBRATION_PERIOD
32'h00000
000
10-(2^32-1) Period of periodic ZQ calibrations
(DDR3)
ZQ_CALIBRATION_AUTO_EN 1'h0 0,1 DDR3 ZQ Auto Calibration enable
INIT_MODE_REGISTER_PROGRAM 4'h0
0 -inactive
1 - Load Standard MR
2- Load Extended MR
4 - Load Extended MR2
8 - Load Extended MR3
Mode register to write to.
INIT_MODE_REGISTER_DATA 16'h0000 16 bit register Mode register contents to write
INIT_ODT_RANK_SELECT 3'h0 0-7 Rank selection for ODT
INIT_ODT_FORCE_EN 1'h0 0,1 Turn on ODT
INIT_WLVL_START 1'h0
0,1 A 0 to 1 transition on this signal
causes the write leveling state
machine inside DDR3 controller to
perform a write leveling calibration
sequence.
INIT_WLVL_MODE_REGISTER_EN 1'h0
0,1 Set write level enable in mode reg-
ister
INIT_WLVL_RTT_WRITE 1'h0
0,1 Set rtt_nom to cfg_rtt_wr value for
write leveling
INIT_WLVL_QOFF 1'h0
0,1 Set qoff for write leveling (disabled
output buffers)
Table 2: Parameter Values of the DDR3 Controller (Continued)
Parameter
Default
Value
(hex)
Valid Values Description
Table 3: I/O List of Interface of DDR Driver Logic with ACX DDR Controller
Signal
Name
Bus Width Direction Description
clk 1 Input
Driven by user. Clock signal. This is the reference
clock coming in from the board.
reset_n 1 Input Driven by user. Reset. Asserted active low.
Embedded DDR3 Control Logic SPD60 DDR3 Solution Guide
PAGE 8 www.achronix.com WP003 Rev. 1.0 September 16, 2009
This DDR3 driving logic block contains both the protocol generator and the write data capture
submodules. The read data compare submodule (Figure 3) is illustrated here simply to
identify the DDR3 read data signal names.
l_busy 1 Input
Back pressure signal generated by the ACX DDR
Controller. Indicates that the current read/write
request must be held, as it cannot yet be ser-
viced by the DDR Memory.
l_addr 34 Output
Address bus containing row, column, bank
information.
l_b_size 4 Output
Indicates burst length of given read/write
request. Must have value of 4'b1000 or 4'b0100
only.
l_w_req 1 Output Write request.
l_d_req 1 Input
Request by ACX DDR Controller for data to be
written to the DDR Memory. This is asserted
some number of clock cycles after a write
request, and is 2 or 4 clock cycles in length per
write request, depending on burst length.
l_datain 144 Output
Data to be written to the DDR Memory. This
data is provided two cycles after l_d_req is
asserted.
l_dm_in 18 Output
Data mask corresponding to l_datain. When any
data mask bit is asserted, the data contained in
the corresponding l_datain byte will not be
written to Memory.
l_r_req 1 Output Read request.
l_dataout 144 Input
Data read back from the DDR Memory in
response to a read request.
l_r_valid 1 Input
Valid signal corresponding to read data
(l_dataout).
Table 3: I/O List of Interface of DDR Driver Logic with ACX DDR Controller (Continued)
Signal
Name
Bus Width Direction Description
SPD60 DDR3 Solution Guide DDR3 Controller Macro Address Mapping
WP003 Rev. 1.0 September 16, 2009 www.achronix.com PAGE 9
Read Data Compare
This placeholder block is simply used to illustrate the signal names of the data read back from
the DDR3 memory.
Protocol Generator
The protocol generator is typically comprised of an FSM and address generation logic.
In the case of the reference design, an FSM performs the following functions:
Triggers on l_start
Waits for ample write data to be populated in the FIFOs
Issues a single write request (l_d_req, one clock cycle wide) of burst length 128
(l_b_size[7:0] = 8'h64)
Waits for back pressure signal (l_busy) to be de-asserted.
Issues a single read request (l_r_req, one clock cycle wide) of burst length 128
(l_b_size[7:0] = 8'h64)
Waits for back pressure signal (l_busy) to be de-asserted.
Increments the address
Repeat
DDR3 Controller Macro Address Mapping
The ACX DDR Controller contains a specific address bus mapping:
Column [colbits-1:0]
Bank [bankbits-1:0]
Figure 3: Read Data Compare Submodule
l_dataout[143:0]
Write
Data
Capture
write_data[143:0]
generate_wr_data
reset_n
l_w_req
l_d_req
clk_in
l_start
Protocol
Generator
l_busy
l_datain[143:0]
reset_n
l_w_req
clk_in
l_start
l_r_req
l_b_size[7:0]
l_addr
l_r_valid
Read Data
Compare
WP003_03_091509
DDR3 Controller Macro Write Interface SPD60 DDR3 Solution Guide
PAGE 10 www.achronix.com WP003 Rev. 1.0 September 16, 2009
Row [rowbits-1:0]
Chip select (encoded) [2:0]
The exact bit positions of the mapping varies depending on the values of the configuration
parameters denoted colbits, rowbits, and bankbits.
The configuration parameters regarding memory size (in terms of numbers of columns, banks
and rows) are defined by the user in the DDR control logic instantiation. Valid ranges of these
values are provided in the Section entitled DDR Driver Logic Parameter Interface.
The SPD60 supports two ranks per DDR control logic block (i.e. two single-rank DIMMs, or one
dual-rank DIMM per controller). This corresponds to two chip selects: CS[1:0] = {CS1, CS0}.
In configurations where the number of column bits, row bits, bank bits and two chip-select
bits do not add up to the total 34-bit length of l_addr, the upper most bits of l_addr are
ignored and should be filled with zeros.
DDR3 Controller Macro Write Interface
The ACX DDR controller contains a very simple write interface to the DDR Driver logic. The user
logic (i.e. DDR driver logic) provides a write request (l_w_req) along with a corresponding
address (l_addr) and burst length (l_b_size). The user logic then provides 144 bits of data
(l_datain) three clock cycles after a data request (l_d_req' is received from the ACX DDR controller.
Note: The write requests are subject to back pressure (l_busy).
Figure 4: Address Mapping of l_addr Signal
WP003_05_091509
Column Bank Row
lsb
msb
bankbits colbits rowbits l_addr[33:0] CS[1:0] leading 0s (if reqd)
Chip Select
Figure 5: Write Interface
WP003_06_091509

l_w_req
l_busy
l_addr[33:0]
l_d_req
l_datain[143:0]
ACX DDR
Controller
DDR Driver Logic
(in Core Fabric)
l_b_size[3:0]
l_dm_in[17:0]
SPD60 DDR3 Solution Guide DDR3 Controller Macro Write Interface
WP003 Rev. 1.0 September 16, 2009 www.achronix.com PAGE 11
Write Command Protocol
The timing diagram in Figure 6 illustrates four cascaded, back-to-back write commands, all of
burst length four. For the purposes of this example, l_busy was asserted at a random time for a
random number of cycles.
To request a write data transaction, the user logic (DDR driver logic) must assert l_w_req
along with a corresponding address (l_addr[33:0]) and burst length (l_b_size).
A valid write request (i.e. one which is successfully posted to the ACX DDR controller and
propagated to the DDR memory) is one in which all of the following conditions are met:
l_w_req is asserted (active high)
l_addr[33:0] is driven
l_b_size[3:0] is driven to 4'b0100 (burst length 4) or 4'b1000 (burst length 8)
l_busy is not asserted (active high)
The timing diagram in Figure 7 illustrates the same four cascaded, back-to-back write
commands as does Figure 6. Each valid write request (and corresponding data) is highlighted
in a different color.
If a write request is not valid (i.e. l_busy and l_w_req are asserted simultaneously), l_w_req,
l_addr[33:0], and l_b_size[3:0] signal values must be latched until such time as l_busy is de-
Figure 6: Write Protocol Timing Diagram
Figure 7: Write Protocol Timing Diagram (with Valid Writes Highlighted)
WP003_07_091509
WP003_08_091509
DDR3 Controller Macro Read Interface SPD60 DDR3 Solution Guide
PAGE 12 www.achronix.com WP003 Rev. 1.0 September 16, 2009
asserted and a valid write request can be posted. Refer to the third write command
(highlighted in yellow) in Figure 4.
The l_w_req signal may remain asserted for any number of clock periods to generate any
number of follow-on write transactions (in cascaded bursts).
Write Data Protocol
The data request (l_d_req) signal asserts three cycles prior to when the DDR driver logic must
present data at the l_datain bus and mask information at the l_dm_in bus.
The ACX DDR controller ensures that the l_d_req signal is asserted for the correct number of
cycles (based on the burst length specified for the corresponding write request) as well as at the
correct time (in accordance with DDR latency requirements based on user-specified values of AL
and CL parameters in the case of DDR/DDR2, or AL and CWL parameters in the case of DDR3).
The burst length (l_b_size) corresponding to a single given write request must be set to a
multiple of four, up to a maximum value of 252, translating to l_d_req being asserted for 4 to
up to 252 cycles, respectively.
While bank and row addresses are derived directly from the address provided by the DDR
driver logic for a given write request, the column address is incremented automatically within
the ACX DDR controller for a given burst, starting with the column address provided by the
user for the given write request. As such, the user should always provide a column address
with a modulo-4 value.
The l_datain[143:0] signal represents the data to be written to the memory over two sequential
DDR clock edges (72 bits at a time). The data contained in l_datain[71:0] is written to the
specified column address and that contained in l_datain[143:72] is written to the specified
column address + 1.
The l_dm_in[17:0] represents the data mask. Each bit within this bus corresponds to 8 bits of the
l_datain[143:0] signal bus. Asserting a given bit within the l_dm_in bus ensures that the corre-
sponding 8 bits of the l_datain bus do not get written to memory, overwriting its previous contents.
DDR3 Controller Macro Read Interface
The ACX DDR controller contains a very simple read interface to the DDR driver logic. This
logic provides a read request (l_w_req) along with a corresponding address (l_addr) and burst
length 'l_b_size).
Some number of clock cycles later, the he DDR driver logic then receives read data
(l_dataout[143:0]) from the ACX DDR controller, along with a corresponding valid signal
(l_r_valid).
Note: The read requests are subject to back pressure (l_busy).
SPD60 DDR3 Solution Guide DDR3 Controller Macro Read Interface
WP003 Rev. 1.0 September 16, 2009 www.achronix.com PAGE 13
Read Command Protocol
The read command protocol is almost identical to that of the write command. The timing
diagram in Figure 9 illustrates four cascaded, back-to-back read commands, all of burst length
four. For illustrative purposes, l_busy was asserted at a random time for a random number of
cycles.
To request a read data transaction, the DDR driver logic must assert l_r_req along with a
corresponding address (l_addr[33:0]) and burst length (l_b_size). A valid read request (i.e. one
which is successfully posted to the ACX DDR controller and propagated to the DDR memory)
is one in which all of the following conditions are met:
l_r_req is asserted (active high)
l_addr[33:0] is driven
Figure 8: Read Interface
DDR Driver Logic
(in Fabric)
ACX DDR
Controller
wp003_09_091609
l_w_req
l_addr[33:0]
l_b_size_[3:0]
l_busy
l_d_req
l_datain[143:0]
l_dm_in[17:0]
Figure 9: Read Protocol Timing Diagram
clock
a0 a1 a2 a3
d0 d1 d2 d3 d4 d5 d6 d7
Valid Read Commands
4
l_r_req
l_addr[33:0]
l_busy
l_r_valid
l_dataout[143:0]
l_b_size[3:0]
Timing relationship between l_w_req asertion and l_d_req
assertion based on AL/CL configuration settings, refresh
status, and status of bank/row being accessed.
Present data three cycles after
l_d_req is asserted.
wp003_10_091609
DDR3 Controller Macro Read Interface SPD60 DDR3 Solution Guide
PAGE 14 www.achronix.com WP003 Rev. 1.0 September 16, 2009
l_b_size[3:0] is driven to 4'b0100 (burst length 4) or 4'b1000 (burst length 8)
l_busy is not asserted (active high)
The timing diagram in Figure 10 illustrates the same four cascaded, back-to-back read
commands as does Figure 5. Each valid read request (and corresponding data) is highlighted
in a different color.
If a read request is not valid (i.e. l_busy and l_r_req are asserted simultaneously), l_r_req,
l_addr[33:0], and l_b_size[3:0] signal values must be latched until such time as l_busy is de-
asserted and a valid read request can be posted. Refer to the third read command (highlighted
in yellow) in Figure 6.
The l_r_req signal may remain asserted for any number of clock periods to generate any
number of follow-on read transactions (in cascaded bursts).
Read Data Protocol
The read data corresponding to a given read request is returned a deterministic number of
clock cycles after said read request. This deterministic amount of time represents the round-
trip delay of accessing as well as actually reading from the memory address. The read data is
accompanied by a valid signal, denoted l_r_valid.
The ACX DDR controller ensures that the l_r_valid signal is asserted for the correct number of
cycles (based on the burst length specified for the corresponding read request) as well as at the
correct time (in accordance with DDR latency requirements based on user-specified values of
AL and CL parameters and the total round-trip latency of the given memory access).
The burst length (l_b_size) corresponding to a single given read request must be set to four or
eight, translating to l_r_valid being asserted for two or four cycles, respectively, for said read
request.
As with writes, while bank and row addresses are derived directly from the address provided
by the DDR driver logic for a given read request, the column address is incremented
automatically within the ACX DDR controller, starting with the column address provided by
the user. As such, the user should always provide a column address with a modulo-4 value.
Figure 10: Read Protocol Timing Diagram (with Valid Writes Highlighted)
clock
a0 a1 a2 a3
d0 d1 d2 d3 d4 d5 d6 d7
Valid Read Commands
4
l_r_req
l_addr[33:0]
l_busy
l_r_valid
l_dataout[143:0]
l_b_size[3:0]
Timing relationship between l_w_req asertion and l_d_req
assertion based on AL/CL configuration settings, refresh
status, and status of bank/row being accessed.
Present data three cycles after
l_d_req is asserted.
wp003_11_091609
SPD60 DDR3 Solution Guide DDR3 Controller Macro Read Interface
WP003 Rev. 1.0 September 16, 2009 www.achronix.com PAGE 15
The l_dataout[143:0] signal represents the data read from the memory over two sequential
DDR clock edges (72 bits at a time). The data contained in l_dataout[71:0] is read from the
specified column address, and that contained in l_dataout[143:72] is read from the specified
column address + 1.
WP003 Rev. 1.0 September 16, 2009 SPD60 DDR3 Solution Guide
www.achronix.com
Achronix Semiconductor Corporation
333 West San Carlos Street, Suite 1050
San Jose, CA, 95110
USA
Phone : 877.GHZ.FPGA (877.449.3742)
Fax : 408.286.3645
E-mail : info@achronix.com
Copyright 2009 Achronix Semiconductor Corporation. All rights reserved. Achronix is a trademark and Speedster is a registered trademark of Achronix Semiconductor Corporation. All other
trademarks are the property of their prospective owners. All specifications subject to change without notice.
NOTICE of DISCLAIMER: The information given in this document is believed to be accurate and reliable. However, Achronix Semiconductor Corporation does not give any representations or
warranties as to the completeness or accuracy of such information and shall have no liability for the use of the information contained herein. Achronix Semiconductor Corporation reserves the
right to make changes to this document and the information contained herein at any time and without notice. All Achronix trademarks, registered trademarks, and disclaimers are listed at http:/
/www.achronix.com/legal and use of this document and the Information contained therein is subject to such terms.
Revision History
The following table lists the revision history of this document.
Version Revision
1.0 Initial released version.

Das könnte Ihnen auch gefallen