The Trion DDR PHY interface supports DDR3, DDR3L,
LPDDR3, LPDDR2 memories with x16 or x32 DQ widths (depending on the FPGA) and a memory
controller hard IP block. The DDR PHY supports data rates up to 1066 Mbps per lane. The
memory controller provides two AXI buses to communicate with the FPGA core.
Note: The DDR PHY and controller are hard blocks; you cannot bypass the DDR DRAM memory
controller to access the PHY directly for non-DDR memory controller applications.
Table 1. DDR DRAM Performance
DDR DRAM Interface
Voltage (V)
Maximum Data Rate (Mbps) per Lane
DDR3
1.5
1066
DDR3L
1.35
1066
LPDDR3
1.2
1066
LPDDR2
1.2
1066
Figure 1. (T20, T35) DDR DRAM Block DiagramFigure 2. (T55, T85, T120) DDR DRAM Block Diagram
The DDR DRAM block supports an I2C calibration bus that can read/write the DDR
configuration registers. You can use this bus to fine tune the DDR PHY for high
performance.
Figure 3. DDR DRAM Interface Block Diagram
Table 2. PHY Signals (Interface to FPGA Fabric)
Signal
Direction
Clock Domain
Description
CLKIN
Input
N/A
High-speed clock to drive the DDR PHY. A PLL must generate this
clock. The clock runs at half of the PHY data rate (for example, 800
Mbps requires a 400 MHz clock).
The DDR DRAM block uses the
PLL_BR0 CLKOUT0 resource as the PHY clock.
The PLL reference clock must be driven by I/O pads. The Efinity®
software issues a warning if you do not connect the reference clock to an I/O pad.
(Using the clock tree may induce additional jitter and degrade the DDR performance.)
Refer to About the Advanced PLL Interface for more information about
the PLL block.
Important:Efinix strongly recommends
that you do not use any LVDS pins (either single-ended I/O or differential pair) as the
primary clock to drive the PLL_BR0 or the DDR interface will not be initialized during
the configuration phase. Make sure to incorporate a user reset and instantiate the DDR
Hard Memory Controller-Reset IP to initialize the DDR interface in user mode. Contact
Efinix support if you need LVDS pins as the primary clock for
the PLL_BR0 DDR interface
Table 3. AXI Global Signals (Interface to FPGA Fabric)
Signal
Direction
Clock Domain
Description
ACLK_0, ACLK_1
Input
N/A
AXI clock inputs.
Table 4. AXI Shared Read/Write Signals (Interface to FPGA Fabric)
Signal
x is 0 or 1
Direction
Clock Domain
Description
AADDR_x[31:0]
Input
ACLK_x
Address. ATYPE defines whether it is a read or write address. It
gives the address of the first transfer in a burst transaction.
ABURST_x[1:0]
Input
ACLK_x
Burst type. The burst type and the size determine how the address for
each transfer within the burst is calculated.
AID_x[7:0]
Input
ACLK_x
Address ID. This signal identifies the group of address signals.
Depends on ATYPE, the ID can be for a read or write address
group.
ALEN_x[7:0]
Input
ACLK_x
Burst length. This signal indicates the number of transfers in a
burst.
ALOCK_x[1:0]
Input
ACLK_x
Lock type. This signal provides additional information about the
atomic characteristics of the transfer.
AREADY_x
Output
ACLK_x
Address ready. This signal indicates that the slave is ready to
accept an address and associated control signals.
ASIZE_x[2:0]
Input
ACLK_x
Burst size. This signal indicates the size of each transfer in the
burst.
ATYPE_x
Input
ACLK_x
This signal distinguishes whether is it is a read or write operation.
0 = read and 1 = write.
AVALID_x
Input
ACLK_x
Address valid. This signal indicates that the channel is signaling
valid address and control information.
Response ID tag. This signal is the ID tag of the write
response.
BREADY_x
Input
ACLK_x
Response ready. This signal indicates that the master can accept a
write response.
BVALID_x
Output
ACLK_x
Write response valid. This signal indicates that the channel is
signaling a valid write response.
Table 6. AXI Read Data Channel Signals (Interface to FPGA Fabric)
Signal
x is 0 or 1
Direction
Clock Domain
Description
RDATA_x[127:0]
Output
ACLK_x
(T20, T35): Read data.
RDATA_0[255:0]
Output
ACLK_0
(T55, T85, T120): AXI target 0 read data.
RDATA_1[127:0]
Output
ACLK_1
(T55, T85, T120): AXI target 1 read data.
RID_x[7:0]
Output
ACLK_x
Read ID tag. This signal is the identification tag for the read data
group of signals generated by the slave.
RLAST_x
Output
ACLK_x
Read last. This signal indicates the last transfer in a read
burst.
RREADY_x
Input
ACLK_x
Read ready. This signal indicates that the master can accept the read
data and response information.
RRESP_x[1:0]
Output
ACLK_x
Read response. This signal indicates the status of the read
transfer.
RVALID_x
Output
ACLK_x
Read valid. This signal indicates that the channel is signaling the
required read data.
Table 7. AXI Write Data Channel Signals (Interface to FPGA Fabric)
Signal
x is 0 or 1
Direction
Clock Domain
Description
WDATA_x[127:0]
Input
ACLK_x
(T20, T35): Write data.
WDATA_0[255:0]
Input
ACLK_0
(T55, T85, T120): AXI target 0 write data.
WDATA_1[127:0]
Input
ACLK_1
(T55, T85, T120): AXI target 1 write data.
WID_x[7:0]
Input
ACLK_x
Write ID tag. This signal is the ID tag of the write data
transfer.
WLAST_x
Input
ACLK_x
Write last. This signal indicates the last transfer in a write
burst.
WREADY_x
Output
ACLK_x
Write ready. This signal indicates that the slave can accept the
write data.
WSTRB_x[15:0]
Input
ACLK_x
(T20, T35): Write strobes. This signal indicates which byte lanes
hold valid data. There is one write strobe bit for each eight bits of
the write data bus.
WSTRB_0[31:0]
WSTRB_1[15:0]
Input
ACLK_x
(T55, T85, T120): Write strobes. This signal indicates which byte
lanes hold valid data. There is one write strobe bit for each eight bits
of the write data bus.
WVALID_x
Input
ACLK_x
Write valid. This signal indicates that valid write data and strobes
are available.
Table 8. DDR DRAM I2C Interface Signals
Signal
Direction
Description
CFG_SCL_IN
Input
Clock input.
CFG_SDA_IN
Input
Data input.
CFG_SDA_OEN
Output
SDA output enable.
Table 9. DDR DRAM Startup Sequencer Signals
Signal
Direction
Description
CFG_SEQ_RST
Input
Active-high DDR configuration controller reset.
CFG_SEQ_START
Input
Start the DDR configuration controller.
Table 10. DDR DRAM Reset Signal
Signal
Direction
Description
CFG_RST_N
Input
Active-low master DDR DRAM reset. After you de-assert RST_N, you need
to reconfigure and initialize before performing memory
operations.
Table 11. DDR DRAM Pads
Signal
Direction
Description
DDR_A[15:0]
Output
Address signals to the memories.
DDR_BA[2:0]
Output
Bank signals to/from the memories.
DDR_CAS_N
Output
Active-low column address strobe signal to the memories.
DDR_CKE
Output
Active-high clock enable signals to the memories.
DDR_CK
Output
Active-high clock signals to/from the memories. The clock to the
memories and to the memory controller must be the same clock frequency
and phase.
DDR_CK_N
Output
Active-low clock signals to/from the memories.The clock to the
memories and to the memory controller must be the same clock frequency
and phase.
DDR_CS_N
Output
Active-low chip select signals to the memories.
DDR_DQ[n:0]
Bidirectional
Data bus to/from the memories. For writes, the pad drives these
signals. For reads, the memory drives these signals. These signals are
connected to the DQ inputs on the memories. n is 7, 15, or 31
depending on the FPGA and DQ width.
DDR_DM[n]
Output
Active-high data-mask signals to the memories. n is 1, 1:0, or
3:0 depending on the FPGA and DQ width.
DDR_DQS_N[n:0]
Bidirectional
Differential data strobes to/from the memories. For
writes, the pad drives these signals. For reads, the memory drives these
signals. These signals are connected to the DQS inputs on the memories.
n is 1, 1:0, or 3:0 depending on the FPGA and DQ
width.
DDR_DQS[n:0]
Bidirectional
DDR_ODT
Output
ODT signal to the memories.
DDR_RAS_N
Output
Active-low row address strobe signal to the memories.
DDR_RST_N
Output
Active-low reset signals to the memories.
DDR_WE_N
Output
Active-low write enable strobe signal to the memories.