Read interface details – Achronix Speedster22i DDR User Manual

Page 23

Advertising
background image

As shown above, the wrdata_req signal needs to be asserted for one clock cycle, and in the

subsequent clock cycle the write data [575:0] is provided. The timing relationships with the

SDRAM interface are essentially equivalent to the 2X Clock Mode interface.
A valid write request (ie. one which is successfully posted to the Speedster22i DDR Controller

and propagated to the DDR Memory) is one in which ALL of the following conditions are

met:

‘ddr_int_wr_request’ is asserted (active high)

‘ddr_int_addr [33:0]’ is driven

‘ddr_int_burst_size [7:0]’ is driven to a valid value for the given protocol

o

8’d4  8’d252 for DDR3 (multiple of 4)

‘ddr_int_busy_align’ is not asserted (active high)

Latency of the DDR-controller provided data (ddr_int_wrdata) to the external

memory is 8-cycle.

Read Interface Details

The Speedster22i DDR Controller contains a very simple read interface to the DDR Driver

logic.
2X Clock mode must always be used. When using 2X clock mode DDR drive (user) logic in

core runs at half the frequency of DDR controller. The DDR controller/PHY outputs a Clock

(‘clk_div2’), which the user must use to drive write data and latch read data.
The core interface signals remain the same except for (‘ddr_int_busy’, ddr_int_wrdata_req’,

’ddr_int_wrdata_req_early’, ‘ddr_int_rddata_valid’, ‘ddr_int_rddata_valid_early’). Instead,

the DDR driver (user) logic needs to use (‘ddr_int_busy_align’, ‘ddr_int_wrdata_req_align’,

’ddr_int_wrdata_req_early_align’, ‘ddr_int_rddata_valid_align’,

‘ddr_int_rddata_valid_early_align’).
The DDR driver (user) logic must provide a read request (‘ddr_int_rd_request’) along with a

corresponding address (‘ddr_int_addr’) and burst length (‘ddr_int_burst_size’).
Speedster22i DDR controller provides valid signal for data to be read. This valid signal is

‘ddr_int_rddata_valid_align’. After assertion of ‘ddr_int_rddata_valid_align’, 2 cycles later,

the DDR driver logic receives read data (‘ddr_int_rddata [287:0]’) from the Speedster22i DDR

controller. The ‘ddr_int_rddata [287:0]’ signal represents the data read from the memory over

four sequential DDR clock edges (72 bits at a time). The data contained in ‘ddr_int_rddata

[71:0]’ is read from the specified column address, and that contained in ‘ddr_int_rddata

[143:72]’ is read from the specified column address + 1. Data from ‘ddr_int_rddata [215:144]’

is read from specified column address+2 and data from ‘ddr_int_rddata [287:216]’ is read

from specified column address+3.
The read requests are subject to the controller being busy (‘ddr_int_busy_align’).
The DDR controller supports burst length option BL8. Each burst will contain 2 local side

transfers, which is equivalent to 8 transfers to the DDR memory.

UG031, Nov 18, 2014

23

Advertising