Xilinx provides many tools to implement customized DDR memory interfaces.
by Rufino Olay DDR SDRAM is an evolutionary of storage elements. The storage-element
Marketing Manager, Spartan Solutions extension of “single-data-rate” SDRAM pair on either the output path or the three- Xilinx, Inc. and provides the benefits of higher speed, state path can be used together with a spe- rufino.olay@xilinx.com reduced power, and higher density com- cial multiplexer to produce DDR ponents. Data is clocked into or out of the transmission. This is accomplished by tak- Karthikeyan Palanisamy device on both the rising and falling edges ing data synchronized to the clock signal’s Staff Engineer, Memory Applications Group of the clock. Control signals, however, still rising edge and converting it to bits syn- Xilinx, Inc. change only on the rising clock edge. chronized on both the rising and falling karthi.palanisamy@xilinx.com DDR memory is used in a wide range edge. The combination of two registers and of systems and platforms and is the com- a multiplexer is referred to as double-data- Memory speed is a crucial component of puting memory of choice. You can use rate D-type flip-flop (FDDR). system performance. Currently, the most Xilinx® Spartan™-3 devices to implement common form of memory used is synchro- a custom DDR memory controller on Memory Controllers Made Fast and Easy nous dynamic random access memory your board. Xilinx has created many tools to get design- (SDRAM). ers quickly through the process of building The late 1990s saw major jumps in Interfacing Spartan-3 and testing memory controllers for Spartan SDRAM memory speeds and technology Devices with DDR SDRAMs devices. These tools include reference because systems required faster perform- Spartan-3 platform FPGAs offer an ideal designs and application notes, the Memory ance and larger data storage capabilities. connectivity solution for low-cost systems, Interface Generator (MIG), and more By 2002, double-data-rate (DDR) providing the system-level building blocks recently, a hardware test platform. SDRAM became the standard to meet necessary to successfully interface to the Xilinx application note XAPP454, this ever-growing demand, with latest generation of DDR memories. “DDR2 SDRAM Memory Interface for DDR266 (initially), DDR333, and Included in all Spartan-3 FPGA Spartan-3 FPGAs,” describes the use of a recently DDR400 speeds. input/output blocks (IOB) are three pairs Spartan-3 FPGA as a memory controller,
00 Xcell Journal Second Quarter 2005
using MIG. The results in Table 1 show DQS that the implementation would use 17% of DQ the slices, leaving more than 80% of the device free for data-processing functions. Internally or Externally Delayed DQS to Capture DQ Testing Out Your Designs The last sequence in a design is the verifi- Phase-Shifted cation and debug in actual hardware. DCM Output After using MIG 007 to create your cus- to Capture DQ tomized memory controller, you can implement your design on the Spartan-3 Memory Development Kit, HW-S3- Figure 1 – Read operation timing diagram SL361, as shown in Figure 3. The $995 kit is based on a Spartan-3 1.5M-gate FPGA (the XC3S1500) and includes with particular focus on interfacing to a delayed strobe can be centered in the data additional features such as: Micron MT46v32M16TG-6T DDR window for data capture. • 64 MB of DDR SDRAM Micron SDRAM. This and other application notes To maximize resources within the FPGA, MT5VDDT1672HG-335, with an illustrate the theory of operations, key chal- you can explore design techniques such as additional 128 MB DDR SDRAM lenges, and implementations of a Spartan- using the LUTs as RAMs for data capture – DIMM for future expansion 3 FPGA-based memory controller. while at the same time minimizing the use DDR memories use non-free-running of global clock buffers (BUFGs) and digital • Two-line LCD strobes and edge-aligned read data clock managers (DCMs) – as explained in • 166 MHz oscillator (Figure 1). For 333 Mbps data speeds, the the Xilinx application notes. Results are memory strobe must be used for higher given with respect to the maximum data • Rotary switches margins. Using local clocking resources, a width per FPGA side for either right and left • Universal power supply 85V-240V, or top and bottom 50-60 MHz implementations. Implementation chal- lenges such as these are mitigated with the new Memory Interface Generator. Xilinx created the Memory Interface Generator (MIG 007) to take the guesswork out of designing your own controller. To cre- ate the interface, the tool requires you to Figure 3 – Spartan-3 memory input data including development board (HW-S3-SL361) Figure 2 – Using the MIG 007 to automatically create a DDR memory controller FPGA device, frequen- cy, data width, and Conclusion banks to use. The inter- With the popularity of DDR memory active GUI (Figure 2) increasing in system designs, it is only nat- Feature Utilization Percent Used generates the RTL, ural that designers use Spartan-3 FPGAs as Number of Slices 2,277 out of 13,312 17% EDIF, SDC, UCF, and memory controllers. Implementing the Number of DCMs 1 out of 4 25% related document files. controller need not be difficult. Number of External IOBs 147 out of 487 30% As an example, we For more information about the applica- created a DDR 64-bit tion notes, GUI, and development board, Table 1 – Device utilization for a DDR interface for a Spartan please visit www.xilinx.com/products/ 64-bit interface in an XC3S1500 FPGA XC3S1500-5FG676 design_resources/mem_corner/index.htm.