ds425 plb double data rate (ddr) synchronous dram (sdram) controller

21
DS425 (v1.9.2) October 10, 2003 www.xilinx.com 1 Product Overview 1-800-255-7778 © 2003 Xilinx, Inc. All rights reserved. All Xilinx trademarks, registered trademarks, patents, and further disclaimers are as listed at http://www.xilinx.com/legal.htm . All other trademarks and registered trademarks are the property of their respective owners. All specifications are subject to change without notice. NOTICE OF DISCLAIMER: Xilinx is providing this design, code, or information "as is." By providing the design, code, or information as one possible implementation of this fea- ture, application, or standard, Xilinx makes no representation that this implementation is free from any claims of infringement. You are responsible for obtaining any rights you may require for your implementation. Xilinx expressly disclaims any warranty whatsoever with respect to the adequacy of the implementation, including but not limited to any war- ranties or representations that this implementation is free from claims of infringement and any implied warranties of merchantability or fitness for a particular purpose. Introduction The Xilinx Processor Local Bus Double Data Rate (PLB DDR) Synchronous DRAM (SDRAM) controller for Vir- tex -II and Virtex-II Pro FPGAs provides a DDR SDRAM controller which connects to the PLBbus and provides the control interface for DDR SDRAMs. It is assumed that the reader is familiar with DDR SDRAMs and the IBM Pow- erPC. Features The Xilinx DDR SDRAM Controller is a soft IP core designed for Xilinx FPGAs and contains the following fea- tures: PLB interface Performs device initialization sequence upon power-up and reset conditions for ~200uS. Provides a parameter to adjust this time for simulation purposes only. Performs auto-refresh cycles Supports single-beat and burst transactions Supports target-word first cache-line transactions Supports cacheline latencies of 2 or 3 set by a design parameter Supports various DDR data widths set by a design parameter Provides big-endian connections to memory devices. See Connecting to Memory for details on memory connections. DDR SDRAM Controller Design Parameters To allow the user to obtain a DDR SDRAM Controller that is uniquely tailored for their system, certain features are parameterizable in the Xilinx DDR SDRAM Controller design. This allows the user to have a design that only uti- lizes the resources required by their system and runs at the best possible performance. The features that are parame- terizable in the Xilinx DDR SDRAM Controller are shown in Table 1. 0 PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller DS425 (v1.9.2) October 10, 2003 0 0 Product Overview LogiCORE™ Facts Core Specifics Supported Device Family Virtex-II Pro, Virtex -II, Virtex, Virtex -E, Spartan -II Version of Core DDR v1.00c Resources Used. See Table 8 Min Max Slices 509 861 LUTs 602 977 FFs 477 919 Block RAMs 0 0 Provided with Core Documentation Product Specification Design File Formats VHDL Constraints File N/A Verification N/A Instantiation Template N/A Reference Designs None Design Tool Requirements Xilinx Implementation Tools 5.1i or later Verification N/A Simulation ModelSim SE/EE 5.6e or later Synthesis XST Support Support provided by Xilinx, Inc. Discontinued IP

Upload: others

Post on 03-Feb-2022

17 views

Category:

Documents


0 download

TRANSCRIPT

DS425 PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) ControllerIntroduction The Xilinx Processor Local Bus Double Data Rate (PLB DDR) Synchronous DRAM (SDRAM) controller for Vir- tex™-II and Virtex-II Pro™ FPGAs provides a DDR SDRAM controller which connects to the PLBbus and provides the control interface for DDR SDRAMs. It is assumed that the reader is familiar with DDR SDRAMs and the IBM Pow- erPC.
Features The Xilinx DDR SDRAM Controller is a soft IP core designed for Xilinx FPGAs and contains the following fea- tures:
• PLB interface
• Performs device initialization sequence upon power-up and reset conditions for ~200uS. Provides a parameter to adjust this time for simulation purposes only.
• Performs auto-refresh cycles
• Supports single-beat and burst transactions
• Supports target-word first cache-line transactions
• Supports cacheline latencies of 2 or 3 set by a design parameter
• Supports various DDR data widths set by a design parameter
• Provides big-endian connections to memory devices. See Connecting to Memory for details on memory connections.
DDR SDRAM Controller Design Parameters To allow the user to obtain a DDR SDRAM Controller that is uniquely tailored for their system, certain features are parameterizable in the Xilinx DDR SDRAM Controller design. This allows the user to have a design that only uti- lizes the resources required by their system and runs at the best possible performance. The features that are parame- terizable in the Xilinx DDR SDRAM Controller are shown in Table 1.
0
LogiCORE™ Facts
Core Specifics
Version of Core DDR v1.00c
Resources Used. See Table 8
Min Max
Synthesis XST
Discontinued IP
DS425 (v1.9.2) October 10, 2003 www.xilinx.com 1 Product Overview 1-800-255-7778
© 2003 Xilinx, Inc. All rights reserved. All Xilinx trademarks, registered trademarks, patents, and further disclaimers are as listed at http://www.xilinx.com/legal.htm. All other trademarks and registered trademarks are the property of their respective owners. All specifications are subject to change without notice.
NOTICE OF DISCLAIMER: Xilinx is providing this design, code, or information "as is." By providing the design, code, or information as one possible implementation of this fea- ture, application, or standard, Xilinx makes no representation that this implementation is free from any claims of infringement. You are responsible for obtaining any rights you may require for your implementation. Xilinx expressly disclaims any warranty whatsoever with respect to the adequacy of the implementation, including but not limited to any war- ranties or representations that this implementation is free from claims of infringement and any implied warranties of merchantability or fitness for a particular purpose.
Table 1: DDR SDRAM Controller Design Parameters
Grouping / Number
Default Value VHDL Type
DDR SDRAM Controller Features
G1 Pull Resistors on DDR DQS signals(1)
C_DQS_PULLUPS 0 = DQS signals have internal or external pull down resistors
1 = DQS signals have internal or external pull up resistors
0 integer
G2 Include logic to support PLB bursts and cacheline transactions
C_INCLUDE_BURST_C ACHELN_SUPPORT
0 = don’t include logic to support PLBbursts and cacheline transfers
1 = include logic to support bursts and cacheline transfers
0 string
C_REG_DIMM 0 = DDR device is not registered DIMM
1 = DDR device is registered DIMM
0 integer
DDR SDRAM Device Features
C_DDR_TMRD 15000 integer
C_DDR_TWR 15000 integer
C_DDR_TWTR 1 integer
C_DDR_TRAS 40000 integer
G9 Delay after ACTIVE command before another ACTIVE or AUTOREFRESH command (ps)
C_DDR_TRC 65000 integer
C_DDR_TRFC 75000 integer
C_DDR_TRCD 20000 integer
2 www.xilinx.com DS425 (v1.9.2) October 10, 2003 1-800-255-7778 Product Overview
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
G12 Delay after ACTIVE command for a row before an ACTIVE command for another row (ps)
C_DDR_TRRD 15000 integer
C_DDR_TRP 20000 integer
C_DDR_TREFI 7800000 integer
C_DDR_TREFC 70300
G17 Total data width of DDR devices (2)
C_DDR_DWIDTH 32 integer
G19 DDR column address width
C_DDR_COL_AWIDTH See note(3) 9 integer
G20 DDR bank address width
C_DDR_BANK_AWIDT H
PLB Bus Inteface
G24 PLB Address bus width
C_PLB_AWIDTH 32 32 integer
C_PLB_NUM_MASTER S
C_PLB_CLK_PERIOD_ PS
C_SIM_INIT_TIME_PS Minimum 200 clock periods
2000000 000
Auto-calcu- lated para- meters(5)
G28 Number of bits required to encode the number of PLB Masters
C_PLB_MID_WIDTH 1 - log2(C_NUM_MASTE RS)
2 integer
Notes: 1. The DDR DQS signals should either internal or external pull resistors. Set this parameter to indicate if these resistors are pull up
resistors or pull down resistors. 2. Data width of DDR devices must be half of the PLB data width. 3. C_DDR_AWIDTH + C_DDR_COL_AWIDTH + C_DDR_BANK_AWIDTH + log2(C_DDR_DWIDTH/8) must be < C_PLB_AWIDTH-1. 4. The range specified by C_BASEADDR and C_HIGHADDR must comprise a complete, contiguous power of two range such that
range = 2n, and the n least significant bits of C_BASEADDR must be zero. 5. These parameters are automatically calculated by the system generation tool and are not input by the user. 6. This parameter adjusts the initialization time of the DDR for simulation only. Must be > 200 clocks
Table 1: DDR SDRAM Controller Design Parameters (Continued)
Grouping / Number
Default Value VHDL Type
DS425 (v1.9.2) October 10, 2003 www.xilinx.com 3 Product Overview 1-800-255-7778
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
Allowable Parameter Combinations The address range specified by C_BASEADDR and C_HIGHADDR must comprise a complete, contiguous power of two range such that range = 2n, and the n least significant bits of C_BASEADDR must be zero. The range specified by these parameters must encompass the DDR SDRAM memory space.
The total data width of the DDR SDRAM devices must be half the data width of the PLB.
DDR SDRAM Controller I/O Signals Table 2 provides a summary of all Xilinx DDR SDRAM Controller input/output (I/O) signals, the interfaces under which they are grouped, and a brief description of the signal.
Table 2: DDR SDRAM Controller Pin Descriptions
Grouping Signal Name Interface I/O Initial State Description
DDR SDRAM Signals
P2 DDR_Clkn DDR O 1 DDR inverted clock
P3 DDR_CKE DDR O 0 DDR Clock Enable
P4 DDR_CSn DDR O 1 Active low DDR chip select
P5 DDR_RASn DDR O 1 Active low DDR row address strobe
P6 DDR_CASn DDR O 1 Active low DDR column address strobe
P7 DDR_WEn DDR O 1 Active low DDR write enable
P8 DDR_DM DDR O 0 DDR data mask
P9 DDR_BankAddr DDR O 0 DDR bank address
P10 DDR_Addr DDR O 0 DDR address
P11 DDR_DQ_o DDR O 0 Output data to DDR
P12 DDR_DQ_i DDR I Input data from DDR
P13 DDR_DQ_t DDR O 0 3-state control for DDR data buffers
P14 DDR_DQS_o DDR O 0 Output data strobe to DDR
P15 DDR_DQS_i DDR I Input data strobe from DDR
P16 DDR_DQS_t DDR O 1 3-state control for DDR data strobe buffers
P17 DDR_Init_done DDR O 0 Signals that the DDR initialization is complete
Clock Signals
P18 Clk90_in I System bus clock phase shifted by 90 degrees
P19 DDR_Clk90_in I DDR clock feedback shifted by 90 degrees
Discontinued IP
4 www.xilinx.com DS425 (v1.9.2) October 10, 2003 1-800-255-7778 Product Overview
PLB Slave Sig- nals(1)
P21 PLB_buslock PLB I PLB bus lock
P22 PLB_masterID[0:C_PLB_NUM_MAST ERS-1]
P23 PLB_RNW PLB I PLB read not write
P24 PLB_BE[0:C_PLB_DWIDTH/8-1] PLB I PLB byte enables
P25 PLB_size[0:3] PLB I PLB transfer size
P26 PLB_type[0:2] PLB I PLB transfer type
P26 PLB_MSize[0:1] PLB I PLB master data bus size
P28 PLB_compress PLB I PLB compressed data transfer indicator
Table 2: DDR SDRAM Controller Pin Descriptions (Continued)
Grouping Signal Name Interface I/O Initial State Description
Discontinued IP
DS425 (v1.9.2) October 10, 2003 www.xilinx.com 5 Product Overview 1-800-255-7778
P28 PLB_guarded PLB I PLB guarded transfer indicator
P29 PLB_ordered PLB I PLB synchronize transfer indicator
P30 PLB_lockErr PLB I PLB lock error indicator
P31 PLB_abort PLB I PLB abort bus request indicator
P32 PLB_ABus[0:C_PLB_AWIDTH-1] PLB I PLB address bus
P33 PLB_SAValid PLB I PLB secondary address valid indicator
P34 PLB_rdPrim PLB I PLB secondary to primary read request indicator
P35 PLB_wrPrim PLB I PLB secondary to primary write request indicator
P36 PLB_wrDBus[0:C_PLB_DWIDTH-1] PLB I PLB write data bus
P37 PLB_wrBurst PLB I PLB burst write transfer indicator
P38 PLB_rdBurst PLB I PLB burst read transfer indicator
P39 Sl_addrAck PLB O 0 Slave address acknowledge
P40 Sl_wait PLB O 0 Slave wait indicator
P41 Sl_SSize[0:1] PLB O 0 Slave data bus size
P42 Sl_rearbitrate PLB O 0 Slave rearbitrate bus indicator
P43 Sl_MBusy[0:C_PLB_NUM_MASTERS -1]
P44 Sl_MErr[0:C_PLB_NUM_MASTERS-1 ]
P45 Sl_wrDAck PLB O 0 Slave write data acknowledge
P46 Sl_wrComp PLB O 0 Slave write transfer complete indicator
P47 Sl_wrBTerm PLB O 0 Slave terminate write burst transfer
P48 Sl_rdDBus[0:C_PLB_DWIDTH-1] PLB O 0 Slave read bus
P49 Sl_rdWdAddr[0:3] PLB O 0 Slave read word address
P50 Sl_rdDAck PLB O 0 Slave read data acknowledge
P51 Sl_rdComp PLB O 0 Slave read transfer complete indicator
P52 Sl_rdBTerm PLB O 0 Slave terminate read burst transfer
Table 2: DDR SDRAM Controller Pin Descriptions (Continued)
Grouping Signal Name Interface I/O Initial State Description
Discontinued IP
6 www.xilinx.com DS425 (v1.9.2) October 10, 2003 1-800-255-7778 Product Overview
Parameter/Port Dependencies There a no dependencies between the DDR design parameters and I/O signals.
Connecting to Memory
Memory Data Types and Organization DDR SDRAM memory can be accessed as: byte (8 bits), halfword (2 bytes),word (4 bytes), depending on the size of the bus to which the processor is attached. From the point of view of the PLBdata is organized as big-endian. The bit and byte label- ing for the big-endian data types is shown below in Figure 1.
P53 PLB_Clk PLB I PLB clock
P54 PLB_Rst PLB I PLB reset
Notes: 1. Please refer to the IBM PLB Bus Architecture Specification for more detailed information on these signals.
Table 2: DDR SDRAM Controller Pin Descriptions (Continued)
Grouping Signal Name Interface I/O Initial State Description
Discontinued IP
DS425 (v1.9.2) October 10, 2003 www.xilinx.com 7 Product Overview 1-800-255-7778
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
Memory to FPGA Connections The data and address signals at the DDR controller are labeled with big-endian bit labeling (for example, D(0:31), D(0) is the MSB), whereas most memory devices are either endian agnostic (they can be connected either way) or little-endian D(31:0) with D(31) as the MSB.
Caution must be exercised with the connections to the external memory devices to avoid incorrect data and address con- nections. Table 3 shows the correct mapping of DDR controller pins to memory device pins.
Figure 1: Big-Endian Data Types
n n+1 n+2 n+3
0 1 2 3
Word
n+1 n+2 n+3 n+4 n+5 n+6 n+7
3 4 5 6 7 Double
Discontinued IP
8 www.xilinx.com DS425 (v1.9.2) October 10, 2003 1-800-255-7778 Product Overview
DDR Address Mapping
An address offset is calculated based on the width of the DDR data bus. The DDR column address is then mapped to the PLB address bus, followed by the row address and bank address.
The PLB address bus bit locations for the DDR column, row, and bank addresses are calculated as shown in Table 4 and Table 5.
Table 6 and Table 7 show an example of the mapping between the PLB address and the DDR address when the data width of the DDR is 32 and the data width of the bus is 64, the column address width is 9, the row address width is 13, and the bank address width is 2.
Table 3: DDR controller to memory interconnect
Description DDR Signal (MSB:LSB) Memory Device Signal (MSB:LSB)
Data Bus DDR_DQ(0:C_DDR_DWIDTH-1) DQ(C_DDR_DWIDTH-1:0)
Bank Address DDR_BankAddr(0:C_DDR_BANK_AWIDTH) BA(C_DDR_BANK_AWIDTH-1:0)
Table 4: DDR Address offset calculations
Variable Equation
ADDR_OFFSET log2(C_DDR_DWIDTH/8)
ROWADDR_STARTBIT COLADDR_STARTBIT - C_DDR_AWIDTH
ROWADDR_ENDBIT ROWADDR_STARTBIT + C_DDR_AWIDTH-1
BANKADDR_STARTBIT ROWADDR_STARTBIT - C_DDR_BANK_AWIDTH
BANKADDR_ENDBIT BANKADDR_STARTBIT + C_DDR_BANK_AWIDTH-1
DDR Address PLB Address Bus
Column Address PLB_ABus(COLADDR_STARTBIT to COLADDR_ENDBIT) & ’0’
Row Address PLB_ABus(ROWADDR_STARTBIT to ROWADDR_ENDBIT)
Bank Address PLB_ABus(BANKADDR_STARTBIT to BANKADDR_ENDBIT)
Discontinued IP
DS425 (v1.9.2) October 10, 2003 www.xilinx.com 9 Product Overview 1-800-255-7778
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
IMPORTANT: Virtex-II and Virtex-II Pro IO pairs share input and output clock signals. Since the DDR registers in the IO blocks use both of the input and output clock signals, the ports assigned to the IO pairs MUST use the same input and output clocks. Care should be taken when making port IO assignments that the DDR_DQ and DDR_DM signals use the system clock as the output clock and the DDR_DQS signals use a 90 degree phase shift of the system clock as the output clock. Therefore, a DDR_DQS signal should not be assigned with a DDR_DQ signal or a DDR_DM signal in an IO pair.
Since this DDR controller design utilizes the DDR registers in the Virtex-II and Virtex-II Pro FGPA IO blocks, therefore, this controller is not suitable for other FPGA families.
Since the DDR_DQ and DDR_DQS busses are 3-stateable, the user should either pulldownor pullup these signals in the FPGA IO blocks or external to the FPGA in the board design and set the C_DQS_PULLUPS parameter accordingly. Note that the DDR controller design will drive the DQS signals to a ’1’ or ’0’ as indicated by this parameter during the IDLE state so only one DDR controller can be used to control a DDR memory, i.e., two DDR controllers can not share the same DDR memory.
Table 6: PLB Example DDR Address offset calculations
Variable Value
COLADDR_ENDBIT 21 +(9-2) = 28
ROWADDR_STARTBIT 21 - 13 = 8
BANKADDR_STARTBIT 8 - 2 = 6
Table 7: DDR - PLB Address Bus Assignments
DDR Address PLB Address Bus
Column Address PLB_ABus(21: 28) &’0’
Row Address PLB_ABus(8:20)
Bank Address PLB_ABus(6:7)
DDR Clocking
Clock Generation The clocking scheme required in the FGPA and used by the DDR controller core is shown in Figure 2. An example imple- mentation can be found in the DDR Clock Module Reference design available in the EDK Toolkit.
Clk and Clk90 Generation
A DCM is required to generate the clock used internal to the FPGA as shown in Figure 2. A 90 degree phase output of the DCM is input to the DDR Controller core and is used to generate the DDR clock and DQS signals. PLB_Clk and Clk90_in are the outputs of a DCM and global buffers.
DDR Clock Generation
The clock output to the DDR SDRAMs is generated using the DDR I/O registers as shown in Figure 3 . The 90 degree phase-shift clock is used to generate the DDR_Clk (and DDR_Clkn) so that the clock is centered in the data output to the DDR.
Note that the DDR clock frequency is the same as the PLB clock frequency.
Figure 2: DDR Clocking
DDR Clock Input Synchronization
Another DCM will be required by this design to align the clock output to the DDR registers with the data from the DDR to accurately register this data. The DDR_Clk output shown in Figure 3 will need to be connected to the DDR_Clk_fb shown in Figure 2 as an external board connection. The Clk90 output of the DDR Clock DCM is input to the DDR Controller core and is used to clock in the DDR data.
Due to the variation in board layout, the DDR clock and the DDR data relationship can vary. Therefore, the designer should analyze the time delays of the system and set all of the attributes of the phase shift controls of the DCM as needed to insure stable clocking of the DDR data.
DDR SDRAM Controller Design
Block Diagram The Xilinx DDR SDRAM controller consists of the PLB IPIF to provide the bus protocol, 3 state machines to control the DDR SDRAM operation, an I/O module to instantiate the DDR I/O registers for the DDR data interface, and a clock generation module.
The separation of the Command State Machine and the Data State Machine allows for the application of commands to the DDR while data reception/transmission is in progress. Overlapping the DDR commands with the data transfer when access- ing data in the same row of the same bank allows for more optimal DDR operation.
Figure 3: DDR Clock Generation
D0
D1
DDR Core
Discontinued IP
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
Init State Machine DDR SDRAMs must be powered-up and initialized in a predefined manner. After all power supplies and the clock are stable, the DDR SDRAM requires a 200uS delay prior to applying an executable command.
The Init State Machine provides the 200uS delay and the sequencing of the required DDR start-up commands.It instructs the Command State Machine to send the proper commands in the proper sequence to the DDR. This state machine starts execution after Reset and returns to the IDLE state when Reset is applied.
When the initialization sequence has been completed, the INIT_DONE signal asserts.
Note that after Reset has been applied, the 200uS delay is again implemented before any commands are issued to the DDR. The 200uS delay must be accounted for in simulation as well as the delay of the command sequence.
Figure 4: DDR SDRAM Controller Block Diagram
Data State Machine
Command State Machine
Init State Machine
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
Command State Machine The Command State Machine provides the address bus and commands signals to the DDR. It sends the DATA_EN signal to the Data State Machine to start the reception/transmission of data. If a burst transaction is in progress or a secondary transaction has been received, the Command State Machine will send the next command to the DDR while data recep- tion/transmission is still in progress to optimize the DDR operation.
A simplified version of the Command State Machine is shown in Figure 6. For readability, only the major state transitions are shown.
Figure 5: DDR Init State Machine
IDLE
PRECHARGE1
ENABLE_DLL
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
Data State Machine The Data State Machine transfers the data to/from the DDR and determines when the specified DDR burst is complete. It monitors the PEND_OP signal from the Command State Machine to know if more data transmissions are required. It waits for CAS_LATENCY during read operations and signals when the DDR has completed the data transfer for both read and write operations. It provides the READ_DATA_EN signal to the input DDR registers and read data FIFO.
Figure 6: DDR Command State Machine
IDLE
ACT_CMD
WAIT_TRRD
trp_end
I/O Registers
Control Signals
All control signals and the address bus to the DDR are registered in the IOBs of the FPGA.
Write Data
The DDR I/O registers are used to output the write data to the DDR as shown in Figure 8. Since the clock is being generated from the Clk90 output of the DCM, the CLK0 output is used to clock out the data so that the DDR clock is centered in the DDR data. This also allows a full clock period for the data to get to the IOBs.
DQS is generated from the CLK90 output so that it is centered in the data.
Figure 7: DDR Data State Machine
IDLE
WRITE_DATAREAD_DATA
DONE
pend_write
Read Data
The DDR I/O registers are used to input data from the DDR as shown in Figure 10. The clock output to the DDR is used to clock the input data. This clock is input to a DCM and generates DDR_Clk90_in.
Figure 8: Write Data Path
D
D0
D1
DDR_DQ_t
DDR_DQ_o
D
D0
D1
Write_dqs_en
Clk90
GND
VCC
Clk
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
During a read cycle, the data strobe signal from the DDR (DDR_DQS) is registered on the rising edge only of DDR_Clk90_in so that it is always high while the DDR is transmitting data. This signal will be used by the Read Data Path logic as the write enable into a FIFO.
NOTE: It is important to properly set the C_DQS_PULLUPS parameter indicating if the DDR DQS lines are pulled up or pulled down (internally or externally).
Read Data Path Logic The Read Data Path logic consists of an asynchronous FIFO in which the DDR input data is written from the DDR_Clk90_in and read from the internal FPGA clock. The write enable to the FIFO is the DDR_RdDQS signal which will be high during DDR data transmission.
Pulldown resistors on these signals insures that DQS is low when neither the DDR or FPGA is driving it. However, if pullups are used, insure that the C_DQS_PULLUPS parameter is set correctly. Once the FIFO is not empty, the data is read from the FIFO and a read acknowledge is generated. This is shown in Figure 10.
Figure 9: DDR Input Data Registers
instantiated by Platgen or SysGenPro
D
DDR_DQS_i
ddr_read_data_en
CE
Design Constraints
Note: An example UCF for this core is available and must be modified for use in the system. Please refer to the EDK Getting Started Guide for the location of this file.
Timing Constraints A timing constraint should be placed on the system clock, setting the frequency to meet the bus timing requirements. A tim- ing constraint should also be placed on the DDR feedback clock to set the frequency of this clock. An example is shown in Figure 11.
Figure 10: Read Data Path
NET "PLB_Clk" TNM_NET = "PLB_Clk";
NET "Clk90_in" TNM_NET = "Clk90_in";
NET "DDR_Clk90_in" TNM_NET = "DDR_Clk90_in";
Figure 11: DDR Timing Constraints
D Q
PLB Double Data Rate (DDR) Synchronous DRAM (SDRAM) Controller
Pin Constraints The DDR I/O should be set to the SSTL2 I/O standard. If external pullups/pulldowns are not available on the DDR DQ and DQS signals, then these pins should be specified to use pullup or pulldown resistors. Pulldown resistors are preferred. An example is shown in Figure 12.
Design Implementation
Target Technology The intended target technology is a Virtex-II Pro FPGA.
Device Utilization and Performance Benchmarks Since the DDR SDRAM Controller is a module that will be used with other design pieces in the FPGA, the utilization and tim- ing numbers reported in this section are just estimates. As the DDR SDRAM Controller is combined with other pieces of the FPGA design, the utilization of FPGA resources and timing of the DDR SDRAM Controller design will vary from the results reported here.
The DDR SDRAM Controller benchmarks are shown in Table 8 for a Virtex-II Pro -7 FPGA.
Reference Documents The following documents contain reference information important to understanding the Xilinx DDR SDRAM Controller design:
NET "DDR_DQS<0>" IOSTANDARD=SSTL2_I;
NET "DDR_DQS<0>" PULLDOWN;
NET "DDR_DQS<1>" PULLDOWN; Figure 12: DDR Pin Constraints
Table 8: DDR FPGA Performance and Resource Utilization Benchmarks (Virtex-II Pro-7)
Parameter Values
(MHz)
0 0 554 515 690 141
0 1 617 643 695 125
1 0 689 592 886 143
1 1 730 676 886 133
Notes: 1. These benchmark designs contain only the DDR SDRAM Controller without any additional logic. Benchmark numbers
approach the performance ceiling rather than representing performance under typical user conditions.
Discontinued IP
Revision History The following table shows the revision history for this document.
Date Version Revision
05/20/02 1.1 Update for EDK 1.0
06/20/02 1.2 Revisions for EDK 1.0
07/23/02 1.3 Update for DDR v1_00_b
07/24/02 1.4 Add XCO parameters for System Generator
09/11/02 1.5 Added resource utilizations
10/06/02 1.6 Removed generics/ports relating to the Clk90 and DDR Clock DCMs, updated figures, added C_DQS_PULLUPS generic
01/20/03 1.7 General document cleanup and update
01/31/03 1.8 Added note and cross-reference to the Connecting to Memory section on the first page to the DDR Controller Features
07/21/03 1.9 Update to new template
09/19/03 1.9.1 Update trademarks
Discontinued IP
Introduction
Features
Allowable Parameter Combinations
Parameter/Port Dependencies
Memory to FPGA Connections
Reference Documents
Revision History