External Memory Interface Handbook

External Memory Interface Handbook
External Memory Interface Handbook
Volume 1: Altera Memory Solution Overview and Design Flow
Last updated for Altera Complete Design Suite: 14.1
EMI_GS
Subscribe
2014.12.15
Send Feedback
101 Innovation Drive
San Jose, CA 95134
www.altera.com
TOC-2
External Memory Interface Handbook Volume 1: Altera Memory Solution Overview and Design Flow
Contents
Introduction to Altera Memory Solution........................................................... 1-1
Memory Solutions........................................................................................................................................1-1
Protocol Support Matrix............................................................................................................................. 1-3
Arria 10 EMIF Future Protocol Support.................................................................................................. 1-5
Document Revision History....................................................................................................................... 1-5
Recommended Design Flow................................................................................2-1
Getting Started With External Memory Interfaces................................................................................. 2-3
Selecting Your External Memory Device......................................................................................2-3
Selecting Your FPGA.......................................................................................................................2-4
Planning Your Pin Requirements..................................................................................................2-5
Planning Your FPGA Resources....................................................................................................2-6
Determining Your Board Layout...................................................................................................2-6
Specifying Parameters for Your External Memory Interface.....................................................2-6
Performing Functional Simulation................................................................................................2-7
Adding Design Constraints............................................................................................................ 2-7
Compiling Your Design and Verifying Timing...........................................................................2-8
Verifying and Debugging External Memory Interface Operation............................................2-8
Document Revision History....................................................................................................................... 2-9
Altera Corporation
Introduction to Altera Memory Solution
1
2014.12.15
EMI_GS
Subscribe
Send Feedback
The following topics provide an overview of Altera's External Memory Interface solutions.
Altera provides the fastest, most efficient, and lowest latency memory interface IP cores. Altera's external
memory interface IP is designed to easily interface with today's higher speed memory devices.
Altera supports a wide variety of memory interfaces suitable for applications ranging from routers and
switches to video cameras. You can easily implement Altera’s intellectual property (IP) using the memory
MegaCore functions through the Quartus II software. The Quartus II software also provides external
memory toolkits that help you test the implementation of the IP in the FPGA device.
Refer to the External Memory Interface Spec Estimator page for the maximum speeds supported by Altera
FPGAs.
Related Information
External Memory Interface Spec Estimator
Memory Solutions
Altera FPGAs achieve optimal memory interface performance with external memory IP. The IP provides
the following components:
• Physical layer interface (PHY) which builds the data path and manages timing transfers between the
FPGA and the memory device.
• Memory controller which implements all the memory commands and protocol-level requirements.
• Multi-port front end (MPFE) which allows multiple components inside the FPGA device to share a
common memory interface. The MPFE is available in Arria V and Cyclone V devices.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
1-2
EMI_GS
2014.12.15
Memory Solutions
Figure 1-1: Memory Interface Architecture
External Memory
Interface IP
DLL
PLL
PHY
I/O Structure
Clock
Generator
External
Memory
Device
Memory
Controller
Calibration
Sequencer
DQS
Path
DQ I/O
Write Path
Read Path
I/O
Block
Address/Command
Path
Altera's FPGAs provide two types of memory solutions, depending on device family: soft memory IP and
hard memory IP. The soft memory IP gives you the flexibility to design your own interfaces to meet your
system requirements and still benefit from the industry leading performance. The hard memory IP is
designed to give you a complete out-of-the-box experience when designing a memory controller.
The following table lists features of the soft and hard memory IP.
Table 1-1: Features of the Soft and Hard Memory IP
Soft Memory IP
Hard Memory IP
• Includes hardened PHY with soft controller.
• Includes hardened PHY, hardened controller,
and hardened MPFE.
• Allows maximum flexibility in choosing
location, size, and configuration of the memory • Supports maximum performance and lowest
interface.
latency.
• Can optionally be used in PHY-only mode to
• May have a fixed location on a device and/or a
integrate with a custom user-designed controller.
fixed pinout for address and command signals.
• Simplifies the overall integration of a memory
interface and provides an out-of-the-box
experience for every designer.
Altera Corporation
Introduction to Altera Memory Solution
Send Feedback
EMI_GS
2014.12.15
Protocol Support Matrix
1-3
Altera provides modular memory solutions that allow you to customize your memory interface design to
a variety of configurations:
• PHY with your own controller
• PHY with Altera controller
• PHY with Altera controller and a multiport front end. (MPFE is a configurable block available for hard
interfaces in Arria V and Cyclone V devices.)
You can also build a custom PHY, a custom controller, or both, as desired.
Related Information
•
•
•
•
•
•
•
Volume 3: Reference Material
ALTDLL and ALTDQ_DQS Megafunctions User Guide
ALTDQ_DQS2 Megafunction User Guide
Altera PHYLite for Memory Megafunction User Guide
Functional Description: Arria 10 EMIF IP
Functional Description: MAX 10 EMIF IP
External Memory Interface Spec Estimator
Protocol Support Matrix
The following table lists the device family and IP architecture support for each memory protocol in the
current release of the Altera Complete Design Suite.
Introduction to Altera Memory Solution
Send Feedback
Altera Corporation
EMI_GS
2014.12.15
Protocol Support Matrix
(1) (2) (3) (4) (5)
U
U
U
U
U
U
U
U
Full
Hard
8
U
Half
Soft
8
Nios II
HPC II
Quarter Soft
8
Nios II
HPC II
U
U
U
A
U
QDR II+ Xtreme
QDR IV
Full
Hard
4,8
Nios II
HPC II
U
U
A
Full
Soft
4,8
Nios II
HPC II
U
U
U
A
Half
Soft
4,8
Nios II
HPC II
U
Half
Soft
4,8,16 Nios II
HPC II
U
Full
Hard 4,8,16 Nios II
HPC II
Half
Soft
2,4,8 Nios II
Quarter Soft
2,4,8 Nios II
Quarter Hard
2,4,8
Hard
Nios
3RD Party
RTL
RLDRAM II
U
U
U
HPC II
U
U
U
Hard
U
U
QDR II/II+
Hard
U
U
U
Burst length
U
U
RLDRAM II
Hard / Soft PHY
8
Hard
U
LPDDR2
RLDRAM 3
8
Hard
U
DDR2
Quarter Hard
Half
U
U
8
Hard
Nios
Hard
Nios
Hard
Nios
Nios II
DDR4
DDR3
Quarter Hard
Clock Rate
Arria II GX
Arria II GZ
IP Architecture
Stratix III
Stratix IV
Cyclone V
Arria V GX, GT, SX, ST
Stratix V / Arria V GZ
Arria 10
Protocol
MAX 10
Device Family
Controller
Figure 1-2: Protocol Support Matrix
Sequencer
1-4
U
U
U
U
Full
Soft
2,4,8
U
U
U
Half
Soft
4,8
U
U
U
Half
Soft
4,8
RTL
RLDRAM II
Full
Soft
2,4
RTL
QDR II/II+
Half
Soft
4
Half
Soft
4
RTL
QDR II/II+
Full
Hard
2,4
QDR II/II+
Half
Hard
4
Hard
4
Hard
Nios
Hard
Nios
Hard
Nios
Hard
Nios
U
U
U
U
U
U
U
U
U
U
U
Half
Quarter Hard
Nios II RLDRAM II
Nios II QDR II/II+
2,4,8
QDR II/II+
QDR II/II+
QDR IV
Notes to Table:
1. U= Supported by UniPHY-based IP.
2. A = Supported by ALTMEMPHY-based IP. Refer to the External Memory Interface Handbook for the
Quartus II software version 12.1 or earlier for information about ALTMEMPHY-based IP.
3. — = Not supported.
4. . = Supported in Arria 10 device.
5. The RTL-based sequencer is not available for QDR II or RLDRAM II interfaces targeting Arria V devices.
Altera Corporation
Introduction to Altera Memory Solution
Send Feedback
EMI_GS
2014.12.15
Arria 10 EMIF Future Protocol Support
1-5
For more information about the controllers with the UniPHY IP, refer to the Functional Descriptions
section in Volume 3 of the External Memory Interface Handbook.
For more information on the Arria 10 External Memory Interface IP, see Functional Description—Arria
10 EMIF IP.
For more information on the MAX 10 External Memory Interface IP, see Functional Description—MAX
10 EMIF IP.
For more information on the Arria 10 PHYLite IP, see the PHYLite IP Megafunction User Guide.
Related Information
External Memory Interface Spec Estimator
Arria 10 EMIF Future Protocol Support
The following table lists planned future memory protocol support for Arria 10 EMIF IP.
Protocol
Current Support
Future Support
DDR4
• Hard PHY and Hard
Controller
• Hard PHY only
Yes (LRDIMM, RDIMM, x4 DQ/
DQS)
DDR3
• Hard PHY and Hard
Controller
• Hard PHY only
Yes (LRDIMM, RDIMM, x4 DQ/
DQS)
DDR2
No
Yes (via Altera PHYLite for Memory)
LPDDR3
No
Yes
LPDDR2
No
Yes (via Altera PHYLite for Memory)
QDR II / II+ / QDR II+ Xtreme
Hard PHY and Soft
Controller
Yes
RLDRAM 3
Hard PHY only
Yes
RLDRAM II
No
Yes (via Altera PHYLite for Memory)
Related Information
External Memory Interface Spec Estimator
Document Revision History
Date
December
2014
Version
2014.12.15
Introduction to Altera Memory Solution
Send Feedback
Changes
• Added QDR IV and MAX 10 support to the Protocol Support Matrix.
Altera Corporation
1-6
EMI_GS
2014.12.15
Document Revision History
Date
Version
Changes
August 2014
2014.08.15
• Added information for Quartus II software versions 14.0 and 14.0
Arria 10 Edition to Altera Memory Types, PHY, and Controllers in the
Quartus II Software table.
• Added QDR II, QDR II+, and QDR II+ Xtreme support for Arria 10
to the Protocol Support Matrix.
• Updated DDR3, DDR4, QDR II+ / QDR II+ Extreme, and RLDRAM
3 support in the Arria 10 EMIF Future Protocol Support table.
December
2013
2013.12.16
• Added Arria 10 and DDR4 information to Protocol Support Matrix
and Memory Solutions.
• Combined Soft and Hard Memory IP and Memory Solutions sections.
• Removed HardCopy III/IV from Protocol Support Matrix.
• Added note to Protocol Support Matrix that RTL-based sequencer is
not available for QDR II or RLDRAM II interfaces targeting Arria V
devices
November
2012
2.0
• Added Arria V GZ information.
• Added RLDRAM III information to Protocol Support Matrix and
Memory Solutions.
June 2012
1.2
Change to Table 1–3.
June 2012
1.1
• Added Protocol Support Matrix.
• Added Feedback icon.
November
2011
1.0
Initial release.
Related Information
External Memory Interface Spec Estimator
Altera Corporation
Introduction to Altera Memory Solution
Send Feedback
Recommended Design Flow
2
2014.12.15
EMI_GS
Subscribe
Send Feedback
Altera recommends that you create an example top-level file with the desired pin outs and all interface IP
®
instantiated, which enables the Quartus II software to validate your design and resource allocation before
PCB and schematic sign off.
The following figure shows the design flow to provide the fastest out-of-the-box experience with external
memory interfaces in Altera devices. This design flow assumes that you are using Altera IP to implement
the external memory interface.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
2-2
EMI_GS
2014.12.15
Recommended Design Flow
Figure 2-1: External Memory Interfaces Design Flowchart
Select Your
Memory Device
Begin Design
Select Your
Altera FPGA
Plan Pin Usage
Plan FPGA
Resource Usage
Determine
Board Layout
Perform Board
Level Simulations
Adjust Termination
and Drive Strength
No
Do Signals
Meet Electrical
Requirements?
Yes
Specify Parameters
For Your EMIF IP
Perform
Functional Simulation
Does
Simulation Give
Expected Results?
Yes
Add
Design Constraints
No
Debug Design
Compile Design
and Verify Timing
Does the
Design Have Positive
Margin?
No
Adjust Constraints
Yes
Verify Design
Functionality on Board
Is Design Working?
No
Debug Design
Yes
Design Completed
Refer to Getting Started with External Memory Interfaces for guidance in performing the recommended
steps in creating a working and robust external memory interface.
Related Information
Getting Started With External Memory Interfaces on page 2-3
Altera Corporation
Recommended Design Flow
Send Feedback
EMI_GS
2014.12.15
Getting Started With External Memory Interfaces
2-3
Getting Started With External Memory Interfaces
To create your external memory interface, you must complete several high-level tasks. This topic outlines
the major tasks in the design flow, and provides links to detailed procedures for each task.
Refer to this section for a big-picture view of the overall design process, and for links to related informa‐
tion for each task.
The High-Level Tasks
1. Selecting Your External Memory Device on page 2-3
Different memory types excel in different areas. As a first step in planning your external memory
interface, you must determine the memory type that best meets the requirements of your system.
2. Selecting Your FPGA on page 2-4
Different Altera FPGA devices support different memory types; not all Altera devices support all
memory protocols and configurations. Before you start your design, you must select an Altera device,
which supports the memory standard and configurations you plan to use.
3. Planning Your Pin Requirements on page 2-5
Before you can specify parameters for your external memory interface, you must determine the pin
requirements.
4. Planning Your FPGA Resources on page 2-6
Before you can specify parameters for your external memory interface, you must determine the FPGA
resource requirements.
5. Determining Your Board Layout on page 2-6
Before you can specify parameters for your external memory interface, you must determine the
necessary board-related settings for your IP.
6. Specifying Parameters for Your External Memory Interface on page 2-6
After you have determined all the necessary requirements, you can parameterize your external
memory interface.
7. Performing Functional Simulation on page 2-7
Simulate your design to determine correct operation, timing closure, and overall latency.
8. Adding Design Constraints on page 2-7
Design constraints establish the timing characteristics of your IP and the physical locations of I/O and
routing resources.
9. Compiling Your Design and Verifying Timing on page 2-8
When you compile your design, the TimeQuest Timing Analyzer generates timing reports for your
design.
10.Verifying and Debugging External Memory Interface Operation on page 2-8
Operational problems can generally be attributed to one of the following: resource and planning
problems, interface configuration problems, functional problems, signal integrity problems, or timing
problems.
Selecting Your External Memory Device
Different memory types excel in different areas. As a first step in planning your external memory
interface, you must determine the memory type that best meets the requirements of your system.
1. Determine your requirements for the following:
Recommended Design Flow
Send Feedback
Altera Corporation
2-4
Selecting Your FPGA
EMI_GS
2014.12.15
• bandwidth
• speed
• data capacity
• latency
• power consumption
2. Compare your requirements to the specifications for available memory protocols to find the memory
device appropriate for your application.
Related Information
Selecting Your Memory
Selecting Your FPGA
Different Altera FPGA devices support different memory types; not all Altera devices support all memory
protocols and configurations. Before you start your design, you must select an Altera device, which
supports the memory standard and configurations you plan to use.
1. Determine the I/O interface that best suits your design requirements.
2. Determine whether your design requires read or write levelling circuitry.
Some Altera FPGAs support read and write levelling, to apply or remove skew from an interface on a
DQS group basis.
3. Determine whether your design requires dynamic calibrated on-chip termination (OCT).
Some Altera FPGAs provide dynamic OCT, allowing a specified series termination to be enabled
during writes and parallel termination to be enabled during reads. Dynamic OCT can simplify your
PCB termination schemes.
4. Consult the Altera Product Selector to find the Altera FPGA that provides the combination of features
that your design requires.
5. Refer to the Ordering Information section of the appropriate device handbook, to determine the
correct ordering code for the device that you require. Consider the following characteristics in
determining the correct ordering code:
Altera Corporation
Recommended Design Flow
Send Feedback
EMI_GS
2014.12.15
Planning Your Pin Requirements
2-5
• Speed grade: Affects performance, timing closure, and power consumption. The device with the
smallest speed grade number is the fastest device.
• Operating temperature: Altera FPGAs are divided into the following temperature categories:
• Commercial grade—Used for all device families. Operating temperature ranges from 0 degreec
C to 85 degrees C.
• Industrial grade—Used for all device families. Operating temperature ranges from -40 degreec C
to 100 degrees C.
• Military grade—Used for Stratix IV device families. Operating temperature ranges from -55
degreec C to 125 degrees C.
• Automotive grade—Used for Cyclone V device families. Operating temperature ranges from -40
degreec C to 125 degrees C.
• Package size: Refers to the physical size of the FPGA device, and corresponds to the number of pins.
For example, the package size for the smallest Stratix IV device is 29 mm x 29 mm, categorized
under the F780 package option, where F780 refers to a device with 780 pins.
• Device density: Refers to the number of logic elements, such as PLLs and memory blocks. Devices
with higher density contain more logic elements in less area.
• I/O pin counts: The number of I/O pins required on an FPGA depends on the memory standard,
the number of memory interfaces, and the memory data width.
Tip: For additional, device-specific, information, refer to the External Memory Interface chapter in the
device handbook for your Altera device.
Related Information
• Selecting Your FPGA Device
• Altera Product Selector
• Altera Device Handbooks
Planning Your Pin Requirements
Before you can specify parameters for your external memory interface, you must determine the pin
requirements. You should use the Quartus II software for final pin fitting; however, you can estimate
whether you have enough pins for your memory interface.
1. Determine how many read data pins are associated per read data strobe or clock pair.
2. Check the device density and packaging information for your FPGA to determine whether you can
implement your interface in one I/O bank, or on one side of the device, or on two adjacent sides.
3. Calculate the number of other memory interface pins needed, including any other clocks (write clock
or memory system clock), address, command, RUP, RDN, RZQ, and any other pins to be connected to
the memory components. Ensure you have enough pins to implement the interface in one I/O bank or
one side or on two adjacent sides.
4. Apply the General Pin-Out Guidelines, and observe any device- or protocol-specific guidelines or
exceptions applicable to your design situation.
Related Information
• Planning Pin and FPGA Resources
• External Memory Interface Spec Estimator
Recommended Design Flow
Send Feedback
Altera Corporation
2-6
Planning Your FPGA Resources
EMI_GS
2014.12.15
Planning Your FPGA Resources
Before you can specify parameters for your external memory interface, you must determine the FPGA
resource requirements. The FPGA resources required by your design depend on many factors, including
the memory interface frequency, timing requirements, and the IP that your design uses.
1. Determine the PLLs and clock networks that your design requires.
2. If multiple PLLs are required for multiple controllers that cannot be shared, ensure that enough PLL
resources are available within each quadrant to support your interface number requirements.
3. Determine whether cascading of PLLs is appropriate for your design.
4. Determine the appropriate DLL usage for your design. If multiple external memory interfaces must
share DLL resources, ensure that the frequency and mode requirements are compatible.
5. Determine the registers, memory blocks, OCT blocks, and other FPGA resources required by your
design.
Related Information
• Planning Pin and FPGA Resources
• External Memory Interface Spec Estimator
Determining Your Board Layout
Before you can specify parameters for your external memory interface, you must determine the necessary
board-related settings for your IP.
1. Review the recommended board design guidelines for your external memory interface protocol.
2. Select the termination scheme and drive strength settings for all the memory interface signals
connected between the FPGA and the external memory device.
3. Perform board-level simulations to determine the optimal settings for best signal integrity, appropriate
timing margins, and sufficient eye opening.
• Successful board-level simulation is often an iterative process, experimenting with different
combinations of drive strength, terminations, IP board parameters, and timing results.
• Ensure that your simulation applies the latest FPGA and memory device IBIS models, board trace
characteristics, drive strength, and termination settings.
• You might identify board-level timing uncertainties such as crosstalk, ISI, or slew rate deration
during simulation. If you identify such timing uncertainties, adjust the Board Settings in the IP
Catalog with the slew rate deration, ISI/crosstalk, and board skews to ensure the accuracy of the
TimeQuest timing margins report.
Related Information
•
•
•
•
•
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
LPDDR2 SDRAM Board Design Guidelines
QDR II and QDR IV SRAM Board Design Guidelines
RLDRAM II and RLDRAM 3 Board Design Guidelines
Specifying Parameters for Your External Memory Interface
After you have determined all the necessary requirements, you can parameterize your external memory
interface.
Altera Corporation
Recommended Design Flow
Send Feedback
EMI_GS
2014.12.15
Performing Functional Simulation
2-7
1. In the parameter editor, set the parameters for the external memory IP for your target memory
interface.
• Refer to Specifying IP Core Parameters and Options for information about using the IP Catalog and
parameter editor.
• Refer to Implementing and Parameterizing Memory IP for detailed information about parameter‐
izing external memory interface IP.
2. Specify the correct parameters for each of the following:
• Memory interface data rate, width, and configuration.
• Necessary deratings for tIS, tIH, tDH, and tDS parameters, as appropriate.
• Board skew parameters based on actual board simulation.
3. Connect the local signals from the PHY and controller to your driver logic, and the memory interface
signals from the PHY to the top-level pins.
• It is important that you connect the local interface signals from the PHY or controller correctly to
your own logic. If you do not connect these local interface signals, you might encounter problems
with insufficient pins when you compile your design.
• Logic that is not connected may be optimized away during compilation, resulting in problems later.
• If you want to use your own custom memory controller with the Altera PHY, you can refer to the
example top-level file as an example for connecting your controller.
Related Information
•
•
•
•
•
•
•
•
•
Implementing and Parameterizing Memory IP
Functional Description—HPC II Controller
Functional Description–Hard Memory Interface
Functional Description—QDR II Controller
Functional Description—QDR IV Controller
Functional Description—RLDRAM II Controller
Functional Description—RLDRAM 3 PHY-Only IP
Functional Description—Arria 10 EMIF
Functional Description—MAX 10 EMIF
Performing Functional Simulation
Simulate your design to determine correct operation, timing closure, and overall latency.
1. Simulate your design using the RTL functional model.
2. Use the IP functional simulation model with your own driver logic, testbench, and a memory model,
to ensure correct read and write transactions to the memory.
3. You may need to prepare the memory functional model by setting the speed grade and device bus
mode.
Related Information
Simulating Memory IP
Adding Design Constraints
Design constraints establish the timing characteristics of your IP and the physical locations of I/O and
routing resources.
Recommended Design Flow
Send Feedback
Altera Corporation
2-8
EMI_GS
2014.12.15
Compiling Your Design and Verifying Timing
1.
2.
3.
4.
5.
Add timing constraints.
Add pin assignments.
Add pin location assignments.
Ensure that the example top-level file or your top-level logic is set as top-level entity.
Adjust optimization techniques, to ensure the remaining unconstrained paths are routed with the
highest speed and efficiency, as follows:
a. In the Quartus II software, click Assignments > Settings.
b. In the Settings dialog box, select the Compiler Settings category.
c. In the Compiler Settings dialog box, click Advanced Settings (Synthesis) and set the Optimiza‐
tion Technique value to Speed.
d. In the Compiler Settings dialog box, click Advanced Settings (Fitter) and set Optimize hold
timing to All Paths. Turn on Optimize multi-corner timing. Set Fitter Effort to Standard Fit.
Related Information
Analyzing Timing of Memory IP
Compiling Your Design and Verifying Timing
When you compile your design, the TimeQuest Timing Analyzer generates timing reports for your
design.
1. Compile your design by clicking Processing > Start Compilation.
Memory timing scripts run automatically as part of Report DDR.
2. Verify timing closure using all available models, and evaluate the timing reports generated by the
TimeQuest Timing Analyzer.
As required, adjust the constraints described in Adding Design Constraints to resolve timing or
location issues.
3. Iteratively recompile your IP and evaluate the timing results as necessary to achieve the required
timing margins.
Related Information
• Analyzing Timing of Memory IP
• Implementing and Parameterizing Memory IP
Verifying and Debugging External Memory Interface Operation
Operational problems can generally be attributed to one of the following: resource and planning
problems, interface configuration problems, functional problems, signal integrity problems, or timing
problems.
• Refer to Debugging Memory IP and the External Memory Interface Debug Toolkit for information on
resolving operational problems.
Related Information
• Debugging Memory IP
• External Memory Interface Debug Toolkit
Altera Corporation
Recommended Design Flow
Send Feedback
EMI_GS
2014.12.15
Document Revision History
2-9
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
• Revised the External Memory Interfaces Design Flowchart.
• Removed the Design Checklist and added Getting Started With
External Memory Interfaces, and associated subtopics.
August 2014
2014.08.15
Removed MegaWizard Plug-In Manager flow and added IP Catalog
Flow to External Memory Interfaces Design Flowchart.
December
2013
2013.12.16
• Removed references to ALTMEMPHY.
• Removed references to SOPC Builder.
• Removed ALTMEMPHY-related step from design checklist.
June 2012
2013.12.02
• Removed overlapping information.
• Added Feedback icon.
November
2011
2.1
Updated the design flow and the design checklist.
July 2010
2.0
Updated for 10.0 release.
January 2010
1.1
• Improved description for Implementing Altera Memory Interface IP
chapter.
• Added timing simulation to flow chart and to design checklist.
November
2009
1.0
Initial release.
Recommended Design Flow
Send Feedback
Altera Corporation
External Memory Interface Handbook
Volume 2: Design Guidelines
Last updated for Altera Complete Design Suite: 14.1
EMI_DG
Subscribe
2014.12.15
Send Feedback
101 Innovation Drive
San Jose, CA 95134
www.altera.com
TOC-2
External Memory Interface Handbook Volume 2: Design Guidelines
Contents
Selecting Your Memory.......................................................................................1-1
DDR SDRAM Features............................................................................................................................... 1-2
DDR2 SDRAM Features............................................................................................................................. 1-3
DDR3 SDRAM Features............................................................................................................................. 1-3
QDR, QDR II, and QDR II+ SRAM Features.......................................................................................... 1-4
RLDRAM II and RLDRAM 3 Features.....................................................................................................1-4
LPDDR2 Features........................................................................................................................................ 1-6
Memory Selection........................................................................................................................................ 1-6
Example of High-Speed Memory in Embedded Processor....................................................................1-9
Example of High-Speed Memory in Telecom....................................................................................... 1-10
Document Revision History.....................................................................................................................1-11
Selecting Your FPGA Device...............................................................................2-1
Memory Standards.......................................................................................................................................2-1
I/O Interfaces................................................................................................................................................2-2
Wraparound Interfaces............................................................................................................................... 2-2
Read and Write Leveling.............................................................................................................................2-2
Dynamic OCT.............................................................................................................................................. 2-2
Device Settings Selection.............................................................................................................................2-3
Device Speed Grade......................................................................................................................... 2-3
Device Operating Temperature..................................................................................................... 2-3
Device Package Size......................................................................................................................... 2-3
Device Density and I/O Pin Counts.............................................................................................. 2-3
Document Revision History....................................................................................................................... 2-5
Planning Pin and FPGA Resources.....................................................................3-1
Interface Pins................................................................................................................................................ 3-1
Estimating Pin requirements..........................................................................................................3-5
DDR, DDR2, DDR3, and DDR4 SDRAM Clock Signals........................................................... 3-5
DDR, DDR2, DDR3, and DDR4 SDRAM Command and Address Signals........................... 3-6
DDR, DDR2, DDR3, and DDR4 SDRAM Data, Data Strobes, DM/DBI, and Optional
ECC Signals................................................................................................................................. 3-6
DDR, DDR2, DDR3, and DDR4 SDRAM DIMM Options....................................................... 3-8
QDR II, QDR II+, and QDR II+ Xtreme SRAM Clock Signals.............................................. 3-11
QDR II, QDR II+ and QDR II+ Xtreme SRAM Command Signals.......................................3-12
QDR II, QDR II+ and QDR II+ Xtreme SRAM Address Signals........................................... 3-12
QDR II, QDR II+ and QDR II+ Xtreme SRAM Data, BWS, and QVLD Signals.................3-12
QDR IV SRAM Clock Signals...................................................................................................... 3-13
QDR IV SRAM Commands and Addresses, AP, and AINV Signals..................................... 3-14
QDR IV SRAM Data, DINV, and QVLD Signals..................................................................... 3-14
RLDRAM II and RLDRAM 3 Clock Signals.............................................................................. 3-15
Altera Corporation
External Memory Interface Handbook Volume 2: Design Guidelines
TOC-3
RLDRAM II and RLDRAM 3 Commands and Addresses.......................................................3-16
RLDRAM II and RLDRAM 3 Data, DM and QVLD Signals.................................................. 3-16
LPDDR2 Clock Signal................................................................................................................... 3-18
LPDDR2 Command and Address Signal................................................................................... 3-18
LPDDR2 Data, Data Strobe, and DM Signals............................................................................3-18
Maximum Number of Interfaces................................................................................................. 3-18
OCT Support ................................................................................................................................. 3-31
Guidelines for Arria 10 External Memory Interface IP........................................................................3-32
General Pin-Out Guidelines for Arria 10 EMIF IP................................................................... 3-32
Resource Sharing Guidelines for Arria 10 EMIF IP..................................................................3-36
Guidelines for UniPHY-based External Memory Interface IP............................................................3-37
General Pin-out Guidelines for UniPHY-based External Memory Interface IP.................. 3-38
Pin-out Rule Exceptions for ×36 Emulated QDR II and QDR II+ SRAM Interfaces in
Arria II, Stratix III and Stratix IV Devices............................................................................ 3-39
Pin-out Rule Exceptions for RLDRAM II and RLDRAM 3 Interfaces.................................. 3-44
Pin-out Rule Exceptions for QDR II and QDR II+ SRAM Burst-length-of-two
Interfaces................................................................................................................................... 3-46
Pin Connection Guidelines Tables.............................................................................................. 3-46
PLLs and Clock Networks............................................................................................................ 3-61
Using PLL Guidelines................................................................................................................................3-66
PLL Cascading............................................................................................................................................3-67
DLL.............................................................................................................................................................. 3-68
Other FPGA Resources............................................................................................................................. 3-69
Document Revision History.....................................................................................................................3-69
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines...........................4-1
Leveling and Dynamic ODT...................................................................................................................... 4-2
Read and Write Leveling.................................................................................................................4-3
Dynamic ODT.................................................................................................................................. 4-4
Dynamic OCT in Stratix III and Stratix IV Devices................................................................... 4-5
Dynamic OCT in Stratix V Devices...............................................................................................4-6
Board Termination for DDR2 SDRAM....................................................................................................4-6
External Parallel Termination........................................................................................................ 4-6
On-Chip Termination..................................................................................................................... 4-7
Recommended Termination Schemes.......................................................................................... 4-9
Dynamic On-Chip Termination..................................................................................................4-16
Board Termination for DDR3 SDRAM..................................................................................................4-17
Terminations for Single-Rank DDR3 SDRAM Unbuffered DIMM...................................... 4-17
Terminations for Stratix III, Stratix IV, and Stratix V FPGAs................................................ 4-20
Terminations for Multi-Rank DDR3 SDRAM Unbuffered DIMM....................................... 4-21
Terminations for DDR3 SDRAM Registered DIMM...............................................................4-23
Terminations for DDR3 SDRAM Load-Reduced DIMM........................................................4-24
Terminations for DDR3 SDRAM Components With Leveling.............................................. 4-24
Drive Strength............................................................................................................................................ 4-26
How Strong is Strong Enough?.................................................................................................... 4-26
System Loading.......................................................................................................................................... 4-27
Component Versus DIMM.......................................................................................................... 4-27
Single Versus DualRank DIMM.................................................................................................. 4-27
Altera Corporation
TOC-4
External Memory Interface Handbook Volume 2: Design Guidelines
Single DIMM Versus Multiple DIMMs......................................................................................4-28
DDR3 and DDR4 on Arria 10 Devices................................................................................................... 4-28
Dynamic On-Chip Termination (OCT) in Arria 10 Devices.................................................. 4-28
Dynamic On-Die Termination (ODT) in DDR4...................................................................... 4-30
Choosing Terminations on Arria 10 Devices............................................................................ 4-30
Layout Approach....................................................................................................................................... 4-30
Design Layout Guidelines.........................................................................................................................4-32
General Layout Guidelines........................................................................................................... 4-32
Layout Guidelines for DDR2 SDRAM Interface....................................................................... 4-33
Layout Guidelines for DDR3 and DDR4 SDRAM Interfaces..................................................4-37
Length Matching Rules................................................................................................................. 4-41
Spacing Guidelines.........................................................................................................................4-43
Layout Guidelines for DDR3 SDRAM Wide Interface (>72 bits).......................................... 4-43
Package Deskew......................................................................................................................................... 4-46
Package Deskew Recommendation for Stratix V Devices....................................................... 4-46
DQ/DQS/DM Deskew.................................................................................................................. 4-47
Address and Command Deskew..................................................................................................4-47
Package Deskew Recommendations for Arria 10 Devices.......................................................4-47
Deskew Example............................................................................................................................ 4-48
Package Migration......................................................................................................................... 4-49
Package Deskew for RLDRAM II and RLDRAM 3.................................................................. 4-49
Document Revision History.....................................................................................................................4-49
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines.................. 5-1
General Layout Guidelines......................................................................................................................... 5-1
Dual-Slot Unbuffered DDR2 SDRAM......................................................................................................5-2
Overview of ODT Control.............................................................................................................. 5-3
DIMM Configuration......................................................................................................................5-5
Dual-DIMM Memory Interface with Slot 1 Populated.............................................................. 5-5
Dual-DIMM with Slot 2 Populated............................................................................................... 5-6
Dual-DIMM Memory Interface with Both Slot 1 and Slot 2 Populated.................................. 5-8
Dual-DIMM DDR2 Clock, Address, and Command Termination and Topology.............. 5-11
Control Group Signals.................................................................................................................. 5-12
Clock Group Signals...................................................................................................................... 5-12
Dual-Slot Unbuffered DDR3 SDRAM....................................................................................................5-12
Comparison of DDR3 and DDR2 DQ and DQS ODT Features and Topology................... 5-13
Dual-DIMM DDR3 Clock, Address, and Command Termination and Topology.............. 5-13
FPGA OCT Features......................................................................................................................5-14
Document Revision History.....................................................................................................................5-14
LPDDR2 SDRAM Board Design Guidelines...................................................... 6-1
LPDDR2 SDRAM Configurations.............................................................................................................6-1
OCT Signal Terminations for Arria V and Cyclone V Devices............................................................ 6-4
Outputs from the FPGA to the LPDDR2 Component............................................................... 6-5
Input to the FPGA from the LPDDR2 SDRAM Component....................................................6-5
Termination Schemes......................................................................................................................6-6
General Layout Guidelines......................................................................................................................... 6-7
Altera Corporation
External Memory Interface Handbook Volume 2: Design Guidelines
TOC-5
LPDDR2 Layout Guidelines....................................................................................................................... 6-8
LPDDR2 SDRAM Layout Approach........................................................................................................ 6-9
Document Revision History.....................................................................................................................6-10
RLDRAM II and RLDRAM 3 Board Design Guidelines.................................... 7-1
RLDRAM II Configurations.......................................................................................................................7-2
RLDRAM 3 Configurations........................................................................................................................7-3
Signal Terminations.....................................................................................................................................7-5
Input to the FPGA from the RLDRAM Components................................................................ 7-7
Outputs from the FPGA to the RLDRAM II and RLDRAM 3 Components.......................... 7-7
RLDRAM II Termination Schemes...............................................................................................7-8
RLDRAM 3 Termination Schemes................................................................................................7-9
PCB Layout Guidelines............................................................................................................................. 7-10
General Layout Guidelines....................................................................................................................... 7-10
RLDRAM II and RLDRAM 3 Layout Approach...................................................................................7-11
RLDRAM II and RLDRAM 3 Layout Guidelines................................................................................. 7-12
Layout Approach....................................................................................................................................... 7-13
Arria V and Stratix V Board Setting Parameters.......................................................................7-15
Arria 10 Board Setting Parameters.............................................................................................. 7-15
Package Deskew for RLDRAM II and RLDRAM 3.............................................................................. 7-15
Document Revision History.....................................................................................................................7-15
QDR II and QDR IV SRAM Board Design Guidelines...................................... 8-1
QDR II SRAM Configurations...................................................................................................................8-2
Signal Terminations.....................................................................................................................................8-4
Output from the FPGA to the QDR II SRAM Component....................................................... 8-5
Input to the FPGA from the QDR II SRAM Component.......................................................... 8-5
Termination Schemes......................................................................................................................8-5
General Layout Guidelines......................................................................................................................... 8-8
QDR II Layout Guidelines.......................................................................................................................... 8-9
QDR II SRAM Layout Approach.............................................................................................................8-10
Package Deskew for QDR II and QDR IV............................................................................................. 8-12
QDR IV Layout Recommendations........................................................................................................ 8-12
QDR IV Layout Approach........................................................................................................................8-12
QDR IV Layout Guidelines...................................................................................................................... 8-14
Document Revision History.....................................................................................................................8-15
Implementing and Parameterizing Memory IP................................................. 9-1
Installing and Licensing IP Cores.............................................................................................................. 9-1
Free Evaluation.................................................................................................................................9-2
OpenCore Plus Time-Out Behavior..............................................................................................9-2
Design Flow.................................................................................................................................................. 9-2
IP Catalog Design Flow................................................................................................................... 9-3
Qsys System Integration Tool Design Flow................................................................................. 9-9
UniPHY-Based External Memory Interface IP..................................................................................... 9-11
Qsys Interfaces................................................................................................................................9-11
Altera Corporation
TOC-6
External Memory Interface Handbook Volume 2: Design Guidelines
Generated Files for Memory Controllers with the UniPHY IP...............................................9-43
Parameterizing Memory Controllers.......................................................................................... 9-47
Board Settings ................................................................................................................................9-70
Controller Settings for UniPHY IP............................................................................................. 9-85
Diagnostics for UniPHY IP.......................................................................................................... 9-92
Arria 10 External Memory Interface IP.................................................................................................. 9-93
Qsys Interfaces................................................................................................................................9-93
Generated Files for Arria 10 External Memory Interface IP................................................. 9-108
Parameterizing Arria 10 External Memory Interface IP........................................................ 9-111
Board Timing .............................................................................................................................. 9-133
Document Revision History...................................................................................................................9-140
Simulating Memory IP...................................................................................... 10-1
Simulation Options....................................................................................................................................10-1
Simulation Walkthrough with UniPHY IP............................................................................................ 10-3
Simulation Scripts.......................................................................................................................... 10-4
Preparing the Vendor Memory Model....................................................................................... 10-4
Functional Simulation with Verilog HDL..................................................................................10-6
Functional Simulation with VHDL............................................................................................. 10-7
Simulating the Example Design...................................................................................................10-7
Abstract PHY..................................................................................................................................10-9
PHY-Only Simulation.................................................................................................................10-10
Post-fit Functional Simulation...................................................................................................10-11
Simulation Issues......................................................................................................................... 10-13
Simulation Walkthrough with Arria 10 EMIF IP............................................................................... 10-14
Skip Calibration Versus Full Calibration................................................................................. 10-15
Simulation Scripts........................................................................................................................10-15
Functional Simulation with Verilog HDL................................................................................10-16
Functional Simulation with VHDL...........................................................................................10-16
Simulating the Example Design.................................................................................................10-17
Document Revision History...................................................................................................................10-18
Analyzing Timing of Memory IP...................................................................... 11-1
Memory Interface Timing Components................................................................................................ 11-2
Source-Synchronous Paths........................................................................................................... 11-2
Calibrated Paths............................................................................................................................. 11-2
Internal FPGA Timing Paths....................................................................................................... 11-3
Other FPGA Timing Parameters................................................................................................. 11-3
FPGA Timing Paths...................................................................................................................................11-3
Arria II Device PHY Timing Paths..............................................................................................11-3
Stratix III and Stratix IV PHY Timing Paths............................................................................. 11-6
Arria V, Arria V GZ, Arria 10, Cyclone V, and Stratix V Timing paths................................11-8
Timing Constraint and Report Files for UniPHY IP..........................................................................11-12
Timing Constraint and Report Files for Arria 10 EMIF IP............................................................... 11-13
Timing Analysis Description ................................................................................................................ 11-15
UniPHY IP Timing Analysis......................................................................................................11-15
Timing Analysis Description for Arria 10 EMIF IP................................................................11-25
Altera Corporation
External Memory Interface Handbook Volume 2: Design Guidelines
TOC-7
Timing Report DDR................................................................................................................................11-28
Report SDC...............................................................................................................................................11-30
Calibration Effect in Timing Analysis.................................................................................................. 11-31
Calibration Emulation for Calibrated Path..............................................................................11-31
Calibration Error or Quantization Error..................................................................................11-32
Calibration Uncertainties........................................................................................................... 11-32
Memory Calibration....................................................................................................................11-32
Timing Model Assumptions and Design Rules...................................................................................11-33
Memory Clock Output Assumptions........................................................................................11-33
Write Data Assumptions............................................................................................................ 11-34
Read Data Assumptions..............................................................................................................11-36
DLL Assumptions........................................................................................................................ 11-37
PLL and Clock Network Assumptions for Stratix III Devices...............................................11-37
Common Timing Closure Issues...........................................................................................................11-38
Missing Timing Margin Report................................................................................................. 11-38
Incomplete Timing Margin Report...........................................................................................11-38
Read Capture Timing.................................................................................................................. 11-38
Write Timing................................................................................................................................11-39
Address and Command Timing................................................................................................ 11-39
PHY Reset Recovery and Removal............................................................................................11-39
Clock-to-Strobe (for DDR and DDR2 SDRAM Only)...........................................................11-40
Read Resynchronization and Write Leveling Timing (for SDRAM Only)......................... 11-40
Optimizing Timing..................................................................................................................................11-40
Timing Deration Methodology for Multiple Chip Select DDR2 and DDR3 SDRAM Designs... 11-41
Multiple Chip Select Configuration Effects............................................................................. 11-42
Timing Deration using the Board Settings...............................................................................11-43
Early I/O Timing Estimation for Arria 10 EMIF IP........................................................................... 11-46
Performing Early I/O Timing Analysis for Arria 10 EMIF IP...............................................11-47
Performing I/O Timing Analysis...........................................................................................................11-48
Performing I/O Timing Analysis with 3rd Party Simulation Tools..................................... 11-48
Performing Advanced I/O Timing Analysis with Board Trace Delay Model.....................11-48
Document Revision History...................................................................................................................11-49
Debugging Memory IP...................................................................................... 12-1
Resource and Planning Issues.................................................................................................................. 12-1
Dedicated IOE DQS Group Resources and Pins....................................................................... 12-1
Dedicated DLL Resources.............................................................................................................12-2
Specific PLL Resources..................................................................................................................12-2
Specific Global, Regional and Dual-Regional Clock Net Resources.......................................12-3
Planning Your Design................................................................................................................... 12-3
Optimizing Design Utilization.....................................................................................................12-3
Interface Configuration Performance Issues......................................................................................... 12-4
Interface Configuration Bottleneck and Efficiency Issues....................................................... 12-4
Functional Issue Evaluation..................................................................................................................... 12-5
Correct Combination of the Quartus II Software and ModelSim-Altera Device Models..
12-5
Altera IP Memory Model..............................................................................................................12-6
Vendor Memory Model................................................................................................................ 12-6
Altera Corporation
TOC-8
External Memory Interface Handbook Volume 2: Design Guidelines
Insufficient Memory in Your PC.................................................................................................12-6
Transcript Window Messages......................................................................................................12-7
Passing Simulation.........................................................................................................................12-8
Modifying the Example Driver to Replicate the Failure...........................................................12-8
Timing Issue Characteristics.................................................................................................................... 12-9
Evaluating FPGA Timing Issues.................................................................................................. 12-9
Evaluating External Memory Interface Timing Issues........................................................... 12-10
Verifying Memory IP Using the SignalTap II Logic Analyzer.......................................................... 12-11
Signals to Monitor with the SignalTap II Logic Analyzer......................................................12-12
Hardware Debugging Guidelines.......................................................................................................... 12-13
Create a Simplified Design that Demonstrates the Same Issue.............................................12-13
Measure Power Distribution Network......................................................................................12-13
Measure Signal Integrity and Setup and Hold Margin...........................................................12-14
Vary Voltage................................................................................................................................. 12-14
Use Freezer Spray and Heat Gun...............................................................................................12-14
Operate at a Lower Speed........................................................................................................... 12-14
Determine Whether the Issue Exists in Previous Versions of Software.............................. 12-14
Determine Whether the Issue Exists in the Current Version of Software...........................12-14
Try A Different PCB....................................................................................................................12-15
Try Other Configurations...........................................................................................................12-15
Debugging Checklist................................................................................................................... 12-15
Catagorizing Hardware Issues............................................................................................................... 12-16
Signal Integrity Issues..................................................................................................................12-17
Hardware and Calibration Issues.............................................................................................. 12-19
EMIF Debug Toolkit Overview and Usage Flow................................................................................ 12-22
Document Revision History...................................................................................................................12-23
Optimizing the Controller................................................................................ 13-1
Factors Affecting Efficiency......................................................................................................................13-1
Interface Standard..........................................................................................................................13-2
Bank Management Efficiency.......................................................................................................13-2
Data Transfer..................................................................................................................................13-4
Ways to Improve Efficiency..................................................................................................................... 13-5
DDR2 SDRAM Controller............................................................................................................13-5
Auto-Precharge Commands.........................................................................................................13-6
Additive Latency............................................................................................................................ 13-8
Bank Interleaving........................................................................................................................... 13-9
Command Queue Look-Ahead Depth..................................................................................... 13-11
Additive Latency and Bank Interleaving.................................................................................. 13-12
User-Controlled Refresh.............................................................................................................13-13
Frequency of Operation.............................................................................................................. 13-13
Burst Length................................................................................................................................. 13-14
Series of Reads or Writes............................................................................................................ 13-14
Data Reordering...........................................................................................................................13-15
Starvation Control....................................................................................................................... 13-15
Command Reordering................................................................................................................ 13-16
Bandwidth.....................................................................................................................................13-17
Efficiency Monitor.......................................................................................................................13-18
Altera Corporation
External Memory Interface Handbook Volume 2: Design Guidelines
TOC-9
Document Revision History...................................................................................................................13-19
PHY Considerations..........................................................................................14-1
Core Logic and User Interface Data Rate............................................................................................... 14-1
Hard and Soft Memory PHY....................................................................................................................14-2
Sequencer.................................................................................................................................................... 14-2
PLL, DLL and OCT Resource Sharing....................................................................................................14-3
Pin Placement Consideration...................................................................................................................14-4
Document Revision History.....................................................................................................................14-5
Power Estimation Methods for External Memory Interfaces.......................... 15-1
Performing Vector-Based Power Analysis with the PowerPlay Power Analyzer.............................15-2
Document Revision History.....................................................................................................................15-2
Altera Corporation
1
Selecting Your Memory
2014.12.15
EMI_DG
Subscribe
Send Feedback
System architects must consider architecture, algorithms, and features of the available components.
Typically, one of the fundamental problems in high-performance applications is memory, because the
challenges and limitations of system performance often reside in memory architecture. As higher speeds
become necessary for external memories, signal integrity becomes more challenging; newer devices
include several features to address this challenge. Altera FPGAs include dedicated I/O circuitry, various
I/O standard support, and specialized intellectual property (IP).
When you select an external memory device, consider the following factors:
•
•
•
•
•
Bandwidth and speed
Cost
Data storage capacity
Latency
Power consumption
Because no single memory type can excel in every area, system architects must determine the right
balance for their design. The following table lists the two common types of high-speed memories and
their characteristics.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
1-2
EMI_DG
2014.12.15
DDR SDRAM Features
Table 1-1: Differences between DRAM and SRAM
Memory
Type
DRA
M
Description
A dynamic random access
memory (DRAM) cell consisting
of a capacitor and a single
transistor. DRAM memory must
be refreshed periodically to retain
the data, resulting in lower overall
efficiency and more complex
controllers.
Bandwidth
and Speed
Cost
Data Storage
Size and
Capacity
Power
consumption
Latency
Lower
bandwidth
resulting in
slower speed
Lower Higher data
cost
storage and
capacity
Higher power Highe
consumption r
latenc
y
Higher
bandwidth
resulting in
faster speed
Highe Lower data
r cost storage and
capacity
Lower power Lower
consumption latenc
y
Generally, designers select DRAM
where cost per bit and capacity
are important. DRAM is
commonly used for main
memory.
SRA
M
A static random access memory
(SRAM) cell that consists of six
transistors. SRAM does not need
to be refreshed because the
transistors continue to hold the
data as long as the power supply is
not cut off.
Generally, designers select SRAM
where speed is more important
than capacity. SRAM is
commonly used for cache
memory.
Note: The Altera IP might or might not support all of the features supported by the memory.
To compare the performance of the supported external memory interfaces in Altera FPGA devices, refer
to the External Memory Interface Spec Estimator page on the Altera website.
Related Information
External Memory Interface Spec Estimator
DDR SDRAM Features
Double data rate (DDR) SDRAM is a 2n prefetch architecture with two data transfers per clock cycle. It
uses a single-ended strobe, DQS, which is associated with a group of data pins, DQ, for read and write
operations. Both DQS and DQ are bidirectional ports. Address ports are shared for read and write
operations.
Altera Corporation
Selecting Your Memory
Send Feedback
EMI_DG
2014.12.15
DDR2 SDRAM Features
1-3
The desktop computing market has positioned DDR SDRAM as a mainstream commodity product,
which means this memory is very low-cost. DDR SDRAM is also high-density and low-power. Relative to
other high-speed memories, DDR SDRAM has higher latency-they have a multiplexed address bus, which
reduces the pin count (minimizing cost) at the expense of a longer and more complex bus cycle.
DDR2 SDRAM Features
DDR2 SDRAM is a 4n prefetch architecture (internally the memory operates at half the interface
frequency) with two data transfers per clock cycle. DDR2 SDRAM can use a single-ended or differential
strobe, DQS or DQSn, which is associated with a group of data pins, and DQ for read and write operations.
The DQS, DQSn, and DQ are bidirectional ports. Address ports are shared for read and write operations.
DDR2 SDRAM includes additional features such as increased bandwidth due to higher clock speeds,
improved signal integrity on DIMMs with on-die terminations, and lower supply voltages to reduce
power.
DDR3 SDRAM Features
DDR3 SDRAM is the third generation of SDRAM. DDR3 SDRAM is internally configured as an eightbank DRAM and uses an 8n prefetch architecture to achieve high-speed operation. The 8n prefetch
architecture is combined with an interface that transfers two data words per clock cycle at the I/O pins. A
single read or write operation for DDR3 SDRAM consists of a single 8n-bit wide, one-clock-cycle data
transfer at the internal DRAM core and eight corresponding n-bit wide, one-half clock cycle data transfers
at the I/O pins. DDR3 SDRAMs are available as components and modules, such as DIMMs, SODIMMs,
RDIMMs, and LRDIMMs.
DDR3 SDRAM can conserve system power, increase system performance, achieve better maximum
throughput, and improve signal integrity with fly-by topology and dynamic on-die termination.
Read and write operations to the DDR3 SDRAM are burst oriented. Operation begins with the registra‐
tion of an active command, which is followed by a read or write command. The address bits registered
coincident with the active command select the bank and row to be activated (BA0 to BA2 select the bank;
A0 to A15 select the row). The address bits registered coincident with the read or write command select the
starting column location for the burst operation, determine if the auto precharge command is to be issued
(via A10), and select burst chop (BC) of 4 or burst length (BL) of 8 mode at runtime (via A12), if enabled in
the mode register. Before normal operation, the DDR3 SDRAM must be powered up and initialized in a
predefined manner.
Differential strobes DQS and DQSn are mandated for DDR3 SDRAM and are associated with a group of
data pins, as is DQ for read and write operations. DQS, DQSn, and DQ ports are bidirectional. Address ports
are shared for read and write operations.
Note: The DDR3 SDRAM high-performance controller II supports local interfaces running at full-rate,
half-rate, and quarter-rate.
For more information, refer to the respective DDR, DDR2, and DDR3 SDRAM data sheets.
For more information about parameterizing the DDR2 and DDR3 SDRAM IP, refer to the Implementing
and Parameterizing Memory IP chapter.
Related Information
Implementing and Parameterizing Memory IP
Selecting Your Memory
Send Feedback
Altera Corporation
1-4
QDR, QDR II, and QDR II+ SRAM Features
EMI_DG
2014.12.15
QDR, QDR II, and QDR II+ SRAM Features
Quad Data Rate (QDR) SRAM has independent read and write ports that run concurrently at double data
rate. QDR SRAM is true dual-port (although the address bus is still shared), which gives this memory a
high bandwidth, allowing back-to-back transactions without the contention issues that can occur when
using a single bidirectional data bus. Write and read operations share address ports.
The QDR II SRAM devices are available in ×8, ×9, ×18, and ×36 data bus width configurations. The QDR
II+ SRAM devices are available in ×9, ×18, and ×36 data bus width configurations. Write and read
operations are burst-oriented. All the data bus width configurations of QDR II SRAM support burst
lengths of two and four. QDR II+ SRAM supports only a burst length of four. Burst-of-two and burst-offour for QDR II and burst-of-four for QDR II+ SRAM devices provide the same overall bandwidth at a
given clock speed.
For QDR II SRAM devices, the read latency is 1.5 clock cycles; for QDR II+ SRAM devices, it is 2 or 2.5
clock cycles depending on the memory device. For QDR II+ and burst-of-four QDR II SRAM devices, the
write commands and addresses are clocked on the rising edge of the clock, and write latency is one clock
cycle. For burst-of-two QDR II SRAM devices, the write command is clocked on the rising edge of the
clock, and the write address is clocked on the falling edge of the clock. Therefore, the write latency is zero
because the write data is presented at the same time as the write command.
QDR II+ and QDR II SRAM interfaces use a delay-locked loop (DLL) inside the device to edge-align the
data with respect to the K and K# or C and C# pins. You can optionally turn off the DLL, but the perform‐
ance of the QDR II+ and QDR II SRAM devices is degraded. All timing specifications listed in this
document assume that the DLL is on. QDR II+ and QDR II SRAM devices also offer programmable
impedance output buffers. You can set the buffers by terminating the ZQ pin to VSS through a resistor,
RQ. The value of RQ should be five times the desired output impedance. The range for RQ should be
between 175 ohm and 350 ohm with a tolerance of 10%.
QDR II/+ SRAM is best suited for applications where the required read/write ratio is near one-to-one.
QDR II/+ SRAM includes additional features such as increased bandwidth due to higher clock speeds,
lower voltages to reduce power, and on-die termination to improve signal integrity. QDR II+ SDRAM is
the latest and fastest generation. For QDR II+ and QDR II SRAM interfaces, Altera supports both 1.5-V
and 1.8-V HSTL I/O standards.
For more information, refer to the respective QDRII and QDRII+ data sheets.
For more information about parameterizing the QDRII and QDRII+ SRAM IP, refer to the Implementing
and Parameterizing Memory IP chapter.
Related Information
Implementing and Parameterizing Memory IP
RLDRAM II and RLDRAM 3 Features
Reduced latency DRAM (RLDRAM) provides DRAM-based point-to-point memory devices designed for
communications, imaging, server systems, networking, and cache applications requiring high density,
high memory bandwidth, and low latency. The fast random access speeds in RLDRAM devices make
them a viable alternative to SRAM devices at a lower cost.
The high performance of RLDRAM is achieved by very low random access delay (tRC), low data-busturnaround delay, simple command protocol, and a large number of banks. RLDRAM is optimized to
meet the needs of high-bandwidth networking applications.
Altera Corporation
Selecting Your Memory
Send Feedback
EMI_DG
2014.12.15
RLDRAM II and RLDRAM 3 Features
1-5
Contrasting with the typical four banks in most memory devices, RLDRAM II is partitioned into eight
banks and RLDRAM 3 is partitioned into sixteen banks. Partitioning reduces the parasitic capacitance of
the address and data lines, allowing faster accesses and reducing the probability of random access
conflicts. Each bank has a fixed number of rows and columns. Only one row per bank is accessed at a
time. The memory (instead of the controller) controls the opening and closing of a row, which is similar
to an SRAM interface.
Most DRAM memory types need both a row and column phase on a multiplexed address bus to support
full random access, while RLDRAM supports a nonmultiplexed address, saving bus cycles at the expense
of more pins. RLDRAM II and RLDRAM 3 use the High-Speed Transceiver Logic (HSTL) standard with
double data rate (DDR) data transfer to provide a very high throughput.
There are two types of RLDRAM II or RLDRAM 3 devices—common I/O (CIO) and separate I/O (SIO).
CIO devices share a single data I/O bus, which is similar to the double data rate (DDR) SDRAM interface.
SIO devices, with separate data read and write buses, have an interface similar to SRAM. Altera UniPHY
Memory IP only supports CIO RLDRAM.
RLDRAM II and RLDRAM 3 use a DDR scheme, performing two data transfers per clock cycle.
RLDRAM II or RLDRAM 3 CIO devices use the bidirectional data pins (DQ) for both read and write data,
while RLDRAM II or RLDRAM 3 SIO devices use D pins for write data (input to the memory) and Q pins
for read data (output from the memory). Both types use two pairs of unidirectional free-running clocks.
The memory uses DK and DK# pins during write operations, and generates QK and QK# pins during read
operations. In addition, RLDRAM II and RLDRAM 3 use the system clocks (CK and CK# pins) to sample
commands and addresses, and to generate the QK and QK# read clocks. Address ports are shared for write
and read operations.
RLDRAM II CIO devices are available in ×9, ×18, ×36 data bus width configurations. RLDRAM II CIO
interfaces may require an extra cycle for bus turnaround time for switching read and write operations.
RLDRAM 3 devices are available in ×18 and ×36 data bus width configurations.
Write and read operations are burst oriented, and all the data bus width configurations of RLDRAM II
and RLDRAM 3 support burst lengths of two and four. RLDRAM 3 also supports burst length of eight at
bus width ×18, and burst lengths of two and four at bus width ×36. For detailed comparisons between
RLDRAM II and RLDRAM 3 for these features, refer to the Memory Selection Overview table.
RLDRAM II and RLDRAM 3 also inherently include the additional memory bits used for parity or error
correction code (ECC).
RLDRAM II and RLDRAM 3 also offer programmable impedance output buffers and on-die termination.
The programmable impedance output buffers are for impedance matching and are guaranteed to produce
25- to 60-ohm output impedance. The on-die termination is dynamically switched on during read
operations and switched off during write operations. Perform an IBIS simulation to observe the effects of
this dynamic termination on your system. IBIS simulation can also show the effects of different drive
strengths, termination resistors, and capacitive loads on your system.
RLDRAM 3 enables a faster, more efficient transfer of data by doubling performance and reduced latency
compared to RLDRAM II. RLDRAM 3 memory is suitable for operation in which high bandwidth and
deterministic performance is critical, and is optimized to meet the needs of high-bandwidth networking
applications. For detailed comparisons between RLDRAM II and RLDRAM 3, refer to the following table.
For more information, refer to RLDRAM II and RLDRAM 3 data sheets available from the Micron
website (www.micron.com).
For more information about parameterizing the RLDRAM II and RLDRAM 3 IP, refer to the
Implementing and Parameterizing Memory IP chapter.
Related Information
• Implementing and Parameterizing Memory IP
Selecting Your Memory
Send Feedback
Altera Corporation
1-6
EMI_DG
2014.12.15
LPDDR2 Features
• www.micron.com
LPDDR2 Features
LPDDR2-S is a high-speed SDRAM device internally configured as a 4- or 8-bank memory. All LPDDR2
devices use double data rate architecture on the address and command bus to reduce the number of input
pins in the system. The 10-bit address and command bus contains command, address, and bank/row
buffer information. Each command uses one clock cycle, during which command information is
transferred on both the positive and negative edges of the clock.
LPDDR2-S2 and LPDDR2-S4 devices use double data rate architecture on the DQ pins to achieve high
speed operation. The double data rate architecture is essentially a 2n/4n prefetch architecture with an
interface designed to transfer two data bits per DQ every clock cycle at the I/O pins. A single read or write
access for the LPDDR2-S2/S4 consists of a single 2n-bit wide /4n-bit wide, one clock cycle data transfer at
the internal SDRAM core, and two/four corresponding n-bit wide, with one-half clock cycle data transfers
at the I/O pins.
Memory Selection
One of the first considerations in choosing a high-speed memory is data bandwidth. Based on the system
requirements, an approximate data rate to the external memory should be determined. You must also
consider other memory attributes, including how much memory is required (density), how much latency
can be tolerated, what is the power budget, and whether the system is cost sensitive.
The following table lists memory features and target markets of each technology.
Table 1-2: Memory Selection Overview
Parameter
LPDDR2
DDR3
SDRAM
DDR2
SDRAM
DDR SDRAM
RLDRAM II
RLDRAM 3
QDR II/+
SRAM
Bandwid 25.6
th for 32
bit
interface
59.7
25.6
12.8
25.6
35.8
44.8
Bandwid 17.9
th at %
Efficienc
y (Gbps)
23.9
17.9
9
17.9
–
38.1
Perform‐ 167–400
ance /
MHz (3)
Clock
frequenc
y
300–933
MHz
167–400
MHz (3)
100–200
MHz
200–533
MHz
200–800
MHz
154–350
MHz
(1)
(2)
Altera Corporation
Selecting Your Memory
Send Feedback
EMI_DG
2014.12.15
1-7
Memory Selection
Parameter
LPDDR2
DDR3
SDRAM
DDR2
SDRAM
AlteraUp to
supporte 1,066 Mbps
d data
rate
Up to
2,133 Mbps
Up to
1,066 Mbps
Density
RLDRAM II
RLDRAM 3
Up to
400 Mbps
Up to 1066
Mbps
Up to 1600
Mbps
512 MB–8
GB,32 MB –
8 GB
(DIMM)
256 MB–1
GB,32 MB –
4 GB
(DIMM)
128 MB–1
GB, 32 MB
–2 GB
(DIMM)
288 MB,576 576 MB –
MB
1.1 GB
18–144
MB
I/O
HSUL- 12
standard 1.2V
SSTL-15
Class I, II
SSTL-18
Class I, II
SSTL-2
Class I, II
HSTL-1.8V/ HSTL-1.2V
1.5V
and SSTL12
HSTL1.8V/
1.5V
Data
group
width
8, 16, 32
4, 8, 16
4, 8, 16
4, 8, 16, 32
9, 18, 36
18, 36
9, 18, 36
Burst
length
4, 8, 16
8
4, 8
2, 4, 8
2, 4, 8
2, 4, 8
2, 4
Number 4, 8
of banks
8
8 (>1 GB), 4 4
8
16
—
Row/
column
access
Row before
column
Row before
column
Row before
column
Row before
column
Row and
column
together or
multiplexed
option
Row and
—
column
together or
multiplexed
option
CAS
latency
(CL)
—
5, 6, 7, 8, 9,
10
3, 4, 5
2, 2.5, 3
—
—
—
Posted
CAS
additive
latency
(AL)
—
0, CL-1, CL- 0, 1, 2, 3, 4
2
—
—
—
—
Read
latency
(RL)
3, 4, 5, 6, 7,
8
RL = CL +
AL
RL = CL +
AL
RL = CL
3, 4, 5, 6, 7,
8
3-16
1.5, 2,
and 2.5
clock
cycles
Yes
Yes
No
Yes
Yes
Yes
64 MB –8
GB
On-die
—
termina‐
tion
Selecting Your Memory
Send Feedback
DDR SDRAM
QDR II/+
SRAM
Up to
1400
Mbps
Altera Corporation
1-8
EMI_DG
2014.12.15
Memory Selection
Parameter
LPDDR2
DDR3
SDRAM
DDR2
SDRAM
DDR SDRAM
RLDRAM II
RLDRAM 3
QDR II/+
SRAM
Data
strobe
Differential Differential Differential
bidirectional bidirectional or singlestrobe only ended
bidirectional
strobe
Singleended
bidirectional
strobe
Freerunning
differential
read and
write clocks
Freerunning
differential
read and
write clocks
Freerunning
read and
write
clocks
Refresh
require‐
ment
Yes
Yes
Yes
Yes
No
Yes
Yes
Relative Higher than Presently
cost
DDR
lower than
comparis SDRAM
DDR2
on
Less than
Low
DDR
SDRAM
with market
acceptance
Higher than
DDR
SDRAM,less
than SRAM
Higher than Highest
DDR
SDRAM,less
than SRAM
Target
market
Desktops,
servers,
storage,
LCDs,
displays,
networking,
and
communica‐
tion
equipment
Main
memory,
cache
memory,
networking,
packet
processing,
and traffic
managemen
t
Main
memory,
cache
memory,
networking,
packet
processing,
and traffic
managemen
t
Mobile
devices that
target low
operating
power
Desktops,
servers,
storage,
LCDs,
displays,
networking,
and
communica‐
tion
equipment
Desktops,
servers,
storage,
LCDs,
displays,
networking,
and
communica‐
tion
equipment
Cache
memory,
routers,
ATM
switches,
packet
memorie
s,
lookup,
and
classifi‐
cation
memorie
s
Notes to Table:
1. 32-bit data bus operating at the maximum supported frequency in a Stratix® V FPGA.
2. 70% efficiency for DDR memories, which takes into consideration the bus turnaround, refresh, infinite
burst length and random access latency and assumes 85% efficiency for QDR memories.
3. The lower frequency limit depends on the higher of the DLL frequency and the minimum operating
frequency of the given EMIF protocol. (Except for DDR2 interfaces running on Stratix V devices.)
Altera supports the memory interfaces, provides various IP for the physical interface and the controller,
and offers many reference designs (refer to Altera’s Memory Solutions Center).
For Altera support and the maximum performance for the various high-speed memory interfaces, refer to
the External Memory Interface Spec Estimator page on the Altera website.
Related Information
• Memory Solutions Center
• External Memory Interface Spec Estimator
Altera Corporation
Selecting Your Memory
Send Feedback
EMI_DG
2014.12.15
Example of High-Speed Memory in Embedded Processor
1-9
Example of High-Speed Memory in Embedded Processor
In embedded processor applications—any system that uses processors, excluding desktop processors—
due to its very low cost, high density, and low power, DDR SDRAM is typically used for main memory.
Next-generation processors invest a large amount of die area to on-chip cache memory to prevent the
execution pipelines from sitting idle. Unfortunately, these on-chip caches are limited in size, as a balance
of performance, cost, and power must be taken into consideration. In many systems, external memories
are used to add another level of cache. In high-performance systems, three levels of cache memory is
common: level one (8 Kbytes is common) and level two (512 Kbytes) on chip, and level three off chip (2
Mbytes).
High-end servers, routers, and even video game systems are examples of high-performance embedded
products that require memory architectures that are both high speed and low latency. Advanced memory
controllers are required to manage transactions between embedded processors and their memories. Altera
Arria® series and Stratix series FPGAs optimally implement advanced memory controllers by utilizing
their built-in DQS (strobe) phase shift circuitry. The following figure highlights some of the features
available in an Altera FPGA in an embedded application, where DDR2 SDRAM is used as the main
memory and QDR II/II+ SRAM or RLDRAM II/3 is an external cache level.
Figure 1-1: Memory Controller Example Using FPGA
533-Mbps DDR2 SDRAM (1)
DDR2 SDRAM
DIMM
IP available for processor interfaces
such as PowerPC, MIPs, and ARM
Embedded
processor
Altera
FPGA
DDR2 Interface
Processor
Interface
Memory
controller
PCI interface
PCI Master/Target cores capable of
64-bit, 66-MHz 1361 LEs ,
4% of an EP2S30 (5)
Memory Interface
350-MHz embedded SRAM (2)
600-Mbps RLDRAM II (3)
or 1-Gbps QDR II SRAM (4)
RLDRAM II/3 or
QDR II/II+ SRAM
One of the target markets of RLDRAM II/3 and QDR/QDR II SRAM is external cache memory.
RLDRAM II and RLDRAM 3 have a read latency close to synchronous SRAM, but with the density of
SDRAM. A sixteen times increase in external cache density is achievable with one RLDRAM II/3 versus
that of synchronous static RAM (SSRAM). In contrast, consider QDR and QDR II SRAM for systems that
require high bandwidth and minimal latency. Architecturally, the dual-port nature of QDR and QDR II
SRAM allows cache controllers to handle read data and instruction fetches completely independent of
writes.
Selecting Your Memory
Send Feedback
Altera Corporation
1-10
EMI_DG
2014.12.15
Example of High-Speed Memory in Telecom
Example of High-Speed Memory in Telecom
Because telecommunication network architectures are becoming more complex, high-end network
systems are running multiple 10-Gbps line cards that connect to multi-shelf switch fabrics scaling to
terabits per second.
The following figure shows an example of a typical system line interface card. These line cards offer
interfaces ranging from a single-port OC-192 to multi-port Gbps Ethernet, and consist of a number of
devices, including a PHY/framer, network processors, traffic managers, fabric interface devices, and highspeed memories.
Figure 1-2: Typical Telecom System Line Interface Card
Lookup
table
Lookup
table
Buffer
memory
PHY/
framer
Buffer
memory
Pre-processor
Pre-processor
Telecom line card datapath
Coprocessor
Buffer
memory
Network
processor
Traffic
manager
Network
processor
Traffic
manager
Buffer
memory
Buffer
memory
Buffer
memory
Switch fabric
interface
As packets traverse from the PHY/framer device to the switch fabric interface, they are buffered into
memories, while the data path devices process headers (determining the destination, classifying packets,
and storing statistics for billing) and control the flow of packets into the network to avoid congestion.
Typically DDR/DDR2/DDR3 SDRAM and RLDRAM II/3 are used for large buffer memories off network
processors, traffic managers, and fabric interfaces, while QDR and QDR II/II+ SRAMs are used for lookup tables (LUTs) off preprocessors and coprocessors.
In many designs, FPGAs connect devices together for interoperability and coprocessing, implement
features that are not supported by ASIC devices, or implement a device function entirely. Altera Stratix
series FPGAs implement traffic management, packet processing, switch fabric interfaces, and coprocessor
functions, using features such as 1-Gbps LVDS I/O, high-speed memory interface support, multi-gigabit
transceivers, and IP cores. The following figure highlights some of these features in a packet buffering
application where RLDRAM II is used for packet buffer memory and QDR II SRAM is used for control
memory.
Altera Corporation
Selecting Your Memory
Send Feedback
EMI_DG
2014.12.15
Document Revision History
1-11
Figure 1-3: FPGA Example in Packet Buffering Application
RLDRAM II
Altera
FPGA (1) , (8)
Dedicated SERDES and DPA (3)
RLDRAM II
Interface (2)
SP14.2i
RX
Differential termination (4)
PCI
Interface (6)
Core
logic
SP14.2i
TX (5)
QDRII SRAM
Interface (7)
QDRII SRAM
SDRAM is usually the best choice for buffering at high data rates due to the large amounts of memory
required. Some system designers take a hybrid approach to the memory architecture, using SRAM to store
the packet headers and DRAM to store the payload. The depth of the memories depends on the architec‐
ture and throughput of the system.
The buffer memory for the packet buffering application of an OC-192 line card (approximately 10 Gbps)
must be able to sustain a minimum of one write and one read operation, which requires a memory
bandwidth of 20 Gbps to operate at full line rate (more bandwidth is required if the headers are modified).
The bandwidth requirement for memory is a key factor in memory selection. As an example, a simple
first-order calculation using RLDRAM II as buffer memory requires a bus width of 48 bits to sustain 20
Gbps (300 MHz × 2 DDR × 0.70 efficiency × 48 bits = 20.1 Gbps), which needs two RLDRAM II parts
(one ×18 and one ×36). RLDRAM II and RLDRAM 3 also inherently include the additional memory bits
used for parity or error correction code (ECC). QDR and QDR II SRAM have bandwidth and low random
access latency advantages that make them useful for control memory in queue management and traffic
management applications. Another typical implementation for this memory is billing and packet
statistics, where each packet requires counters to be read from memory, incremented, and then rewritten
to memory. The high bandwidth, low latency, and optimal one-to-one read/write ratio make QDR SRAM
ideal for this feature.
Document Revision History
Selecting Your Memory
Send Feedback
Altera Corporation
1-12
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
December 2014
2014.12.15
Modified note 3 on Memory Selection
Overview table.
August 2014
2014.08.15
• Changed some values in the
Bandwidth for 32 bits, Bandwidth
at % Efficiency, Performance /
Clock frequency, and Alterasupported data rate rows of the
Memory Selection Overview table.
December 2013
2013.12.16
Removed references to Stratix II
devices.
November 2012
6.0
Added RLDRAM 3 support.
June 2012
5.0
• Added LPDDR2 support.
• Added Feedback icon.
November 2011
4.0
Moved and reorganized “Selecting
your Memory” section to Volume 2:
Design Guidelines.
June 2011
3.0
Added “Selecting Memory IP”
chapter from Volume 2.
December 2010
2.1
• Moved protocol-specific feature
information to the memory
interface user guides in Volume 3.
• Updated maximum clock rate
information for 10.1.
July 2010
2.0
• Added specifications for DDR2
and DDR3 SDRAM Controllers
with UniPHY.
• Streamlined the specification
tables.
• Added reference to web-based
Specification Estimator Tool.
January 2010
1.1
Updated DDR, DDR2, and DDR3
specifications.
November 2009
1.0
First published.
Altera Corporation
Selecting Your Memory
Send Feedback
2
Selecting Your FPGA Device
2014.12.15
EMI_DG
Subscribe
Send Feedback
Altera external memory interfaces support three FPGA device families—Arria®, Stratix®, and Cyclone®
device families. These FPGA device families vary in terms of cost, memory standards, speed grade, and
features.
Note: Use the Altera Product Selector to find and compare specifications and features of Altera devices.
Consult these topics together with the Planning Pin and FPGA Resources chapter, before you start
implementing your external memory interface.
The following topics describe the factors that you should consider when selecting an FPGA device family.
Related Information
• Altera Product Selector
• Planning Pin and FPGA Resources on page 3-1
• Planning Pin and FPGA Resources
Memory Standards
Altera devices support two common types of high-speed memories—dynamic random access memory
(DRAM) and static random access memory (SRAM). The commonly used DRAM devices include DDR,
DDR2, DDR3, and DDR4 SDRAM, LPDDR2, RLDRAM II, and RLDRAM 3, while SRAM devices include
QDR II, QDR II+, and QDR II+ Xtreme SRAM.
For more information about these memory types, refer to the Selecting Your Memory chapter.
Different Altera FPGA devices support different memory types; not all Altera devices support all memory
types and configurations. Before you start your design, you must select an Altera device, which supports
the memory standard and configurations you plan to use.
In addition, Altera’s FPGA devices support various data widths for different memory interfaces. The
memory interface support between density and package combinations differs, so you must determine
which FPGA device density and package combination suits your application.
For more information about the supported memory types and configurations, refer to the External
Memory Interface Spec Estimator page on the Altera website.
Related Information
• Selecting Your Memory
• External Memory Interface Spec Estimator
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
2-2
EMI_DG
2014.12.15
I/O Interfaces
I/O Interfaces
Ideally any interface should reside entirely in a single bank; however, interfaces that span across multiple
adjacent banks or the entire side of a device are also fully supported.
Interfaces that span across sides (top and bottom, or left and right) and wraparound interfaces provide the
same level of performance.
For information about the I/O interfaces supported for each device, and the locations of those I/O
interfaces, refer to the I/O Features section in the appropriate device handbook.
Wraparound Interfaces
For maximum performance, Altera recommends that data groups for external memory interfaces should
always be within the same side of a device, ideally reside within a single bank.
High-speed memory interfaces using top or bottom I/O bank versus left or right I/O bank have different
timing characteristics, so the timing margins are also different. However, Altera can support interfaces
with wraparound data groups that wrap around a corner of the device between vertical and horizontal I/O
banks at some speeds. Some devices support wraparound interfaces that run at the same speed as row or
column interfaces.
Arria II GX devices can support wraparound interface across all sides of devices that are not used for
transceivers. Other UniPHY-supported Altera devices support only interfaces with data groups that wrap
around a corner of the device.
Read and Write Leveling
The Arria V GZ, Arria 10, Stratix III, Stratix IV, and Stratix V I/O registers include read and write leveling
circuitry to enable skew to be removed or applied to the interface on a DQS group basis. There is one
leveling circuit located in each I/O subbank.
Note: UniPHY-based designs do not require read leveling circuitry during read leveling operation.
For more information about read and write leveling, refer to Leveling Circuitry section in the Functional
Description - UniPHY chapter of the External Memory Interface Handbook.
Related Information
Functional Description - UniPHY
Dynamic OCT
The Arria II GZ, Arria V, Arria 10, Cyclone V, Stratix III, Stratix IV, and Stratix V devices support
dynamic calibrated OCT.
Dynamic calibrated OCT allows the specified series termination to be enabled during writes, and parallel
termination to be enabled during reads. These I/O features allow you to simplify PCB termination
schemes.
Altera Corporation
Selecting Your FPGA Device
Send Feedback
EMI_DG
2014.12.15
Device Settings Selection
2-3
Device Settings Selection
After you have selected the appropriate FPGA device family for your memory interface, configure the
device settings of your selected FPGA device family to meet your design needs.
Refer to the device ordering code and determine the appropriate device settings for your target device
family.
For more information about the ordering code for your target device, refer to the “Ordering Information”
section in volume 1 of the respective device handbooks.
The following sections describe the ordering code and how to select the appropriate device settings based
on the ordering code to meet the requirements of your external memory interface.
Device Speed Grade
The device speed grade affects the device timing performance, timing closure, and power utilization.
The device with the smallest number is the fastest device and vice-versa. Generally, the faster devices cost
more.
Device Operating Temperature
The operating temperature of the FPGA is divided into the following categories:
• Commercial grade—Used for all device families. The operating temperature range from 0 degrees C to
85 degrees C.
• Industrial grade—Used for all device families. The operating temperature range from -40 degrees C to
100 degrees C.
• Military grade—Used for Stratix IV device family only. The operating temperature range from -55
degrees C to 125 degrees C.
• Automotive grade—Used for Cyclone V device families only. The operating temperature range from
-40 degrees C to 125 degrees C.
Device Package Size
Each FPGA family has a range of package sizes.
Package size refers to the actual size of an FPGA device and corresponds to the number of pin counts. For
example,the package size for the smallest FPGA device in the Stratix IV family is 29 mm x 29 mm,
categorized under the F780 package option, where F780 refers to a device with 780 pin counts.
For more information about the package size available for your device, refer to the respective device
handbooks.
Device Density and I/O Pin Counts
An FPGA device of the same device family and package size also varies in terms of device density and I/O
pin counts.
For example, after you have selected the Stratix IV device family with the F780 packaging option, you
must determine the type of device models that ranges from EP4GX70 to EP4GX230. Each of these devices
has similar speed grades that range from grade 2 to grade 4, but are different in density.
Selecting Your FPGA Device
Send Feedback
Altera Corporation
2-4
EMI_DG
2014.12.15
Device Density and I/O Pin Counts
Device Density
Device density refers to the number of logic elements (LEs). For example, PLLs, memory blocks, and so
on. An FPGA device with higher density contains more logic elements in less area.
I/O Pin Counts
To meet the growing demand for memory bandwidth and memory data rates, memory interface systems
use parallel memory channels and multiple controller interfaces. However, the number of memory
channels is limited by the package pin count of the Altera devices. Therefore, you must consider device
pin count when you select a device; you must select a device with enough I/O pins for your memory
interface requirement.
The number of device pins required depends on the memory standard, the number of memory interfaces,
and the memory data width. For example, a ×72 DDR3 SDRAM single-rank interface requires 125 I/O
pins:
•
•
•
•
•
•
72 DQ pins (including ECC)
9 DM pins
9 DQS, DQSn differential pin pairs
17 address pins (address and bank address)
7 command pins (CAS, RAS, WE, CKE, ODT, reset, and CS)
1 CK, CK# differential pin pair
Note: For more information about the number of embedded memory, PLLs and user I/O counts that are
available for your device, refer to the respective device handbooks. For the number of DQS groups
available for each FPGA device, refer to the respective device handbooks.
Note: For the maximum number of controllers that is supported by the FPGAs for different memory
types, refer to the Planning Pin and FPGA Resources chapter.
Altera devices do not limit the interface widths beyond the following requirements:
• The DQS, DQ, clock, and address signals of the entire interface must reside within the same bank or
side of the device if possible, to achieve better performance. Although wraparound interfaces are also
supported at limited frequencies.
• The maximum possible interface width in any particular device is limited by the number of DQS and
DQ groups available within that bank or side.
• Sufficient regional clock networks are available to the interface PLL to allow implementation within
the required number of quadrants.
• Sufficient spare pins exist within the chosen bank or side of the device to include all other clock,
address, and command pin placement requirements.
• The greater the number of banks, the greater the skew. Altera recommends that you always compile a
test project of your desired configuration and confirm that it meets timing requirement.
Your pin count calculation also determines which device side to use (top or bottom, left or right, and
wraparound).
Note: When assigning DQS and DQ pins in Arria® II GX devices, you are allowed to use only twelve of
the sixteen I/O pins in an I/O module as DQ pins. The remaining four pins can be used only as
input pins.
Note: For DQS groups pin-out restriction format, refer to Arria II GX Pin Connection Guidelines.
Note: The Arria II GX and Stratix V devices do not support interfaces on the left side of the device. There
are no user I/O pins, other than the transceiver pins available in these devices.
Altera Corporation
Selecting Your FPGA Device
Send Feedback
EMI_DG
2014.12.15
Document Revision History
2-5
Related Information
• Planning Pin and FPGA Resources
• Arria II GX Pin Connection Guidelines
Document Revision History
Date
Version
Changes
December 2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
Maintenance release.
December 2013
2013.12.16
Removed references to Cyclone III
and Cyclone IV devices.
June 2012
5.0
• Added LPDDR2 support.
• Added Feedback icon.
November 2011
4.0
Moved and reorganized “Selecting
your FPGA” section to Volume 2:
Design Guidelines.
June 2011
3.0
Added “Selecting a Device” chapter
from Volume 2.
December 2010
2.1
• Moved protocol-specific feature
information to the memory
interface user guides in Volume 3.
• Updated maximum clock rate
information for 10.1.
July 2010
2.0
• Added specifications for DDR2
and DDR3 SDRAM Controllers
with UniPHY.
• Streamlined the specification
tables.
• Added reference to web-based
Specification Estimator Tool.
January 2010
1.1
Updated DDR, DDR2, and DDR3
specifications.
November 2009
1.0
First published.
Selecting Your FPGA Device
Send Feedback
Altera Corporation
3
Planning Pin and FPGA Resources
2014.12.15
EMI_DG
Subscribe
Send Feedback
This information is for board designers who need to determine the FPGA pin usage, to create the board
layout for the system, as the board design process sometimes occurs concurrently with the RTL design
process.
Use this document with the External Memory Interfaces chapter of the relevant device family handbook.
Typically, all external memory interfaces require the following FPGA resources:
•
•
•
•
Interface pins
PLL and clock network
DLL
Other FPGA resources—for example, core fabric logic, and on-chip termination (OCT) calibration
blocks
After you know the requirements for your external memory interface, you can start planning your system.
The I/O pins and internal memory cannot be shared for other applications or external memory interfaces.
However, if you do not have enough PLLs, DLLs, or clock networks for your application, you may share
these resources among multiple external memory interfaces or modules in your system.
Ideally, any interface should reside entirely in a single bank; however, interfaces that span multiple
adjacent banks or the entire side of a device are also fully supported. In addition, you may also have
wraparound memory interfaces, where the design uses two adjacent sides of the device and the memory
interface logic resides in a device quadrant. In some cases, top or bottom bank interfaces have higher
supported clock rate than left or right or wraparound interfaces.
Interface Pins
Any I/O banks that do not support transceiver operations in Arria® II, Arria V, Arria 10, Stratix® III,
Stratix IV, and Stratix V devices support external memory interfaces. However, DQS (data strobe or data
clock) and DQ (data) pins are listed in the device pin tables and fixed at specific locations in the device.
You must adhere to these pin locations as these locations are optimized in routing to minimize skew and
maximize margin. Always check the external memory interfaces chapters from the device handbooks for
the number of DQS and DQ groups supported in a particular device and the pin table for the actual
locations of the DQS and DQ pins.
The following table lists a summary of the number of pins required for various example memory
interfaces. This table uses series OCT with calibration and parallel OCT with calibration, or dynamic
calibrated OCT, when applicable, shown by the usage of RUP and RDN pins or RZQ pin.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
3-2
EMI_DG
2014.12.15
Interface Pins
Table 3-1: Pin Counts for Various Example External Memory Interfaces (1) (2)
External
Memory
Interface
FPGA
DQS
Group
Size
Numb
er of
DQ
Pins
Numb Numb Numb Numb
er of
er of
er of
er of
DQS/ Contro Addres Comm
CQ/QK l Pins
s Pins
and
(3)
Pins
Pins
(19)
Numb
er of
Clock
Pins
8
2
1
10
2
2
N/A
1
N/A
26
16
4
2
10
2
2
N/A
1
N/A
37
72
18
9
10
2
2
N/A
1
N/A
114
4
2
0 (7)
17
11
2
N/A
1
N/A
37
8
2
1
17
11
2
N/A
1
N/A
42
16
4
2
17
10 (13)
2
N/A
1
N/A
52
4
2
0
14
10
2
2
1
34
33
8
2
1
14
10
2
2
1
39
38
16
4
2
14
10
2
2
1
50
49
4
1
1
15
9
2
2
1
34
33
8
1
(9)
1
15
9
2
2
1
38
37
16
2
(9)
2
15
9
2
2
1
48
47
4
1
1
14
7
2
2
1
29
28
8
1
1
14
7
2
2
1
33
35
16
2
2
14
7
2
2
1
43
42
36
2
2
19
3
(10)
2 (15)
2
1
66
65
72
2
4
18
3
(10)
2 (15)
2
1
10
102
18
2
1
19
2
4 (16)
2
1
48
47
QDR II
×18
SRAM
36
2
2
18
2
4 (16)
2
1
66
65
×36
72
2
4
17
2
4 (16)
2
1
103
102
LPDDR
×8
2
x4
DDR4
SDRA
M (12)
DDR3
SDRA
M (5)
(6)
DDR2
SDRA
M (8)
DDR
SDRA
M (6)
x8
×4
×8
×4
×8
×4
×8
QDR II ×18
+ / II+
Xtreme ×36
SRAM
(7)
(7)
(7)
RUP/
RDN
Pins
RZQ
Pins
(11)
(4)
Total
Pins
(with
RUP/
RDN
pins)
Total Pins
(with RZQ
pin)
(18)
×9
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
3-3
Interface Pins
External
Memory
Interface
QDR
IV
SRAM
(20)
FPGA
DQS
Group
Size
Numb
er of
DQ
Pins
Numb Numb Numb Numb
er of
er of
er of
er of
DQS/ Contro Addres Comm
CQ/QK l Pins
s Pins
and
(3)
Pins
Pins
(19)
Numb
er of
Clock
Pins
x18
36
8
5
22
7
10 (17)
N/A
1
N/A
89
x36
72
8
5
21
7
10 (17)
N/A
1
N/A
124
18
4
2
20
8 (10)
6 (17)
N/A
1
N/A
59
36
8
2
19
8 (10)
6 (17)
N/A
1
N/A
80
9
2
1
22
7
(10)
4 (17)
2
1
47
46
18
4
1
21
7
(10)
4 (17)
2
1
57
56
36
4
1
20
7
(10)
6 (17)
2
1
76
75
RLDRA
M3
x9
CIO (14)
RLDRA ×9
M
II CIO
×18
Planning Pin and FPGA Resources
Send Feedback
RUP/
RDN
Pins
RZQ
Pins
(11)
(4)
Total
Pins
(with
RUP/
RDN
pins)
Total Pins
(with RZQ
pin)
Altera Corporation
3-4
EMI_DG
2014.12.15
Interface Pins
External
Memory
Interface
FPGA
DQS
Group
Size
Numb
er of
DQ
Pins
Numb Numb Numb Numb
er of
er of
er of
er of
DQS/ Contro Addres Comm
CQ/QK l Pins
s Pins
and
(3)
Pins
Pins
(19)
Numb
er of
Clock
Pins
RUP/
RDN
Pins
(4)
RZQ
Pins
(11)
Total
Pins
(with
RUP/
RDN
pins)
Total Pins
(with RZQ
pin)
Notes to table:
1. These example pin counts are derived from memory vendor data sheets. Check the exact number of
addresses and command pins of the memory devices in the configuration that you are using.
2. PLL and DLL input reference clock pins are not counted in this calculation.
3. The number of address pins depends on the memory device density.
4. Some DQS or DQ pins are dual purpose and can also be required as RUP, RDN, or configuration pins. A
DQS group is lost if you use these pins for configuration or as RUP or RDN pins for calibrated OCT. Pick
RUP and RDN pins in a DQS group that is not used for memory interface purposes. You may need to
place the DQS and DQ pins manually if you place the RUP and RDN pins in the same DQS group pins.
5. The TDQS and TDQS# pins are not counted in this calculation, as these pins are not used in the memory
controller.
6. Numbers are based on 1-GB memory devices.
7. Altera® FPGAs do not support DM pins in ×4 mode with differential DQS signaling.
8. Numbers are based on 2-GB memory devices without using differential DQS, RDQS, and RDQS# pin
support.
9. Assumes single ended DQS mode. DDR2 SDRAM also supports differential DQS, which makes these
DQS and DM numbers identical to DDR3 SDRAM.
10.The QVLD pin that indicates read data valid from the QDR II+ SRAM or RLDRAM II device, is
included in this number.
11. RZQ pins are supported by Arria V, Arria 10, Cyclone V, and Stratix V devices.
12.Numbers are based on 2-GB discrete device with alert flag and address and command parity pins
included.
13.DDR4 x16 devices support only a bank group of 1.
14.Numbers are based on a 576-MB device.
15.These numbers include K and K# clock pins. The CQ and CQ# clock pins are calculated in a separate
column.
16.These numbers include K, K#, C, and C# clock pins. The CQ and CQ# clock pins are calculated in a
separate column.
17.These numbers include CK, CK#, DK, and DK# clock pins. QK and QK# clock pins are calculated in a
separate column.
18.This number is based on a 36864-kilobit device.
19.For DDR,DDR2,DDR3,LPDDR2 SDRAM, RLDRAM 3, RLDRAM II, they are DM pins. For QDR II/II
+/Extreme, they are BWS pins. For DDR4, they are DM/DBI pins. For QDR IV, they are DINVA[1:0],
DINVB[1:0], and AINV.
20.This number is based on a 144-Mbit device with address bus inversion and data bus inversion bits
included.
Note: Maximum interface width varies from device to device depending on the number of I/O pins and
DQS or DQ groups available. Achievable interface width also depends on the number of address
and command pins that the design requires. To ensure adequate PLL, clock, and device routing
resources are available, you should always test fit any IP in the Quartus® II software before PCB
sign-off.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Estimating Pin requirements
3-5
Altera devices do not limit the width of external memory interfaces beyond the following requirements:
• Maximum possible interface width in any particular device is limited by the number of DQS groups
available.
• Sufficient clock networks are available to the interface PLL as required by the IP.
• Sufficient spare pins exist within the chosen bank or side of the device to include all other address and
command, and clock pin placement requirements.
• The greater the number of banks, the greater the skew, hence Altera recommends that you always
generate a test project of your desired configuration and confirm that it meets timing.
Estimating Pin requirements
You should use the Quartus II software for final pin fitting; however, you can estimate whether you have
enough pins for your memory interface using the following steps:
1. Find out how many read data pins are associated per read data strobe or clock pair, to determine which
column of the DQS and DQ group availability (×4, ×8/×9, ×16/×18, or ×32/×36) refer to the pin table.
2. Check the device density and package offering information to see if you can implement the interface in
one I/O bank or on one side or on two adjacent sides.
Note: If you target Arria II GX devices and you do not have enough I/O pins to have the memory
interface on one side of the device, you may place them on the other side of the device. Arria II
GX devices allow a memory interface to span across the top and bottom, or left and right sides
of the device. For any interface that spans across two different sides, use the wraparound
interface performance.
3. Calculate the number of other memory interface pins needed, including any other clocks (write clock
or memory system clock), address, command, RUP, RDN, RZQ, and any other pins to be connected to
the memory components. Ensure you have enough pins to implement the interface in one I/O bank or
one side or on two adjacent sides.
Note: 1. The DQS groups in Arria II GX devices reside on I/O modules, each consisting of 16 I/O
pins. You can only use a maximum of 12 pins per I/O modules when the pins are used as
DQS or DQ pins or HSTL/SSTL output or HSTL/SSTL bidirectional pins. When counting
the number of available pins for the rest of your memory interface, ensure you do not count
the leftover four pins per I/O modules used for DQS, DQ, address and command pins. The
leftover four pins can be used as input pins only.
2. Refer to the device pin-out tables and look for the blank space in the relevant DQS group
column to identify the four pins that cannot be used in an I/O module for Arria II GX
devices.
3. If you enable Ping Pong PHY, the IP core exposes two independent Avalon interfaces to user
logic, and a single external memory interface of double the width for the data bus and the
CS#, CKE, ODT, and CK/CK# signals. The rest remain as if in single interface configuration.
You should always try the proposed pin-outs with the rest of your design in the Quartus II software (with
the correct I/O standard and OCT connections) before finalizing the pin-outs, as there may be some
interactions between modules that are illegal in the Quartus II software that you may not find out unless
you try compiling a design and use the Quartus II Pin Planner.
The following sections describe the pins for each memory interface.
DDR, DDR2, DDR3, and DDR4 SDRAM Clock Signals
DDR, DDR2, DDR3, and DDR4 SDRAM devices use CK and CK# signals to clock the address and
command signals into the memory. Furthermore, the memory uses these clock signals to generate the
DQS signal during a read through the DLL inside the memory. The SDRAM data sheet specifies the
following timings:
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-6
EMI_DG
2014.12.15
DDR, DDR2, DDR3, and DDR4 SDRAM Command and Address Signals
•
•
•
•
tDQSCK is the skew between the CK or CK# signals and the SDRAM-generated DQS signal
tDSH is the DQS falling edge from CK rising edge hold time
tDSS is the DQS falling edge from CK rising edge setup time
tDQSS is the positive DQS latching edge to CK rising edge
SDRAM have a write requirement (tDQSS) that states the positive edge of the DQS signal on writes must be
within ± 25% (± 90°) of the positive edge of the SDRAM clock input. Therefore, you should generate the
CK and CK# signals using the DDR registers in the IOE to match with the DQS signal and reduce any
variations across process, voltage, and temperature. The positive edge of the SDRAM clock, CK, is aligned
with the DQS write to satisfy tDQSS.
DDR3 SDRAM can use a daisy-chained control address command (CAC) topology, in which the memory
clock must arrive at each chip at a different time. To compensate for the flight-time skew between devices
when using the CAC topology, you should employ write leveling.
DDR, DDR2, DDR3, and DDR4 SDRAM Command and Address Signals
Command and address signals in SDRAM devices are clocked into the memory device using the CK or
CK# signal. These pins operate at single data rate (SDR) using only one clock edge. The number of
address pins depends on the SDRAM device capacity. The address pins are multiplexed, so two clock
cycles are required to send the row, column, and bank address.
For DDR, DDR2, and DDR3, the CS#, RAS#, CAS#, WE#, CKE, and ODT pins are SDRAM command and
control pins. For DDR3 SDRAM, certain topologies such as RDIMM and LRDIMM include RESET#,
PAR_IN(1.5V LVCMOS I/O standard), and ERR_OUT# (SSTL-15 I/O standard).
The DDR2 SDRAM command and address inputs do not have a symmetrical setup and hold time
requirement with respect to the SDRAM clocks, CK, and CK#.
Although DDR4 operates in fundamentally the same way as other SDRAM, there are no longer dedicated
pins for RAS#, CAS#, and WE#, as those are now shared with higher-order address pins. DDR4 still has
CS#, CKE, ODT, and RESET# pins, similar to DDR3. DDR4 introduces some additional pins, including
the ACT# (activate) pin and BG (bank group) pins. Depending on the memory format and the functions
enabled, the following pins might also exist in DDR4: PAR (address command parity) pin and the
ALERT# pin.
For Altera SDRAM high-performance controllers in Stratix III and Stratix IV devices, the command and
address clock is a dedicated PLL clock output whose phase can be adjusted to meet the setup and hold
requirements of the memory clock. The command and address clock is also typically half-rate, although a
full-rate implementation can also be created. The command and address pins use the DDIO output
circuitry to launch commands from either the rising or falling edges of the clock. The chip select CS#,
clock enable CKE, and ODT pins are only enabled for one memory clock cycle and can be launched from
either the rising or falling edge of the command and address clock signal. The address and other
command pins are enabled for two memory clock cycles and can also be launched from either the rising
or falling edge of the command and address clock signal.
In Arria II GX devices, the command and address clock is either shared with the write_clk_2x or the
mem_clk_2x clock.
DDR, DDR2, DDR3, and DDR4 SDRAM Data, Data Strobes, DM/DBI, and Optional
ECC Signals
DDR SDRAM uses bidirectional single-ended data strobe (DQS); DDR3 and DDR4 SDRAM use
bidirectional differential data strobes. The DQSn pins in DDR2 SDRAM devices are optional but
recommended for DDR2 SDRAM designs operating at more than 333 MHz. Differential DQS operation
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
DDR, DDR2, DDR3, and DDR4 SDRAM Data, Data Strobes, DM/DBI, and Optional ECC
Signals
3-7
enables improved system timing due to reduced crosstalk and less simultaneous switching noise on the
strobe output drivers. The DQ pins are also bidirectional.
Regardless of interface width, DDR SDRAM always operates in ×8 mode DQS groups. DQ pins in DDR2,
DDR3, and DDR4 SDRAM interfaces can operate in either ×4 or ×8 mode DQS groups, depending on
your chosen memory device or DIMM, regardless of interface width. The ×4 and ×8 configurations use
one pair of bidirectional data strobe signals, DQS and DQSn, to capture input data. However, two pairs of
data strobes, UDQS and UDQS# (upper byte) and LDQS and LDQS# (lower byte), are required by the
×16 configuration devices. A group of DQ pins must remain associated with its respective DQS and DQSn
pins.
The DQ signals are edge-aligned with the DQS signal during a read from the memory and are centeraligned with the DQS signal during a write to the memory. The memory controller shifts the DQ signals
by –90 degrees during a write operation to center align the DQ and DQS signals. The PHY IP delays the
DQS signal during a read, so that the DQ and DQS signals are center aligned at the capture register. Altera
devices use a phase-locked loop (PLL) to center-align the DQS signal with respect to the DQ signals
during writes and Altera devices use dedicated DQS phase-shift circuitry to shift the incoming DQS signal
during reads. The following figure shows an example where the DQS signal is shifted by 90 degrees for a
read from the DDR2 SDRAM.
Figure 3-1: Edge-aligned DQ and DQS Relationship During a DDR2 SDRAM Read in Burst-of-Four Mode
DQS at
FPGA Pin
DQ at
FPGA Pin
DQS at DQ
IOE registers
DQ at DQ
IOE registers
Preamble
Postamble
DQS phase shift
The following figure shows an example of the relationship between the data and data strobe during a
burst-of-four write.
Figure 3-2: DQ and DQS Relationship During a DDR2 SDRAM Write in Burst-of-Four Mode
DQS at
FPGA Pin
DQ at
FPGA Pin
The memory device's setup (tDS) and hold times (tDH) for the DQ and DM pins during writes are relative
to the edges of DQS write signals and not the CK or CK# clock. Setup and hold requirements are not
necessarily balanced inDDR2 and DDR3 SDRAM, unlike in DDR SDRAM devices.
The DQS signal is generated on the positive edge of the system clock to meet the tDQSS requirement. DQ
and DM signals use a clock shifted –90 degrees from the system clock, so that the DQS edges are centered
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-8
EMI_DG
2014.12.15
DDR, DDR2, DDR3, and DDR4 SDRAM DIMM Options
on the DQ or DM signals when they arrive at the DDR2 SDRAM. The DQS, DQ, and DM board trace
lengths need to be tightly matched (within 20 ps).
The SDRAM uses the DM pins during a write operation. Driving the DM pins low shows that the write is
valid. The memory masks the DQ signals if the DM pins are driven high. To generate the DM signal,
Altera recommends that you use the spare DQ pin within the same DQS group as the respective data, to
minimize skew.
The DM signal's timing requirements at the SDRAM input are identical to those for DQ data. The DDR
registers, clocked by the –90 degree shifted clock, create the DM signals.
DDR4 supports DM similarly to other SDRAM, except that in DDR4 DM is active LOW and bidirec‐
tional, because it supports Data Bus Inversion (DBI) through the same pin. DM is multiplexed with DBI
by a Mode Register setting whereby only one function can be enabled at a time. DBI is an input/output
identifying whether to store/output the true or inverted data. When enabled, if DBI is LOW, during a
write operation the data is inverted and stored inside the DDR4 SDRAM; during a read operation, the
data is inverted and output. The data is not inverted if DBI is HIGH. For Arria 10, the DBI (for DDR4)
and the DM (for DDR3) pins in each DQS group must be paired with a DQ pin for proper operation.
Some SDRAM modules support error correction coding (ECC) to allow the controller to detect and
automatically correct error in data transmission. The 72-bit SDRAM modules contain eight extra data
pins in addition to 64 data pins. The eight extra ECC pins should be connected to a single DQS or DQ
group on the FPGA.
DDR, DDR2, DDR3, and DDR4 SDRAM DIMM Options
Unbuffered DIMMs (UDIMMs) require one set of chip-select (CS#), on-die termination (ODT), clockenable (CKE), and clock pair (CK/CKn) for every physical rank on the DIMM. Registered DIMMs use only
one pair of clocks. DDR3 registered DIMMs require a minimum of two chip-select signals, while DDR4
requires only one.
Compared to the unbuffered DIMMs (UDIMM), registered and load-reduced DIMMs (RDIMMs and
LRDIMMs, respectively) use at least two chip-select signals CS#[1:0] in DDR3 and DDR4. Both
RDIMMs and LRDIMMs require an additional parity signal for address, RAS#, CAS#, and WE# signals. A
parity error signal is asserted by the module whenever a parity error is detected.
LRDIMMs expand on the operation of RDIMMs by buffering the DQ/DQS bus. Only one electrical load is
presented to the controller regardless of the number of ranks, therefore only one clock enable (CKE) and
ODT signal are required for LRDIMMs, regardless of the number of physical ranks. Because the number
of physical ranks may exceed the number of physical chip-select signals, DDR3 LRDIMMs provide a
feature known as rank multiplication, which aggregates two or four physical ranks into one larger logical
rank. Refer to LRDIMM buffer documentation for details on rank multiplication.
The following table shows UDIMM and RDIMM pin options for DDR, DDR2, and DDR3.
Table 3-2: UDIMM and RDIMM Pin Options for DDR, DDR2, and DDR3
Pins
Data
Altera Corporation
UDIMM Pins (Single
Rank)
UDIMM Pins
(Dual Rank)
RDIMM Pins (Single
Rank)
RDIMM Pins
(Dual Rank)
72 bit DQ[71:0] =
72 bit DQ[71:0] =
72 bit DQ[71:0] =
72 bit DQ[71:0]=
{CB[7:0], DQ[63:0]}
{CB[7:0], DQ[63:0]}
{CB[7:0], DQ[63:0]}
{CB[7:0],
DQ[63:0]}
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
DDR, DDR2, DDR3, and DDR4 SDRAM DIMM Options
Pins
UDIMM Pins (Single
Rank)
Data
Mask
Data
Strobe
UDIMM Pins
(Dual Rank)
DM[8:0]
DM[8:0]
Clock
(Dual Rank)
DM[8:0]
DM[8:0]
DQS[8:0] and
DQS#[8:0]
DQS[8:0] and
DQS#[8:0]
DQS[8:0] and
DQS#[8:0]
BA[2:0], A[15:0]–
BA[2:0], A[15:0]–
BA[2:0], A[15:0]–
BA[2:0], A[15:0]–
2 GB: A[13:0]
2 GB: A[13:0]
2 GB: A[13:0]
2 GB: A[13:0]
4 GB: A[14:0]
4 GB: A[14:0]
4 GB: A[14:0]
4 GB: A[14:0]
8 GB: A[15:0]
8 GB: A[15:0]
8 GB: A[15:0]
8 GB: A[15:0]
CK0/CK0#
CK0/CK0#, CK1/CK1#
CK0/CK0#
CK0/CK0#
ODT[1:0], CS#[1:0],
CKE[1:0], RAS#, CAS#,
WE#
ODT, CS#[1:0], CKE,
RAS#, CAS#, WE#
ODT[1:0],
CS#[1:0],
CKE[1:0], RAS#,
CAS#, WE#
PAR_IN, ERR_OUT
PAR_IN, ERR_OUT
SA[2:0], SDA, SCL,
EVENT#, RESET#
SA[2:0], SDA, SCL,
EVENT#, RESET#
Comman ODT, CS#, CKE, RAS#,
d
CAS#, WE#
Parity
Other
Pins
RDIMM Pins
DQS[8:0] and
(1) DQS#[8:0]
Address
RDIMM Pins (Single
Rank)
3-9
—
—
SA[2:0], SDA, SCL,
EVENT#, RESET#
SA[2:0], SDA, SCL,
EVENT#, RESET#
Note to Table:
1. DQS#[8:0] is optional in DDR2 SDRAM and is not supported in DDR SDRAM interfaces.
The following table shows LRDIMM pin options forDDR3.
Table 3-3: LRDIMM Pin Options for DDR3
Pins
Data
LRDIMM
Pins (x4,
2R)
72 bit DQ
[71:0]=
LRDIMM
(x4, 4R,
RMF=1) 3
72 bit DQ
[71:0]=
LRDIMM
LRDIMM
LRDIMM
Pins (x4,
Pins (x4,
Pins (x4,
4R, RMF=2) 8R, RMF=2) 8R, RMF=4)
72 bit DQ
[71:0]=
72 bit DQ
[71:0]=
72 bit DQ
[71:0]=
LRDIMM
(x8, 4R,
RMF=1) 3
72 bit DQ
[71:0]=
LRDIMM Pins (x8,
4R, RMF=2)
72 bit DQ
[71:0]=
{CB [7:0], {CB [7:0], {CB [7:0], {CB [7:0], {CB [7:0], {CB [7:0], {CB [7:0], DQ
DQ
DQ
DQ
DQ
DQ
DQ
[63:0]}
[63:0]}
[63:0]}
[63:0]}
[63:0]}
[63:0]}
[63:0]}
Data Mask
—
Planning Pin and FPGA Resources
Send Feedback
—
—
—
—
DM[8:0]
DM[8:0]
Altera Corporation
3-10
EMI_DG
2014.12.15
DDR, DDR2, DDR3, and DDR4 SDRAM DIMM Options
Pins
Data
Strobe
Address
Clock
LRDIMM
Pins (x4,
2R)
LRDIMM
LRDIMM
LRDIMM
Pins (x4,
Pins (x4,
Pins (x4,
4R, RMF=2) 8R, RMF=2) 8R, RMF=4)
DQS[17:0] DQS[17:0] DQS[17:0]
and
and
and
LRDIMM
(x8, 4R,
RMF=1) 3
DQS[17:0] DQS[17:0] DQS[8:0]
and
and
and
LRDIMM Pins (x8,
4R, RMF=2)
DQS[8:0] and
DQS#[8:0]
DQS#[17:0 DQS#[17:0
]
]
DQS#[17:0 DQS#[17:0 DQS#[17:0
]
]
]
DQS#[8:0]
BA[2:0],
A[15:0]
2GB:A[13:
0]
4GB:A[14:
0]
8GB:A[15:
0]
BA[2:0],
A[15:0]
2GB:A[13:
0]
4GB:A[14:
0]
8GB:A[15:
0]
BA[2:0],
A[16:0]
4GB:A[14:
0]
8GB:A[15:
0]
16GB:A[16
:0]
BA[2:0],
A[16:0]
4GB:A[14:
0]
8GB:A[15:
0]
16GB:A[16
:0]
BA[2:0],
A[17:0]
16GB:A[15
:0]
32GB:A[16
:0]
64GB:A[17
:0]
BA[2:0],
A[15:0]
2GB:A[13:
0]
4GB:A[14:
0]
8GB:A[15:
0]
BA[2:0],
A[16:0]
-4GB:A[14:0]
8GB:A[15:0]
16GB:A[16:0]
CK0/CK0#
CK0/CK0#
CK0/CK0#
CK0/CK0#
CK0/CK0#
CK0/CK0#
CK0/CK0#
CS[1:0]#,
CKE,
RAS#,
CAS#, WE#
ODT,
CS[3:0]#,
CKE,
RAS#,
CAS#, WE#
ODT,
CS[2:0]#,
CKE,
RAS#,
CAS#, WE#
ODT,
CS[3:0]#,
CKE,
RAS#,
CAS#, WE#
ODT,
CS[3:0]#,
CKE,
RAS#,
CAS#, WE#
ODT,
CS[3:0]#,
CKE,
RAS#,
CAS#, WE#
ODT,
CS[2:0]#,
CKE, RAS#,
CAS#, WE#
PAR_IN,
ERR_OUT
PAR_IN,
ERR_OUT
PAR_IN,
ERR_OUT
PAR_IN,
ERR_OUT
PAR_IN,
ERR_OUT
PAR_IN,
ERR_OUT
PAR_IN, ERR_
OUT
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
Command ODT,
Parity
LRDIMM
(x4, 4R,
RMF=1) 3
Other Pins SA[2:0],
SDA, SCL,
EVENT#,
RESET#
Notes to Table:
1. DM pins are not used for LRDIMMs that are constructed using ×4 components.
2. S#[2] is treated as A[16] (whose corresponding pins are labeled as CS#[2] or RM[0]) and S#[3] is
treated as A[17] (whose corresponding pins are labeled as CS#[3] or RM[1]) for certain rank multipli‐
cation configuration.
3. R = rank, RMF = rank multiplication factor.
The following table shows UDIMM, RDIMM, and LRDIMM pin options for DDR4.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
QDR II, QDR II+, and QDR II+ Xtreme SRAM Clock Signals
3-11
Table 3-4: UDIMM, RDIMM, and LRDIMM Pin Options for DDR4
Pins
Data
Data
Mask
Date
Strobe
Address
Clock
UDIMM Pins
(Single Rank)
RDIMM Pins
(Dual Rank)
LRDIMM Pins
(Dual Rank)
LRDIMM Pins (Quad
Rank)
72 bit
72 bit
72 bit
72 bit
DQ[71:0]=
DQ[71:0]=
DQ[71:0]=
DQ[71:0]=
DQ[71:0]=
{CB[7:0],
{CB[7:0],
{CB[7:0],
{CB[7:0],
{CB[7:0],
DQ[63:0]}
DQ[63:0]}
DQ[63:0]}
DQ[63:0]}
DQ[63:0]}
DM#/
DM#/
DBI#[8:0] (1) DBI#[8:0](1)
DM#/
DBI#[8:0](1)
DM#/
DBI#[8:0](1)
DQS[8:0]
DQS[8:0]
DQS[8:0]
and
and
DQS[8:0]
DQS[8:0]
DQS#[8:0]
DQS#[8:0]
DQS#[8:0]
DQS#[8:0]
DQS#[8:0]
BA[1:0],
BG[1:0],
A[16:0] -
BA[1:0],
BG[1:0],
A[16:0] -
BA[1:0],
BG[1:0],
A[17:0] -
BA[1:0],
BG[1:0],
A[17:0] -
BA[1:0],
BG[1:0],
A[17:0] -
BA[1:0],
BG[1:0],
A[17:0] -
32GB: A[15:0]
and
and
72 bit DQ[71:0]=
{CB[7:0],
DQ[63:0]}
—
and
4GB:
8GB:
4GB:
8GB:
16GB:
A[14:0]
A[14:0]
A[14:0]
A[14:0]
A[15:0]
—
DQS[8:0] and
DQS#[8:0]
8GB:
16GB:
8GB:
16GB:
A[15:0]
A[15:0]
A[15:0]
A[15:0]
CK0/CK0#
CK0/CK0#,
CK1/CK1#
CK0/CK0#
CK0/CK0#
CK0/CK0#
CK0/CK0#
ODT[1:0],
CS#[1:0],
CKE[1:0],
ACT#, RAS#/
A16, CAS#/
A15, WE#/
A14
ODT, CS#,
CKE, ACT#,
RAS#/A16,
CAS#/A15,
WE#/A14
ODT[1:0],
CS#[1:0],
CKE, ACT#,
RAS#/A16,
CAS#/A15,
WE#/A14
ODT,
CS#[1:0],
CKE, ACT#,
RAS#/A16,
CAS#/A15,
WE#/A14
ODT, CS#[3:0],
CKE, ACT#,
RAS#/A16,
CAS#/A15, WE#/
A14
RAS#/A16,
CAS#/A15,
WE#/A14
Other
Pins
RDIMM Pins
(Single Rank)
72 bit
Comman ODT, CS#,
d
CKE, ACT#,
Parity
UDIMM Pins
(Dual Rank)
PAR, ALERT# PAR, ALERT# PAR, ALERT# PAR, ALERT# PAR, ALERT# PAR, ALERT#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0],
SDA, SCL,
EVENT#,
RESET#
SA[2:0], SDA,
SCL, EVENT#,
RESET#
Notes to Table:
1. DM/DBI pins are available only for DIMMs constructed using x8 or greater components.
2. Minimum address width for DDR4 is always 17 bits regardless of density, due to a fixed address bit
used as command.
QDR II, QDR II+, and QDR II+ Xtreme SRAM Clock Signals
QDR II, QDR II+ and QDR II+ Xtreme SRAM devices have two pairs of clocks, listed below.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-12
EMI_DG
2014.12.15
QDR II, QDR II+ and QDR II+ Xtreme SRAM Command Signals
• Input clocks K and K#
• Echo clocks CQ and CQ#
In addition, QDR II devices have a third pair of input clocks, C and C#.
The positive input clock, K, is the logical complement of the negative input clock, K#. Similarly, C and CQ
are complements of C# and CQ#, respectively. With these complementary clocks, the rising edges of each
clock leg latch the DDR data.
The QDR II SRAM devices use the K and K# clocks for write access and the C and C# clocks for read
accesses only when interfacing more than one QDR II SRAM device. Because the number of loads that the
K and K# clocks drive affects the switching times of these outputs when a controller drives a single QDR
II SRAM device, C and C# are unnecessary. This is because the propagation delays from the controller to
the QDR II SRAM device and back are the same. Therefore, to reduce the number of loads on the clock
traces, QDR II SRAM devices have a single-clock mode, and the K and K# clocks are used for both reads
and writes. In this mode, the C and C# clocks are tied to the supply voltage (VDD). Altera external
memory IP supports only single-clock mode.
For QDR II, QDR II+, or QDR II+ Xtreme SRAM devices, the rising edge of K is used to capture synchro‐
nous inputs to the device and to drive out data through Q[x:0], in similar fashion to QDR II SRAM
devices in single clock mode. All accesses are initiated on the rising edge of K .
CQ and CQ# are the source-synchronous output clocks from the QDR II, QDR II+, or QDR II+
Xtreme SRAM device that accompanies the read data.
The Altera device outputs the K and K# clocks, data, address, and command lines to the QDR II, QDR II+,
or QDR II+ Xtreme SRAM device. For the controller to operate properly, the write data (D), address (A),
and control signal trace lengths (and therefore the propagation times) should be equal to the K and K#
clock trace lengths.
You can generate K and K# clocks using any of the PLL registers via the DDR registers. Because of strict
skew requirements between K and K# signals, use adjacent pins to generate the clock pair. The propagation
delays for K and K# from the FPGA to the QDR II, QDR II+, or QDR II+ Xtreme SRAM device are equal
to the delays on the data and address (D, A) signals. Therefore, the signal skew effect on the write and read
request operations is minimized by using identical DDR output circuits to generate clock and data inputs
to the memory.
QDR II, QDR II+ and QDR II+ Xtreme SRAM Command Signals
QDR II, QDR II+ and QDR II+ Xtreme SRAM devices use the write port select (WPS#) signal to control
write operations and the read port select (RPS#) signal to control read operations.
QDR II, QDR II+ and QDR II+ Xtreme SRAM Address Signals
QDR II, QDR II+ and QDR II+ Xtreme SRAM devices use one address bus (A) for both read and write
accesses.
QDR II, QDR II+ and QDR II+ Xtreme SRAM Data, BWS, and QVLD Signals
QDR II, QDR II+ and QDR II+ Xtreme SRAM devices use two unidirectional data buses: one for
writes (D) and one for reads (Q).
At the pin, the read data is edge-aligned with the CQ and CQ# clocks while the write data is center-aligned
with the K and K# clocks (see the following figures).
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
QDR IV SRAM Clock Signals
3-13
Figure 3-3: Edge-aligned CQ and Q Relationship During QDR II+ SRAM Read
CQ at
FPGA Pin
CQ# at
FPGA Pin
Q at
FPGA Pin
CQ at
Capture Register
CQ# at
Capture Register
Q at
Capture Register
DQS phase
shift
Figure 3-4: Center-aligned K and D Relationship During QDR II+ SRAM Write
K at
FPGA Pin
K# at
FPGA Pin
D at
FPGA Pin
The byte write select signal (BWS#) indicates which byte to write into the memory device.
QDR II+ and QDR II+ Xtreme SRAM devices also have a QVLD pin that indicates valid read data. The
QVLD signal is edge-aligned with the echo clock and is asserted high for approximately half a clock cycle
before data is output from memory.
Note: The Altera external memory interface IP does not use the QVLD signal.
QDR IV SRAM Clock Signals
QDR IV SRAM devices have three pairs of differential clocks.
The three QDR IV differential clocks are as follows:
• Address and Command Input Clocks CK and CK#.
• Data Input Clocks DKx and DKx#, where x can be A or B, referring to the respective ports.
• Data Output Clocks, QKx and QKx#, where x can be A or B, referring to the respective ports.
QDR IV SRAM devices have two independent bidirectional data ports, Port A and Port B, to support
concurrent read/write transactions on both ports. These data ports are controlled by a common address
port clocked by CK and CK# in double data rate. There is one pair of CK and CK# pins per QDR IV SRAM
device.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-14
EMI_DG
2014.12.15
QDR IV SRAM Commands and Addresses, AP, and AINV Signals
DKx and DKx# samples the DQx inputs on both rising and falling edges. Similarly, QKx and QKx# samples the
DQx outputs on both rising and falling edges.
QDR IV SRAM devices employ two sets of free running differential clocks to accompany the data. The
DKx and DKx# clocks are the differential input data clocks used during writes. The QKx and QKx# clocks are
the output data clocks used during reads. Each pair of DKx and DKx#, or QKx and QKx# clocks are
associated with either 9 or 18 data bits.
The Altera external memory interface IP requires that the polarity of the QKB and QKB# pins be swapped.
In other words, the QKB pins on the memory side must be connected to the negative pins of the input
buffers on the FPGA side, and the QKB# pins on the memory side must be connected to the positive pins of
the input buffers on the FPGA side.
QDR IV SRAM devices are available in x18 and x36 bus width configurations. The exact clock-data
relationships are as follows:
• For ×18 data bus width configuration, there are 9 data bits associated with each pair of write and read
clocks. So, there are two pairs of DKx and DKx# pins and two pairs of QKx or QKx# pins.
• For ×36 data bus width configuration, there are 18 data bits associated with each pair of write and read
clocks. So, there are two pairs of DKx and DKx# pins and two pairs of QKx or QKx# pins.
There are tCKDK timing requirements for skew between CK and DKx or CK# and DKx# .Similarly, there are
tCKQK timing requirements for skew between CK and QKx or CK# and QKx# .
QDR IV SRAM Commands and Addresses, AP, and AINV Signals
The CK and CK# signals clock the commands and addresses into the memory devices. There is one pair of
CK and CK# pins per QDR IV SRAM device. These pins operate at double data rate using both rising and
falling edge. The rising edge of CK latches the addresses for port A, while the falling edge of CK latches the
addresses inputs for port B.
QDR IV SRAM devices have the ability to invert all address pins to reduce potential simultaneous
switching noise. Such inversion is accomplished using the Address Inversion Pin for
Address and Address Parity Inputs (AINV), which assumes an address parity of 0, and
indicates whether the address bus and address parity are inverted.
The above features are available as Option Control under Configuration Register Settings in Arria 10
EMIF IP. The commands and addresses must meet the memory address and command setup (tAS, tCS)
and hold (tAH, tCH) time requirements.
QDR IV SRAM Data, DINV, and QVLD Signals
The read data is edge-aligned with the QKA or QKB# clocks while the write data is center-aligned with the
clocks.
DKA and DKB#
QK is shifted by the DLL so that the clock edges can be used to clock in the DQ at the capture register.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
RLDRAM II and RLDRAM 3 Clock Signals
3-15
Figure 3-5: Edge-Aligned DQ and QK Relationship During Read
QK at FPGA Pin
DQ at FPGA Pin
QK at Capture
Register
DQ at Capture
Register
Figure 3-6: Center-Aligned DQ and DK Relationship During Write
DK at FPGA Pin
DQ at FPGA Pin
The Altera external memory interface IP requires that the polarity of the QKB and QKB# pins be swapped.
In other words, the QKB pins on the memory side need to be connected to the negative pins of the input
buffers on the FPGA side, and the QKB# pins on the memory side need to be connected to the positive pins
of the input buffers on the FPGA side.
The synchronous read/write input, RWx#, is used in conjunction with the synchronous load input, LDx#,
to indicate a Read or Write Operation. For port A, these signals are sampled on the rising edge of CK
clock, for port B, these signals are sampled on the falling edge of CK clock.
QDR IV SRAM devices have the ability to invert all data pins to reduce potential simultaneous switching
noise, using the Data Inversion Pin for DQ Data Bus, DINVx. This pin indicates whether DQx pins are
inverted or not.
The above feature is available as Option Control under Configuration Register Settings in Arria 10
EMIF IP.
QDR IV SRAM devices also have a QVLD pin which indicates valid read data. The QVLD signal is edgealigned with QKx or QKx# and is high approximately one-half clock cycle before data is output from the
memory.
Note: The Altera external memory interface IP does not use the QVLD signal.
RLDRAM II and RLDRAM 3 Clock Signals
RLDRAM II and RLDRAM 3 devices use CK and CK# signals to clock the command and address bus in
single data rate (SDR). There is one pair of CK and CK# pins per RLDRAM II or RLDRAM 3 device.
Instead of a strobe, RLDRAM II and RLDRAM 3 devices use two sets of free-running differential clocks to
accompany the data. The DK and DK# clocks are the differential input data clocks used during writes while
the QK or QK# clocks are the output data clocks used during reads. Even though QK and QK# signals are not
differential signals according to the RLDRAM II and RLDRAM 3 data sheets, Micron treats these signals
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-16
EMI_DG
2014.12.15
RLDRAM II and RLDRAM 3 Commands and Addresses
as such for their testing and characterization. Each pair of DK and DK#, or QK and QK# clocks are associated
with either 9 or 18 data bits.
The exact clock-data relationships are as follows:
• RLDRAM II: For ×36 data bus width configuration, there are 18 data bits associated with each pair of
write and read clocks. So, there are two pairs of DK and DK# pins and two pairs of QK or QK# pins.
• RLDRAM 3: For ×36 data bus width configuration, there are 18 data bits associated with each pair of
write clocks. There are 9 data bits associated with each pair of read clocks. So, there are two pairs of DK
and DK# pins and four pairs of QK and QK# pins.
• RLDRAM II: For ×18 data bus width configuration, there are 18 data bits per one pair of write clocks
and nine data bits per one pair of read clocks. So, there is one pair of DK and DK# pins, but there are two
pairs of QK and QK# pins.
• RLDRAM 3: For ×18 data bus width configuration, there are 9 data bits per one pair of write clocks
and nine data bits per one pair of read clocks. So, there are two pairs of DK and DK# pins, and two pairs
of QK and QK# pins
• RLDRAM II: For ×9 data bus width configuration, there are nine data bits associated with each pair of
write and read clocks. So, there is one pair of DK and DK# pins and one pair of QK and QK# pins each.
• RLDRAM 3: RLDRAM 3 does not have the ×9 data bus width configuration.
There are tCKDK timing requirements for skew between CK and DK or CK# and DK#.
For both RLDRAM II and RLDRAM 3, because of the loads on these I/O pins, the maximum frequency
you can achieve depends on the number of memory devices you are connecting to the Altera device.
Perform SPICE or IBIS simulations to analyze the loading effects of the pin-pair on multiple RLDRAM II
or RLDRAM 3 devices.
RLDRAM II and RLDRAM 3 Commands and Addresses
The CK and CK# signals clock the commands and addresses into the memory devices.
These pins operate at single data rate using only one clock edge. RLDRAM II and RLDRAM 3 support
both non-multiplexed and multiplexed addressing. Multiplexed addressing allows you to save a few user
I/O pins while non-multiplexed addressing allows you to send the address signal within one clock cycle
instead of two clock cycles. CS#, REF#, and WE# pins are input commands to the RLDRAM II or
RLDRAM 3 device.
The commands and addresses must meet the memory address and command setup (tAS, tCS) and hold
(tAH, tCH) time requirements.
Note: The Altera RLDRAM II and RLDRAM 3 external memory interface IP do not support multiplexed
addressing.
RLDRAM II and RLDRAM 3 Data, DM and QVLD Signals
The read data is edge-aligned with the QK or QK# clocks while the write data is center-aligned with the DK
and DK# clocks (see the following figures). The memory controller shifts the DK and DK# signals to center
align the DQ and DK or DK# signals during a write. It also shifts the QK signal during a read, so that the read
data (DQ signals) and QK clock is center-aligned at the capture register.
Altera devices use dedicated DQS phase-shift circuitry to shift the incoming QK signal during reads and
use a PLL to center-align the DK and DK# signals with respect to the DQ signals during writes.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
RLDRAM II and RLDRAM 3 Data, DM and QVLD Signals
3-17
Figure 3-7: Edge-aligned DQ and QK Relationship During RLDRAM II or RLDRAM 3 Read
QK at
FPGA Pin
DQ at
FPGA Pin
QK at DQ
LE Registers
DQ at DQ
LE Registers
DQS Phase Shift
Figure 3-8: Center-aligned DQ and DK Relationship During RLDRAM II or RLDRAM 3 Write
DK at
FPGA Pin
DQ at
FPGA Pin
For RLDRAM II and RLDRAM 3, data mask (DM) pins are used only during a write. The memory
controller drives the DM signal low when the write is valid and drives it high to mask the DQ signals.
For RLDRAM II, there is one DM pin per memory device. The DQ input signal is masked when the DM
signal is high.
For RLDRAM 3, there are two DM pins per memory device. DM0 is used to mask the lower byte for the
x18 device and (DQ[8:0],DQ[26:18]) for the x36 device. DM1 is used to mask the upper byte for the x18
device and (DQ[17:9], DQ[35:27]) for the x36 device.
The DM timing requirements at the input to the memory device are identical to those for DQ data. The
DDR registers, clocked by the write clock, create the DM signals. This reduces any skew between the DQ and
DM signals.
The RLDRAM II or RLDRAM 3 device's setup time (tDS) and hold (tDH) time for the write DQ and DM pins
are relative to the edges of the DK or DK# clocks. The DK and DK# signals are generated on the positive edge
of system clock, so that the positive edge of CK or CK# is aligned with the positive edge of DK or DK#
respectively to meet the tCKDK requirement. The DQ and DM signals are clocked using a shifted clock so
that the edges of DK or DK# are center-aligned with respect to the DQ and DM signals when they arrive at the
RLDRAM II or RLDRAM 3 device.
The clocks, data, and DM board trace lengths should be tightly matched to minimize the skew in the
arrival time of these signals.
RLDRAM II and RLDRAM 3 devices also have a QVLD pin indicating valid read data. The QVLD signal
is edge-aligned with QK or QK# and is high approximately half a clock cycle before data is output from the
memory.
Note: The Altera external memory interface IP does not use the QVLD signal.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-18
LPDDR2 Clock Signal
EMI_DG
2014.12.15
LPDDR2 Clock Signal
CK and CKn are differential clock inputs to the LPDDR2 interface. All the double data rate (DDR) inputs
are sampled on both the positive and negative edges of the clock. Single data rate (SDR) inputs, CSn and
CKE, are sampled at the positive clock edge.
The clock is defined as the differential pair which consists of CK and CKn. The positive clock edge is
defined by the cross point of a rising CK and a falling CKn. The negative clock edge is defined by the cross
point of a falling CK and a rising CKn.
The SDRAM data sheet specifies timing data for the following:
•
•
•
•
tDSH is the DQS falling edge hold time from CK.
tDSS is the DQS falling edge to the CK setup time.
tDQSS is the Write command to the first DQS latching transition.
tDQSCK is the DQS output access time from CK/CKn.
LPDDR2 Command and Address Signal
All LPDDR2 devices use double data rate architecture on the command/address bus to reduce the number
of input pins in the system. The 10-bit command/address bus contains command, address, and bank/row
buffer information. Each command uses one clock cycle, during which command information is
transferred on both the positive and negative edges of the clock.
LPDDR2 Data, Data Strobe, and DM Signals
LPDDR2 devices use bidirectional and differential data strobes.
Differential DQS operation enables improved system timing due to reduced crosstalk and less simulta‐
neous switching noise on the strobe output drivers. The DQ pins are also bidirectional. DQS is edge-aligned
with the read data and centered with the write data.
DM is the input mask for the write data signal. Input data is masked when DM is sampled high coincident
with that input data during a write access.
Maximum Number of Interfaces
The maximum number of interfaces supported for a given memory protocol varies, depending on the
FPGA in use.
Unless otherwise noted, the calculation for the maximum number of interfaces is based on independent
interfaces where the address or command pins are not shared. The maximum number of independent
interfaces is limited to the number of PLLs each FPGA device has.
Note: You must share DLLs if the total number of interfaces exceeds the number of DLLs available in a
specific FPGA device. You may also need to share PLL clock outputs depending on your clock
network usage, refer to “PLLs and Clock Networks”.
Note: For information about the number of DQ and DQS in other packages, refer to the DQ and DQS
tables in the relevant device handbook.
Timing closure depends on device resource and routing utilization. For more information about timing
closure, refer to the Area and Timing Optimization Techniques chapter in the Quartus II Handbook.
Related Information
• PLLs and Clock Networks on page 3-61
• Arria 10 Device Handbook
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Maximum Number of DDR SDRAM Interfaces Supported per FPGA
3-19
• Quartus II Handbook
Maximum Number of DDR SDRAM Interfaces Supported per FPGA
The following table describes the maximum number of ×8 DDR SDRAM components that can fit in the
smallest and biggest devices and pin packages assuming the device is blank.
Each interface of size n, where n is a multiple of 8, consists of:
•
•
•
•
•
•
n DQ pins (including error correction coding (ECC))
n/8 DM pins
n/8 DQS pins
18 address pins
6 command pins (CAS#, RAS#, WE#, CKE, and CS#)
1 CK, CK# pin pair for up to every three ×8 DDR SDRAM components
Table 3-5: Maximum Number of DDR SDRAM Interfaces Supported per FPGA
Device
Device Type
EP2AGX190
Package Pin Count
1,152
Four ×8 interfaces or one ×72 interface on
each side (no DQ pins on left side)
358
• On top side, one ×16 interface
• On bottom side, one ×16 interface
• On right side (no DQ pins on left side),
one ×8 interface
1,517
Four ×8 interfaces or one ×72 interface on
each side
EP2AGX260
Arria II GX
EP2AGX45
EP2AGX65
EP2AGZ300
Maximum Number of Interfaces
EP2AGZ350
EP2AGZ225
Arria II GZ
EP2AGZ300
780
EP2AGZ350
Stratix III
EP3SL340
1,760
EP3SE50
484
Planning Pin and FPGA Resources
Send Feedback
• On top side, three ×8 interfaces or one
×64 interface
• On bottom side, three ×8 interfaces or one
×64 interface
• No DQ pins on the left and right sides
• Two ×72 interfaces on both top and
bottom sides
• One ×72 interface on both right and left
sides
• Two ×8 interfaces on both top and bottom
sides
• Three ×8 interface on both right and left
sides
Altera Corporation
3-20
EMI_DG
2014.12.15
Maximum Number of DDR2 SDRAM Interfaces Supported per FPGA
Device
Device Type
EP4SGX290
Package Pin Count
1,932
EP4SGX360
Stratix IV
1,760
EP4SE820
EP4SGX70
• One ×72 interface on each side
or
EP4SGX530
EP4SE530
Maximum Number of Interfaces
780
EP4SGX110
EP4SGX180
EP4SGX230
• One ×72 interface on each side and two
additional ×72 wraparound interfaces,
only if sharing DLL and PLL resources
• Three ×8 interfaces or one ×64 interface
on both top and bottom sides
• On left side, one ×48 interface or two ×8
interfaces
• No DQ pins on the right side
Maximum Number of DDR2 SDRAM Interfaces Supported per FPGA
The following table lists the maximum number of ×8 DDR2 SDRAM components that can be fitted in the
smallest and biggest devices and pin packages assuming the device is blank.
Each interface of size n, where n is a multiple of 8, consists of:
•
•
•
•
•
•
n DQ pins (including ECC)
n/8 DM pins
n/8 DQS, DQSn pin pairs
18 address pins
7 command pins (CAS#, RAS#, WE#, CKE, ODT, and CS#)
1 CK, CK# pin pair up to every three ×8 DDR2 components
Table 3-6: Maximum Number of DDR2 SDRAM Interfaces Supported per FPGA
Device
Device Type
EP2AGX190
Package Pin Count
1,152
Four ×8 interfaces or one ×72 interface on
each side (no DQ pins on left side)
358
• One ×16 interface on both top and
bottom sides
• On right side (no DQ pins on left side),
one ×8 interface
EP2AGX260
Arria II
GX
EP2AGX45
EP2AGX65
Altera Corporation
Maximum Number of Interfaces
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Maximum Number of DDR2 SDRAM Interfaces Supported per FPGA
Device
Device Type
EP2AGZ300
Package Pin Count
Maximum Number of Interfaces
1,517
Four ×8 interfaces or one ×72 interface on
each side
780
• Three ×8 interfaces or one ×64 interface
on both top and bottom sides
• No DQ pins on the left and right sides
EP2AGZ350
Arria II GZ
3-21
EP2AGZ225
EP2AGZ300
EP2AGZ350
5AGXB1
1,517
5AGXB3
5AGXB5
• Two ×72 interfaces on both top and
bottom sides
• No DQ pins on left and right sides
5AGXB7
5AGTD3
Arria V
5AGTD7
5AGXA1
672
• One ×56 interface or two x24 interfaces
on both top and bottom sides
• One ×32 interface on the right side
• No DQ pins on the left side
672
• One ×56 interface or two x24 interfaces
on both top and bottom sides
• No DQ pins on the left side
5AGXA3
5AGXA5
5AGXA7
5AGZE5
1,517
• Three ×72 interfaces on both top and
bottom sides
• No DQ pins on left and right sides
780
• On top side, two ×8 interfaces
• On bottom side, four ×8 interfaces or
one ×72 interface
• No DQ pins on left and right sides
5AGZE7
Arria V
GZ
5AGZE1
5AGZE3
5CGTD9
1,152
• One ×72 interface or two ×32 interfaces
on each of the top, bottom, and right
sides
• No DQ pins on the left side
484
• One ×48 interface or two ×16 interfaces
on both top and bottom sides
• One x8 interface on the right side
• No DQ pins on the left side
5CEA9
Cyclone V
5CGXC9
5CEA7
5CGTD7
5CGXC7
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-22
EMI_DG
2014.12.15
Maximum Number of DDR2 SDRAM Interfaces Supported per FPGA
Device
Device Type
10M50D672
Package Pin Count
Maximum Number of Interfaces
762
One x32 interface on the right side
256
One x8 interface on the right side
10M40D672
10M25D672
MAX 10
FPGA
10M50D256
10M40D256
10M25D256
10M16D256
Stratix III
EP3SL340
1,760
EP3SE50
484
EP4SGX290
1,932
EP4SGX360
Stratix IV
1,760
EP4SE820
EP4SGX70
780
EP4SGX110
EP4SGX180
EP4SGX230
5SGXA5
5SGXA3
5SGXA4
Altera Corporation
• One ×72 interface on each side
• One ×72 interface on each side and two
additional ×72 wraparound interfaces
only if sharing DLL and PLL resources
• Three ×8 interfaces or one ×64 interface
on top and bottom sides
• On left side, one ×48 interface or two ×8
interfaces
• No DQ pins on the right side
1,932
• Three ×72 interfaces on both top and
bottom sides
• No DQ pins on left and right sides
780
• On top side, two ×8 interfaces
• On bottom side, four ×8 interfaces or
one ×72 interface
• No DQ pins on left and right sides
5SGXA7
Stratix V
• Two ×8 interfaces on both top and
bottom sides
• Three ×8 interfaces on both right and
left sides
or
EP4SGX530
EP4SE530
• Two ×72 interfaces on both top and
bottom sides
• One ×72 interface on both right and left
sides
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Maximum Number of DDR3 SDRAM Interfaces Supported per FPGA
3-23
Maximum Number of DDR3 SDRAM Interfaces Supported per FPGA
The following table lists the maximum number of ×8 DDR3 SDRAM components that can be fitted in the
smallest and biggest devices and pin packages assuming the device is blank.
Each interface of size n, where n is a multiple of 8, consists of:
•
•
•
•
•
•
n DQ pins (including ECC)
n/8 DM pins
n/8 DQS, DQSn pin pairs
17 address pins
7 command pins (CAS#, RAS#, WE#, CKE, ODT, reset, and CS#)
1 CK, CK# pin pair
Table 3-7: Maximum Number of DDR3 SDRAM Interfaces Supported per FPGA
Device
Device Type
EP2AGX190
Package Pin
Count
1,152
• Four ×8 interfaces or one ×72 interface on
each side
• No DQ pins on left side
358
• One ×16 interface on both top and bottom
sides
• On right side, one ×8 interface
• No DQ pins on left side
EP2AGX260
Arria II
GX
EP2AGX45
EP2AGX65
EP2AGZ300
Maximum Number of Interfaces
1,517
Four ×8 interfaces on each side
EP2AGZ350
Arria II GZ
EP2AGZ225
EP2AGZ300
EP2AGZ350
Planning Pin and FPGA Resources
Send Feedback
780
• Three ×8 interfaces on both top and bottom
sides
• No DQ pins on left and right sides
Altera Corporation
3-24
EMI_DG
2014.12.15
Maximum Number of DDR3 SDRAM Interfaces Supported per FPGA
Device
Device Type
5AGXB1
Package Pin
Count
Maximum Number of Interfaces
1,517
• Two ×72 interfaces on both top and bottom
sides
• No DQ pins on left and right sides
672
• One ×56 interface or two ×24 interfaces on
top and bottom sides
• One ×32 interface on the right side
• No DQ pins on the left side
672
• One ×56 interface or two ×24 interfaces on
both top and bottom sides
• No DQ pins on the left side
1,517
• Two ×72 interfaces on both top and bottom
sides
• No DQ pins on left and right sides
5AGXB3
5AGXB5
5AGXB7
5AGTD3
Arria V
5AGTD7
5AGXA1
5AGXA3
5AGXA5
5AGXA7
5AGZE5
Arria V
GZ
5AGZE7
5AGZE1
780
5AGZE3
5CGTD9
1,152
• One ×72 interface or two ×32 interfaces on
each of the top, bottom, and right sides
• No DQ pins on the left side
484
• One ×48 interface or two ×16 interfaces on
both top and bottom sides
• One x8 interface on the right side
• No DQ pins on the left side
762
One x32 interface on the right side
256
One x8 interface on the right side
5CEA9
Cyclone V
5CGXC9
5CEA7
5CGTD7
5CGXC7
10M50D672
• On top side, two ×8 interfaces
• On bottom side, four ×8 interfaces
• No DQ pins on left and right sides
10M40D672
10M25D672
MAX 10
FPGA
10M50D256
10M40D256
10M25D256
10M16D256
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Maximum Number of QDR II and QDR II+ SRAM Interfaces Supported per FPGA
Device
Stratix III
Device Type
Package Pin
Count
1,760
• Two ×72 interfaces on both top and bottom
sides
• One ×72 interface on both right and left
sides
EP3SE50
484
• Two ×8 interfaces on both top and bottom
sides
• Three ×8 interfaces on both right and left
sides
1,932
EP4SGX360
EP4SE530
1,760
EP4SE820
EP4SGX70
• Three ×8 interfaces or one ×64 interface on
both top and bottom sides
• On left side, one ×48 interface or two ×8
interfaces
• No DQ pins on right side
1,932
• Two ×72 interfaces (800 MHz) on both top
and bottom sides
• No DQ pins on left and right sides
EP4SGX180
EP4SGX230
5SGXA7
5SGXA3
5SGXA4
• One ×72 interface on each side and 2
additional ×72 wraparound interfaces only if
sharing DLL and PLL resources
780
EP4SGX110
5SGXA5
• One ×72 interface on each side
or
EP4SGX530
Stratix V
Maximum Number of Interfaces
EP3SL340
EP4SGX290
Stratix IV
3-25
780
• On top side, two ×8 interfaces
• On bottom side, four ×8 interfaces
• No DQ pins on left and right sides
Maximum Number of QDR II and QDR II+ SRAM Interfaces Supported per FPGA
The following table lists the maximum number of independent QDR II+ or QDR II SRAM interfaces that
can be fitted in the smallest and biggest devices and pin packages assuming the device is blank.
One interface of ×36 consists of:
•
•
•
•
•
•
•
36 Q pins
36 D pins
1 K, K# pin pairs
1 CQ, CQ# pin pairs
19 address pins
4 BSWn pins
WPSn, RPSn
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-26
EMI_DG
2014.12.15
Maximum Number of QDR II and QDR II+ SRAM Interfaces Supported per FPGA
One interface of ×9 consists of:
•
•
•
•
•
•
•
9 Q pins
9 D pins
1 K, K# pin pairs
1 CQ, CQ# pin pairs
21 address pins
1 BWSn pin
WPSn, RPSn
Table 3-8: Maximum Number of QDR II and QDR II+ SRAM Interfaces Supported per FPGA
Device
Device Type
EP2AGX190
Arria II
GX
Package Pin
Count
1,152
Maximum Number of Interfaces
One ×36 interface and on ×9 interface one each side
EP2AGX260
EP2AGX45
358
EP2AGX65
EP2AGZ300
No DQ pins on left side
1,517
EP2AGZ350
Arria II GZ EP2AGZ225
EP2AGZ300
• Two ×36 interfaces and one ×9 interface on both top and
bottom sides
• Four ×9 interfaces on right and left sides
780
• Three ×9 interfaces on both top and bottom sides
• No DQ pins on right and left sides
1,517
• Two ×36 interfaces on both top and bottom sides
• No DQ pins on left and right sides
672
• Two ×9 interfaces on both top and bottom sides
• One ×9 interface on the right side
• No DQ pins on the left side
672
• Two ×9 interfaces on both top and bottom sides
• No DQ pins on the left side
EP2AGZ350
5AGXB1
One ×9 interface on each side
5AGXB3
5AGXB5
5AGXB7
5AGTD3
Arria V
5AGTD7
5AGXA1
5AGXA3
5AGXA5
5AGXA7
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Maximum Number of RLDRAM II Interfaces Supported per FPGA
Device
Device Type
5AGZE5
Arria V
GZ
Package Pin
Count
1,517
5AGZE7
5AGZE1
780
5AGZE3
Stratix III
EP3SL340
1,760
EP3SE50
484
EP3SL50
3-27
Maximum Number of Interfaces
• Two ×36 interfaces on both top and bottom sides
• No DQ pins on left and right sides
• On top side, one ×36 interface or three ×9 interfaces
• On bottom side, two ×9 interfaces
• No DQ pins on left and right sides
• Two ×36 interfaces and one ×9 interface on both top and
bottom sides
• Five ×9 interfaces on both right and left sides
• One ×9 interface on both top and bottom sides
• Two ×9 interfaces on both right and left sides
EP3SL70
EP4SGX290
1,932
EP4SGX360
• Two ×36 interfaces on both top and bottom sides
• One ×36 interface on both right and left sides
EP4SGX530
EP4SE530
Stratix IV
1,760
EP4SE820
EP4SGX70
780
EP4SGX110
Two ×9 interfaces on each side
No DQ pins on right side
EP4SGX180
EP4SGX230
5SGXA5
1,932
5SGXA7
Stratix V
5SGXA3
5SGXA4
780
• Two ×36 interfaces on both top and bottom sides
• No DQ pins on left and right sides
• On top side, one ×36 interface or three ×9 interfaces
• On bottom side, two ×9 interfaces
• No DQ pins on left and right sides
Maximum Number of RLDRAM II Interfaces Supported per FPGA
The following table lists the maximum number of independent RLDRAM II interfaces that can be fitted in
the smallest and biggest devices and pin packages assuming the device is blank.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-28
EMI_DG
2014.12.15
Maximum Number of RLDRAM II Interfaces Supported per FPGA
One common I/O ×36 interface consists of:
•
•
•
•
•
•
•
•
•
36 DQ
1 DM pin
2 DK, DK# pin pairs
2 QK, QK# pin pairs
1 CK, CK# pin pair
24 address pins
1 CS# pin
1 REF# pin
1 WE# pin
One common I/O ×9 interface consists of:
•
•
•
•
•
•
•
•
•
9 DQ
1 DM pins
1 DK, DK# pin pair
1 QK, QK# pin pair
1 CK, CK# pin pair
25 address pins
1 CS# pin
1 REF# pin
1 WE# pin
Table 3-9: Maximum Number of RLDRAM II Interfaces Supported per FPGA
Device
Device Type
EP2AGZ300
Package Pin
Count
1,517
Maximum Number of RLDRAM II CIO Interfaces
Two ×36 interfaces on each side
EP2AGZ350
Arria II GZ
EP2AGZ225
EP2AGZ300
EP2AGZ350
Altera Corporation
780
• Three ×9 interfaces or one ×36 interface on both top and
bottom sides
• No DQ pins on the left and right sides
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Maximum Number of RLDRAM II Interfaces Supported per FPGA
Device
Device Type
5AGXB1
Package Pin
Count
Maximum Number of RLDRAM II CIO Interfaces
1,517
• Two ×36 interfaces on both top and bottom sides
• No DQ pins on left and right sides
672
• One ×36 interface on both top and bottom sides
• One ×18 interface on the right side
• No DQ pins on the left side
672
• One ×36 interface on both top and bottom sides
• No DQ pins on the left side
1,517
• Four ×36 interfaces on both top and bottom sides
• No DQ pins on left and right sides
5AGXB3
3-29
5AGXB5
5AGXB7
5AGTD3
Arria V
5AGTD7
5AGXA1
5AGXA3
5AGXA5
5AGXA7
5ZGZE5
Arria V
GZ
5ZGZE7
5AGZE1
780
5AGZE3
Stratix III
EP3SL340
1,760
EP3SE50
484
• On top side, three ×9 interfaces or two ×36 interfaces
• On bottom side, two ×9 interfaces or one ×36 interfaces
• No DQ pins on left and right sides
• Four ×36 components on both top and bottom sides
• Three ×36 interfaces on both right and left sides
One ×9 interface on both right and left sides
EP3SL50
EP3SL70
EP4SGX290
1,932
• Three ×36 interfaces on both top and bottom sides
• Two ×36 interfaces on both right and left sides
1,760
• Three ×36 interfaces on each side
EP4SGX360
EP4SGX530
EP4SE530
Stratix IV
EP4SE820
EP4SGX70
780
One ×36 interface on each side (no DQ pins on right side)
EP4SGX110
EP4SGX180
EP4SGX230
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-30
EMI_DG
2014.12.15
Maximum Number of LPDDR2 SDRAM Interfaces Supported per FPGA
Device
Device Type
Package Pin
Count
5SGXA5
1,932
5SGXA7
Stratix V
5SGXA3
5SGXA4
780
Maximum Number of RLDRAM II CIO Interfaces
• Four ×36 interfaces on both top and bottom sides
• No DQ pins on left and right sides
• On top side, two ×9 interfaces or one ×18 interfaces
• On bottom side, three ×9 interfaces or two ×36 interfaces
• No DQ pins on left and right sides
Maximum Number of LPDDR2 SDRAM Interfaces Supported per FPGA
The following table lists the maximum number of x8 LPDDR2 SDRAM components that can fit in the
smallest and largest devices and pin packages, assuming the device is blank.
Each interface of size n, where n is a multiple of 8, consists of:
•
•
•
•
•
•
n DQ pins (including ECC)
n/8 DM pins
n/8 DQS, DQSn pin pairs
10 address pins
2 command pins (CKE and CSn)
1 CK, CK# pin pair up to every three x8 LPDDR2 components
Table 3-10: Maximum Number of LPDDR2 SDRAM Interfaces Supported per FPGA
Device
Device Type
5AGXB1
Package Pin
Count
Maximum Number of LPDDR2 SDRAM Interfaces
1,517
• One ×72 interface on both top and bottom
sides
• No DQ pins on the left and right sides
672
• One ×64 interface or two ×24 interfaces on
both top and bottom sides
• One ×32 interface on the right side
672
• One ×64 interface or two ×24 interfaces on
both the top and bottom sides
• No DQ pins on the left side
5AGXB3
5AGXB5
5AGXB7
5AGTD3
Arria V
5AGTD7
5AGXA1
5AGXA3
5AGXA5
5AGXA7
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
OCT Support
Device
Device Type
5CGTD9
Package Pin
Count
• One ×72 interface or two ×32 interfaces on
each of the top, bottom, and right sides
• No DQ pins on the left side
484
• One ×48 interface or two ×16 interfaces on
both the top and bottom sides
• One ×8 interface on the right side
• No DQ pins on the left side
762
One x16 interface on the right side
256
One x16 interface on the right side
5CGXC9
5CEA7
5CGTD7
5CGXC7
10M50D672
Maximum Number of LPDDR2 SDRAM Interfaces
1,152
5CEA9
Cyclone V
3-31
10M40D672
10M25D672
MAX 10
FPGA
10M50D256
10M40D256
10M25D256
10M16D256
OCT Support
If the memory interface uses any FPGA OCT calibrated series, parallel, or dynamic termination for any
I/O in your design, you need a calibration block for the OCT circuitry. This calibration block is not
required to be within the same bank or side of the device as the memory interface pins. However, the
block requires a pair of RUP and RDN or RZQ pins that must be placed within an I/O bank that has the same
VCCIO voltage as the VCCIO voltage of the I/O pins that use the OCT calibration block.
The RZQ pin in Arria 10, Stratix V, Arria V, and Cyclone V devices can be used as a general purpose I/O
pin when it is not used to support OCT, provided the signal conforms to the bank voltage requirements.
The RUP and RDN pins in Arria II GX, Arria II GZ, MAX 10, Stratix III, and Stratix IV devices are dual
functional pins that can also be used as DQ and DQS pins in when they are not used to support OCT, giving
the following impacts on your DQS groups:
• If the RUP and RDN pins are part of a ×4 DQS group, you cannot use that DQS group in ×4 mode.
• If the RUP and RDN pins are part of a ×8 DQS group, you can only use this group in ×8 mode if any of the
following conditions apply:
• You are not using DM or BWSn pins.
• You are not using a ×8 or ×9 QDR II SRAM device, as the RUP and RDN pins may have dual purpose
function as the CQn pins. In this case, pick different pin locations for RUP and RDN pins, to avoid
conflict with memory interface pin placement. You have the choice of placing the RUP and RDN pins
in the same bank as the write data pin group or address and command pin group.
• You are not using complementary or differential DQS pins.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-32
EMI_DG
2014.12.15
Guidelines for Arria 10 External Memory Interface IP
Note: The Altera external memory interface IP does not support ×8 QDR II SRAM devices in the
Quartus II software.
A DQS/DQ ×8/×9 group in Arria II GZ, Stratix III, and Stratix IV devices comprises 12 pins. A typical ×8
memory interface consists of one DQS, one DM, and eight DQ pins which add up to 10 pins. If you choose
your pin assignment carefully, you can use the two extra pins for RUP and RDN. However, if you are using
differential DQS, you do not have enough pins for RUP and RDN as you only have one pin leftover. In this
case, as you do not have to put the OCT calibration block with the DQS or DQ pins, you can pick different
locations for the RUP and RDN pins. As an example, you can place it in the I/O bank that contains the
address and command pins, as this I/O bank has the same VCCIO voltage as the I/O bank containing the
DQS and DQ pins.
There is no restriction when using ×16/×18 or ×32/×36 DQS groups that include the ×4 groups when pin
members are used as RUP and RDN pins, as there are enough extra pins that can be used as DQS or DQ pins.
You must pick your DQS and DQ pins manually for the ×8, ×9, ×16 and ×18, or ×32 and ×36 groups, if they
are using RUP and RDN pins within the group. The Quartus II software might not place these pins optimally
and might be unable to fit the design.
Guidelines for Arria 10 External Memory Interface IP
The Arria 10 device contains up to two I/O columns that can be used by external memory interfaces. The
Arria 10 I/O subsystem resides in the I/O columns. Each column contains multiple I/O banks, each of
which consists of four I/O lanes. An I/O lane is a group of twelve I/O ports.
The I/O column, I/O bank, I/O lane, adjacent I/O bank, and pairing pin for every physical I/O pin can be
uniquely identified using the Bank Number and Index within I/O Bank values which are defined in
each Arria 10 device pin-out file.
• The numeric component of the Bank Number value identifies the I/O column, while the letter
represents the I/O bank.
• The Index within I/O Bank value falls within one of the following ranges: 0 to 11, 12 to 23, 24 to 35,
or 36 to 47, and represents I/O lanes 1, 2, 3, and 4, respectively.
• The adjacent I/O bank is defined as the I/O bank with same column number but the letter is either
before or after the respective I/O bank letter in the A-Z system.
• The pairing pin for an I/O pin is located in the same I/O bank. You can identify the pairing pin by
adding one to its Index within I/O Bank number (if it is an even number), or by subtracting one
from its Index within I/O Bank number (if it is an odd number).
For example, a physical pin with a Bank Number of 2K and Index within I/O Bank of 22, indicates that
the pin resides in I/O lane 2, in I/O bank 2K, in column 2. The adjacent I/O banks are 2J and 2L. The
pairing pin for this physical pin is the pin with an Index within I/O Bank of 23 and Bank Number of 2K.
General Pin-Out Guidelines for Arria 10 EMIF IP
You should follow the recommended guidelines when performing pin placement for all external memory
interface pins targeting Arria 10 devices, whether you are using the Altera hard memory controller or
your own solution.
If you are using the Altera hard memory controller, you should employ the relative pin locations defined
in the <variation_name>/altera_emif_arch_nf_version number/<synth|sim>/<variation_name>_altera_emif_arch_nf_
version number_<unique ID>_readme.txt file, which is generated with your IP.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
General Pin-Out Guidelines for Arria 10 EMIF IP
3-33
Note: 1. EMIF IP pin-out requirements for the Arria 10 Hard Processor Subsystem (HPS) are more
restrictive than for a non-HPS memory interface. The HPS EMIF IP defines a fixed pin-out in
the Quartus II IP file (.qip), based on the IP configuration. When targeting Arria 10 HPS, you
do not need to make location assignments for external memory interface pins. To obtain the
HPS-specific external memory interface pin-out, compile the interface in the Quartus II
software. Alternatively, consult the device handbook or the device pin-out files. For information
on how you can customize the HPS EMIF pin-out, refer to Restrictions on I/O Bank Usage for
Arria 10 EMIF IP with HPS.
2. Ping Pong PHY, PHY only, and RLDRAMx and QDRx are not supported with HPS.
Observe the following general guidelines for placing pins for your Arria 10 external memory interface:
1. Ensure that the pins of a single external memory interface reside within a single I/O column.
2. An external memory interface can occupy one or more banks in the same I/O column. When an
interface must occupy multiple banks, ensure that those banks are adjacent to one another.
3. Be aware that any pin in the same bank that is not used by an external memory interface is available for
use as a general purpose I/O of compatible voltage and termination settings.
4. All address and command pins and their associated clock pins (CK and CK#) must reside within a
single bank. The bank containing the address and command pins is identified as the address and
command bank.
5. To minimize latency, when the interface uses more than two banks, you must select the center bank of
the interface as the address and command bank.
6. The address and command pins and their associated clock pins in the address and command bank
must follow a fixed pin-out scheme, as defined in the Arria 10 External Memory Interface Pin Informa‐
tion File, which is available on the Altera website.
You do not have to place every address and command pin manually. If you assign the location for one
address and command pin, the Fitter automatically places the remaining address and command pins.
Note: The pin-out scheme is a hardware requirement that you must follow, and can vary according to
the topology of the memory device. Some schemes require three lanes to implement address
and command pins, while others require four lanes. To determine which scheme to follow, refer
to the messages window during parameterization of your IP, or to the <variation_name>/altera_
emif_arch_nf_<version>/<synth|sim>/<variation_name>_altera_emif_arch_nf_<version>_<unique ID>_
readme.txt file after you have generated your IP.
7. An unused I/O lane in the address and command bank can serve to implement a data group, such as a
x8 DQS group. The data group must be from the same controller as the address and command signals.
8. An I/O lane must not be used by both address and command pins and data pins.
9. Place read data groups according to the DQS grouping in the pin table and pin planner. Read data
strobes (such as DQS and DQS#) or read clocks (such as CQ and CQ# / QK and QK#) must reside at
physical pins capable of functioning as DQS/CQ and DQSn/CQn for a specific read data group size.
You must place the associated read data pins (such as DQ and Q), within the same group.
Note: 1. Unlike other device families, there is no need to swap CQ/CQ# pins in certain QDR II and
QDR II+ latency configurations.
2. QDR-IV requires that the polarity of all QKB/QKB# pins be swapped to ensure correct data
capture on port B. All QKB pins on the memory device must be connected to the negative
pins of the input buffers on the FPGA side, and all QKB# pins on the memory device must be
connected to the positive pins of the input buffers on the FPGA side.
10.You can use a single I/O lane to implement two x4 DQS groups. The pin table specifies which pins
within an I/O lane can be used for the two pairs of DQS and DQS# signals. In addition, for x4 DQS
groups you must observe the following rules:
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-34
General Pin-Out Guidelines for Arria 10 EMIF IP
EMI_DG
2014.12.15
• There must be an even number of x4 groups in an external memory interface.
• DQS group 0 and DQS group 1 must be placed in the same I/O lane. Similarly, DQS group 2 and
group 3 must be in the same I/O lane. Generally, DQS group X and DQS group X+1 must be in the
same I/O lane, where X is an even number.
11.You should place the write data groups according to the DQS grouping in the pin table and pin
planner. Write clocks (K and K#, DK and DK#) should reside at physical pins capable of functioning as
DQS/CQ and DQSn/CQn for a specific write data group size. The associated write data pins (DQ and
Q) must reside within the same group (or for RLDRAM 3 interfaces, in the same I/O bank).
Note: For RLDRAM 3, x36 device, DQ[8:0] and DQ[26:18] are referenced to DK0/DK0#, and DQ[17:9]
and DQ[35:27] are referenced to DK1/DK1#.
12.For protocols and topologies with bidirectional data pins where a write data group consists of multiple
read data groups, you should place the data groups and their respective write and read clock in the
same bank to improve I/O timing.
You do not need to specify the location of every data pin manually. If you assign the location for the
read capture strobe/clock pin pairs, the Fitter will automatically place the remaining data pins.
13.Ensure that DM/BWS pins are paired with a write data pin by placing one in an I/O pin and another in
the pairing pin for that I/O pin. It is recommended—though not required—that you follow the same
rule for DBI pins, so that at a later date you have the freedom to repurpose the pin as DM.
Note: 1. x4 mode does not support DM/DBI (DDR4).
2. If you are using an Arria 10 EMIF IP-based RLDRAM II or RLDRAM 3 external memory
interface, you should ensure that all the pins in a DQS group (that is, DQ, DM, DK, and QK) are
placed in the same I/O bank. This requirement facilitates timing closure and is necessary for
successful compilation of your design.
I/O Banks Selection
•
•
•
•
•
For each memory interface, select consecutive I/O banks.
A memory interface can only span across I/O banks in the same I/O column.
I/O bank 2A is not available for you to construct an external memory interface.
The number of I/O banks that you require depends on the memory interface width.
The 3V I/O bank does not support dynamic OCT or calibrated OCT. To place a memory interface in a
3V I/O bank, ensure that calibrated OCT is disabled for the address/command signals, the memory
clock signals, and the data bus signals, during IP generation.
• In some device packages, the number of I/O pins in some LVDS I/O banks is less that 48 pins.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
General Pin-Out Guidelines for Arria 10 EMIF IP
3-35
Address/Command Pins Location
• All address/command pins for a controller must be in a single I/O bank.
• If your interface uses multiple I/O banks, the address/command pins must use the middle bank. If the
number of banks used by the interface is even, any of the two middle I/O banks can be used for
address/command pins.
• Address/command pins and data pins cannot share an I/O lane but can share an I/O bank.
• The address/command pin locations for the soft and hard memory controllers are predefined. In the
External Memory Interface Pin Information for Devices spreadsheet, each index in the "Index within
I/O bank" column denotes a dedicated address/command pin function for a given protocol. The index
number of the pin specifies to which I/O lane the pin belongs:
• I/O lane 0—Pins with index 0 to 11
• I/O lane 1—Pins with index 12 to 23
• I/O lane 2—Pins with index 24 to 35
• I/O lane 3—Pins with index 36 to 47
• For memory topologies and protocols that require only three I/O lanes for the address/command pins,
use I/O lanes 0, 1, and 2.
• Unused address/command pins in an I/O lane can be used as general-purpose I/O pins.
CK Pins Assignment
Assign the clock pin (CK pin) according to the number of I/O banks in an interface:
• The number of I/O banks is odd—assign one CK pin to the middle I/O bank.
• The number of I/O banks is even—assign the CK pin to any one of the middle two I/O banks.
Although the Fitter can automatically select the required I/O banks, Altera recommends that you make
the selection manually to reduce the pre-fit run time.
PLL Reference Clock and RZQ Pins Placement
Place the PLL reference clock pin and the RZQ pin in the address/command bank. Other I/O banks may
not have free pins that you can use as the PLL reference clock or RZQ pin:
• If you are sharing the PLL reference clock pin between several interfaces, the I/O banks must be
consecutive.
• If you are sharing the RZQ pin between several interfaces, the I/O banks do not have to be consecutive.
DQ and DQS Pins Assignment
Altera recommends that you assign the DQS pins to the remaining I/O lanes in the I/O banks as required:
• Constrain the DQ and DQS signals of the same DQS group to the same I/O lane.
• DQ signals from two different DQS groups cannot be constrained to the same I/O lane.
If you do not specify the DQS pins assignment, the Fitter will automatically select the DQS pins.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-36
EMI_DG
2014.12.15
Resource Sharing Guidelines for Arria 10 EMIF IP
Sharing an I/O Bank Across Multiple Interfaces
If you are sharing an I/O bank across multiple external memory interfaces, follow these guidelines:
• The interfaces must use the same protocol, voltage, data rate, frequency, and PLL reference clock.
• You cannot use an I/O bank as the address/command bank for more than one interface. The memory
controller and sequencer cannot be shared.
• You cannot share an I/O lane. There is only one DQS input per I/O lane, and an I/O lane can only
connect to one memory controller.
Ping Pong PHY Implementation
The Ping Pong PHY feature instantiates two hard memory controllers—one for the primary interface and
one for the secondary interface. The hard memory controller tile of the primary interface is used for
address and command and is always adjacent and above the hard memory controller tile of the secondary
interface. All four lanes of the primary hard memory controller tile are used for address and command.
For more information on Ping Pong PHY in Arria 10, refer to Functional Description—Arria 10 EMIF, in
this handbook. For pin allocation information for Arria 10 devices, refer to External Memory Interface Pin
Information for Arria 10 Devices on the Altera web site.
Related Information
• Pin-Out Files for Altera Devices
• Functional Description—Arria 10 EMIF
• External Memory Interface Pin Information for Arria 10 Devices
Resource Sharing Guidelines for Arria 10 EMIF IP
In Arria 10, different external memory interfaces can share PLL reference clock pins, core clock networks,
I/O banks, hard Nios processors, OCT blocks, and RZQ pins. Each I/O bank has DLL and PLL resources,
therefore these do not need to be shared. The Fitter automatically merges DLL and PLL resources when a
bank is shared by different external memory interfaces, and duplicates them for a multi-I/O-bank external
memory interface.
PLL Reference Clock Pin
To conserve pin usage and enable core clock network and I/O bank sharing, you can share a PLL
reference clock pin between multiple external memory interfaces. Sharing of a PLL reference clock pin
also implies sharing of the reference clock network.
Observe the following guidelines for sharing the PLL reference clock pin:
1. To share a PLL reference clock pin, connect the same signal to the pll_ref_clk port of multiple
external memory interfaces in the RTL code.
2. Place related external memory interfaces in the same I/O column.
3. Place related external memory interfaces in adjacent I/O banks. If you leave an unused I/O bank
between the I/O banks used by the external memory interfaces, that I/O bank cannot be used by any
other external memory interface with a different PLL reference clock signal.
Note: The pll_ref_clk pin can be placed in the address and command I/O bank or in a data I/O bank,
there is no impact on timing.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Guidelines for UniPHY-based External Memory Interface IP
3-37
Core Clock Network
To access all external memory interfaces synchronously and to reduce global clock network usage, you
may share the same core clock network with other external memory interfaces.
Observe the following guidelines for sharing the core clock network:
1. To share a core clock network, connect the clks_sharing_master_out of the master to the
clks_sharing_slave_in of all slaves in the RTL code.
2. Place related external memory interfaces in the same I/O column.
3. Related external memory interface must have the same rate, memory clock frequency, and PLL
reference clock.
I/O Bank
To reduce I/O bank utilization, you may share an I/O Bank with other external memory interfaces.
Observe the following guidelines for sharing an I/O Bank:
1. Related external memory interfaces must have the same protocol, rate, memory clock frequency, and
PLL reference clock.
2. You cannot use a given I/O bank as the address and command bank for more than one external
memory interface.
3. You cannot share an I/O lane between external memory interfaces, but an unused pin can serve as a
general purpose I/O pin, of compatible voltage and termination standards.
Hard Nios Processor
All external memory interfaces residing in the same I/O column will share the same hard Nios processor.
The shared hard Nios processor calibrates the external memory interfaces serially.
OCT Block and RZQ Pin
The Fitter automatically creates and places RZQ pins to maximize sharing and conserve pins.
Observe the following guidelines for sharing an OCT block and RZQ pin:
1. Ensure that the I/O standard is compatible between both interfaces.
2. Ensure that related external memory interfaces are placed in the same I/O column. An OCT block can
be shared only between interfaces in the same I/O column.
Reset Signal
When multiple external memory interfaces occupy the same I/O column, they must share the same IP
reset signal.
Guidelines for UniPHY-based External Memory Interface IP
Altera recommends that you place all the pins for one memory interface (attached to one controller) on
the same side of the device. For projects where I/O availability is limited and you must spread the
interface on two sides of the device, place all the input pins on one side and the output pins on an adjacent
side of the device, along with their corresponding source-synchronous clock.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-38
EMI_DG
2014.12.15
General Pin-out Guidelines for UniPHY-based External Memory Interface IP
General Pin-out Guidelines for UniPHY-based External Memory Interface IP
For best results in laying out your UniPHY-based external memory interface, you should observe the
following guidelines.
Note: For a unidirectional data bus as in QDR II and QDR II+ SRAM interfaces, do not split a read data
pin group or a write data pin group onto two sides. You should also not split the address and
command group onto two sides either, especially when you are interfacing with QDR II and QDR
II+ SRAM burst-length-of-two devices, where the address signals are double data rate. Failure to
adhere to these rules might result in timing failure.
In addition, there are some exceptions for the following interfaces:
•
•
•
•
×36 emulated QDR II and QDR II+ SRAM in Arria II, Stratix III, and Stratix IV devices.
RLDRAM II and RLDRAM 3 CIO devices.
QDR II/+ SDRAM burst-length-of-two devices.
You must compile the design in the Quartus II software to ensure that you are not violating signal
integrity and Quartus II placement rules, which is critical when you have transceivers in the same
design.
The following are general guidelines for placing pins optimally for your memory interfaces:
1. For Arria II GZ, Arria V, Cyclone V, Stratix III, Stratix IV, and Stratix V designs, if you are using OCT,
the RUP and RDN, or RZQ pins must be in any bank with the same I/O voltage as your memory
interface signals and often use two DQS or DQ pins from a group. If you decide to place the RUP and
RDN, or RZQ pins in a bank where the DQS and DQ groups are used, place these pins first and then
determine how many DQ pins you have left, to find out if your data pins can fit in the remaining pins.
Refer to OCT Support for Arria II GX, Arria II GZ, Arria V, Arria V GZ, Cyclone V, Stratix III,
Stratix IV, and Stratix V Devices.
2. Use the PLL that is on the same side of the memory interface. If the interface is spread out on two
adjacent sides, you may use the PLL that is located on either adjacent side. You must use the dedicated
input clock pin to that particular PLL as the reference clock for the PLL. The input of the memory
interface PLL cannot come from the FPGA clock network.
3. The Altera IP uses the output of the memory interface PLL as the DLL input reference clock.
Therefore, ensure you select a PLL that can directly feed a suitable DLL.
Note: Alternatively, you can use an external pin to feed into the DLL input reference clock. The
available pins are also listed in the External Memory Interfaces chapter of the relevant device
family handbook. You can also activate an unused PLL clock output, set it at the desired DLL
frequency, and route it to a PLL dedicated output pin. Connect a trace on the PCB from this
output pin to the DLL reference clock pin, but be sure to include any signal integrity require‐
ments such as terminations.
4. Read data pins require the usage of DQS and DQ group pins to have access to the DLL control signals.
Note: In addition, QVLD pins in RLDRAM II and RLDRAM 3 DRAM, and QDR II+ SRAM must use
DQS group pins, when the design uses the QVLD signal. None of the Altera IP uses QVLD pins
as part of read capture, so theoretically you do not need to connect the QVLD pins if you are
using the Altera solution. It is good to connect it anyway in case the Altera solution gets
updated to use QVLD pins.
5. In differential clocking (DDR3/DDR2 SDRAM, RLDRAM II, and RLDRAM 3 interfaces), connect the
positive leg of the read strobe or clock to a DQS pin, and the negative leg of the read strobe or clock to
a DQSn pin. For QDR II or QDR II+ SRAM devices with 2.5 or 1.5 cycles of read latency, connect the
CQ pin to a DQS pin, and the CQn pin to a CQn pin (and not the DQSn pin). For QDR II or QDR II+
SRAM devices with 2.0 cycles of read latency, connect the CQ pin to a CQn pin, and the CQn pin to a
DQS pin.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Pin-out Rule Exceptions for ×36 Emulated QDR II and QDR II+ SRAM Interfaces in
Arria II, Stratix III and Stratix IV Devices
3-39
6. Write data (if unidirectional) and data mask pins (DM or BWSn) pins must use DQS groups. While
the DLL phase shift is not used, using DQS groups for write data minimizes skew, and must use the
SW and TCCS timing analysis methodology.
7. Assign the write data strobe or write data clock (if unidirectional) in the corresponding DQS/DQSn
pin with the write data groups that place in DQ pins (except in RLDRAM II and RLDRAM 3 CIO
devices). Refer to the Pin-out Rule Exceptions for your memory interface protocol.
Note: When interfacing with a DDR, or DDR2, or DDR3 SDRAM without leveling, put the CK and
CK# pairs in a single ×4 DQS group to minimize skew between clocks and maximize margin for
the tDQSS, tDSS, and tDSH specifications from the memory devices.
8. Assign any address pins to any user I/O pin. To minimize skew within the address pin group, you
should assign the address pins in the same bank or side of the device.
9. Assign the command pins to any I/O pins and assign the pins in the same bank or device side as the
other memory interface pins, especially address and memory clock pins. The memory device usually
uses the same clock to register address and command signals.
• In QDR II and QDR II+ SRAM interfaces where the memory clock also registers the write data,
assign the address and command pins in the same I/O bank or same side as the write data pins, to
minimize skew.
• For more information about assigning memory clock pins for different device families and memory
standards, refer to Pin Connection Guidelines Tables.
Related Information
Pin Connection Guidelines Tables on page 3-46
Additional Guidelines for Arria V GZ and Stratix V Devices on page 3-54
OCT Support on page 3-31
Pin-out Rule Exceptions for ×36 Emulated QDR II and QDR II+ SRAM Interfaces in Arria II,
Stratix III and Stratix IV Devices on page 3-39
• Pin-out Rule Exceptions for QDR II and QDR II+ SRAM Burst-length-of-two Interfaces on page 346
• Pin-out Rule Exceptions for RLDRAM II and RLDRAM 3 Interfaces on page 3-44
•
•
•
•
Pin-out Rule Exceptions for ×36 Emulated QDR II and QDR II+ SRAM Interfaces in
Arria II, Stratix III and Stratix IV Devices
A few packages in the Arria II, Arria V GZ, Stratix III, Stratix IV, and Stratix V device families do not
offer any ×32/×36 DQS groups where one read clock or strobe is associated with 32 or 36 read data pins.
This limitation exists in the following I/O banks:
• All I/O banks in U358- and F572-pin packages for all Arria II GX devices
• All I/O banks in F484-pin packages for all Stratix III devices
• All I/O banks in F780-pin packages for all Arria II GZ, Stratix III, and Stratix IV devices; top and side
I/O banks in F780-pin packages for all Stratix V and Arria V GZ devices
• All I/O banks in F1152-pin packages for all Arria II GZ, Stratix III, and Stratix IV devices, except
EP4SGX290, EP4SGX360, EP4SGX530, EPAGZ300, and EPAGZ350 devices
• Side I/O banks in F1517- and F1760-pin packages for all Stratix III devices
• All I/O banks in F1517-pin for EP4SGX180, EP4SGX230, EP4S40G2, EP4S40G5, EP4S100G2,
EP4S100G5, and EPAGZ225 devices
• Side I/O banks in F1517-, F1760-, and F1932-pin packages for all Arria II GZ and Stratix IV devices
This limitation limits support for ×36 QDR II and QDR II+ SRAM devices. To support these memory
devices, this following section describes how you can emulate the ×32/×36 DQS groups for these devices.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-40
EMI_DG
2014.12.15
Pin-out Rule Exceptions for ×36 Emulated QDR II and QDR II+ SRAM Interfaces in
Arria II, Stratix III and Stratix IV Devices
• The maximum frequency supported in ×36 QDR II and QDR II+ SRAM interfaces using ×36
emulation is lower than the maximum frequency when using a native ×36 DQS group.
Note: The F484-pin package in Stratix III devices cannot support ×32/×36 DQS group emulation, as it
does not support ×16/×18 DQS groups.
To emulate a ×32/×36 DQS group, combine two ×16/×18 DQS groups together. For ×36 QDR II and
QDR II+ SRAM interfaces, the 36-bit wide read data bus uses two ×16/×18 groups; the 36-bit wide write
data uses another two ×16/×18 groups or four ×8/×9 groups. The CQ and CQn signals from the QDR II
and QDR II+ SRAM device traces are then split on the board to connect to two pairs of CQ/CQn pins in
the FPGA. You might then need to split the QVLD pins also (if you are connecting them). These
connections are the only connections on the board that you need to change for this implementation.
There is still only one pair of K and Kn connections on the board from the FPGA to the memory (see the
following figure). Use an external termination for the CQ/CQn signals at the FPGA end. You can use the
FPGA OCT features on the other QDR II interface signals with ×36 emulation. In addition, there may be
extra assignments to be added with ×36 emulation.
Note: Other QDR II and QDR II+ SRAM interface rules also apply for this implementation.
You may also combine four ×9 DQS groups (or two ×9 DQS groups and one ×18 group) on the same side
of the device, if not the same I/O bank, to emulate a x36 write data group, if you need to fit the QDR II
interface in a particular side of the device that does not have enough ×18 DQS groups available for write
data pins. Altera does not recommend using ×4 groups as the skew may be too large, as you need eight ×4
groups to emulate the ×36 write data bits.
You cannot combine four ×9 groups to create a ×36 read data group as the loading on the CQ pin is too
large and hence the signal is degraded too much.
When splitting the CQ and CQn signals, the two trace lengths that go to the FPGA pins must be as short
as possible to reduce reflection. These traces must also have the same trace delay from the FPGA pin to
the Y or T junction on the board. The total trace delay from the memory device to each pin on the FPGA
should match the Q trace delay (I2).
Note: You must match the trace delays. However, matching trace length is only an approximation to
matching actual delay.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Timing Impact on x36 Emulation
3-41
Figure 3-9: Board Trace Connection for Emulated x36 QDR II and QDR II+ SRAM Interface
FPGA IOE
DDR
DDR
DDR
DDR
Latch
ena
length = l1
length = l1
DQ (18-bit)
length = l2
D, A
K
Kn
QDR II
Q SRAM
DDR
DQS length = l2 CQ
DQSn length = l2 CQn
DQS Logic
Block
DDR
Latch
ena
length = l1
DQ (18-bit)
length = l2
Q
DDR
Timing Impact on x36 Emulation
With ×36 emulation, the CQ/CQn signals are split on the board, so these signals see two loads (to the two
FPGA pins)—the DQ signals still only have one load. The difference in loading gives some slew rate
degradation, and a later CQ/CQn arrival time at the FPGA pin.
The slew rate degradation factor is taken into account during timing analysis when you indicate in the
UniPHY Preset Editor that you are using ×36 emulation mode. However, you must determine the
difference in CQ/CQn arrival time as it is highly dependent on your board topology.
The slew rate degradation factor for ×36 emulation assumes that CQ/CQn has a slower slew rate than a
regular ×36 interface. The slew rate degradation is assumed not to be more than 500 ps (from 10% to 90%
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-42
EMI_DG
2014.12.15
Rules to Combine Groups
VCCIO swing). You may also modify your board termination resistor to improve the slew rate of the ×36emulated CQ/CQn signals. If your modified board does not have any slew rate degradation, you do not
need to enable the ×36 emulation timing in the UniPHY-based controller parameter editor.
For more information about how to determine the CQ/CQn arrival time skew, refer to Determining the
CQ/CQn Arrival Time Skew.
Because of this effect, the maximum frequency supported using x36 emulation is lower than the
maximum frequency supported using a native x36 DQS group.
Related Information
Determining the CQ/CQn Arrival Time Skew on page 3-42
Rules to Combine Groups
For devices that do not have four ×16/×18 groups in a single side of the device to form two ×36 groups for
read and write data, you can form one ×36 group on one side of the device, and another ×36 group on the
other side of the device. All the read groups have to be on the same edge (column I/O or row I/O) and all
write groups have to be on the same type of edge (column I/O or row I/O), so you can have an interface
with the read group in column I/O and the write group in row I/O. The only restriction is that you cannot
combine an ×18 group from column I/O with an ×18 group from row IO to form a x36-emulated group.
For vertical migration with the ×36 emulation implementation, check if migration is possible and enable
device migration in the Quartus II software.
Note: I/O bank 1C in both Stratix III and Stratix IV devices has dual-function configuration pins. Some
of the DQS pins may not be available for memory interfaces if these are used for device configura‐
tion purposes.
Each side of the device in these packages has four remaining ×8/×9 groups. You can combine four of the
remaining for the write side (only) if you want to keep the ×36 QDR II and QDR II+ SRAM interface on
one side of the device, by changing the Memory Interface Data Group default assignment, from the
default 18 to 9.
For more information about rules to combine groups for your target device, refer to the External Memory
Interfaces chapter in the respective device handbooks.
Determining the CQ/CQn Arrival Time Skew
Before compiling a design in the Quartus II software, you need to determine the CQ/CQn arrival time
skew based on your board simulation. You then need to apply this skew in the report_timing.tcl file of
your QDR II and QDR II+ SRAM interface in the Quartus II software.
The following figure shows an example of a board topology comparing an emulated case where CQ is
double-loaded and a non-emulated case where CQ only has a single load.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Determining the CQ/CQn Arrival Time Skew
3-43
Figure 3-10: Board Simulation Topology Example
Run the simulation and look at the signal at the FPGA pin. The following figure shows an example of the
simulation results from the preceding figure. As expected, the double-loaded emulated signal, in pink,
arrives at the FPGA pin later than the single-loaded signal, in red. You then need to calculate the
difference of this arrival time at VREF level (0.75 V in this case). Record the skew and rerun the
simulation in the other two cases (slow-weak and fast-strong). To pick the largest and smallest skew to be
included in Quartus II timing analysis, follow these steps:
1.
2.
3.
4.
Open the <variation_name>_report_timing.tcl and search for tmin_additional_dqs_variation.
Set the minimum skew value from your board simulation to tmin_additional_dqs_variation.
Set the maximum skew value from your board simulation to tmax_additional_dqs_variation.
Save the .tcl file.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-44
EMI_DG
2014.12.15
Pin-out Rule Exceptions for RLDRAM II and RLDRAM 3 Interfaces
Figure 3-11: Board Simulation Results
Pin-out Rule Exceptions for RLDRAM II and RLDRAM 3 Interfaces
RLDRAM II and RLDRAM 3 CIO devices have one bidirectional bus for the data, but there are two
different sets of clocks: one for read and one for write. As the QK and QK# already occupies the DQS and
DQSn pins needed for read, placement of DK and DK# pins are restricted due to the limited number of
pins in the FPGA. This limitations causes the exceptions to the previous rules, which are discussed below.
The address or command pins of RLDRAM II must be placed in a DQ-group because these pins are
driven by the PHY clock. Half-rate RLDRAM II interfaces and full-rate RLDRAM 3 interfaces use the
PHY clock for both the DQ pins and the address or command pins.
Interfacing with ×9 RLDRAM II CIO Devices
RLDRAM 3 devices do not have the x9 configuration.
RLDRAM II devices have the following pins:
•
•
•
•
•
Altera Corporation
2 pins for QK and QK# signals
9 DQ pins (in a ×8/×9 DQS group)
2 pins for DK and DK# signals
1 DM pin
14 pins total (15 if you have a QVLD)
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Interfacing with ×18 RLDRAM II and RLDRAM 3 CIO Devices
3-45
In the FPGA, the ×8/×9 DQS group consists of 12 pins: 2 for the read clocks and 10 for the data. In this
case, move the QVLD (if you want to keep this connected even though this is not used in the Altera
memory interface solution) and the DK and DK# pins to the adjacent DQS group. If that group is in use,
move to any available user I/O pins in the same I/O bank.
Interfacing with ×18 RLDRAM II and RLDRAM 3 CIO Devices
This topic describes interfacing with x18 RLDRAM II and RLDRAM 3 devices.
RLDRAM II devices have the following pins:
•
•
•
•
•
4 pins for QK/QK# signals
18 DQ pins (in ×8/×9 DQS group)
2 pins for DK/DK# signals
1 DM pin
25 pins total (26 if you have a QVLD)
In the FPGA, you use two ×8/×9 DQS group totaling 24 pins: 4 for the read clocks and 18 for the read
data.
Each ×8/×9 group has one DQ pin left over that can either use QVLD or DM, so one ×8/×9 group has the
DM pin associated with that group and one ×8/×9 group has the QVLD pin associated with that group.
RLDRAM 3 devices have the following pins:
•
•
•
•
•
4 pins for QK/QK# signals
18 DQ pins (in ×8/×9 DQS group)
4 pins for DK/DK# signals
2 DM pins
28 pins total (29 if you have a QVLD)
In the FPGA, you use two ×8/×9 DQS group totaling 24 pins: 4 for the read clocks and 18 for the read
data.
Each ×8/×9 group has one DQ pin left over that can either use QVLD or DM, so one ×8/×9 group has the
DM pin associated with that group and one ×8/×9 group has the QVLD pin associated with that group.
Interfacing with RLDRAM II and RLDRAM 3 ×36 CIO Devices
This topic describes interfacing with RLDRAM II and RLDRAM 3 x36 CIO devices.
RLDRAM II devices have the following pins:
•
•
•
•
•
4 pins for QK/QK# signals
36 DQ pins (in x16/x18 DQS group)
4 pins for DK/DK# signals
1 DM pins
46 pins total (47 if you have a QVLD)
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-46
EMI_DG
2014.12.15
Pin-out Rule Exceptions for QDR II and QDR II+ SRAM Burst-length-of-two Interfaces
In the FPGA, you use two ×16/×18 DQS groups totaling 48 pins: 4 for the read clocks and 36 for the read
data. Configure each ×16/×18 DQS group to have:
• Two QK/QK# pins occupying the DQS/DQSn pins
• Pick two DQ pins in the ×16/×18 DQS groups that are DQS and DQSn pins in the ×4 or ×8/×9 DQS
groups for the DK and DK# pins
• 18 DQ pins occupying the DQ pins
• There are two DQ pins leftover that you can use for QVLD or DM pins. Put the DM pin in the group
associated with DK[1] and the QVLD pin in the group associated with DK[0].
• Check that DM is associated with DK[1] for your chosen memory component.
RLDRAM 3 devices have the following pins:
•
•
•
•
•
8 pins for QK/QK# signals
36 DQ pins (in x8/x9 DQS group)
4 pins for DK/DK# signals
2 DM pins
48 pins total (49 if you have a QVLD)
In the FPGA, you use four ×8/×9 DQS groups.
In addition, observe the following placement rules for RLDRAM 3 interfaces:
For ×18 devices:
• Use two ×8/×9 DQS groups. Assign the QK/QK# pins and the DQ pins of the same read group to the
same DQS group.
• DQ, DM, and DK/DK# pins belonging to the same write group should be assigned to the same I/O
sub-bank, for timing closure.
• Whenever possible, assign CK/CK# pins to the same I/O sub-bank as the DK/DK# pins, to improve
tCKDK timing.
For ×36 devices:
• Use four ×8/×9 DQS groups. Assign the QK/QK# pins and the DQ pins of the same read group to the
same DQS group.
• DQ, DM, and DK/DK# pins belonging to the same write group should be assigned to the same I/O
sub-bank, for timing closure.
• Whenever possible, assign CK/CK# pins to the same I/O sub-bank as the DK/DK# pins, to improve
tCKDK timing.
Pin-out Rule Exceptions for QDR II and QDR II+ SRAM Burst-length-of-two Interfaces
If you are using the QDR II and QDR II+ SRAM burst-length-of-two devices, you may want to place the
address pins in a DQS group to minimize skew, because these pins are now double data rate too.
The address pins typically do not exceed 22 bits, so you may use one ×18 DQS groups or two ×9 DQS
groups on the same side of the device, if not the same I/O bank. In Arria V GZ, Stratix III, Stratix IV, and
Stratix V devices, one ×18 group typically has 22 DQ bits and 2 pins for DQS/DQSn pins, while one ×9
group typically has 10 DQ bits with 2 pins for DQS/DQSn pins. Using ×4 DQS groups should be a last
resort.
Pin Connection Guidelines Tables
The following table lists the FPGA pin utilization for DDR, DDR2, and DDR3 SDRAM without leveling
interfaces.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Pin Connection Guidelines Tables
3-47
Table 3-11: FPGA Pin Utilization for DDR, DDR2, and DDR3 SDRAM without Leveling Interfaces
FPGA Pin Utilization
Interface Pin
Description
Memory
System
Clock
Memory Device
Pin Name
CK and CK#
(2)
(1)
Arria II GX
Arria II GZ,
Stratix III, and
Stratix IV
Arria V,
Cyclone V,
and Stratix V
If you are using
single-ended
DQS signaling,
place any
unused DQ or
DQS pins with
If you are using
single-ended
DQS signaling,
place any
DIFFOUT pins
in the same
bank or on the
same side as the
data pins
If you are using
single-ended
DQS signaling,
place any
unused DQ or
DQS pins with
DIFFOUT
capability
located in the
same bank or
If you are using
on the same
side as the data differential
DQS signaling
pins.
in UniPHY IP,
If you are using place any
DIFFOUT pins
differential
DQS signaling in the same
in UniPHY IP, bank or on the
same side as the
place on
DIFFOUT in the data pins. If
same single DQ there are
multiple CK/
group of
adequate width CK# pairs,
place them on
to minimize
DIFFOUT in the
skew.
same single DQ
group of
adequate width.
For example,
DIMMs
requiring three
memory clock
pin-pairs must
use a ×4 DQS
group.
Planning Pin and FPGA Resources
Send Feedback
MAX 10 FPGA
Place any differential
I/O pin pair
( DIFFIO) in the
same bank or on the
same side as the data
pins.
DIFFOUT
capability in
the same bank
or on the same
side as the data
pins.
If you are using
differential
DQS signaling,
place any
unused DQ or
DQS pins with
DIFFOUT
capability for
the mem_
clk[n:0] and
mem_clk_n[n:
0] signals
(where n>=0).
CK and CK#
pins must use a
pin pair that
has DIFFOUT
capability.
CK and CK#
pins can be in
the same group
as other DQ or
DQS pins. CK
and CK# pins
can be placed
such that one
signal of the
differential pair
is in a DQ
group and the
other signal is
not.
If there are
multiple CK
and CK# pin
pairs, place
them on
DIFFOUT in the
same single DQ
Altera Corporation
3-48
EMI_DG
2014.12.15
Pin Connection Guidelines Tables
FPGA Pin Utilization
Interface Pin
Description
Clock
Source
Memory Device
Pin Name
—
Arria II GX
Arria II GZ,
Stratix III, and
Stratix IV
Arria V,
Cyclone V,
and Stratix V
MAX 10 FPGA
Dedicated PLL clock input pin with direct
connection to the PLL (not using the global clock
network).
For Arria II GX, Arria II GZ, Arria V GZ, Stratix
III, Stratix IV and Stratix V Devices, also ensure
that the PLL can supply the input reference clock
to the DLL. Otherwise, refer to alternative DLL
input reference clocks (see General Pin-out
Guidelines).
Reset
—
Dedicated clock input pin to accommodate the
high fan-out signal.
Data
DQ
DQ in the pin table, marked as Q in the Quartus II
Pin Planner. Each DQ group has a common
background color for all of the DQ and DM pins,
associated with DQS (and DQSn) pins.
Data mask DM
Data
strobe
DQS or DQS and
DQSn (DDR2
and DDR2
SDRAM only)
DQS (S in the Quartus II Pin Planner) for singleended DQS signaling or DQS and DQSn (S and
Sbar in the Quartus II Pin Planner) for differential
DQS signaling. DDR2 supports either singleended or differential DQS signaling. DDR3
SDRAM mandates differential DQS signaling.
Address
and
command
A[], BA[], CAS#,
CKE, CS#, ODT,
RAS#, WE#,
RESET#
Any user I/O pin. To minimize skew, you must
place the address and command pins in the same
bank or side of the device as the CK/CK# pins,
DQ, DQS, or DM pins. The reset# signal is only
available in DDR3 SDRAM interfaces. Altera
devices use the SSTL-15 I/O standard on the
RESET# signal to meet the voltage requirements of
1.5 V CMOS at the memory device. Altera
recommends that you do not terminate the
RESET# signal to VTT.
For Arria V, Cyclone V and Stratix V devices, you
must place address and command pins in fully
populated DQ/DQS groups with 12 available pins
in the group.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
DDR3 SDRAM With Leveling Interface Pin Utilization Applicable for Arria V GZ,
Stratix III, Stratix IV, and Stratix V Devices
3-49
FPGA Pin Utilization
Interface Pin
Description
Memory Device
Pin Name
Arria II GX
Arria II GZ,
Stratix III, and
Stratix IV
Arria V,
Cyclone V,
and Stratix V
MAX 10 FPGA
Notes to Table:
1. The first CK/CK# pair refers to mem_clk[0] or mem_clk_n[0] in the IP core.
2. The restriction on the placement for the first CK/CK# pair is required because
this placement allows the mimic path that the IP VT tracking uses to go through
differential I/O buffers to mimic the differential DQS signals.
Related Information
General Pin-out Guidelines for UniPHY-based External Memory Interface IP on page 3-38
DDR3 SDRAM With Leveling Interface Pin Utilization Applicable for Arria V GZ, Stratix III, Stratix
IV, and Stratix V Devices
The following table lists the FPGA pin utilization for DDR3 SDRAM with leveling interfaces.
Table 3-12: DDR3 SDRAM With Leveling Interface Pin Utilization Applicable for Arria V GZ, Stratix III, Stratix
IV, and Stratix V Devices
Interface Pin Descrip‐
tion
Memory Device Pin
Name
Data
DQ
Data Mask
DM
FPGA Pin Utilization
DQ in the pin table, marked as Q in the Quartus II Pin
Planner. Each DQ group has a common background color
for all of the DQ and DM pins, associated with DQS (and
DQSn) pins. The ×4 DIMM has the following mapping
between DQS and DQ pins:
•
•
•
•
DQS[0] maps to DQ[3:0]
DQS[9] maps to DQ[7:4]
DQS[1] maps to DQ[11:8]
DQS[10] maps to DQ[15:12]
The DQS pin index in other DIMM configurations typically
increases sequentially with the DQ pin index (DQS[0]:
DQ[3:0]; DQS[1]: DQ[7:4]; DQS[2]: DQ[11:8]). In this
DIMM configuration, the DQS pins are indicted this way to
ensure pin out is compatible with both ×4 and ×8 DIMMs.
Data Strobe
Planning Pin and FPGA Resources
Send Feedback
DQS and DQSn
DQS and DQSn (S and Sbar in the Quartus II Pin Planner)
Altera Corporation
3-50
EMI_DG
2014.12.15
QDR II and QDR II+ SRAM Pin Utilization for Arria II, Arria V, Stratix III, Stratix IV, and
Stratix V Devices
Interface Pin Descrip‐
tion
Memory Device Pin
Name
FPGA Pin Utilization
A[], BA[], CAS#, CKE, Any user I/O pin. To minimize skew, you should place
CS#, ODT, RAS#,
address and command pins in the same bank or side of the
WE#,
device as the following pins: CK/CK# pins, DQ, DQS, or
DM pins.
For Arria V, Cyclone V and Stratix V devices, you must
place address and command pins in fully populated DQ/
DQS groups with 12 available pins in the group.
Address and
Command
Memory system
clock
RESET#
Altera recommends that you use the 1.5V CMOS I/O
standard on the RESET# signal. If your board is already using
the SSTL-15 I/O standard, you do not terminate the RESET#
signal to VTT.
CK and CK#
For controllers with UniPHY IP, you can assign the
memory clock to any unused DIFF_OUT pins in the same
bank or on the same side as the data pins. However, for
Arria V GZ and Stratix V devices, place the memory clock
pins to any unused DQ or DQS pins. Do not place the
memory clock pins in the same DQ group as any other DQ
or DQS pins.
If there are multiple CK/CK# pin pairs using Arria V GZ or
Stratix V devices, you must place them on DIFFOUT in the
same single DQ groups of adequate width. For example,
DIMMs requiring three memory clock pin-pairs must use a
×4 DQS group.
Placing the multiple CK/CK# pin pairs on DIFFOUT in the
same single DQ groups for Stratix III and Stratix IV devices
improves timing.
Clock Source
—
Dedicated PLL clock input pin with direct (not using a
global clock net) connection to the PLL and optional DLL
required by the interface.
Reset
—
Dedicated clock input pin to accommodate the high fan-out
signal.
QDR II and QDR II+ SRAM Pin Utilization for Arria II, Arria V, Stratix III, Stratix IV, and Stratix V
Devices
The following table lists the FPGA pin utilization for QDR II and QDR II+ SRAM interfaces.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
QDR II and QDR II+ SRAM Pin Utilization for Arria II, Arria V, Stratix III, Stratix IV, and
Stratix V Devices
3-51
Table 3-13: QDR II and QDR II+ SRAM Pin Utilization for Arria II, Arria V, Stratix III, Stratix IV, and Stratix V
Devices
Interface Pin Descrip‐
tion
Read Clock
Memory Device Pin
Name
CQ and CQ#
(1)
FPGA Pin Utilization
For QDR II SRAM devices with 1.5 or 2.5 cycles of read
latency or QDR II+ SRAM devices with 2.5 cycles of read
latency, connect CQ to DQS pin (S in the Quartus II Pin
Planner), and CQn to CQn pin (Qbar in the Quartus II Pin
Planner).
For QDR II or QDR II+ SRAM devices with 2.0 cycles of
read latency, connect CQ to CQn pin (Qbar in the Quartus
II Pin Planner), and CQn to DQS pin (S in the Quartus II
Pin Planner).
Arria V devices do not use CQn. The CQ rising and falling
edges are used to clock the read data, instead of separate CQ
and CQn signals.
Read Data
Q
Data Valid
QVLD
DQ pins (Q in the Quartus II Pin Planner). Ensure that you
are using the DQ pins associated with the chosen read clock
pins (DQS and CQn pins). QVLD pins are only available for
QDR II+ SRAM devices and note that Altera IP does not use
the QVLD pin.
Memory and Write K and K#
Data Clock
Differential or pseudo-differential DQ, DQS, or DQSn pins
in or near the write data group.
Write Data
D
Byte Write Select
BWS#, NWS#
DQ pins. Ensure that you are using the DQ pins associated
with the chosen memory and write data clock pins (DQS
and DQS pins).
Address and
Command
A, WPS#, RPS#
Any user I/O pin. To minimize skew, you should place
address and command pins in the same bank or side of the
device as the following pins: K and K# pins, DQ, DQS,
BWS#, and NWS# pins. If you are using burst-length-of-two
devices, place the address signals in a DQS group pin as
these signals are now double data rate.
For Arria V, Cyclone V and Stratix V devices, you must
place address and command pins in fully populated DQ/
DQS groups with 12 available pins in the group.
Clock source
—
Dedicated PLL clock input pin with direct (not using a
global clock net) connection to the PLL and optional DLL
required by the interface.
Reset
—
Dedicated clock input pin to accommodate the high fan-out
signal
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-52
EMI_DG
2014.12.15
RLDRAM II CIO Pin Utilization for Arria II GZ, Arria V, Stratix III, Stratix IV, and Stratix V
Devices
Interface Pin Descrip‐
tion
Memory Device Pin
Name
FPGA Pin Utilization
Note to table:
1. For Arria V designs with integer latency, connect the CQ# signal to the CQ/CQ# pins from the pin
table and ignore the polarity in the Pin Planner. For Arria V designs with fractional latency, connect
the CQ signal to the CQ/CQ# pins from the pin table.
RLDRAM II CIO Pin Utilization for Arria II GZ, Arria V, Stratix III, Stratix IV, and Stratix V Devices
The following table lists the FPGA pin utilization for RLDRAM II CIO and RLDRAM 3 interfaces.
Table 3-14: RLDRAM II CIO Pin Utilization for Arria II GZ, Arria V, Stratix III, Stratix IV, and Stratix V
Devices and RLDRAM 3 Pin Utilization for Arria V GZ and Stratix V Devices
Interface Pin Descrip‐
tion
Memory Device Pin
Name
Read Clock
QK and QK#
Data
Q
Data Valid
QVLD
Data Mask
DM
Write Data Clock
DK and DK#
(1)
FPGA Pin Utilization
DQS and DQSn pins (S and Sbar in the Quartus II Pin
Planner)
DQ pins (Q in the Quartus II Pin Planner). Ensure that you
are using the DQ pins associated with the chosen read clock
pins (DQS and DQSn pins). Altera IP does not use the
QVLD pin. You may leave this pin unconnected on your
board. You may not be able to fit these pins in a DQS group.
For more information about how to place these pins, refer
to “Exceptions for RLDRAM II and RLDRAM 3 Interfaces”
on page 3–34.
DQ pins in the same DQS group as the read data (Q) pins or
in adjacent DQS group or in the same bank as the address
and command pins. For more information, refer to
“Exceptions for RLDRAM II and RLDRAM 3 Interfaces” on
page 3–34. DK/DK# must use differential output-capable
pins.
For Nios-based configuration, the DK pins must be in a DQ
group but the DK pins do not have to be in the same group
as the data or QK pins.
Memory Clock
CK and CK#
Any differential output-capable pins.
For Arria V GZ and Stratix V devices, place any unused DQ
or DQS pins with DIFFOUT capability. Place the memory
clock pins either in the same bank as the DK or DK# pins to
improve DK versus CK timing, or in the same bank as the
address and command pins to improve address command
timing. Do not place CK and CK# pins in the same DQ
group as any other DQ or DQS pins.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
LPDDR2 Pin Utilization for Arria V, Cyclone V, and MAX 10 FPGA Devices
Interface Pin Descrip‐
tion
Address and
Command
Memory Device Pin
Name
A, BA, CS#, REF#,
WE#
3-53
FPGA Pin Utilization
Any user I/O pins. To minimize skew, you should place
address and command pins in the same bank or side of the
device as the following pins: CK/CK# pins, DQ, DQS, and
DM pins.
For Arria V, Cyclone V and Stratix V devices, you must
place address and command pins in fully populated DQ/
DQS groups with 12 available pins in the group.
Clock source
—
Dedicated PLL clock input pin with direct (not using a
global clock net) connection to the PLL and optional DLL
required by the interface.
Reset
—
Dedicated clock input pin to accommodate the high fan-out
signal
Note to Table:
1. For Arria V devices, refer to the pin table for the QK and QK# pins. Connect QK and QK# signals to
the QK and QK# pins from the pin table and ignore the polarity in the Pin Planner.
Related Information
Pin-out Rule Exceptions for RLDRAM II and RLDRAM 3 Interfaces on page 3-44
LPDDR2 Pin Utilization for Arria V, Cyclone V, and MAX 10 FPGA Devices
The following table lists the FPGA pin utilization for LPDDR2 SDRAM.
Table 3-15: LPDDR2 Pin Utilization for Arria V, Cyclone V, and MAX 10 FPGA Devices
Interface Pin Descrip‐
tion
Memory Clock
Planning Pin and FPGA Resources
Send Feedback
Memory Device Pin
Name
CK, CKn
FPGA Pin Utilization
Differential clock inputs. All double data rate (DDR) inputs
are sampled on both positive and negative edges of the CK
signal. Single data rate (SDR) inputs are sampled at the
positive clock edge. Place any unused DQ or DQS pins with
DIFFOUT capability for the mem_clk[n:0] and mem_clk_
n[n:0] signals (where n>=0). Do not place CK and CK# pins
in the same group as any other DQ or DQS pins. If there are
multiple CK and CK# pin pairs, place them on DIFFOUT in
the same single DQ group of adequate width.
Altera Corporation
3-54
EMI_DG
2014.12.15
Additional Guidelines for Arria V GZ and Stratix V Devices
Interface Pin Descrip‐
tion
Address and
Command
Memory Device Pin
Name
CA0-CA9
CSn
CKE
FPGA Pin Utilization
Unidirectional DDR command and address bus inputs.
Chip Select: CSn is considered to be part of the command
code.Clock Enable: CKE HIGH activates and CKE LOW
deactivates internal clock signals and therefore device input
buffers and output drivers. Place address and command
pins in any DDR-capable I/O pin. To minimize skew, Altera
recommends using address and command pins in the same
bank or side of the device as the CK/CK#, DQ. DQS, or DM
pins..
For Arria V, Cyclone V and Stratix V devices, you must
place address and command pins in fully populated DQ/
DQS groups with 12 available pins in the group.
Data
DQ0-DQ7 (×8)
DQ0-DQ15 (×16)
DQ0-DQ31 (×32)
Bidirectional data bus. Pins are used as data inputs and
outputs. DQ in the pin table is marked as Q in the Pin
Planner. Each DQ group has a common background color
for all of the DQ and DM pins associated with DQS (and
DQSn) pins. Place on DQ group pin marked Q in the Pin
Planner.
Data Strobe
DQS, DQSn
Data Strobe. The data strobe is bidirectional (used for read
and write data) and differential (DQS and DQSn). It is
output with read data and input with write data. Place on
DQS and DQSn (S and Sbar in the Pin Planner) for differen‐
tial DQS signaling.
Data Mask
DM0 (×8)
Input Data Mask. DM is the input mask signal for write
data. Input data is masked when DM is sampled HIGH
coincident with that input data during a write access. DM is
sampled on both edges of DQS. DQ in the pin table is
marked as Q in the Pin Planner. Each DQ group has a
common background color for all of the DQ and DM pins,
associated with DQS (and DQSn) pins. Place on DQ group
pin marked Q in the Pin Planner.
DM0-DM1 (×16)
DM0-DM3 (×32)
Clock Source
—
Dedicated PLL clock input pin with direct (not using a
global clock net) connection to the PLL and optional DLL
required by the interface.
Reset
—
Dedicated clock input pin to accommodate the high fan-out
signal.
Additional Guidelines for Arria V GZ and Stratix V Devices
This section provides guidelines for improving timing for Arria V GZ and Stratix V devices and the rules
that you must follow to overcome timing failures.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Additional Guidelines for Arria V GZ and Stratix V Devices
3-55
Performing Manual Pin Placement
The following table lists rules that you can follow to perform proper manual pin placement and avoid
timing failures.
The rules are categorized as follows:
• Mandatory—This rule is mandatory and cannot be violated as it would result in a no-fit error.
• Recommended—This rule is recommended and if violated the implementation is legal but the timing
is degraded.
• Highly Recommended—This rule is not mandatory but is highly recommended because disregarding
this rule might result in timing violations.
Table 3-16: Manual Pin Placement Rules
Rules
Frequency
Device
Reason
Mandatory
Must place all CK, CK#, address,
> 800 MHz
control, and command pins of an
interface in the same I/O sub-bank.
All
For optimum timing, clock and
data output paths must share as
much hardware as possible. For
write data pins (for example, DQ/
DQS), the best timing is achieved
through the DQS Groups.
Must not split interface between
top and bottom sides
Any
All
Because PLLs and DLLs on the top
edge cannot access the bottom edge
of a device and vice-versa.
Must not place pins from separate
interfaces in the same I/O subbanks unless the interfaces share
PLL or DLL resources.
Any
All
All pins require access to the same
leveling block.
Must not share the same PLL input Any
reference clock unless the interfaces
share PLL or DLL resources.
All
Because sharing the same PLL
input reference clock forces the
same ff-PLL to be used. Each ff-PLL
can drive only one PHY clock tree
and interfaces not sharing a PLL
cannot share a PHY clock tree.
Recommended
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-56
EMI_DG
2014.12.15
Additional Guidelines for Arria V GZ and Stratix V Devices
Rules
Frequency
Place all CK, CK#, address, control, <800 MHz
and command pins of an interface
in the same I/O sub-bank.
Device
All
Reason
Place all CK/CK#, address, control,
and command pins in the same I/O
sub-bank when address and
command timing is critical. For
optimum timing, clock and data
output paths should share as much
hardware as possible. For write data
pins (for example, DQ/DQS), the
best timing is achieved through the
DQS Groups.
(1)
Any
A7
>=800 MHz
All
Corner I/O pins use longer delays,
therefore avoiding corner I/O pins
is recommended for better memory
clock performance.
Avoid straddling an interface across Any
the center PLL.
All
Straddling the center PLL causes
timing degradation, because it
increases the length of the PHY
clock tree and increases jitter. By
not straddling the center PLL, you
can improve core timing closure.
Use the center PLL(f-PLL1) for a
wide interface that must straddle
across center PLL.
All
Using a non-center PLL results in
driving a sub-bank in the opposite
quadrant due to long PHY clock
tree delay.
Avoid using I/Os at the device
corners (for example, sub-bank
“A”).
>= 800 MHz
Place the DQS/DQS# pins such that Any
all DQ groups of the same interface
are next to each other and do not
span across the center PLL.
All
Place CK, CK#, address, control,
and command pins in the same
quadrant as DQ groups for
improved timing in general.
All
Any
The delay from the FPGA core
fabric to the I/O periphery is higher
toward the sub-banks in the
corners. By not using I/Os at the
device corners, you can improve
core timing closure.
To ease core timing closure. If the
pins are too far apart then the core
logic is also placed apart which
results in difficult timing closure.
Highly Recommended
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Additional Guidelines for Arria V ( Except Arria V GZ) Devices
Rules
Frequency
Device
Place all CK, CK#, address, control, >= 800 MHz
and command pins of an interface
in the same I/O sub-bank.
All
Use center PLL and ensure that the >= 800 MHz
PLL input reference clock pin is
placed at a location that can drive
the center PLL.
All
If center PLL is not accessible, place >= 800 MHz
pins in the same quadrant as the
PLL.
All
3-57
Reason
For optimum timing, clock and
data output paths should share as
much hardware as possible. For
write data pins (for example, DQ/
DQS), the best timing is achieved
through the DQS Groups.
Using a non-center PLL results in
driving a sub-bank in the opposite
quadrant due to long PHY clock
tree delay.
Note to Table:
1. This rule is currently applicable to A7 devices only. This rule might be applied to other devices in the
future if they show the same failure.
Additional Guidelines for Arria V ( Except Arria V GZ) Devices
This section provides guidelines on how to improve timing for Arria V devices and the rules that you
must follow to overcome timing failures.
Performing Manual Pin Placement
The following table lists rules you can follow to perform proper manual pin placement and avoid timing
failures.
The rules are categorized as follows:
• Mandatory—This rule is mandatory and cannot be violated as it would result in a no-fit error.
• Recommended—This rule is recommended and if violated the implementation is legal but the timing
is degraded.
Table 3-17: Manual Pin Placement Rules for Arria V (Except Arria V GZ) Devices
Rules
Frequency
Device
Reason
Mandatory
Must place all CK, CK#, address, All
control, and command pins of an
interface on the same device edge
as the DQ groups.
Planning Pin and FPGA Resources
Send Feedback
All
For optimum timing, clock and
data output ports must share as
much hardware as possible.
Altera Corporation
3-58
EMI_DG
2014.12.15
Additional Guidelines for MAX 10 Devices
Rules
Frequency
Device
Reason
Must not place pins from separate All
interfaces in the same I/O subbanks unless the interfaces share
PLL or DLL resources. To share
resources, the interfaces must use
the same memory protocol,
frequency, controller rate, and
phase requirements.
All
All pins require access to the same
PLL/DLL block.
Must not split interface between
top, bottom, and right sides.
All
All
PHYCLK network support
interfaces at the same side of the
I/O banks only. PHYCLK
networks do not support split
interface.
Place the DQS/DQS# pins such
All
that all DQ groups of the same
interface are next to each other
and do not span across the center
PLL.
All
To ease core timing closure. If the
pins are too far apart then the
core logic is also placed apart
which results in difficult timing
closure.
Place all pins for a memory
interface in an I/O bank and use
the nearest PLL to that I/O bank
for the memory interface.
All
Improve timing performance by
reducing the PHY clock tree
delay.
Recommended
All
Note: Not all hard memory controllers on a given device package necessarily have the same address
widths; some hard memory controllers have 16-bit address capability, while others have only 15-bit
addresses.
Additional Guidelines for MAX 10 Devices
The following additional guidelines apply when you implement an external memory interface for a MAX
10 device.
I/O Pins Not Available for DDR3 or LPDDR2 External Memory Interfaces (Preliminary)
The I/O pins named in the following table are not available for use when implementing a DDR3 or
LPDDR2 external memory interface for a MAX 10 device.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Additional Guidelines for MAX 10 Devices
ZB16
ZB25
Planning Pin and FPGA Resources
Send Feedback
F256
U324
F484
F672
N16
R15
U21
—
P16
P15
U22
—
—
R18
M21
—
—
P18
L22
—
—
—
F21
—
—
—
F20
—
—
E16
E19
—
—
D16
F18
—
N16
—
U21
T25
P16
—
U22
R25
—
—
M21
P24
—
—
L22
P25
—
—
F21
K23
—
—
F20
K24
—
—
E19
J23
—
—
F18
H23
—
—
F17
G23
—
—
E17
F23
3-59
Altera Corporation
3-60
EMI_DG
2014.12.15
Additional Guidelines for MAX 10 Devices
ZB50
F256
U324
F484
F672
—
—
—
W23
—
—
—
W24
—
—
—
U25
—
—
—
U24
N16
—
U21
T24
P16
—
U22
R25
—
—
M21
R24
—
—
L22
P25
—
—
F21
K23
—
—
F20
K24
—
—
E19
J23
—
—
F18
H23
—
—
F17
G23
—
—
E17
F23
—
—
—
G21
—
—
—
G22
Additional Restrictions on I/O Pin Availability
The following restrictions are in addition to those represented in the above table.
• When implementing a DDR3 or LPDDR2 external memory interface, you can use only 75 percent of
the remaining I/O pins in banks 5 and 6 for normal I/O operations.
• When implementing a DDR2 external memory interface, 25 percent of the remaining I/O pins in
banks 5 and 6 can be assigned only as input pins.
MAX 10 Board Design Considerations
• For DDR2, DDR3, or LPDDR2 external memory interfaces, the minimum board skew between pins
should be less than 40 ps.
• To minimize unwanted inductance from PCB vias, you should ensure that the via depth for VCCIO
banks does not exceed 49.5 mils.
• You should ensure that the PCB trace routing length for DQ and Address and Command does not
exceed 6 inches.
• If you have a DDR3 external memory interface on a MAX 10 device, an on-board termination resistor
is required. Altera recommends a termination resistor of value of 80-ohms, to Vtt.
Power Supply Variation for LPDDR2 Interfaces
For LPDDR2 external memory interfaces targeting 200MHz, it is recommended to limit I/O and core
voltage supply variations to plus or minus 3 percent.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Additional Guidelines for Cyclone V Devices
3-61
Additional Guidelines for Cyclone V Devices
This topic provides guidelines for improving performance for Cyclone V devices.
I/O Pins Connect to Ground for Hard Memory Interface Operation
According to the Cyclone V pin-out file, there are some general I/O pins that are connected to ground for
hard memory interface operation. These I/O pins should be grounded to reduce crosstalk from
neighboring I/O pins and to ensure the performance of the hard memory interface.
The grounded user I/O pins can also be used as regular I/O pins if you run short of available I/O pins;
however, the hard memory interface performance will be reduced if these pins are not connected to
ground.
PLLs and Clock Networks
The exact number of clocks and PLLs required in your design depends greatly on the memory interface
frequency, and on the IP that your design uses.
For example, you can build simple DDR slow-speed interfaces that typically require only two clocks:
system and write. You can then use the rising and falling edges of these two clocks to derive four phases
(0°, 90°, 180°, and 270°). However, as clock speeds increase, the timing margin decreases and additional
clocks are required, to optimize setup and hold and meet timing. Typically, at higher clock speeds, you
need to have dedicated clocks for resynchronization, and address and command paths.
Altera memory interface IP uses one PLL, which generates the various clocks needed in the memory
interface data path and controller, and provides the required phase shifts for the write clock and address
and command clock. The PLL is instantiated when you generate the Altera memory IPs.
By default, the memory interface IP uses the PLL to generate the input reference clock for the DLL,
available in all supported device families. This method eliminates the need of an extra pin for the DLL
input reference clock.
The input reference clock to the DLL can come from certain input clock pins or clock output from certain
PLLs.
Note: Altera recommends using integer PLLs for memory interfaces; handbook specifications are based
on integer PLL implementations.
For the actual pins and PLLs connected to the DLLs, refer to the External Memory Interfaces chapter of
the relevant device family handbook.
You must use the PLL located in the same device quadrant or side as the memory interface and the
corresponding dedicated clock input pin for that PLL, to ensure optimal performance and accurate timing
results from the Quartus II software.
The input clock to the PLL can fan out to logic other than the PHY, so long as the clock input pin to the
PLL is a dedicated input clock path, and you ensure that the clock domain transfer between UniPHY and
the core logic is clocked by the reference clock going into a global clock.
Number of PLLs Available in Altera Device Families
The following table lists the number of PLLs available in Altera device families.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-62
EMI_DG
2014.12.15
Number of Enhanced PLL Clock Outputs and Dedicated Clock Outputs Available in
Altera Device Families
Table 3-18: Number of PLLs Available in Altera Device Families
Device Family
Enhanced PLLs Available
Arria II GX
4-6
Arria II GZ
3-8
Arria V
16-24
Arria V GZ (fPLL)
22-28
Cyclone V
4-8
MAX 10 FPGA
1-4
Stratix III
4-12
Stratix IV
3-12
Stratix V (fPLL)
22-28
Note to Table:
1. For more details, refer to the Clock Networks and PLL chapter of the respective device family
handbook.
Number of Enhanced PLL Clock Outputs and Dedicated Clock Outputs Available in Altera Device
Families
The following table lists the number of enhanced PLL clock outputs and dedicated clock outputs available
in Altera device families.
Table 3-19: Number of Enhanced PLL Clock Outputs and Dedicated Clock Outputs Available in Altera
Device Families (1)
Device Family
Arria II GX
(2)
Number of Enhanced PLL Clock
Outputs
7 clock outputs each
Number Dedicated Clock Outputs
1 single-ended or 1 differential
pair
3 single-ended or 3 differential
pair total (3)
Arria V
Altera Corporation
18 clock outputs each
4 single-ended or 2 single-ended
and 1 differential pair
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Number of Clock Networks Available in Altera Device Families
Device Family
Stratix III
Number of Enhanced PLL Clock
Outputs
Left/right: 7 clock outputs
Top/bottom: 10 clock outputs
Arria II GZ and Stratix IV
Left/right: 7 clock outputs
Top/bottom: 10 clock outputs
Arria V GZ and Stratix V
18 clock outputs each
3-63
Number Dedicated Clock Outputs
Left/right: 2 single-ended or 1
differential pair
Top/bottom: 6 single-ended or 4
single-ended and 1 differential
pair
Left/right: 2 single-ended or 1
differential pair
Top/bottom: 6 single-ended or 4
single-ended and 1 differential
pair
4 single-ended or 2 single-ended
and 1 differential pair
Notes to Table:
1. For more details, refer to the Clock Networks and PLL chapter of the respective device family
handbook.
2. PLL_5 and PLL_6 of Arria II GX devices do not have dedicated clock outputs.
3. The same PLL clock outputs drives three single-ended or three differential I/O pairs, which are only
supported in PLL_1 and PLL_3 of the EP2AGX95, EP2AGX125, EP2AGX190, and EP2AGX260
devices.
Number of Clock Networks Available in Altera Device Families
The following table lists the number of clock networks available in Altera device families.
Table 3-20: Number of Clock Networks Available in Altera Device Families (1)
Device Family
Global Clock Network
Regional Clock Network
Arria II GX
16
48
Arria II GZ
16
64–88
Arria V
16
88
Arria V GZ
16
92
Cyclone V
16
N/A
MAX 10 FPGA
10
Stratix III
16
64–88
Stratix IV
16
64–88
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-64
EMI_DG
2014.12.15
Clock Network Usage in UniPHY-based Memory Interfaces—DDR2 and DDR3 SDRAM
(1) (2)
Device Family
Global Clock Network
Stratix V
Regional Clock Network
16
92
Note to Table:
1. For more information on the number of available clock network resources per device quadrant to
better understand the number of clock networks available for your interface, refer to the Clock
Networks and PLL chapter of the respective device family handbook.
Note: You must decide whether you need to share clock networks, PLL clock outputs, or PLLs if you are
implementing multiple memory interfaces.
Clock Network Usage in UniPHY-based Memory Interfaces—DDR2 and DDR3 SDRAM (1) (2)
The following table lists clock network usage in UniPHY-based memory interfaces for DDR2 and DDR3
protocols.
Table 3-21: Clock Network Usage in UniPHY-based Memory Interfaces—DDR2 and DDR3 SDRAM
Device
DDR3 SDRAM
DDR2 SDRAM
Half-Rate
Half-Rate
Number of fullrate clock
Stratix III
3 global
Number of halfrate clock
Number of fullrate clock
Number of half-rate clock
1 global
1 global
1 global
1 regional
2 global
1 regional
Arria II GZ and Stratix 3 global
IV
1 global
1 regional
1 global
1 regional
2 regional
1 regional
Arria V GZ and Stratix 1 global
V
2 regional
2 global
1 regional
2 global
2 regional
Notes to Table:
1. There are two additional regional clocks, pll_avl_clk and pll_config_clk for DDR2 and DDR3
SDRAM with UniPHY memory interfaces.
2. In multiple interface designs with other IP, the clock network might need to be modified to get a
design to fit. For more information, refer to the Clock Networks and PLLs chapter in the respective
device handbooks.
Clock Network Usage in UniPHY-based Memory Interfaces—RLDRAM II, and QDR II and QDR II+
SRAM
The following table lists clock network usage in UniPHY-based memory interfaces for RLDRAM II, QDR
II, and QDR II+ protocols.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
PLL Usage for DDR, DDR2, and DDR3 SDRAM Without Leveling Interfaces
3-65
Table 3-22: Clock Network Usage in UniPHY-based Memory Interfaces—RLDRAM II, and QDR II and QDR II+
SRAM
RLDRAM II
QDR II/QDR II+ SRAM
Half-Rate
Device
Number of
full-rate
clock
Number of
half-rate
clock
Full-Rate
Number of
full-rate
clock
Half-Rate
Number of
full-rate
clock
Number of
half-rate
clock
Full-Rate
Number of full-rate
clock
Arria II GX
—
—
—
2 global
2 global
4 global
Stratix III
2 regional
1 global
1 global
1 global
2 regional
1 global
1 regional
2 regional
1 regional
1 global
1 global
1 global
1 regional
2 regional
1 regional
Arria II GZ and 2 regional
Stratix IV
2 regional
2 regional
1 global
2 regional
Note: For more information about the clocks used in UniPHY-based memory standards, refer to the
Functional Description—UniPHY chapter in volume 3 of the External Memory Interface
Handbook.
Related Information
Functional Description—UniPHY
PLL Usage for DDR, DDR2, and DDR3 SDRAM Without Leveling Interfaces
The following table lists PLL usage for DDR, DDR2, and DDR3 protocols without leveling interfaces.
Table 3-23: PLL Usage for DDR, DDR2, and DDR3 SDRAM Without Leveling Interfaces
Clock
Arria II GX Devices
Stratix III and Stratix IV Devices
C0
• phy_clk_1x in half-rate designs
• aux_half_rate_clk
• PLL scan_clk
• phy_clk_1x in half-rate designs
• aux_half_rate_clk
• PLL scan_clk
C1
• phy_clk_1x in full-rate designs
• aux_full_rate_clk
• mem_clk_2x to generate DQS and CK/CK#
signals
• ac_clk_2x
• cs_n_clk_2x
• mem_clk_2x
C2
• Unused
• phy_clk_1x in full-rate designs
• aux_full_rate_clk
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-66
EMI_DG
2014.12.15
PLL Usage for DDR3 SDRAM With Leveling Interfaces
Clock
Arria II GX Devices
Stratix III and Stratix IV Devices
C3
• write_clk_2x (for DQ)
• ac_clk_2x
• cs_n_clk_2x
• write_clk_2x
C4
• resync_clk_2x
• resync_clk_2x
C5
• measure_clk_2x
• measure_clk_1x
C6
—
• ac_clk_1x
PLL Usage for DDR3 SDRAM With Leveling Interfaces
The following table lists PLL usage for DDR3 protocols with leveling interfaces.
Table 3-24: PLL Usage for DDR3 SDRAM With Leveling Interfaces
Clock
Stratix III and Stratix IV Devices
C0
• phy_clk_1x in half-rate designs
• aux_half_rate_clk
• PLL scan_clk
C1
• mem_clk_2x
C2
• aux_full_rate_clk
C3
• write_clk_2x
C4
• resync_clk_2x
C5
• measure_clk_1x
C6
• ac_clk_1x
Using PLL Guidelines
When using PLL for external memory interfaces, you must consider the following guidelines:
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
PLL Cascading
3-67
• For the clock source, use the clock input pin specifically dedicated to the PLL that you want to use with
your external memory interface. The input and output pins are only fully compensated when you use
the dedicated PLL clock input pin. If the clock source for the PLL is not a dedicated clock input pin for
the dedicated PLL, you would need an additional clock network to connect the clock source to the PLL
block. Using additional clock network may increase clock jitter and degrade the timing margin.
• Pick a PLL and PLL input clock pin that are located on the same side of the device as the memory
interface pins.
• Share the DLL and PLL static clocks for multiple memory interfaces provided the controllers are on
the same or adjacent side of the device and run at the same memory clock frequency.
• If your design uses a dedicated PLL to only generate a DLL input reference clock, you must set the PLL
mode to No Compensation in the Quartus II software to minimize the jitter, or the software forces
this setting automatically. The PLL does not generate other output, so it does not need to compensate
for any clock path.
• If your design cascades PLL, the source (upstream) PLL must have a low-bandwidth setting, while the
destination (downstream) PLL must have a high-bandwidth setting to minimize jitter. Altera does not
recommend using cascaded PLLs for external memory interfaces because your design gets
accumulated jitters. The memory output clock may violate the memory device jitter specification.
• Use cascading PLLs at your own risk. For more information, refer to “PLL Cascading”.
• If you are using Arria II GX devices, for a single memory instance that spans two right-side quadrants,
use a middle-side PLL as the source for that interface.
• If you are using Arria II GZ, Arria V GZ, Stratix III, Stratix IV, or Stratix V devices, for a single
memory instance that spans two top or bottom quadrants, use a middle top or bottom PLL as the
source for that interface. The ten dual regional clocks that the single interface requires must not block
the design using the adjacent PLL (if available) for a second interface.
Related Information
PLL Cascading on page 3-67
PLL Cascading
Arria II GZ PLLs, Stratix III PLLs, Stratix IV PLLs, Stratix V and Arria V GZ fractional PLLs (fPLLs), and
the two middle PLLs in Arria II GX EP2AGX95, EP2AGX125, EP2AGX190, and EP2AGX260 devices can
be cascaded using either the global or regional clock trees, or the cascade path between two adjacent PLLs.
Note: Use cascading PLLs at your own risk. You should use faster memory devices to maximize timing
margins.
The UniPHY IP supports PLL cascading using the cascade path without any additional timing derating
when the bandwidth and compensation rules are followed. The timing constraints and analysis assume
that there is no additional jitter due to PLL cascading when the upstream PLL uses no compensation and
low bandwidth, and the downstream PLL uses no compensation and high bandwidth.
The UniPHY IP does not support PLL cascading using the global and regional clock networks. You can
implement PLL cascading at your own risk without any additional guidance and specifications from
Altera. The Quartus II software does issue a critical warning suggesting use of the cascade path to
minimize jitter, but does not explicitly state that Altera does not support cascading using global and
regional clock networks.
Some Arria II GX devices (EP2AGX95, EP2AGX125, EP2AGX190, and EP2AGX260) have direct cascade
path for two middle right PLLs. Arria II GX PLLs have the same bandwidth options as Stratix IV GX left
and right PLLs.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-68
EMI_DG
2014.12.15
DLL
DLL
The Altera memory interface IP uses one DLL. The DLL is located at the corner of the device and can
send the control signals to shift the DQS pins on its adjacent sides for Stratix-series devices, or DQS pins
in any I/O banks in Arria II GX devices.
For example, the top-left DLL can shift DQS pins on the top side and left side of the device. The DLL
generates the same phase shift resolution for both sides, but can generate different phase offset to the two
different sides, if needed. Each DQS pin can be configured to use or ignore the phase offset generated by
the DLL.
The DLL cannot generate two different phase offsets to the same side of the device. However, you can use
two different DLLs to for this functionality.
DLL reference clocks must come from either dedicated clock input pins located on either side of the DLL
or from specific PLL output clocks. Any clock running at the memory frequency is valid for the DLLs.
To minimize the number of clocks routed directly on the PCB, typically this reference clock is sourced
from the memory controllers PLL. In general, DLLs can use the PLLs directly adjacent to them (corner
PLLs when available) or the closest PLL located in the two sides adjacent to its location.
Note: By default, the DLL reference clock in Altera external memory IP is from a PLL output.
When designing for 780-pin packages with EP3SE80, EP3SE110, EP3SL150, EP4SE230, EP4SE360,
EP4SGX180, and EP4SGX230 devices, the PLL to DLL reference clock connection is limited. DLL2 is
isolated from a direct PLL connection and can only receive a reference clock externally from pins
CLK[11:4]p in EP3SE80, EP3SE110, EP3SL150, EP4SE230, and EP4SE360 devices. In EP4SGX180 and
EP4SGX230 devices, DLL2 and DLL3 are not directly connected to PLL. DLL2 and DLL3 receive a
reference clock externally from pins CLK[7:4]p and CLK[15:12]p respectively.
For more DLL information, refer to the respective device handbooks.
The DLL reference clock should be the same frequency as the memory interface, but the phase is not
important.
The required DQS capture phase is optimally chosen based on operating frequency and external memory
interface type (DDR, DDR2, DDR3 SDRAM, and QDR II SRAM, or RLDRAM II). As each DLL supports
two possible phase offsets, two different memory interface types operating at the same frequency can
easily share a single DLL. More may be possible, depending on the phase shift required.
Altera memory IP always specifies a default optimal phase setting, to override this setting, refer to
Implementing and Parameterizing Memory IP .
When sharing DLLs, your memory interfaces must be of the same frequency. If the required phase shift is
different amongst the multiple memory interfaces, you can use a different delay chain in the DQS logic
block or use the DLL phase offset feature.
To simplify the interface to IP connections, multiple memory interfaces operating at the same frequency
usually share the same system and static clocks as each other where possible. This sharing minimizes the
number of dedicated clock nets required and reduces the number of different clock domains found within
the same design.
As each DLL can directly drive four banks, but each PLL only has complete C (output) counter coverage
of two banks (using dual regional networks), situations can occur where a second PLL operating at the
same frequency is required. As cascaded PLLs increase jitter and reduce timing margin, you are advised to
first ascertain if an alternative second DLL and PLL combination is not available and more optimal.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Other FPGA Resources
3-69
Select a DLL that is available for the side of the device where the memory interface resides. If you select a
PLL or a PLL input clock reference pin that can also serve as the DLL input reference clock, you do not
need an extra input pin for the DLL input reference clock.
Related Information
Implementing and Parameterizing Memory IP on page 9-1
Other FPGA Resources
The Altera memory interface IP uses FPGA fabric, including registers and the Memory Block to
implement the memory interface.
For resource utilization examples to ensure that you can fit your other modules in the device, refer to the
“Resource Utilization” section in the Introduction to UniPHY IP chapter of the External Memory Interface
Handbook.
One OCT calibration block is used if you are using the FPGA OCT feature in the memory interface.The
OCT calibration block uses two pins (RUP and RDN), or single pin (RZQ) (“OCT Support for
Arria II GX, Arria II GZ, Arria V, Arria V GZ, Cyclone V, Stratix III, Stratix IV, and Stratix V Devices”).
You can select any of the available OCT calibration block as you do not need to place this block in the
same bank or device side of your memory interface. The only requirement is that the I/O bank where you
place the OCT calibration block uses the same VCCIO voltage as the memory interface. You can share
multiple memory interfaces with the same OCT calibration block if the VCCIO voltage is the same.
Related Information
• OCT Support on page 3-31
• Introduction to UniPHY IP
Document Revision History
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-70
EMI_DG
2014.12.15
Document Revision History
Date
December 2014
Version
2014.12.15
Changes
• General Pin-Out Guidelines for Arria 10 EMIF
IP section:
• Added note to step 10.
• Removed steps 13 and 14.
• Added a bullet point to Address/Command
Pins Location.
• Added Ping Pong PHY Implementation
• Added parenthetical comment to fifth bullet
point in I/O Banks Selection
• Added note following the procedure,
advising that all pins in a DQS group should
reside in the same I/O bank, for RLDRAM
II and RLDRAM 3 interfaces.
• Added QDR IV SRAM Clock Signals, QDR IV
SRAM Commands and Addresses, AP, and
AINV Signals, and QDR IV SRAM Data, DINV,
and QVLD Signals topics.
• Added note to Estimating Pin Requirements
section.
• DDR, DDR2, DDR3, and DDR4 SDRAM
DIMM Options section:
• Added UDIMM, RDIMM, and LRDIMM
Pin Options for DDR4 table.
• Changed notes to LRDIMM Pin Options for
DDR, DDR2, and DDR3 table.
• Removed reference to Chip ID pin.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
EMI_DG
2014.12.15
Document Revision History
Date
August 2014
Version
2014.08.15
3-71
Changes
• Made several changes to Pin Counts for
Various Example Memory Interfaces table:
• Added DDR4 SDRAM and RLDRAM 3
CIO.
• Removed x72 rows from table entries for
DDR, DDR2, and DDR3.
• Added Arria 10 to note 11.
• Added notes 12-18.
• Added DDR4 to descriptions of:
• Clock signals
• Command and address signals
• Data, data strobe, DM/DBI, and optional
ECC signals
• SDRAM DIMM options
• Added QDR II+ Xtreme to descriptions of:
• SRAM clock signals
• SRAM command signals
• SRAM address signals
• SRAM data, BWS, and QVLD signals
• Changed title of section OCT Support for Arria
II GX, Arria II GZ, Arria V, Arria V GZ,
Cyclone V, Stratix III, Stratix IV, and Stratix V
Devices to OCT Support.
• Reorganized chapter to have separate sections
for Guidelines for Arria 10 External Memory
Interface IP and Guidelines for UniPHY-based
External Memory Interface IP.
• Revised Arria 10-specific guidelines.
December 2013
2013.12.16
• Removed references to ALTMEMPHY and
HardCopy.
• Removed references to Cyclone III and
Cyclone IV devices.
November 2012
6.0
• Added Arria V GZ information.
• Added RLDRAM 3 information.
• Added LRDIMM information.
June 2012
5.0
• Added LPDDR2 information.
• Added Cyclone V information.
• Added Feedback icon.
Planning Pin and FPGA Resources
Send Feedback
Altera Corporation
3-72
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
November 2011
4.0
• Moved and reorganized Planning Pin and
Resource section to Volume 2:Design
Guidelines.
• Added Additional Guidelines for Arria V GZ
and Stratix V Devices section.
• Added Arria V and Cyclone V information.
June 2011
3.0
• Moved Select a Device and Memory IP
Planning chapters to Volume 1.
• Added information about interface pins.
• Added guidelines for using PLL.
December 2010
2.1
• Added a new section on controller efficiency.
• Added Arria II GX and Stratix V information.
July 2010
2.0
Updated information about UniPHY-based
interfaces and Stratix V devices.
April 2010
1.0
Initial release.
Altera Corporation
Planning Pin and FPGA Resources
Send Feedback
DDR2, DDR3, and DDR4 SDRAM Board Design
Guidelines
4
2014.12.15
EMI_DG
Subscribe
Send Feedback
The following topics provide guidelines for improving the signal integrity of your system and for
successfully implementing a DDR2, DDR3, or DDR4 SDRAM interface on your system.
The following areas are discussed:
• comparison of various types of termination schemes, and their effects on the signal quality on the
receiver
• proper drive strength setting on the FPGA to optimize the signal integrity at the receiver
• effects of different loading types, such as components versus DIMM configuration, on signal quality
It is important to understand the trade-offs between different types of termination schemes, the effects of
output drive strengths, and different loading types, so that you can swiftly navigate through the multiple
combinations and choose the best possible settings for your designs.
The following key factors affect signal quality at the receiver:
•
•
•
•
•
Leveling and dynamic ODT
Proper use of termination
Output driver drive strength setting
Loading at the receiver
Layout guidelines
As memory interface performance increases, board designers must pay closer attention to the quality of
the signal seen at the receiver because poorly transmitted signals can dramatically reduce the overall datavalid margin at the receiver. The following figure shows the differences between an ideal and real signal
seen by the receiver.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
4-2
EMI_DG
2014.12.15
Leveling and Dynamic ODT
VIH
Voltage
Voltage
Figure 4-1: Ideal and Real Signal at the Receiver
VIH
VIL
Ideal
VIL
Time
Real
Time
Leveling and Dynamic ODT
DDR3 and DDR4 SDRAM DIMMs, as specified by JEDEC, always use a fly-by topology for the address,
command, and clock signals.
Altera recommends that for full DDR3 or DDR4 SDRAM compatibility when using discrete DDR3 or
DDR4 SDRAM components, you should mimic the JEDEC DDR3 or DDR4 fly-by topology on your
custom printed circuit boards (PCB).
Note: Arria® II, Arria V GX, Arria V GT, Arria V SoC, Cyclone® V, and Cyclone V SoC devices do not
support DDR3 SDRAM with read or write leveling, so these devices do not support standard
DDR3 SDRAM DIMMs or DDR3 SDRAM components using the standard DDR3 SDRAM fly-by
address, command, and clock layout topology.
Table 4-1: Device Family Topology Support
Device
I/O Support
Arria II
Non-leveling
Arria V GX, Arria V GT, Arria V SoC
Non-leveling
Arria V GZ
Leveling
Cyclone V GX, Cyclone V GT, Cyclone V SoC
Non-leveling
Stratix III
Leveling
Stratix IV
Leveling
Stratix V
Leveling
Arria 10
Leveling
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Read and Write Leveling
4-3
Related Information
www.JEDEC.org
Read and Write Leveling
A major difference between DDR2 and DDR3/DDR4 SDRAM is the use of leveling. To improve signal
integrity and support higher frequency operations, the JEDEC committee defined a fly-by termination
scheme used with clocks, and command and address bus signals.
Note: This section describes read and write leveling in terms of a comparison between DDR3 and DDR2.
Leveling in DDR4 is fundamentally similar to DDR3. Refer to the DDR4 JEDEC specifications for
more information.
The following section describes leveling in DDR3, and is equally applicable to DDR4.
Fly-by topology reduces simultaneous switching noise (SSN) by deliberately causing flight-time skew
between the data and strobes at every DRAM as the clock, address, and command signals traverse the
DIMM, as shown in the following figure.
Figure 4-2: DDR3 DIMM Fly-By Topology Requiring Write Leveling
Command, Address, Clock in
“Flyby” topology in DDR3 DIMM
VTT
Data Skew
Data Skew Calibrated Out at Power Up with Write Leveling
The flight-time skew caused by the fly-by topology led the JEDEC committee to introduce the write
leveling feature on the DDR3 SDRAMs. Controllers must compensate for this skew by adjusting the
timing per byte lane.
During a write, DQS groups launch at separate times to coincide with a clock arriving at components on
the DIMM, and must meet the timing parameter between the memory clock and DQS defined as tDQSS
of ± 0.25 tCK.
During the read operation, the memory controller must compensate for the delays introduced by the flyby topology. The Stratix® III, Stratix IV, and Stratix V FPGAs have alignment and synchronization
registers built in the I/O element to properly capture the data.
In DDR2 SDRAM, there are only two drive strength settings, full or reduced, which correspond to the
output impedance of 18-ohm and 40-ohm, respectively. These output drive strength settings are static
settings and are not calibrated; consequently, the output impedance varies as the voltage and temperature
drifts.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-4
EMI_DG
2014.12.15
Dynamic ODT
The DDR3 SDRAM uses a programmable impedance output buffer. There are two drive strength settings,
34-ohmand 40-ohm . The 40-ohm drive strength setting is currently a reserved specification defined by
JEDEC, but available on the DDR3 SDRAM, as offered by some memory vendors. Refer to the data sheet
of the respective memory vendors for more information about the output impedance setting. You select
the drive strength settings by programming the memory mode register defined by mode register 1 (MR1).
To calibrate output driver impedance, an external precision resistor, RZQ, connects the ZQ pin and
VSSQ. The value of this resistor must be 240-ohm ± 1%.
If you are using a DDR3 SDRAM DIMM, RZQ is soldered on the DIMM so you do not need to layout
your board to account for it. Output impedance is set during initialization. To calibrate output driver
impedance after power-up, the DDR3 SDRAM needs a calibration command that is part of the initializa‐
tion and reset procedure and is updated periodically when the controller issues a calibration command.
In addition to calibrated output impedance, the DDR3 SDRAM also supports calibrated parallel ODT
through the same external precision resistor, RZQ, which is possible by using a merged output driver
structure in the DDR3 SDRAM, which also helps to improve pin capacitance in the DQ and DQS pins.
The ODT values supported in DDR3 SDRAM are 20-ohm , 30-ohm , 40-ohm , 60-ohm , and 120-ohm ,
assuming that RZQ is 240-ohm.
Related Information
www.JEDEC.org
Dynamic ODT
Dynamic ODT is a feature in DDR3 SDRAM that is not available in DDR2 SDRAM. Dynamic ODT can
change the ODT setting without issuing a mode register set (MRS) command.
Note: This topic highlights the dynamic ODT feature in DDR3. To learn about dynamic ODT in DDR4,
refer to the JEDEC DDR4 specifications.
When you enable dynamic ODT, and there is no write operation, the DDR3 SDRAM terminates to a
termination setting of RTT_NOM; when there is a write operation, the DDR3 SDRAM terminates to a
setting of RTT_WR. You can preset the values of RTT_NOM and RTT_WR by programming the mode registers,
MR1 and MR2.
The following figure shows the behavior of ODT when you enable dynamic ODT.
Figure 4-3: Dynamic ODT: Behavior with ODT Asserted Before and After the Write
In the multi-load DDR3 SDRAM configuration, dynamic ODT helps reduce the jitter at the module being
accessed, and minimizes reflections from any secondary modules.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Dynamic OCT in Stratix III and Stratix IV Devices
4-5
For more information about using the dynamic ODT on DDR3 SDRAM, refer to the application note by
Micron, TN-41-04 DDR3 Dynamic On-Die Termination.
Related Information
www.JEDEC.org
Dynamic OCT in Stratix III and Stratix IV Devices
Stratix III and Stratix IV devices support on-off dynamic series and parallel termination for a bidirectional
I/O in all I/O banks. Dynamic OCT is a new feature in Stratix III and Stratix IV FPGA devices.
You enable dynamic parallel termination only when the bidirectional I/O acts as a receiver and disable it
when the bidirectional I/O acts as a driver. Similarly, you enable dynamic series termination only when
the bidirectional I/O acts as a driver and is disable it when the bidirectional I/O acts as a receiver. The
default setting for dynamic OCT is series termination, to save power when the interface is idle—no active
reads or writes.
Note: The dynamic control operation of the OCT is separate to the output enable signal for the buffer.
UniPHY IP can enable parallel OCT only during read cycles, saving power when the interface is
idle.
Figure 4-4: Dynamic OCT Between Stratix III and Stratix IV FPGA Devices
FPG A
DDR3 DIMM
DDR3 Comp one nt
50 Ω
34 W
Drive r
Drive r
100 W
R S = 15 Ω
0Ω
3" Tra ce Le ngth
VREF = 0.75 V
Re ce ive r
VREF = 0.75 V
Re ce ive r
100 W
FPG A
DDR3 DIMM
DDR3 Comp one nt
34 Ω
50 W
Drive r
Drive r
100 Ω
R S = 15 Ω
0Ω
3" Tra ce Le ngth
VREF = 0.75 V
Re ce ive r
100 Ω
VREF = 0.75 V
Re ce ive r
Dynamic OCT is useful for terminating any high-performance bidirectional path because signal integrity
is optimized depending on the direction of the data. In addition, dynamic OCT also eliminates the need
for external termination resistors when used with memory devices that support ODT (such as DDR3
SDRAM), thus reducing cost and easing board layout.
However, dynamic OCT in Stratix III and Stratix IV FPGA devices is different from dynamic ODT in
DDR3 SDRAM mentioned in previous sections and these features should not be assumed to be identical.
For detailed information about the dynamic OCT feature in the Stratix III FPGA, refer to the Stratix III
Device I/O Features chapter in volume 1 of the Stratix III Device Handbook.
For detailed information about the dynamic OCT feature in the Stratix IV FPGA, refer to the I/O Features
in Stratix IV Devices chapter in volume 1 of the Stratix IV Device Handbook.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-6
EMI_DG
2014.12.15
Dynamic OCT in Stratix V Devices
Related Information
• Stratix III Device I/O Features
• I/O Features in Stratix IV Devices
Dynamic OCT in Stratix V Devices
Stratix V devices also support the dynamic OCT feature and provide more flexibility. Stratix V OCT
calibration uses one RZQ pin that exists in every OCT block.
You can use any one of the following as a reference resistor on the RZQ pin to implement different OCT
values:
• 240-ohm reference resistor—to implement RS OCT of 34-ohm, 40-ohm, 48-ohm, 60-ohm, and 80ohm; and RT OCT resistance of 20-ohm, 30-ohm, 40-ohm, and 120-ohm
• 100-ohm reference resistor—to implement RS OCT of 25-ohm and 50-ohm; and RT OCT resistance of
50-ohm
For detailed information about the dynamic OCT feature in the Stratix V FPGA, refer to the I/O Features
in Stratix V Devices chapter in volume 1 of the Stratix V Device Handbook.
Related Information
I/O Features in Stratix V Devices
Board Termination for DDR2 SDRAM
DDR2 adheres to the JEDEC standard of governing Stub-Series Terminated Logic (SSTL), JESD8-15a,
which includes four different termination schemes.
Two commonly used termination schemes of SSTL are:
• Single parallel terminated output load with or without series resistors (Class I, as stated in JESD8-15a)
• Double parallel terminated output load with or without series resistors (Class II, as stated in
JESD8-15a)
Depending on the type of signals you choose, you can use either termination scheme. Also, depending on
your design’s FPGA and SDRAM memory devices, you may choose external or internal termination
schemes.
To reduce system cost and simplify printed circuit board layout, you may choose not to have any parallel
termination on the transmission line, and use point-to-point connections between the memory interface
and the memory. In this case, you may take advantage of internal termination schemes such as on-chip
termination (OCT) on the FPGA side and on-die termination (ODT) on the SDRAM side when it is
offered on your chosen device.
Related Information
Board Termination for DDR3 SDRAM on page 4-17
External Parallel Termination
If you use external termination, you must study the locations of the termination resistors to determine
which topology works best for your design.
The following two figures illustrate the most common termination topologies: fly-by topology and
non-fly-by topology, respectively.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
On-Chip Termination
4-7
Figure 4-5: Fly-By Placement of a Parallel Resistor
VTT
RT = 50 w
Board Trace
DDR2 SDRAM
DIMM
(Receiver)
FPGA Driver
Board Trace
With fly-by topology, you place the parallel termination resistor after the receiver. This termination
placement resolves the undesirable unterminated stub found in the non-fly-by topology. However, using
this topology can be costly and complicate routing.
Figure 4-6: Non-Fly-By Placement of a Parallel Resistor
VTT
RT = 50 w
FPGA Driver
DDR2 SDRAM
DIMM
(Receiver)
With non-fly-by topology, the parallel termination resistor is placed between the driver and receiver
(closest to the receiver). This termination placement is easier for board layout, but results in a short stub,
which causes an unterminated transmission line between the terminating resistor and the receiver. The
unterminated transmission line results in ringing and reflection at the receiver.
If you do not use external termination, DDR2 offers ODT and Altera FPGAs have varying levels of OCT
support. You should explore using ODT and OCT to decrease the board power consumption and reduce
the required board space.
On-Chip Termination
OCT technology is offered on Arria II GX, Arria II GZ, Arria V, Arria 10, Cyclone V, MAX 10, Stratix III,
Stratix IV, and Stratix V devices.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-8
EMI_DG
2014.12.15
On-Chip Termination
The following table summarizes the extent of OCT support for each device. This table provides informa‐
tion about SSTL-18 standards because SSTL-18 is the supported standard for DDR2 memory interface by
Altera FPGAs.
For Arria II, Stratix III and Stratix IV devices, on-chip series (RS) termination is supported only on output
and bidirectional buffers. The value of RS with calibration is calibrated against a 25-ohm resistor for
class II and 50-ohm resistor for class I connected to RUP and RDN pins and adjusted to ± 1% of 25-ohm
or 50-ohm . On-chip parallel (RT) termination is supported only on inputs and bidirectional buffers. The
value of RT is calibrated against 100-ohm connected to the RUP and RDN pins. Calibration occurs at the
end of device configuration. Dynamic OCT is supported only on bidirectional I/O buffers.
For Arria V, Cyclone V, and Stratix V devices, RS and RT values are calibrated against the on-board
resistor RZQ. If you want 25 or 50 ohm values for your RS and RT, you must connect a 100 ohm resistor
with a tolerance of +/-1% to the RZQ pin .
For more information about on-chip termination, refer to the device handbook for the device that you are
using.
Table 4-2: On-Chip Termination Schemes
FPGA Device
Termination
Scheme
On-Chip
Series
Termina‐
tion
without
Calibration
On-Chip
Series
Termina‐
tion with
Calibration
Arria II
GX
Arria II
GZ
Arria V
Cyclone
V
MAX 10
Stratix III
and
Stratix IV
Stratix V (1)
Column
and Row
I/O
Column
and Row
I/O
Column
and Row
I/O
Column
and Row
I/O
Column
and Row I/
O
Column
and Row
I/O
Column I/O
Class I
50
50
50
50
50
50
50
Class II
25
25
25
25
25
25
25
Class I
50
50
50
50
50
50
50
Class II
25
25
25
25
25
25
25
—
50
50
50
—
50
50
SSTL-18
On-Chip
Class I
Parallel
and Class
Termina‐
II
tion with
Calibration
Note to Table:
1. Row I/O is not available for external memory interfaces in Stratix V devices.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Recommended Termination Schemes
4-9
Recommended Termination Schemes
The following table provides the recommended termination schemes for major DDR2 memory interface
signals.
Signals include data (DQ), data strobe (DQS/DQSn), data mask (DM), clocks (mem_clk/mem_clk_n), and
address and command signals.
When interfacing with multiple DDR2 SDRAM components where the address, command, and memory
clock pins are connected to more than one load, follow these steps:
1. Simulate the system to get the new slew-rate for these signals.
2. Use the derated tIS and tIH specifications from the DDR2 SDRAM data sheet based on the simulation
results.
3. If timing deration causes your interface to fail timing requirements, consider signal duplication of
these signals to lower their loading, and hence improve timing.
Note: Altera uses Class I and Class II termination in this table to refer to drive strength, and not physical
termination.
Note: You must simulate your design for your system to ensure correct operation.
Table 4-3: Termination Recommendations
Device Family
Signal Type
(1)
SSTL 18 IO
Standard (2) (3)
(4) (5) (6)
FPGA-End
Discrete
Termination
Memory-End
Termination 1
(Rank/DIMM)
Memory I/O Standard
Arria II GX
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-10
EMI_DG
2014.12.15
Recommended Termination Schemes
Device Family
Signal Type
SSTL 18 IO
Standard (2) (3)
(4) (5) (6)
Memory-End
Termination 1
(Rank/DIMM)
Memory I/O Standard
DQ
Class I R50
CAL
50-ohm
Parallel to
VTT discrete
ODT75
(7)
HALF
(8)
DQS DIFF
DIFF Class
R50 CAL
50-ohm
Parallel to
VTT discrete
ODT75
(7)
HALF
(8)
Class I R50
CAL
50-ohm
Parallel to
VTT discrete
ODT75
(7)
HALF
(8)
DM
Class I R50
CAL
N/A
ODT75
(7)
N/A
Address and
command
Class I MAX
N/A
56-ohm
parallel to
VTT discrete
Clock
DIFF Class I
R50 CAL
N/A
×1 = 100-ohm N/A
differential
(13)
DQS SE
DDR2 component
FPGA-End
Discrete
Termination
(12)
N/A
(10)
×2 = 200-ohm
differential
(11)
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Recommended Termination Schemes
Device Family
Signal Type
SSTL 18 IO
Standard (2) (3)
(4) (5) (6)
FPGA-End
Discrete
Termination
Memory-End
Termination 1
(Rank/DIMM)
Memory I/O Standard
DQ
Class I R50
CAL
50-ohm
Parallel to
VTT discrete
ODT75
(7)
FULL
(9)
DQS DIFF
DIFF Class I
R50 CAL
50-ohm
Parallel to
VTT discrete
ODT75
(7)
FULL
(9)
Class I R50
CAL
50-ohm
Parallel to
VTT discrete
ODT75
(7)
FULL
(9)
DM
Class I R50
CAL
N/A
ODT75
(7)
N/A
Address and
command
Class I MAX
N/A
56-ohm
parallel to
VTT discrete
N/A
Clock
DIFF Class I
R50 CAL
N/A
N/A = on
DIMM
N/A
(13)
DQS SE
(12)
DDR2 DIMM
4-11
Arria V and Cyclone V
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-12
EMI_DG
2014.12.15
Recommended Termination Schemes
Device Family
Signal Type
SSTL 18 IO
Standard (2) (3)
(4) (5) (6)
Memory-End
Termination 1
(Rank/DIMM)
Memory I/O Standard
DQ
Class I R50/
P50 DYN
CAL
N/A
ODT75
(7)
HALF
(8)
DQS DIFF
DIFF Class I
N/A
R50/P50 DYN
CAL
ODT75
(7)
HALF
(8)
Class I R50/
P50 DYN
CAL
N/A
ODT75
(7)
HALF
(8)
DM
Class I R50
CAL
N/A
ODT75
(7)
N/A
Address and
command
Class I MAX
N/A
56-ohm
parallel to
VTT discrete
Clock
DIFF Class I
R50 NO CAL
N/A
×1 = 100-ohm N/A
differential
(13)
DQS SE
DDR2 component
FPGA-End
Discrete
Termination
(12)
N/A
(10)
×2 = 200-ohm
differential
(11)
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Recommended Termination Schemes
Device Family
Signal Type
SSTL 18 IO
Standard (2) (3)
(4) (5) (6)
FPGA-End
Discrete
Termination
Memory-End
Termination 1
(Rank/DIMM)
Memory I/O Standard
DQ
Class I R50/
P50 DYN
CAL
N/A
ODT75
(7)
FULL
(9)
DQS DIFF
DIFF Class I
N/A
R50/P50 DYN
CAL
ODT75
(7)
FULL
(9)
Class I R50/
P50 DYN
CAL
N/A
ODT75
(7)
FULL
(9)
DM
Class I R50
CAL
N/A
ODT75
(7)
N/A
Address and
command
Class I MAX
N/A
56-ohm
parallel to
VTT discrete
N/A
Clock
DIFF Class I
R50 NO CAL
N/A
N/A = on
DIMM
N/A
(13)
DQS SE
(12)
DDR2 DIMM
4-13
Arria II GZ, Stratix III, Stratix IV, and Stratix V
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-14
EMI_DG
2014.12.15
Recommended Termination Schemes
Device Family
Signal Type
SSTL 18 IO
Standard (2) (3)
(4) (5) (6)
Memory-End
Termination 1
(Rank/DIMM)
Memory I/O Standard
DQ
Class I R50/
P50 DYN
CAL
N/A
ODT75
(7)
HALF
(8)
DQS DIFF
DIFF Class I
N/A
R50/P50 DYN
CAL
ODT75
(7)
HALF
(8)
DIFF Class I
N/A
R50/P50 DYN
CAL
ODT75
(7)
HALF
(8)
DM
Class I R50
CAL
N/A
ODT75
(7)
N/A
Address and
command
Class I MAX
N/A
56-ohm
Parallel to
VTT discrete
Clock
DIFF Class I
R50 NO CAL
N/A
x1 = 100-ohm N/A
differential
(13)
DQS SE
DDR2 component
FPGA-End
Discrete
Termination
(12)
N/A
(10)
x2 = 200-ohm
differential
(11)
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Recommended Termination Schemes
Device Family
Signal Type
SSTL 18 IO
Standard (2) (3)
(4) (5) (6)
FPGA-End
Discrete
Termination
Memory-End
Termination 1
(Rank/DIMM)
Memory I/O Standard
DQ
Class I R50/
P50 DYN
CAL
N/A
ODT75
(7)
FULL
(9)
DQS DIFF
DIFF Class I
N/A
R50/P50 DYN
CAL
ODT75
(7)
FULL
(9)
Class I R50/
P50 DYN
CAL
N/A
ODT75
(7)
FULL
(9)
DM
Class I R50
CAL
N/A
ODT75
(7)
N/A
Address and
command
Class I MAX
N/A
56-ohm
Parallel to
VTT discrete
N/A
Clock
DIFF Class I
R50 NO CAL
N/A
N/A = on
DIMM
N/A
DQ/DQS
Class I 12 mA 50-ohm
Parallel to
VTT discrete
DM
Class I 12 mA N/A
Address and
command
Class I MAX
Clock
Class I 12 mA N/A
(13)
DQS SE
(12)
DDR2 DIMM
4-15
MAX 10
DDR2 component
N/A
ODT75
(7)
80-ohm
Parallel to
VTT discrete
HALF
(8)
N/A
N/A
x1 = 100-ohm N/A
differential
(10)
x2 = 200-ohm
differential
(11)
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-16
EMI_DG
2014.12.15
Dynamic On-Chip Termination
Device Family
Signal Type
SSTL 18 IO
Standard (2) (3)
(4) (5) (6)
FPGA-End
Discrete
Termination
Memory-End
Termination 1
(Rank/DIMM)
Memory I/O Standard
Notes to Table:
1.
2.
3.
4.
5.
6.
7.
N/A is not available.
R is series resistor.
P is parallel resistor.
DYN is dynamic OCT.
NO CAL is OCT without calibration.
CAL is OCT with calibration.
ODT75 vs. ODT50 on the memory has the effect of opening the eye more, with a limited increase in
overshoot/undershoot.
8. HALF is reduced drive strength.
9. FULL is full drive strength.
10.x1 is a single-device load.
11.x2 is two-device load. For example, you can feed two out of nine devices on a single rank DIMM with a
single clock pair—except for MAX 10, which doesn't support DIMMs.
12.DQS SE is single-ended DQS.
13.DQS DIFF is differential DQS
Dynamic On-Chip Termination
Dynamic OCT is available in Arria V, Arria 10, Cyclone V, Stratix III, Stratix IV and Stratix V.
The dynamic OCT scheme enables series termination (RS) and parallel termination (RT) to be
dynamically turned on and off during the data transfer. The series and parallel terminations are turned on
or off depending on the read and write cycle of the interface. During the write cycle, the RS is turned on
and the RT is turned off to match the line impedance. During the read cycle, the RS is turned off and the
RT is turned on as the FPGA implements the far-end termination of the bus.
For more information about dynamic OCT, refer to the I/O features chapters in the devices handbook for
your Altera device.
FPGA Writing to Memory
The benefit of using dynamic series OCT is that when driver is driving the transmission line, it “sees” a
matched transmission line with no external resistor termination.
The following figure shows dynamic series OCT scheme when the FPGA is writing to the memory.
Figure 4-7: Dynamic Series OCT Scheme with ODT on the Memory
FPGA
DDR2 DIMM
DDR2 Component
50 W
Driver
100 w
50 w
150 w
3” Trace Length
Receiver
100 w
Altera Corporation
RS = 22 w
Driver
Receiver
150 w
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
FPGA Reading from Memory
4-17
Refer to the memory vendors when determining the over- and undershoot. They typically specify a
maximum limit on the input voltage to prevent reliability issues.
FPGA Reading from Memory
The following figure shows the dynamic parallel termination scheme when the FPGA is reading from
memory.
When the DDR2 SDRAM DIMM is driving the transmission line, the ringing and reflection is minimal
because the FPGA-side termination 50-ohm pull-up resistor is matched with the transmission line.
Figure 4-8: Dynamic Parallel OCT Scheme with Memory-Side Series Resistor
FPGA
DDR2 DIMM Full Strength
DDR2 Component
Driver
Receiver
100 w
100 w
50 w
RS = 22 w
3” Trace Length
Driver
Receiver
Board Termination for DDR3 SDRAM
DDR3 DIMMs have terminations on all unidirectional signals, such as memory clocks, and addresses and
commands; thus eliminating the need for them on the FPGA PCB. In addition, using the ODT feature on
the DDR3 SDRAM and the dynamic OCT feature of Stratix III, Stratix IV, Stratix V, and Arria 10 FPGA
devices completely eliminates any external termination resistors; thus simplifying the layout for the DDR3
SDRAM interface when compared to that of the DDR2 SDRAM interface.
The following topics describe the correct way to terminate a DDR3 SDRAM interface together with
Stratix III, Stratix IV, and Stratix V FPGA devices.
Note: If you are using a DDR3 SDRAM without leveling interface, refer to “Board Termination for DDR2
SDRAM”. Note also that Arria V and Cyclone V devices do not support DDR3 with leveling.
Related Information
Board Termination for DDR2 SDRAM on page 4-6
Terminations for Single-Rank DDR3 SDRAM Unbuffered DIMM
The most common implementation of the DDR3 SDRAM interface is the unbuffered DIMM (UDIMM).
You can find DDR3 SDRAM UDIMMs in many applications, especially in PC applications.
The following table lists the recommended termination and drive strength setting for UDIMM and Stratix
III, Stratix IV, and Stratix V FPGA devices.
Note: These settings are just recommendations for you to get started. Simulate with real board and try
different settings to get the best SI.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-18
EMI_DG
2014.12.15
DQS, DQ, and DM for DDR3 SDRAM UDIMM
Table 4-4: Drive Strength and ODT Setting Recommendations for Single-Rank UDIMM
Signal Type
SSTL 15 I/O
Standard (1)
FPGA End OnBoard Termina‐
tion (2)
Memory End
Termination for
Write
Memory Driver Strength
for Read
DQ
Class I R50C/
G50C (3)
—
60-ohm ODT
(4)
40-ohm
(4)
DQS
Differential Class —
I R50C/G50C (3)
60-ohm ODT
(4)
40-ohm
(4)
DM
Class I R50C
(3)
—
60-ohm ODT
(4)
40-ohm
(4)
Address and
Command
Class I with
maximum drive
strength
—
39-ohm on-board termination to VDD (5)
CK/CK#
Differential Class —
I R50C
On-board
(5)
2.2 pf compensation cap before the first
component; 36-ohm termination to VDD
for each arm (72-ohm differential); add
0.1 uF just before VDD.
Notes to Table:
1. UniPHY IP automatically implements these settings.
2. Altera recommends that you use dynamic on-chip termination (OCT) for Stratix III and Stratix IV
device families.
3. R50C is series with calibration for write, G50C is parallel 50 with calibration for read.
4. You can specify these settings in the parameter editor.
5. For DIMM, these settings are already implemented on the DIMM card; for component topology,
Altera recommends that you mimic termination scheme on the DIMM card on your board.
You can implement a DDR3 SDRAM UDIMM interface in several permutations, such as single DIMM or
multiple DIMMs, using either single-ranked or dual-ranked UDIMMs. In addition to the UDIMM’s form
factor, these termination recommendations are also valid for small-outline (SO) DIMMs and
MicroDIMMs.
DQS, DQ, and DM for DDR3 SDRAM UDIMM
On a single-ranked DIMM, DQS, and DQ signals are point-to-point signals.
The following figure shows the net structure for differential DQS and DQ signals. There is an external 15ohm stub resistor, RS, on each of the DQS and DQ signals soldered on the DIMM, which helps improve
signal quality by dampening reflections from unused slots in a multi-DIMM configuration.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Memory Clocks for DDR3 SDRAM UDIMM
4-19
Figure 4-9: DQ and DQS Net Structure for 64-Bit DDR3 SDRAM UDIMM
(2)
(2)
DDR3 SDRAM supports calibrated ODT with different ODT value settings. If you do not enable dynamic
ODT, there are three possible ODT settings available for RTT_NOM: 40-ohm , 60-ohm , and 120-ohm . If
you enable dynamic ODT, the number of possible ODT settings available for RTT_NOM increases from
three to five with the addition of 20-ohm and 30-ohm.
Memory Clocks for DDR3 SDRAM UDIMM
For the DDR3 SDRAM UDIMM, you do not need to place any termination on your board because the
memory clocks are already terminated on the DIMM.
The following figure shows the net structure for the memory clocks and the location of the termination
resistors, RTT. The value of RTT is 36-ohm which results in an equivalent differential termination value
of 72-ohm. The DDR3 SDRAM DIMM also has a compensation capacitor, CCOMP of 2.2 pF, placed
between the differential memory clocks to improve signal quality. The recommended center-tapterminated (CTT) value is 0.1 uF just before VDD.
Figure 4-10: Clock Net Structure for a 64-Bit DDR3 SDRAM UDIMM (1)
V TT
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-20
EMI_DG
2014.12.15
Commands and Addresses for DDR3 SDRAM UDIMM
Notes to Figure:
1. Source: PC3-6400/PC3-8500/PC3-10600/PC3-12800 DDR3 SDRAM Unbuffered DIMM Design Specifi‐
cation, July 2007, JEDEC Solid State Technology Association.
2. The recommeded CTT value is 0.1 uF just before VDD
Commands and Addresses for DDR3 SDRAM UDIMM
Similar to memory clock signals, you do not need to place any termination on your board because the
command and address signals are also terminated on the DIMM.
The following figure shows the net structure for the command and address signals, and the location of the
termination resistor, RTT, which has an RTT value of 39-ohm .
Figure 4-11: Command and Address Net Structure for a 64-Bit DDR3 SDRAM Unbuffered DIMM
In the above figure, note that the DDR3 SDRAM command and address signals are routed in a fly-by
topology, resulting in the need for write-and-read leveling.
Terminations for Stratix III, Stratix IV, and Stratix V FPGAs
The following topics review the termination on the single-ranked single DDR3 SDRAM DIMM interface
side and investigate the use of different termination features available in Stratix III, Stratix IV, and Stratix
V FPGA devices to achieve optimum signal integrity for your DDR3 SDRAM interface.
DQS, DQ, and DM for Stratix III, Stratix IV, and Stratix V FPGA
Stratix III, Stratix IV, and Stratix V FPGAs support the dynamic OCT feature, which switches from series
termination to parallel termination depending on the mode of the I/O buffer.
Because DQS and DQ are bidirectional signals, DQS and DQ can be both transmitters and receivers.
“DQS, DQ, and DM for DDR3 SDRAM UDIMM” describes the signal quality of DQ, DQS, and DM when
the Stratix III, Stratix IV, or Stratix V FPGA device is the transmitter with the I/O buffer set to a 50-ohm
series termination.
This section details the condition when the Stratix III, Stratix IV, or Stratix V device is the receiver, the
Stratix III, Stratix IV, and Stratix V I/O buffer is set to a 50-ohm parallel termination, and the memory is
the transmitter. DM is a unidirectional signal, so the DDR3 SDRAM component is always the receiver.
For receiver termination recommendations and transmitter output drive strength settings, refer to “DQS,
DQ, and DM for DDR3 SDRAM UDIMM” .
The following figure illustrates the DDR3 SDRAM interface when the Stratix III, Stratix IV, or Stratix V
FPGA device is reading from the DDR3 SDRAM using a 50-ohm parallel OCT termination on the
Stratix III, Stratix IV, or Stratix V FPGA device, and the DDR3 SDRAM driver output impedance is set to
34-ohm .
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Memory Clocks for Stratix III, Stratix IV, and Stratix V FPGA
4-21
Figure 4-12: DDR3 SDRAM Component Driving the Stratix III, Stratix IV, and Stratix V FPGA Device with
Parallel 50-ohm OCT Turned On
Use of the Stratix III, Stratix IV, or Stratix V parallel 50-ohm OCT feature matches receiver impedance
with the transmission line characteristic impedance. This eliminates any reflection that causes ringing,
and results in a clean eye diagram at the Stratix III, Stratix IV, or Stratix V FPGA.
Related Information
DQS, DQ, and DM for DDR3 SDRAM UDIMM on page 4-18
Memory Clocks for Stratix III, Stratix IV, and Stratix V FPGA
Memory clocks are unidirectional signals.
Refer to “Memory Clocks for DDR3 SDRAM UDIMM” for receiver termination recommendations and
transmitter output drive strength settings.
Related Information
Memory Clocks for DDR3 SDRAM UDIMM on page 4-19
Commands and Addresses for Stratix III and Stratix IV FPGA
Commands and addresses are unidirectional signals.
Refer to “Commands and Addresses for DDR3 SDRAM UDIMM” for receiver termination recommenda‐
tions and transmitter output drive strength settings.
Related Information
Commands and Addresses for DDR3 SDRAM UDIMM on page 4-20
Terminations for Multi-Rank DDR3 SDRAM Unbuffered DIMM
You can implement a DDR3 SDRAM UDIMM interface in several permutations, such as single DIMM or
multiple DIMMs, using either single-ranked or dual-ranked UDIMMs. In addition to the UDIMM’s form
factor, these termination recommendations are also valid for small-outline (SO) DIMMs and
MicroDIMMs.
The following table lists the different permutations of a two-slot DDR3 SDRAM interface and the
recommended ODT settings on both the memory and controller when writing to memory.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-22
EMI_DG
2014.12.15
Terminations for Multi-Rank DDR3 SDRAM Unbuffered DIMM
Table 4-5: DDR3 SDRAM ODT Matrix for Writes (1) (2)
Slot 1
DR
Slot 2
DR
Write To
Controller
OCT (3)
Slot 1
Slot 2
Rank 1
Rank 2
Rank 1
ODT off
40-ohm
120-ohm
ODT off
Slot 1
Series 50ohm
120-ohm
ODT off
Slot 2
Series 50ohm
ODT off
40-ohm
Slot 1
Series 50ohm
120-ohm
Unpopulat 40-ohm
ed
Slot 2
Series 50ohm
40-ohm
(4)
(4)
(4)
(4)
(4)
SR
SR
DR
Empty
Slot 1
Series 50ohm
120-ohm
Empty
DR
Slot 2
Series 50ohm
Unpopulat Unpopulat 120-ohm
(4)
ed
ed
SR
Empty
Slot 1
Series 50ohm
120-ohm
Empty
SR
Slot 2
Series 50ohm
Unpopulat Unpopulat 120-ohm
(4)
ed
ed
(4)
(4)
(4)
Unpopulat 120-ohm
(4)
ed
ODT off
Rank 2
(4)
Unpopulated
Unpopulated
Unpopulat Unpopulated
ed
ODT off
Unpopulat Unpopulat Unpopulated
ed
ed
Unpopulated
Notes to Table:
1. SR: single-ranked DIMM; DR: dual-ranked DIMM.
2. These recommendations are taken from the DDR3 ODT and Dynamic ODT session of the JEDEC
DDR3 2007 Conference, Oct 3-4, San Jose, CA.
3. The controller in this case is the FPGA.
4. Dynamic ODT is required. For example, the ODT of Slot 2 is set to the lower ODT value of 40-ohms
when the memory controller is writing to Slot 1, resulting in termination and thus minimizing any
reflection from Slot 2. Without dynamic ODT, Slot 2 will not be terminated.
The following table lists the different permutations of a two-slot DDR3 SDRAM interface and the
recommended ODT settings on both the memory and controller when reading from memory.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
4-23
Terminations for DDR3 SDRAM Registered DIMM
Table 4-6: DDR3 SDRAM ODT Matrix for Reads (1) (2)
Slot 1
DR
Slot 2
DR
Controller
OCT (3)
Read From
Slot 1
Slot 2
Rank 1
Rank 2
Rank 1
Rank 2
Slot 1
Parallel
50-ohm
ODT off
ODT off
ODT off
40-ohm
Slot 2
Parallel
50-ohm
ODT off
40-ohm
ODT off
ODT off
Slot 1
Parallel
50-ohm
ODT off
Unpopulat 40-ohm
ed
Slot 2
Parallel
50-ohm
40-ohm
(4)
SR
SR
DR
Empty
Slot 1
Parallel
50-ohm
ODT off
Empty
DR
Slot 2
Parallel
50-ohm
Unpopulat Unpopulat ODT off
ed
ed
SR
Empty
Slot 1
Parallel
50-ohm
ODT off
Empty
SR
Slot 2
Parallel
50-ohm
Unpopulat Unpopulat ODT off
ed
ed
(4)
Unpopulat ODT off
ed
ODT off
(4)
(4)
Unpopulated
Unpopulated
Unpopulat Unpopulated
ed
ODT off
Unpopulat Unpopulat Unpopulated
ed
ed
Unpopulated
Notes to Table:
1. SR: single-ranked DIMM; DR: dual-ranked DIMM.
2. These recommendations are taken from the DDR3 ODT and Dynamic ODT session of the JEDEC
DDR3 2007 Conference, Oct 3-4, San Jose, CA.
3. The controller in this case is the FPGA. JEDEC typically recommends 60-ohms, but this value assumes
that the typical motherboard trace impedance is 60-ohms and that the controller supports this
termination. Altera recommends using a 50-ohm parallel OCT when reading from the memory.
Terminations for DDR3 SDRAM Registered DIMM
The difference between a registered DIMM (RDIMM) and a UDIMM is that the clock, address, and
command pins of the RDIMM are registered or buffered on the DIMM before they are distributed to the
memory devices. For a controller, each clock, address, or command signal has only one load, which is the
register or buffer. In a UDIMM, each controller pin must drive a fly-by wire with multiple loads.
You do not need to terminate the clock, address, and command signals on your board because these
signals are terminated at the register. However, because of the register, these signals become point-topoint signals and have improved signal integrity making the drive strength requirements of the FPGA
driver pins more relaxed. Similar to the signals in a UDIMM, the DQS, DQ, and DM signals on a RDIMM
are not registered. To terminate these signals, refer to “DQS, DQ, and DM for DDR3 SDRAM UDIMM”.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-24
EMI_DG
2014.12.15
Terminations for DDR3 SDRAM Load-Reduced DIMM
Related Information
DQS, DQ, and DM for DDR3 SDRAM UDIMM on page 4-18
Terminations for DDR3 SDRAM Load-Reduced DIMM
RDIMM and LRDIMM differ in that DQ, DQS, and DM signals are registered or buffered in the
LRDIMM. The LRDIMM buffer IC is a superset of the RDIMM buffer IC. The buffer IC isolates the
memory interface signals from loading effects of the memory chip. Reduced electrical loading allows a
system to operate at higher frequency and higher density.
Note: If you want to use your DIMM socket for UDIMM and RDIMM/LRDIMM, you must create the
necessary redundant connections on the board from the FPGA to the DIMM socket. For example,
the number of chip select signals required for a single-rank UDIMM is one, but for single-rank
RDIMM the number of chip selects required is two. RDIMM and LRDIMM have parity signals
associated with the address and command bus which UDIMM does not have. Consult the DIMM
manufacturer’s data sheet for detailed information about the necessary pin connections for various
DIMM topologies.
Terminations for DDR3 SDRAM Components With Leveling
The following topics discusses terminations used to achieve optimum performance for designing the
DDR3 SDRAM interface using discrete DDR3 SDRAM components.
In addition to using DDR3 SDRAM DIMM to implement your DDR3 SDRAM interface, you can also use
DDR3 SDRAM components. However, for applications that have limited board real estate, using DDR3
SDRAM components reduces the need for a DIMM connector and places components closer, resulting in
denser layouts.
DDR3 SDRAM Components With or Without Leveling
The DDR3 SDRAM UDIMM is laid out to the JEDEC specification. The JEDEC specification is available
from either the JEDEC Organization website (www.JEDEC.org) or from the memory vendors. However,
when you are designing the DDR3 SDRAM interface using discrete SDRAM components, you may desire
a layout scheme that is different than the DIMM specification.
You have the following options:
• Mimic the standard DDR3 SDRAM DIMM, using a fly-by topology for the memory clocks, address,
and command signals. This option needs read and write leveling, so you must use the UniPHY IP with
leveling.
• Mimic a standard DDR2 SDRAM DIMM, using a balanced (symmetrical) tree-type topology for the
memory clocks, address, and command signals. Using this topology results in unwanted stubs on the
command, address, and clock, which degrades signal integrity and limits the performance of the DDR3
SDRAM interface.
DQS, DQ, and DM for DDR3 SDRAM Components
When you are laying out the DDR3 SDRAM interface using Stratix III, Stratix IV, or Stratix V devices,
Altera recommends that you not include the 15-ohm stub series resistor that is on every DQS, DQ, and
DM signal; unless your simulation shows that the absence of this resistor causes extra reflection. Although
adding the 15-ohm stub series resistor may help to maintain constant impedance in some cases, it also
slightly reduces signal swing at the receiver. It is unlikely that by removing this resistor the waveform
shows a noticeable reflection, but it is your responsibility to prove by simulating your board trace.
Therefore, Altera recommends the DQS, DQ, and DM topology shown in the following figure, when the
Stratix III, Stratix IV, or Stratix V FPGA is writing to the DDR3 SDRAM.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Stratix III, Stratix IV, and Stratix V FPGAs
4-25
Figure 4-13: Stratix III, Stratix IV, and Stratix V FPGA Writing to a DDR3 SDRAM Component
When you are using DDR3 SDRAM components, there are no DIMM connectors. This minimizes any
impedance discontinuity, resulting in better signal integrity.
Memory Clocks for DDR3 SDRAM Components
When you use DDR3 SDRAM components, you must account for the compensation capacitor and
differential termination resistor between the differential memory clocks of the DIMM.
To simplify your design, use the terminations outlined in the JEDEC specification for DDR3 SDRAM
UDIMM as your guide and perform simulation to ensure that the DDR3 SDRAM UDIMM terminations
provide you with optimum signal quality.
In addition to choosing the value of the differential termination, you must consider the trace length of the
memory clocks. Altera’s DDR3 UniPHY IP currently supports a flight-time skew of no more than
0.69 tCK in between the first and last memory component. If you use Altera’s DDR3 UniPHY IP to create
your DDR3 SDRAM interface, ensure that the flight-time skew of your memory clocks is not more than
0.69 tCK. UniPHY IP also requires that the total skew combination of the clock fly-by skew and DQS
skew is less than 1 clock cycle.
Refer to “Layout Guidelines for DDR3 SDRAM Interface” for more information about layout guidelines
for DDR3 SDRAM components.
Command and Address Signals for DDR3 SDRAM
You must properly terminate your command and address signals when you are using DDR3 SDRAM
components. Choose your termination resistor value depending on your board stackup and layout
requirements.
As with memory clocks, you must consider the trace delays of the command and address signals so that
they match the flight-time skew of the memory clocks.
Related Information
• Layout Guidelines for DDR3 and DDR4 SDRAM Interfaces on page 4-37
• www.JEDEC.org
Stratix III, Stratix IV, and Stratix V FPGAs
Stratix III, Stratix IV, or Stratix V FPGA termination settings for DIMM also apply to DDR3 SDRAM
component interfaces.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-26
EMI_DG
2014.12.15
Drive Strength
Drive Strength
Altera’s FPGA products offer numerous drive strength settings, allowing you to optimize your board
designs to achieve the best signal quality. The most commonly used drive strength settings are 8 mA and
16 mA, as recommended by JEDEC for Class I and Class II termination schemes.
Note: You are not restricted to using only these drive strength settings for your board designs. You
should perform simulations using I/O models available from Altera and memory vendors to ensure
that you use the proper drive strength setting to achieve optimum signal integrity.
How Strong is Strong Enough?
Excessive drive strength can result in overshoot and undershoot in signal quality at the receiver.
When an FPGA writes to a DDR2 SDRAM DIMM using a drive strength setting of 16 mA, the resulting
signal quality on the receiver can exhibit excessive over- and undershoot. To reduce the over- and
undershoot, you can reduce the drive strength setting on the FPGA from 16 mA to 8 mA. The following
figure shows the simulation and measurement of the FPGA with a drive strength setting of 8 mA driving a
no-parallel termination transmission line.
Figure 4-14: HyperLynx Simulation and Measurement, FPGA Writing to Memory
The following table compares the signals at the DDR2 SDRAM DIMM with no-parallel termination and
memory-side series resistors when the FPGA is writing to the memory with 8-mA and 16-mA drive
strength settings.
Table 4-7: Simulation and Board Measurement Results for 8 mA and 16 mA Drive Strength Settings
Eye Width (ns)
Eye Height (V)
Overshoot (V)
Undershoot (V)
8-mA Drive Strength Setting
Simulation
Altera Corporation
1.48
1.71
0.24
0.35
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
System Loading
Eye Width (ns)
Board Measurement
1.10
Eye Height (V)
Overshoot (V)
4-27
Undershoot (V)
1.24
0.24
0.50
16-mA Drive Strength Setting
Simulation
1.66
1.10
0.90
0.80
Board Measurement
1.25
0.60
1.10
1.08
With a lower strength drive setting, the overall signal quality is improved. The eye width is reduced, but
the eye height is significantly larger with a lower drive strength and the over- and undershoot is reduced
dramatically.
To improve the signal quality further, you should use 50-ohm on-chip series termination in place of an
8mA drive strength and 25-ohm on-chip series termination in place of a 16 mA drive strength.
The drive strength setting is highly dependent on the termination scheme, so it is critical that you perform
pre- and post-layout board-level simulations to determine the proper drive strength settings.
System Loading
You can use memory in a variety of forms, such as individual components or multiple DIMMs, resulting
in different loading seen by the FPGA.
The following topics describe the effect on signal quality when interfacing memories in component, dual
rank, and dual DIMMs format.
Component Versus DIMM
With discrete DDR2 SDRAM components, the additional loading from the DDR2 SDRAM DIMM
connector is eliminated and the memory-side series resistor on the DDR2 SDRAM DIMM is no longer
there.
You must perform board level simulations to decide whether the memory-side series resistor near the
DDR2 SDRAM is required.
Single Versus DualRank DIMM
DDR2 SDRAM DIMMs are available in either single- or dual-rank DIMM. Single-rank DIMMs are
DIMMs with DDR2 SDRAM memory components on one side of the DIMM. Higher-density DIMMs are
available as dual-rank, which has DDR2 SDRAM memory components on both sides of the DIMM.
With the dual-rank DIMM configuration, the loading is twice that of a single-rank DIMM. Depending on
the board design, you must adjust the drive strength setting on the memory controller to account for this
increase in loading.
In a dual-rank DDR2 SDRAM DIMM, the additional loading leads to a slower edge rate, which affects the
eye width. The slower edge rate leads to the degradation of the setup and hold time required by the
memory as well, which must be taken into consideration during the analysis of the timing for the
interface. The overall signal quality remains comparable, but eye width is reduced in the dual-rank
DIMM. This reduction in eye width leads to a smaller data capture window that must be taken into
account when performing timing analysis for the memory interface.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-28
EMI_DG
2014.12.15
Single DIMM Versus Multiple DIMMs
Single DIMM Versus Multiple DIMMs
Some applications, such as packet buffering, require deeper memory, making a single DIMM interface
insufficient.
If you use a multiple DIMM configuration to increase memory depth, the memory controller is required
to interface with multiple loads on data strobes and data lines instead of the point-to-point interface in a
single DIMM configuration. This results in heavier loading on the interface, which can potentially impact
the overall performance of the memory interface.
DDR3 and DDR4 on Arria 10 Devices
The following topics describe considerations specific to DDR3 and DDR4 external memory interface
protocols on Arria 10 devices.
Related Information
www.JEDEC.org
Dynamic On-Chip Termination (OCT) in Arria 10 Devices
Depending upon the Rs (series) and Rt (parallel) OCT values that you want, you should choose
appropriate values for the RZQ resistor and connect this resistor to the RZQ pin of the Arria 10 device.
• Select a 240-ohm reference resistor to ground to implement Rs OCT values of 34-ohm, 40-ohm, 48ohm, 60-ohm, and 80-ohm, and Rt OCT resistance values of 20-ohm, 30-ohm, 34-ohm, 40-ohm, 60ohm, 80-ohm, 120-ohm and 240 ohm.
• Select a 100-ohm reference resistor to ground to implement Rs OCT values of 25-ohm and 50-ohm,
and an RT OCT resistance of 50-ohm.
The following table shows I/O standards and OCT values for DDR3 1.5V.
Signal Type
address/command
memory clock
Altera Corporation
I/O Standard (1)
Termination Values (ohms) (1)
SSTL-15
Rs (Output Mode) - 34, 40
SSTL-15 Class - I
Rs (Output Mode) - 50, No termina‐
tion
SSTL-15 Class - II
Rs (Output Mode) - 25, No termina‐
tion
SSTL-15
Rs (Output Mode) - 34, 40
SSTL-15 Class - I
Rs (Output Mode) - 50, No termina‐
tion
SSTL-15 Class - II
Rs (Output Mode) - 25, No termina‐
tion
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Dynamic On-Chip Termination (OCT) in Arria 10 Devices
I/O Standard (1)
Signal Type
SSTL-15
data bus (DQ, DQS, DM)
SSTL-15 Class - I
4-29
Termination Values (ohms) (1)
Rs (output Mode) - 34, 40
Rt (Input Mode) - 20, 30, 40, 60, 120
Rs (Output Mode) - 50, No termina‐
tion
Rt (Input Mode) - 50, No termination
SSTL-15 Class - II
Rs (Output Mode) - 25, No termina‐
tion
Rt (Input Mode) - 50, No termination
Note to Table:
1. Shown I/O standards and termination values may not include all supported modes. For detailed
information about the dynamic OCT feature in the Arria 10 FPGA, refer to the I/O Features chapter of
the Arria 10 Devices Handbook.
The following table shows I/O standards and OCT values for DDR3L 1.35V.
I/O Standard (1)
Signal Type
Termination Values (ohms) (1)
address/command
SSTL-135
Rs (Output Mode) - 34, 40
memory clock
SSTL-135
Rs (Output Mode) - 34, 40
data bus (DQ, DQS, DM)
SSTL-135
Rs (Output Mode) - 34, 40
Rt (Input Mode) - 20, 30, 40, 60, 120
Note to Table:
1. Shown I/O standards and termination values may not include all supported modes. For detailed
information about the dynamic OCT feature in the Arria 10 FPGA, refer to the I/O Features chapter of
the Arria 10 Devices Handbook.
The following table shows I/O standards and OCT values for DDR4 1.2V.
Signal Type
I/O Standard
Termination Values (ohms)
address/command
SSTL-12
Rs (Output Mode) - 40, 60
memory clock
SSTL-12
Rs (Output Mode) - 40, 60
data bus (DQ, DQS, DM, DBI)
DBI
Rs (Output Mode) - 34, 40, 48, 60
1.2-V POD
Rt (Input Mode) - 34, 40, 48, 60, 80,
120, 240
In cases where both Rs and Rt values are selected for the Data Bus, the OCT value will dynamically switch
between Rs and Rt depending on the type of operation. Rs is applied during write (output) operations and
Rt is applied during read (input) operations.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-30
EMI_DG
2014.12.15
Dynamic On-Die Termination (ODT) in DDR4
Dynamic On-Die Termination (ODT) in DDR4
In DDR4, in addition to the Rtt_nom and Rtt_wr values, which are applied during read and write
respectively, a third option called Rtt_park is available. When Rtt_park is enabled, a selected termination
value is set in the DRAM when ODT is driven low.
Rtt_nom and Rtt_wr work the same as in DDR3, which is described in Dynamic ODT for DDR3.
Refer to the DDR4 JEDEC specification or your memory vendor data sheet for details about available
termination values and functional description for dynamic ODT in DDR4 devices.
Choosing Terminations on Arria 10 Devices
To determine optimal on-chip termination (OCT) and on-die termination (ODT) values for best signal
integrity, you should simulate your memory interface in HyperLynx or a similar tool.
If the optimal OCT and ODT termination values as determined by simulation are not available in the list
of available values in the parameter editor, select the closest available termination values for OCT and
ODT.
Refer to Dynamic On-Chip Termination (OCT) in Arria 10 Devices for examples of various OCT modes.
Refer to the Arria 10 Device Handbook for more information about OCT. For information on available
ODT choices, refer to your memory vendor data sheet.
Related Information
Dynamic On-Chip Termination (OCT) in Arria 10 Devices on page 4-28
Layout Approach
For all practical purposes, you can regard the TimeQuest timing analyzer's report on your memory
interface as definitive for a given set of memory and board timing parameters.
You will find timing under Report DDR in TimeQuest and on the Timing Analysis tab in the parameter
editor.
The following flowchart illustrates the recommended process to follow during the design phase, to
determine timing margin and make iterative improvements to your design.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Layout Approach
4-31
Primary Layout
Calculate Setup
and Hold Derating
Adjust Layout to Improve:
• Trace Length Mis-Match
• Signal Reflections (ISI)
• Cross Talk
• Memory Speed Grade
Calculate Channel
Signal Integrity
Calculate Board
Skews
Find Memory
Timing Parameters
Generate an IP Core that Accurately Represents Your
Memory Subsystem, Including pin-out and Accurate
Parameters in the Parameter Editor’s Board Settings Tab
Run Quartus II Compilation with the Generated IP Core
yes
Any Non-Core Timing
Violations in the Report
DDR Panel?
no
Done
Setup and Hold Derating
For information on calculating derating parameters, refer to Implementing and Parameterizing Memory
IP, in the External Memory Interface Handbook.
Channel Signal Integrity
For information on determining channel signal integrity for Stratix V and earlier products, refer to the
wiki page: http://www.alterawiki.com/wiki/Measuring_Channel_Signal_Integrity .
For information on Arria 10 board timing and layout approach, refer to:
Board Skew
For information on calculating board skew parameters, refer to Implementing and Parameterizing
Memory IP, in the External Memory Interface Handbook .
The Board Skew Parameter Tool is an interactive tool that can help you calculate board skew parameters if
you know the absolute delay values for all the memory related traces.
Memory Timing Parameters
For information on the memory timing parameters to be entered into the parameter editor, refer to the
datasheet for your external memory device.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-32
EMI_DG
2014.12.15
Design Layout Guidelines
Related Information
Board Skew Parameter Tool
Design Layout Guidelines
The general layout guidelines in the following topic apply to DDR2, DDR3, and DDR4 SDRAM
interfaces.
These guidelines will help you plan your board layout, but are not meant as strict rules that must be
adhered to. Altera recommends that you perform your own board-level simulations to ensure that the
layout you choose for your board allows you to achieve your desired performance.
For more information about how the memory manufacturers route these address and control signals on
their DIMMs, refer to the Cadence PCB browser from the Cadence website, at www.cadence.com. The
various JEDEC example DIMM layouts are available from the JEDEC website, at www.jedec.org.
For more information about board skew parameters, refer to Board Skews in the Implementing and
Parameterizing Memory IP chapter. For assistance in calculating board skew parameters, refer to the
board skew calculator tool, which is available at the Altera website.
Note: 1. The following layout guidelines include several +/- length based rules. These length based
guidelines are for first order timing approximations if you cannot simulate the actual delay
characteristic of the interface. They do not include any margin for crosstalk.
2. To ensure reliable timing closure to and from the periphery of the device, signals to and from
the periphery should be registered before any further logic is connected.
Altera recommends that you get accurate time base skew numbers for your design when you simulate the
specific implementation.
Related Information
•
•
•
•
•
www.JEDEC.org
www.cadence.com
www.mentor.com
Board Skew Parameters Tool
http://www.jedec.org/download/DesignFiles/DDR2/default1.cfm
General Layout Guidelines
The following table lists general board design layout guidelines. These guidelines are Altera
recommendations, and should not be considered as hard requirements. You should perform signal
integrity simulation on all the traces to verify the signal integrity of the interface. You should extract the
slew rate and propagation delay information, enter it into the IP and compile the design to ensure that
timing requirements are met.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Layout Guidelines for DDR2 SDRAM Interface
4-33
Table 4-8: General Layout Guidelines
Parameter
Guidelines
Impedance
• All signal planes must be 50-60-ohm, single-ended, ±10%
• All signal planes must be 100-ohm, differential ±10%
• All unused via pads must be removed, because they cause unwanted
capacitance
Decoupling Parameter
•
•
•
•
Power
• Route GND and VCC as planes
• Route VCCIO for memories in a single split plane with at least a 20-mil
(0.020 inches, or 0.508 mm) gap of separation
• Route VTT as islands or 250-mil (6.35-mm) power traces
• Route oscillators and PLL power as islands or 100-mil (2.54-mm) power
traces
General Routing
All specified delay matching requirements include PCB trace delays,
different layer propagation velocity variance, and crosstalk. To minimize
PCB layer propogation variance, Altera recommend that signals from the
same net group always be routed on the same layer.
Use 0.1 uF in 0402 size to minimize inductance
Make VTT voltage decoupling close to pull-up resistors
Connect decoupling caps between VTT and ground
Use a 0.1 uF cap for every other VTT pin and 0.01 uF cap for every VDD
and VDDQ pin
• Verify the capacitive decoupling using the Altera Power Distribution
Network Design Tool
•
•
•
•
•
•
Use 45° angles (not 90° corners)
Avoid T-Junctions for critical nets or clocks
Avoid T-junctions greater than 250 mils (6.35 mm)
Disallow signals across split planes
Restrict routing other signals close to system reset signals
Avoid routing memory signals closer than 0.025 inch (0.635 mm) to PCI
or system clocks
Related Information
Power Distribution Network Design Tool
Layout Guidelines for DDR2 SDRAM Interface
Unless otherwise specified, the following guidelines apply to the following topologies:
•
•
•
•
DIMM—UDIMM topology
DIMM—RDIMM topology
Discrete components laid out in UDIMM topology
Discrete components laid out in RDIMM topology
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-34
EMI_DG
2014.12.15
Layout Guidelines for DDR2 SDRAM Interface
Trace lengths for CLK and DQS should tightly match for each memory component. To match the trace
lengths on the board, a balanced tree topology is recommended for clock and address and command
signal routing. In addition to matching the trace lengths, you should ensure that DDR timing is passing in
the Report DDR Timing report. For Stratix devices, this timing is shown as Write Leveling tDQSS timing.
For Arria and Cyclone devices, this timing is shown as CK vs DQS timing
For a table of device family topology support, refer to Leveling and Dynamic ODT.
The following table lists DDR2 SDRAM layout guidelines. These guidelines are Altera recommendations,
and should not be considered as hard requirements. You should perform signal integrity simulation on all
the traces to verify the signal integrity of the interface. You should extract the slew rate and propagation
delay information, enter it into the IP and compile the design to ensure that timing requirements are met.
Note: The following layout guidelines also apply to DDR3 SDRAM without leveling interfaces.
Table 4-9: DDR2 SDRAM Layout Guidelines
Parameter
(1)
Guidelines
DIMMs
If you consider a normal DDR2 unbuffered, unregistered DIMM, essentially
you are planning to perform the DIMM routing directly on your PCB.
Therefore, each address and control pin routes from the FPGA (single pin)
to all memory devices must be on the same side of the FPGA.
General Routing
• All data, address, and command signals must have matched length traces
± 50 ps.
• All signals within a given Byte Lane Group should be matched length
with maximum deviation of ±10 ps and routed in the same layer.
Clock Routing
• A 4.7 K-ohm resistor to ground is recommended for each Clock Enable
signal. You can place the resistor at either the memory end or the FPGA
end of the trace. This guideline applies only to DDR2, and not DDR3.
• Route clocks on inner layers with outer-layer run lengths held to under
500 mils (12.7 mm)
• These signals should maintain a10-mil (0.254 mm) spacing from other
nets
• Clocks should maintain a length-matching between clock pairs of ±5 ps.
• Differential clocks should maintain a length-matching between P and N
signals of ±2 ps, routed in parallel.
• Space between different pairs should be at least three times the space
between the differential pairs and must be routed differentially (5-mil
trace, 10-15 mil space on centers), and equal to the signals in the
Address/Command Group or up to 100 mils (2.54 mm) longer than the
signals in the Address/Command Group.
• Trace lengths for CLK and DQS should closely match for each memory
component. To match trace lengths on the board, a balanced tree
topology is recommended for clock and address and command signal
routing. For Stratix device families, ensure that Write Leveling tDQSS is
passing in the DDR timing report; for Arria and Cyclone device families,
verify that CK vs DQS timing is passing in the DDR timing report.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Layout Guidelines for DDR2 SDRAM Interface
Parameter
4-35
Guidelines
Address and Command
Routing
• Unbuffered address and command lines are more susceptible to crosstalk and are generally noisier than buffered address or command lines.
Therefore, un-buffered address and command signals should be routed
on a different layer than data signals (DQ) and data mask signals (DM) and
with greater spacing.
• Do not route differential clock (CK) and clock enable (CKE) signals close
to address signals.
DQ, DM, and DQS
Routing Rules
• Keep the distance from the pin on the DDR2 DIMM or component to the
termination resistor pack (VTT) to less than 500 mils for DQS[x] Data
Groups.
• Keep the distance from the pin on the DDR2 DIMM or component to the
termination resistor pack (VTT) to less than 1000 mils for the ADR_CMD_
CTL Address Group.
• Parallelism rules for the DQS[x] Data Groups are as follows:
• 4 mils for parallel runs < 0.1 inch (approximately 1× spacing relative
to plane distance)
• 5 mils for parallel runs < 0.5 inch (approximately 1× spacing relative
to plane distance)
• 10 mils for parallel runs between 0.5 and 1.0 inches (approximately 2×
spacing relative to plane distance)
• 15 mils for parallel runs between 1.0 and 6.0 inch (approximately 3×
spacing relative to plane distance)
• Parallelism rules for the ADR_CMD_CTL group and CLOCKS group are as
follows:
• 4 mils for parallel runs < 0.1 inch (approximately 1× spacing relative
to plane distance)
• 10 mils for parallel runs < 0.5 inch (approximately 2× spacing relative
to plane distance)
• 15 mils for parallel runs between 0.5 and 1.0 inches (approximately 3×
spacing relative to plane distance)
• 20 mils for parallel runs between 1.0 and 6.0 inches (approximately 4×
spacing relative to plane distance)
• All signals are to maintain a 20-mil separation from other, non-related
nets.
• All signals must have a total length of < 6 inches.
• Trace lengths for CLK and DQS should closely match for each memory
component. To match trace lengths on the board, a balanced tree
topology is recommended for clock and address and command signal
routing. For Stratix device families, ensure that Write Leveling tDQSS is
passing in the DDR timing report; for Arria and Cyclone device families,
verify that CK vs DQS timing is passing in the DDR timing report.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-36
EMI_DG
2014.12.15
Layout Guidelines for DDR2 SDRAM Interface
Parameter
Guidelines
Termination Rules
• When pull-up resistors are used, fly-by termination configuration is
recommended. Fly-by helps reduce stub reflection issues.
• Pull-ups should be within 0.5 to no more than 1 inch.
• Pull up is typically 56-ohms.
• If using resistor networks:
• Do not share R-pack series resistors between address/command and data
lines (DQ, DQS, and DM) to eliminate crosstalk within pack.
• Series and pull up tolerances are 1–2%.
• Series resistors are typically 10 to 20-ohm.
• Address and control series resistor typically at the FPGA end of the link.
• DM, DQS, DQ series resistor typically at the memory end of the link (or
just before the first DIMM).
• If termination resistor packs are used:
• The distance to your memory device should be less than 750 mils.
• The distance from your Altera’s FPGA device should be less than
1250 mils.
Quartus II Software
Settings for Board Layout
• To perform timing analyses on board and I/O buffers, use third party
simulation tool to simulate all timing information such as skew, ISI,
crosstalk, and type the simulation result into the UniPHY board setting
panel.
• Do not use advanced I/O timing model (AIOT) or board trace model
unless you do not have access to any third party tool. AIOT provides
reasonable accuracy but tools like HyperLynx provides better result. In
operations with higher frequency, it is crucial to properly simulate all
signal integrity related uncertainties.
• The Quartus II software does timing check to find how fast the controller
issues a write command after a read command, which limits the
maximum length of the DQ/DQS trace. Check the turnaround timing in
the Report DDR timing report and ensure the margin is positive before
board fabrication. Functional failure happens if the margin is more than
0.
Note to Table:
1. For point-to-point and DIMM interface designs, refer to the Micron website, www.micron.com.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Layout Guidelines for DDR3 and DDR4 SDRAM Interfaces
4-37
Figure 4-15: Balanced Tree Topology
Memory
Component
Memory
Component
CK0
DQ Group 0
CK1
CK
Memory
Component
CKi
DQ Group 1
DQSi
DQ Group i
FPGA
CKi = Clock signal propagation delay to device i
DQSi = DQ/DQS signals propagation delay to group i
Related Information
• External Memory Interface Spec Estimator
• www.micron.com
• Leveling and Dynamic ODT on page 4-2
Layout Guidelines for DDR3 and DDR4 SDRAM Interfaces
The following table lists DDR3 and DDR4 SDRAM layout guidelines.
Unless otherwise specified, the guidelines in the following table apply to the following topologies:
•
•
•
•
•
•
DIMM—UDIMM topology
DIMM—RDIMM topology
DIMM—LRDIMM topology
Not all versions of the Quartus II software support LRDIMM.
Discrete components laid out in UDIMM topology
Discrete components laid out in RDIMM topology
These guidelines are Altera recommendations, and should not be considered as hard requirements. You
should perform signal integrity simulation on all the traces to verify the signal integrity of the interface.
You should extract the slew rate and propagation delay information, enter it into the IP and compile the
design to ensure that timing requirements are met.
Refer to the External Memory Interface Spec Estimator for all supported frequencies and topologies.
For frequencies greater than 800 MHz, when you are calculating the delay associated with a trace, you
must take the FPGA package delays into consideration. For more information, refer to Package Deskew.
Note: For device families that do not support write leveling, refer to Layout Guidelines for DDR2 SDRAM
Interface.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-38
EMI_DG
2014.12.15
Layout Guidelines for DDR3 and DDR4 SDRAM Interfaces
Table 4-10: DDR3 and DDR4 SDRAM Layout Guidelines
Parameter
Guidelines
Decoupling Parameter
Maximum Trace Length
(1)
• Make VTT voltage decoupling close to the components and pull-up
resistors.
• Connect decoupling caps between VTT and VDD using a 0.1F cap for
every other VTT pin.
• Use a 0.1 uF cap and 0.01 uF cap for every VDDQ pin.
(2)
• Even though there are no hard requirements for minimum trace length,
you need to simulate the trace to ensure the signal integrity. Shorter
routes result in better timing.
• For DIMM topology only:
• Maximum trace length for all signals from FPGA to the first DIMM slot
is 4.5 inches.
• Maximum trace length for all signals from DIMM slot to DIMM slot is
0.425 inches.
• For discrete components only:
• Maximum trace length for address, command, control, and clock from
FPGA to the first component must not be more than 7 inches.
• Maximum trace length for DQ, DQS, DQS#, and DM from FPGA to the
first component is 5 inches.
General Routing
• Route over appropriate VCC and GND planes.
• Keep signal routing layers close to GND and power planes.
Spacing Guidelines
• Avoid routing two signal layers next to each other. Always make sure that
the signals related to memory interface are routed between appropriate
GND or power layers.
• For DQ/DQS/DM traces: Maintain at least 3H spacing between the edges
(air-gap) for these traces. (Where H is the vertical distance to the closest
return path for that particular trace.)
• For Address/Command/Control traces: Maintain at least 3H spacing
between the edges (air-gap) these traces. (Where H is the vertical distance
to the closest return path for that particular trace.)
• For Clock traces: Maintain at least 5H spacing between two clock pair or
a clock pair and any other memory interface trace. (Where H is the
vertical distance to the closest return path for that particular trace.)
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Layout Guidelines for DDR3 and DDR4 SDRAM Interfaces
Parameter
4-39
Guidelines
Clock Routing
• Route clocks on inner layers with outer-layer run lengths held to under
500 mils (12.7 mm).
• Route clock signals in a daisy chain topology from the first SDRAM to
the last SDRAM. The maximum length of the first SDRAM to the last
SDRAM must not exceed 0.69 tCK. For different DIMM configurations,
check the appropriate JEDEC specification.
• These signals should maintain the following spacings:
• Clocks should maintain a length-matching between clock pairs of ±5 ps.
• Clocks should maintain a length-matching between positive (p) and
negative (n) signals of ±2 ps, routed in parallel.
• Space between different pairs should be at least two times the trace width
of the differential pair to minimize loss and maximize interconnect
density.
• To avoid mismatched transmission line to via, Altera recommends that
you use Ground Signal Signal Ground (GSSG) topology for your clock
pattern—GND|CLKP|CKLN|GND.
• Route all addresses and commands to match the clock signals to within
±20 ps to each discrete memory component. Refer to the following
figure.
Address and Command
Routing
• Route address and command signals in a daisy chain topology from the
first SDRAM to the last SDRAM. The maximum length of the first
SDRAM to the last SDRAM must not be more than 0.69 tCK. For
different DIMM configurations, check the appropriate JEDEC specifica‐
tions.
• UDIMMs are more susceptible to cross-talk and are generally noisier
than buffered DIMMs. Therefore, route address and command signals of
UDIMMs on a different layer than data signals (DQ) and data mask
signals (DM) and with greater spacing.
• Do not route differential clock (CK) and clock enable (CKE) signals close
to address signals.
• Route all addresses and commands to match the clock signals to within
±20 ps to each discrete memory component. Refer to the following
figure.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-40
EMI_DG
2014.12.15
Layout Guidelines for DDR3 and DDR4 SDRAM Interfaces
Parameter
DQ, DM, and DQS
Routing Rules
Guidelines
• All the trace length matching requirements are from the FPGA package
ball to the SDRAM package ball, which means you must consider trace
mismatching on different DIMM raw cards.
• Match in length all DQ, DQS, and DM signals within a given byte-lane
group with a maximum deviation of ±10 ps.
• Ensure to route all DQ, DQS, and DM signals within a given byte-lane
group on the same layer to avoid layer to layer transmission velocity
differences, which otherwise increase the skew within the group.
• Do not count on FPGAs to deskew for more than 20 ps of DQ group
skew. The skew algorithm only removes the following possible uncertain‐
ties:
•
•
•
•
•
Minimum and maximum die IOE skew or delay mismatch
Minimum and maximum device package skew or mismatch
Board delay mismatch of 20 ps
Memory component DQ skew mismatch
Increasing any of these four parameters runs the risk of the deskew
algorithm limiting, failing to correct for the total observed system
skew. If the algorithm cannot compensate without limiting the
correction, timing analysis shows reduced margins.
• For memory interfaces with leveling, the timing between the DQS and
clock signals on each device calibrates dynamically to meet tDQSS. To
make sure the skew is not too large for the leveling circuit’s capability,
follow these rules:
• Propagation delay of clock signal must not be shorter than propaga‐
tion delay of DQS signal at every device: (CKi) – DQSi > 0; 0 < i <
number of components – 1 . For DIMMs, ensure that the CK trace is
longer than the longest DQS trace at the DIMM connector.
• Total skew of CLK and DQS signal between groups is less than one
clock cycle: (CKi+ DQSi) max – (CKi+ DQSi) min < 1 × tCK(If you
are using a DIMM topology, your delay and skew must take into
consideration values for the actual DIMM.)
Termination Rules
Altera Corporation
• When using DIMMs, you have no concerns about terminations on
memory clocks, addresses, and commands.
• If you are using components, use an external parallel termination of 40ohms to VTT at the end of the fly-by daisy chain topology on the
addresses and commands.
• For memory clocks, use an external parallel termination of 75-ohms
differential at the end of the fly-by daisy chain topology on the memory
clocks. Fly-by daisy chain topology helps reduce stub reflection issues.
• If you include a compensation capacitor at the first memory load, it may
improve the waveform signal integrity.
• Keep the length of the traces to the termination to within 0.5 inch
(14 mm).
• Use resistors with tolerances of 1 to 2%.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Length Matching Rules
Parameter
4-41
Guidelines
Spacing Guidelines
• Avoid routing two signal layers next to each other. Always ensure that the
signals related to the memory interface are routed between appropriate
GND or power layers.
• For DQ/DQS/DM traces: Maintain at least 3H spacing between the edges
(air-gap) of these traces, where H is the vertical distance to the closest
return path for that particular trace.
• For Address/Command/Control traces: Maintain at least 3H spacing
between the edges (air-gap) of these traces, where H is the vertical
distance to the closest return path for that particular trace.
• For Clock traces: Maintain at least 5H spacing between two clock pairs or
a clock pair and any other memory interface trace, where H is the vertical
distance to the closest return path for that particular trace.
Quartus II Software
Settings for Board Layout
• To perform timing analyses on board and I/O buffers, use third party
simulation tool to simulate all timing information such as skew, ISI,
crosstalk, and type the simulation result into the UniPHY board setting
panel.
• Do not use advanced I/O timing model (AIOT) or board trace model
unless you do not have access to any third party tool. AIOT provides
reasonable accuracy but tools like HyperLynx provide better results.
Notes to Table:
1. For point-to-point and DIMM interface designs, refer to the Micron website, www.micron.com.
2. For better efficiency, the UniPHY IP requires faster turnarounds from read commands to write.
Related Information
•
•
•
•
Layout Guidelines for DDR2 SDRAM Interface on page 4-33
Package Deskew on page 4-46
External Memory Interface Spec Estimator
www.micron.com
Length Matching Rules
The following topics provide guidance on length matching for different types of DDR3 signals.
Route all addresses and commands to match the clock signals to within ±20 ps to each discrete memory
component. The following figure shows the DDR3 SDRAM component routing guidelines for address
and command signals.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-42
EMI_DG
2014.12.15
Length Matching Rules
Figure 4-16: DDR3 SDRAM Component Address and Command Routing Guidelines
Propagation delay < 0.69
tCK
VTT
FPGA
clock
address and
command
x
x1
DDR3 SDRAM
Component
DDR3 SDRAM
Component
y
x2
y1
If using discrete components:
x = y ± 20 ps
x + x1 = y + y1 ± 20 ps
x + x1 + x2 = y + y1 + y2 ± 20 ps
x + x1 + x2 + x3 = y + y1 + y2 +y3 ± 20 ps
VTT
x3
DDR3 SDRAM
Component
DDR3 SDRAM
Component
y2
y3
If using a DIMM topology:
x=y +/- 20 ps
The timing between the DQS and clock signals on each device calibrates dynamically to meet tDQSS. The
following figure shows the delay requirements to align DQS and clock signals. To ensure that the skew is
not too large for the leveling circuit’s capability, follow these rules:
• Propagation delay of clock signal must not be shorter than propagation delay of DQS signal at every
device:
CKi
– DQSi > 0; 0 < i < number of components – 1
• Total skew of CLK and DQS signal between groups is less than one clock cycle:
(CKi + DQSi) max – (CKi + DQSi) min < 1 × tCK
Figure 4-17: Delaying DQS Signal to Align DQS and Clock
DDR3
Component
CK0
DQ Group 0
DDR3
Component
DDR3
Component
CK1
CKi
DQ Group 1
VTT
DQSi
DQ Group i
CK
FPGA
CKi = Clock signal propagation delay to device i
DQSi = DQ/DQS signals propagation delay to group i
Clk pair matching—If you are using a DIMM (UDIMM, RDIMM, or LRDIMM) topology, match the
trace lengths up to the DIMM connector. If you are using discrete components, match the lengths for all
the memory components connected in the fly-by chain.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Spacing Guidelines
4-43
DQ group length matching—If you are using a DIMM (UDIMM, RDIMM, or LRDIMM) topology,
match the trace lengths up to the DIMM connector. If you are using discrete components, match the
lengths up to the respective memory components.
When you are using DIMMs, it is assumed that lengths are tightly matched within the DIMM itself. You
should check that appropriate traces are length-matched within the DIMM.
Spacing Guidelines
This topic provides recommendations for minimum spacing between board traces for various signal
traces.
Spacing Guidelines for DQ, DQS, and DM Traces
Maintain a minimum of 3H spacing between the edges (air-gap) of these traces. (Where H is the vertical
distance to the closest return path for that particular trace.)
GND or Power
H
3H
GND or Power
H
Spacing Guidelines for Address and Command and Control Traces
Maintain at least 3H spacing between the edges (air-gap) of these traces. (Where H is the vertical distance
to the closest return path for that particular trace.)
GND or Power
H
3H
GND or Power
H
Spacing Guidelines for Clock Traces
Maintain at least 5H spacing between two clock pair or a clock pair and any other memory interface trace.
(Where H is the vertical distance to the closest return path for that particular trace.)
GND or Power
5H
GND or Power
H
H
Layout Guidelines for DDR3 SDRAM Wide Interface (>72 bits)
The following topics discuss different ways to lay out a wider DDR3 SDRAM interface to the FPGA.
Choose the topology based on board trace simulation and the timing budget of your system.
The UniPHY IP supports up to a 144-bit wide DDR3 interface. You can either use discrete components or
DIMMs to implement a wide interface (any interface wider than 72 bits). Altera recommends using
leveling when you implement a wide interface with DDR3 components.
When you lay out for a wider interface, all rules and constraints discussed in the previous sections still
apply. The DQS, DQ, and DM signals are point-to-point, and all the same rules discussed in “Design
Layout Guidelines” apply.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-44
EMI_DG
2014.12.15
Fly-By Network Design for Clock, Command, and Address Signals
The main challenge for the design of the fly-by network topology for the clock, command, and address
signals is to avoid signal integrity issues, and to make sure you route the DQS, DQ, and DM signals with
the chosen topology.
Related Information
Design Layout Guidelines on page 4-32
Fly-By Network Design for Clock, Command, and Address Signals
The UniPHY IP requires the flight-time skew between the first DDR3 SDRAM component and the last
DDR3 SDRAM component to be less than 0.69 tCK for memory clocks. This constraint limits the number
of components you can have for each fly-by network.
If you design with discrete components, you can choose to use one or more fly-by networks for the clock,
command, and address signals.
The following figure shows an example of a single fly-by network topology.
Figure 4-18: Single Fly-By Network Topology
FPGA
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
VTT
Less than 0.69 tCK
Every DDR3 SDRAM component connected to the signal is a small load that causes discontinuity and
degrades the signal. When using a single fly-by network topology, to minimize signal distortion, follow
these guidelines:
• Use ×16 device instead ×4 or ×8 to minimize the number of devices connected to the trace.
• Keep the stubs as short as possible.
• Even with added loads from additional components, keep the total trace length short; keep the distance
between the FPGA and the first DDR3 SDRAM component less than 5 inches.
• Simulate clock signals to ensure a decent waveform.
The following figure shows an example of a double fly-by network topology. This topology is not rigid but
you can use it as an alternative option. The advantage of using this topology is that you can have more
DDR3 SDRAM components in a system without violating the 0.69 tCK rule. However, as the signals
branch out, the components still create discontinuity.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Fly-By Network Design for Clock, Command, and Address Signals
4-45
Figure 4-19: Double Fly-By Network Topology
V TT
FPGA
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
Less than 0.69 t CK
V TT
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
DDR3
SDRAM
Less than 0.69 t CK
You must perform simulations to find the location of the split, and the best impedance for the traces
before and after the split.
The following figure shows a way to minimize the discontinuity effect. In this example, keep TL2 and TL3
matches in length. Keep TL1 longer than TL2 and TL3, so that it is easier to route all the signals during
layout.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-46
EMI_DG
2014.12.15
Package Deskew
Figure 4-20: Minimizing Discontinuity Effect
TL2, ZQ = 50Ω
TL1, ZQ = 25Ω
Splitting Point
TL3, ZQ = 50Ω
You can also consider using a DIMM on each branch to replace the components. Because the trade
impedance on the DIMM card is 40-ohm to 60-ohm, perform a board trace simulation to control the
reflection to within the level your system can tolerate.
By using the new features of the DDR3 SDRAM controller with UniPHY and the Stratix III, Stratix IV, or
Stratix V devices, you simplify your design process. Using the fly-by daisy chain topology increases the
complexity of the datapath and controller design to achieve leveling, but also greatly improves perform‐
ance and eases board layout for DDR3 SDRAM.
You can also use the DDR3 SDRAM components without leveling in a design if it may result in a more
optimal solution, or use with devices that support the required electrical interface standard, but do not
support the required read and write leveling functionality.
Package Deskew
Trace lengths inside the device package are not uniform for all package pins. The nonuniformity of
package traces can affect system timing for high frequencies. In the Quartus II software version 12.0 and
later, a package deskew option is available.
If you do not enable the package deskew option, the Quartus II software uses the package delay numbers
to adjust skews on the appropriate signals; you do not need to adjust for package delays on the board
traces. If you do enable the package deskew option, the Quartus II software does not use the package delay
numbers for timing analysis, and you must deskew the package delays with the board traces for the
appropriate signals for your design.
Package Deskew Recommendation for Stratix V Devices
Package deskew is not required for any memory protocol operating at 800 MHz or below.
For DDR3 and RLDRAM3 designs operating above 800 MHz, you should run timing analysis with
accurately entered board skew parameters in the parameter editor. If Report DDR reports non-core
timing violations, you should then perform the steps in the following topics, and modify your board
layout. Package deskew is not required for any protocols other than DDR3 and RLDRAM 3.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
DQ/DQS/DM Deskew
4-47
DQ/DQS/DM Deskew
To get the package delay information, follow these steps:
1. Select the FPGA DQ/DQS Package Skews Deskewed on Board checkbox on the Board Settings tab of
the parameter editor.
2. Generate your IP.
3. Instantiate your IP in the project.
4. Run Analysis and Synthesis in the Quartus II software.
5. Run the <core_name>_p0_pin_assignment.tcl script.
6. Compile your design.
7. Refer to the All Package Pins compilation report, or find the pin delays displayed in the
<core_name>.pin file.
Address and Command Deskew
Deskew address and command delays as follows:
1. Select the FPGA Address/Command Package Skews Deskewed on Board checkbox on the Board
Settings tab of the parameter editor.
2. Generate your IP.
3. Instantiate your IP in the project.
4. Run Analysis and Synthesis in the Quartus II software.
5. Run the <core_name>_p0_pin_assignment.tcl script.
6. Compile your design.
7. Refer to the All Package Pins compilation report, or find the pin delays displayed in the
<core_name>.pin file.
Package Deskew Recommendations for Arria 10 Devices
The following table shows package deskew recommendations for all protocols supported on Arria 10
devices.
As operating frequencies increase, it becomes increasingly critical to perform package deskew. The
frequencies listed in the table are the minimum frequencies for which you must perform package deskew.
If you plan to use a listed protocol at the specified frequency or higher, you must perform package
deskew. For example, you must perform package deskew if you plan to use dual-rank DDR4 at 800 MHz
or above.
Minimum Frequency (MHz) for Which to Perform Package Deskew
Protocol
Single Rank
Dual Rank
Quad Rank
DDR4
933
800
667
DDR3
933
800
667
LPDDR3
667
533
Not required
QDR IV
933
Not applicable
Not applicable
RLDRAM 3
933
667
Not applicable
RLDRAM II
Not required
Not applicable
Not applicable
QDR II, II+, II+ Xtreme
Not required
Not applicable
Not applicable
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-48
EMI_DG
2014.12.15
Deskew Example
Note: QDR IV SRAM for Arria 10 EMIF IP will be supported in a future release of the Quartus II
software.
The recommendations in the above table are based on preliminary timing models, and may be updated in
the future. If you are designing a board with Arria 10 devices and require exact package trace delays,
contact Altera Support.
Deskew Example
Consider an example where you want to deskew an interface with 4 DQ pins, 1 DQS pin, and 1 DQSn pin.
Let’s assume an operating frequency of 667 MHz, and the package lengths for the pins reported in the .pin
file as follows:
dq[0]
dq[1]
dq[2]
dq[3]
dqs
dqs_n
=
=
=
=
=
=
120 ps
120 ps
100 ps
100 ps
80 ps
80 ps
The following figure illustrates this example.
Figure 4-21: Deskew Example
Memory
Stratix V
mem_dq[0]
mem_dq[1]
mem_dq[2]
mem_dq[3]
120 ps
120 ps
100 ps
100 ps
A
B
C
D
mem_dq[0]
mem_dq[1]
mem_dq[2]
mem_dq[3]
mem_dqs
mem_dqs_n
80 ps
80 ps
E
F
mem_dqs
mem_dqs_n
When you perform length matching for all the traces in the DQS group, you must take package delays
into consideration. Because the package delays of traces A and B are 40 ps longer than the package delays
of traces E and F, you would need to make the board traces for E and F 40 ps longer than the board traces
for A and B.
A similar methodology would apply to traces C and D, which should be 20 ps longer than the lengths of
traces A and B.
The following figure shows this scenario with the length of trace A at 450 ps.
Altera Corporation
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Package Migration
4-49
Figure 4-22: Deskew Example with Trace Delay Calculations
Memory
Stratix V
mem_dq[0]
mem_dq[1]
mem_dq[2]
mem_dq[3]
120 ps
120 ps
100 ps
100 ps
A=450ps
B=A=450ps
C=A+20ps=470ps
C=A+20ps=470ps
mem_dq[0]
mem_dq[1]
mem_dq[2]
mem_dq[3]
mem_dqs
mem_dqs_n
80 ps
80 ps
C=A+40ps=490ps
C=A+40ps=490ps
mem_dqs
mem_dqs_n
When you enter the board skews into the Board Settings tab of the DDR3 parameter editor, you should
calculate the board skew parameters as the sums of board delay and corresponding package delay. If a pin
does not have a package delay (such as address and command pins), you should use the board delay only.
The example of the preceding figure shows an ideal case where board skews are perfectly matched. In
reality, you should allow plus or minus 2 ps of skew mismatch within a DQS group (DQ/DQS/DM).
Package Migration
Package delays can be different for the same pin in different packages. If you want to use multiple
migratable packages in your system, you should compensate for package skew as described in this topic.
Assume two migratable packages, device A and device B, and that you want to compensate for the board
trace lengths for device A. Follow these steps:
1. Compile your design for device A, with the Package Skew option enabled.
2. Note the skews in the <core_name>.pin file for device A. Deskew these package skews with board
trace lengths as described in the preceding examples.
3. Recompile your design for device A.
4. For Device B open the parameter editor and deselect Package Deskew option.
5. Calculate board skew parameters only taking into account the board traces for Device B and enter that
value into the parameter editor for Device B.
6. Regenerate the IP and recompile the design for Device B.
7. Verify that timing requirements are met for both device A and device B.
Package Deskew for RLDRAM II and RLDRAM 3
You should follow Altera's package deskew guidance if you are using Stratix V or Arria 10 devices.
For more information on package deskew, refer to Package Deskew.
Document Revision History
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
4-50
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
• Added MAX 10 to On-Chip Termination topic.
• Added MAX 10 to Termination Recommendations table in
Recommended Termination Schemes topic.
August 2014
2014.08.15
• Added Arria V Soc and Cyclone V SoC devices to note in Leveling
and Dynamic ODT section.
• Added DDR4 to Read and Write Leveling section.
• Revised text in On-Chip Termination section.
• Added text to note in Board Termination for DDR3 SDRAM section.
• Added Layout Approach information in the DDR3 and DDR4 on
Arria 10 Devices section.
• Recast expressions of length-matching measurements throughout
DDR2 SDRAM Layout Guidelines table.
• Made several changes to DDR3 and DDR4 SDRAM Layout Guidelines
table:
• Added Spacing Guidelines section.
• Removed millimeter approximations from lengths expressed in
picoseconds.
• Revised Guidelines for Clock Routing, Address and Command
Routing, and DQ, DM, and DQS Routing Rules sections.
• Added Spacing Guidelines information to Design Layout Guidelines
section.
December
2013
2013.12.16
November
2012
5.0
• Updated Layout Guidelines for DDR2 SDRAM Interface and Layout
Guidelines for DDR3 SDRAM Interface.
• Added LRDIMM support.
• Added Package Deskew section.
June 2012
4.1
Added Feedback icon.
November
2011
4.0
Added Arria V and Cyclone V information.
Altera Corporation
•
•
•
•
•
•
•
•
Review and minor updates of content.
Consolidated General Layout Guidelines.
Added DDR3 and DDR4 information for Arria 10 devices.
Updated chapter title to include DDR4 support.
Removed references to ALTMEMPHY.
Removed references to Cyclone III and Cyclone IV devices.
Removed references to Stratix II devices.
Corrected Vtt to Vdd in Memory Clocks for DDR3 SDRAM UDIMM
section.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
June 2011
3.0
• Merged DDR2 and DDR3 chapters to DDR2 and DDR3 SDRAM
Interface Termination and Layout Guidelines and updated with
leveling information.
• Added Stratix V information.
December
2010
2.1
Added DDR3 SDRAM Interface Termination, Drive Strength, Loading,
and Board Layout Guidelines chapter with Stratix V information.
July 2010
2.0
Updated Arria II GX information.
April 2010
1.0
Initial release.
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines
Send Feedback
4-51
Altera Corporation
Dual-DIMM DDR2 and DDR3 SDRAM Board
Design Guidelines
5
2014.12.15
EMI_DG
Subscribe
Send Feedback
The following topics describe guidelines for implementing dual unbuffered DIMM (UDIMM) DDR2 and
DDR3 SDRAM interfaces.
The following topics discuss the impact on signal integrity of the data signal with the following conditions
in a dual-DIMM configuration:
• Populating just one slot versus populating both slots
• Populating slot 1 versus slot 2 when only one DIMM is used
• On-die termination (ODT) setting of 75-ohm versus an ODT setting of 150-ohm
For detailed information about a single-DIMM DDR2 SDRAM interface, refer to the DDR2 and DDR3
SDRAM Board Design Guidelines chapter.
Related Information
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines on page 4-1
General Layout Guidelines
The following table lists general board design layout guidelines. These guidelines are Altera
recommendations, and should not be considered as hard requirements. You should perform signal
integrity simulation on all the traces to verify the signal integrity of the interface. You should extract the
slew rate and propagation delay information, enter it into the IP and compile the design to ensure that
timing requirements are met.
Table 5-1: General Layout Guidelines
Parameter
Impedance
Guidelines
• All signal planes must be 50-60-ohm, single-ended, ±10%
• All signal planes must be 100-ohm, differential ±10%
• All unused via pads must be removed, because they cause unwanted
capacitance
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
5-2
EMI_DG
2014.12.15
Dual-Slot Unbuffered DDR2 SDRAM
Parameter
Guidelines
Decoupling Parameter
•
•
•
•
Use 0.1 uF in 0402 size to minimize inductance
Make VTT voltage decoupling close to pull-up resistors
Connect decoupling caps between VTT and ground
Use a 0.1 uF cap for every other VTT pin and 0.01 uF cap for every VDD
and VDDQ pin
• Verify the capacitive decoupling using the Altera Power Distribution
Network Design Tool
Power
• Route GND and VCC as planes
• Route VCCIO for memories in a single split plane with at least a 20-mil
(0.020 inches, or 0.508 mm) gap of separation
• Route VTT as islands or 250-mil (6.35-mm) power traces
• Route oscillators and PLL power as islands or 100-mil (2.54-mm) power
traces
General Routing
All specified delay matching requirements include PCB trace delays,
different layer propagation velocity variance, and crosstalk. To minimize
PCB layer propogation variance, Altera recommend that signals from the
same net group always be routed on the same layer.
•
•
•
•
•
•
Use 45° angles (not 90° corners)
Avoid T-Junctions for critical nets or clocks
Avoid T-junctions greater than 250 mils (6.35 mm)
Disallow signals across split planes
Restrict routing other signals close to system reset signals
Avoid routing memory signals closer than 0.025 inch (0.635 mm) to PCI
or system clocks
Related Information
Power Distribution Network Design Tool
Dual-Slot Unbuffered DDR2 SDRAM
This topic describes guidelines for implementing a dual slot unbuffered DDR2 SDRAM interface,
operating at up to 400-MHz and 800-Mbps data rates.
The following figure shows a typical DQS, DQ, and DM signal topology for a dual-DIMM interface
configuration using the ODT feature of the DDR2 SDRAM components.
Altera Corporation
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Overview of ODT Control
5-3
Figure 5-1: Dual-DIMM DDR2 SDRAM Interface Configuration
V TT
R T =54Ω
Bo ard T race
DDR2 SDRAM
DIMMs
(Receiver)
Slot 1
FPGA
(Driver)
Slot 2
Bo ard T race
Bo ard T race
The simulations in this section use a Stratix II device-based board. Because of limitations of this FPGA
device family, simulations are limited to 266 MHz and 533 Mbps so that comparison to actual hardware
results can be directly made.
®
Overview of ODT Control
When there is only a single-DIMM on the board, the ODT control is relatively straightforward. During
write to the memory, the ODT feature of the memory is turned on; during read from the memory, the
ODT feature of the memory is turned off. However, when there are multiple DIMMs on the board, the
ODT control becomes more complicated.
With a dual-DIMM interface on the system, the controller has different options for turning the memory
ODT on or off during read or write. The following table lists the DDR2 SDRAM ODT control during
write to the memory. These DDR2 SDRAM ODT controls are recommended by Samsung Electronics.
The JEDEC DDR2 specification was updated to include optional support for RTT(nominal) = 50-ohm.
For more information about the DDR2 SDRAM ODT controls recommended by Samsung, refer to the
Samsung DDR2 Application Note: ODT (On Die Termination) Control.
Table 5-2: DDR2 SDRAM ODT Control—Writes
Slot 1 (2)
Slot 2 (2)
(1)
Module in Slot 1
Write To
Rank 1
DR
DR
Rank 2
Rank 3
Rank 4
Slot 1
Series 50ohms
Infinite
Infinite
75 or 50ohm
Infinite
Slot 2
Series 50ohms
75 or 50ohm
Infinite
Infinite
Infinite
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
Module in Slot 2
FPGA
Altera Corporation
5-4
EMI_DG
2014.12.15
Overview of ODT Control
Slot 1 (2)
Slot 2 (2)
Module in Slot 1
Write To
Module in Slot 2
FPGA
Rank 1
Rank 2
Rank 3
Rank 4
Slot 1
Series 50ohms
Infinite
Unpopulat 75 or 50ed
ohm
Unpopulated
Slot 2
Series 50ohms
75 or 50ohm
Unpopulat Infinite
ed
Unpopulated
Infinite
SR
SR
DR
Empty
Slot 1
Series 50ohms
150-ohm
Empty
DR
Slot 2
Series 50ohms
Unpopulat Unpopulat 150-ohm
ed
ed
SR
Empty
Slot 1
Series 50ohms
150-ohm
Empty
SR
Slot 2
Series 50ohms
Unpopulat Unpopulat 150-ohm
ed
ed
Unpopulat Unpopulated
ed
Infinite
Unpopulat Unpopulat Unpopulated
ed
ed
Unpopulated
Notes to Table:
1. For DDR2 at 400 MHz and 533 Mbps = 75-ohm; for DDR2 at 667 MHz and 800 Mbps = 50-ohm.
2. SR = single ranked; DR = dual ranked.
Table 5-3: DDR2 SDRAM ODT Control—Reads
Slot 1 (2)
Slot 2 (2)
(1)
Module in Slot 1
Read From
Rank 1
DR
DR
Module in Slot 2
FPGA
Rank 2
Rank 3
Slot 1
Parallel
50-ohms
Infinite
Infinite
75 or 50ohm
Infinite
Slot 2
Parallel
50-ohms
75 or 50ohm
Infinite
Infinite
Infinite
Slot 1
Parallel
50-ohms
Infinite
Unpopulat 75 or 50ed
ohm
Unpopulated
Slot 2
Parallel
50-ohms
75 or 50ohm
Unpopulat Infinite
ed
Unpopulated
Infinite
SR
SR
DR
Empty
Slot 1
Parallel
50-ohms
Infinite
Empty
DR
Slot 2
Parallel
50-ohms
Unpopulat Unpopulat Infinite
ed
ed
Altera Corporation
Rank 4
Unpopulat Unpopulated
ed
Infinite
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
DIMM Configuration
Slot 1 (2)
Slot 2 (2)
Module in Slot 1
Read From
5-5
Module in Slot 2
FPGA
Rank 1
Rank 2
Rank 3
SR
Empty
Slot 1
Parallel
50-ohms
Infinite
Empty
SR
Slot 2
Parallel
50-ohms
Unpopulat Unpopulat Infinite
ed
ed
Rank 4
Unpopulat Unpopulat Unpopulated
ed
ed
Unpopulated
Notes to Table:
1. For DDR2 at 400 MHz and 533 Mbps = 75-ohm; for DDR2 at 667 MHz and 800 Mbps = 50-ohm.
2. SR = single ranked; DR = dual ranked.
DIMM Configuration
Although populating both memory slots is common in a dual-DIMM memory system, there are some
instances when only one slot is populated.
For example, some systems are designed to have a certain amount of memory initially and as applications
get more complex, the system can be easily upgraded to accommodate more memory by populating the
second memory slot without re-designing the system. The following topics discuss a dual-DIMM system
where the dual-DIMM system only has one slot populated at one time and a dual-DIMM system where
both slots are populated. ODT controls recommended by memory vendors, as well as other possible ODT
settings are evaluated for usefulness in an FPGA system.
Dual-DIMM Memory Interface with Slot 1 Populated
The following topics focus on a dual-DIMM memory interface where slot 1 is populated and slot 2 is
unpopulated.
These topics examine the impact on the signal quality due to an unpopulated DIMM slot and compares it
to a single-DIMM memory interface.
FPGA Writing to Memory
In the DDR2 SDRAM, the ODT feature has two settings: 150-ohms and 75-ohms.
The recommended ODT setting for a dual DIMM configuration with one slot occupied is 150-ohm.
Note: On DDR2 SDRAM devices running at 333 MHz/667 Mbps and above, the ODT feature supports
an additional setting of 50-ohm.
Refer to the respective memory decathlete for additional information about the ODT settings in DDR2
SDRAM devices.
Write to Memory Using an ODT Setting of 150-ohm
The following figure shows a double parallel termination scheme (Class II) using ODT on the memory
with a memory-side series resistor when the FPGA is writing to the memory using a 25-ohm OCT drive
strength setting on the FPGA.
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
5-6
EMI_DG
2014.12.15
Reading from Memory
Figure 5-2: Double Parallel Termination Scheme (Class II) Using ODT on DDR2 SDRAM DIMM with
Memory-Side Series Resistor
DDR 2 DIMM
FPGA
V TT = 0.9V
25 Ω
DDR2 Component
Driver
Driver
R T= 54 Ω
R S = 22 Ω
300 Ω/
150 Ω
R eceiver
50Ω
3" Trace Length
VREF
VREF = 0.9V
r
300 Ω/
150 Ω
Related Information
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines on page 4-1
Reading from Memory
During read from the memory, the ODT feature is turned off. Thus, there is no difference between using
an ODT setting of 150-ohm and 75-ohm. As such, the termination scheme becomes a single parallel
termination scheme (Class I) where there is an external resistor on the FPGA side and a series resistor on
the memory side as shown in the following figure.
Figure 5-3: Single Parallel Termination Scheme (Class I) Using External Resistor and Memory-Side
Series Resistor
FPGA
Driver
DDR2 DIMM
DDR2 Component
VTT = 0.9 V
25 Ω
300 Ω/
150 Ω
RT = 54 Ω
Receiver
50 Ω
VREF = 0.9 V
Receiver
RS = 22 Ω
3” Trace VREF
Length
Driver
300 Ω/
150 Ω
Related Information
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines on page 4-1
Dual-DIMM with Slot 2 Populated
The following topics focus on a dual-DIMM memory interface where slot 2 is populated and slot 1 is
unpopulated. Specifically, these topics discuss the impact of location of the DIMM on the signal quality.
Altera Corporation
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
FPGA Writing to Memory
5-7
FPGA Writing to Memory
The following topics explore the differences between populating slot 1 and slot 2 of the dual-DIMM
memory interface.
Previous topics focused on the dual-DIMM memory interface where slot 1 is populated resulting in the
memory being located closer to the FPGA. When slot 2 is populated, the memory is located further away
from the FPGA, resulting in additional trace length that potentially affects the signal quality seen by the
memory. The following topics explore the differences between populating slot 1 and slot 2 of the
dual-DIMM memory interface.
Write to Memory Using an ODT Setting of 150-ohm
The following figure shows the double parallel termination scheme (Class II) using ODT on the memory
with the memory-side series resistor when the FPGA is writing to the memory using a 25-ohm OCT drive
strength setting on the FPGA.
Figure 5-4: Double Parallel Termination Scheme (Class II) Using ODT on DDR2 SDRAM DIMM with
Memory-side Series Resistor
DDR 2 DIMM
FPGA
V TT = 0.9V
25 Ω
DDR2 Component
Driver
Driver
R T= 54 Ω
R S = 22 Ω
300 Ω/
150 Ω
R eceiver
50Ω
VREF
r
3" Trace Length
VREF = 0.9V
300 Ω/
150 Ω
Reading from Memory
During read from memory, the ODT feature is turned off, thus there is no difference between using an
ODT setting of 150-ohm and 75-ohm. As such, the termination scheme becomes a single parallel
termination scheme (Class I) where there is an external resistor on the FPGA side and a series resistor on
the memory side, as shown in the following figure.
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
5-8
EMI_DG
2014.12.15
Dual-DIMM Memory Interface with Both Slot 1 and Slot 2 Populated
Figure 5-5: Single Parallel Termination Scheme (Class I) Using External Resistor and Memory-Side
Series Resistor
DDR2 DIMM
DDR2 Component
FPGA
Driver
25 Ω
VTT = 0.9 V
300 Ω/
150 Ω
RT = 54 Ω
Receiver
50 Ω
VREF = 0.9 V
Receiver
RS = 22 Ω
3” Trace VREF
Length
Driver
300 Ω/
150 Ω
Dual-DIMM Memory Interface with Both Slot 1 and Slot 2 Populated
The following topics focus on a dual-DIMM memory interface where both slot 1 and slot 2 are populated.
As such, you can write to either the memory in slot 1 or the memory in slot 2.
FPGA Writing to Memory
The following topics explore the use of the 150-ohm setting and compares the results to that of the
recommended 75-ohm.
In Table 5–1, the recommended ODT setting for a dual DIMM configuration with both slots occupied is
75-ohm. Because there is an option for an ODT setting of 150-ohm, this section explores the usage of the
150-ohm setting and compares the results to that of the recommended 75-ohm.
Write to Memory in Slot 1 Using an ODT Setting of 75-ohm
The following figure shows the double parallel termination scheme (Class II) using ODT on the memory
with the memory-side series resistor when the FPGA is writing to the memory using a 25-ohm OCT drive
strength setting on the FPGA. In this scenario, the FPGA is writing to the memory in slot 1 and the ODT
feature of the memory at slot 2 is turned on.
Altera Corporation
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Reading From Memory
5-9
Figure 5-6: Double Parallel Termination Scheme (Class II) Using ODT on DDR2 SDRAM DIMM with a
Memory-Side Series Resistor
Slot 1
FPGA
DDR2 DIMM
VTT = 0.9V
Driver
25W
DDR2 Component
Driver
RT= 54W
Receiver
RS = 22W
50W
3" Trace Length
VREF
50W
VREF
300W/
150W
Receiver
300W/
150W
Slot 2
DDR2 DIMM
DDR2 Component
Driver
RS = 22W
VREF= 0.9V
300W/
150W
Receiver
300W/
150W
Reading From Memory
In Table 5–2, the recommended ODT setting for a dual-DIMM configuration with both slots occupied is
to turn on the ODT feature using a setting of 75-ohm on the slot that is not read from. As there is an
option for an ODT setting of 150-ohm, this section explores the usage of the 150-ohm setting and
compares the results to that of the recommended 75-ohm.
Read From Memory in Slot 1 Using an ODT Setting of 75‑ohms on Slot 2
The following figure shows the double parallel termination scheme (Class II) using ODT on the memory
with the memory-side series resistor when the FPGA is reading from the memory using a full drive
strength setting on the memory. In this scenario, the FPGA is reading from the memory in slot 1 and the
ODT feature of the memory at slot 2 is turned on.
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
5-10
EMI_DG
2014.12.15
Reading From Memory
Figure 5-7: Double Parallel Termination Scheme (Class II) Using External Resistor and Memory-Side
Series Resistor and ODT Feature Turned On
Slot 1
FPGA
DDR2 DIMM
VTT = 0.9V
Driver
25W
DDR2 Component
Driver
RT= 54W
Receiver
RS = 22W
50W
3" Trace Length
VREF
Receiver
300W/
150W
50W
VREF
300W/
150W
Slot 2
DDR2 DIMM
DDR2 Component
Driver
RS = 22W
VREF
300W/
150W
Receiver
300W/
150W
Read From Memory in Slot 2 Using an ODT Setting of 75‑ohms on Slot 1
In this scenario, the FPGA is reading from the memory in slot 2 and the ODT feature of the memory at
slot 1 is turned on.
Altera Corporation
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Dual-DIMM DDR2 Clock, Address, and Command Termination and Topology
5-11
Figure 5-8: Double Parallel Termination Scheme (Class II) Using External Resistor and a Memory-Side
Series Resistor and ODT Feature Turned On
Slot 1
FPGA
DDR2 DIMM
VTT = 0.9V
Driver
25W
DDR2 Component
Driver
RT= 54W
Receiver
RS = 22W
50W
3" Trace Length
Receiver
VREF
150W/
300W
50W
VREF= 0.9V
150W/
300W
Slot 2
DDR2 DIMM
DDR2 Component
Driver
RS = 22W
VREF
150W/
300W
Receiver
150W/
300W
Dual-DIMM DDR2 Clock, Address, and Command Termination and Topology
The address and command signals on a DDR2 SDRAM interface are unidirectional signals that the FPGA
memory controller drives to the DIMM slots. These signals are always Class-I terminated at the memory
end of the line, as shown in the following figure.
Always place DDR2 SDRAM address and command Class-I termination after the last DIMM. The
interface can have one or two DIMMs, but never more than two DIMMs total.
Figure 5-9: Multi DIMM DDR2 Address and Command Termination Topology
V TT
Slot 1
FPGA
(Driver)
Board Trace A
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
DDR2 SDRAM
DIMMs
(Receiver)
Slot 2
Board Trace C
R P = 47 W
Board Trace B
Altera Corporation
5-12
Control Group Signals
EMI_DG
2014.12.15
In the above figure, observe the following points:
•
•
•
•
•
•
Board trace A = 1.9 to 4.5 inches (48 to 115 mm)
Board trace B = 0.425 inches (10.795 mm)
Board trace C = 0.2 to 0.55 inches (5 to 13 mm)
Total of board trace A + B + C = 2.5 to 5 inches (63 to 127 mm)
RP = 36 to 56-ohm
Length match all address and command signals to +250 mils (+5 mm) or +/– 50 ps of memory clock
length at the DIMM.
You may place a compensation capacitor directly before the first DIMM slot 1 to improve signal quality
on the address and command signal group. If you fit a capacitor, Altera recommends a value of 24 pF.
For more information, refer to Micron TN47-01.
Control Group Signals
The control group of signals: chip select CS#, clock enable CKE, and ODT are always 1T regardless of
whether you implement a full-rate or half-rate design.
As the signals are also SDR, the control group signals operate at a maximum frequency of 0.5 × the data
rate. For example, in a 400-MHz design, the maximum control group frequency is 200 MHz.
Clock Group Signals
Depending on the specific form factor, DDR2 SDRAM DIMMs have two or three differential clock pairs,
to ensure that the loading on the clock signals is not excessive. The clock signals are always terminated on
the DIMMs and hence no termination is required on your PCB.
Additionally, each DIMM slot is required to have its own dedicated set of clock signals. Hence clock
signals are always point-to-point from the FPGA PHY to each individual DIMM slot. Individual memory
clock signals should never be shared between two DIMM slots.
A typical two slot DDR2 DIMM design therefore has six differential memory clock pairs—three to the
first DIMM and three to the second DIMM. All six memory clock pairs must be delay matched to each
other to ±25 mils (±0.635 mm) and ±10 mils (±0.254 mm) for each CLK to CLK# signal.
You may place a compensation capacitor between each clock pair directly before the DIMM connector, to
improve the clock slew rates. As FPGA devices have fully programmable drive strength and slew rate
options, this capacitor is usually not required for FPGA design. However, Altera advise that you simulate
your specific implementation to ascertain if this capacitor is required or not. If fitted the best value is
typically 5 pF.
Dual-Slot Unbuffered DDR3 SDRAM
The following topics detail the system implementation of a dual slot unbuffered DDR3 SDRAM interface,
operating at up to 400 MHz and 800 Mbps data rates.
The following figure shows a typical DQS, DQ, and DM, and address and command signal topology for a
dual-DIMM interface configuration, using the ODT feature of the DDR3 SDRAM components combined
with the dynamic OCT features available in Stratix III and Stratix IV devices.
Altera Corporation
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Comparison of DDR3 and DDR2 DQ and DQS ODT Features and Topology
5-13
Figure 5-10: Multi DIMM DDR3 DQS, DQ, and DM, and Address and Command Termination Topology
DDR3 SDRAM
DIMMs
Slot 1
FPGA
(Driver)
Board Trace A
Slot 2
Board Trace B
In the above figure, observe the following points:
•
•
•
•
Board trace A = 1.9 to 4.5 inches (48 to 115 mm)
Board trace B = 0.425 inches (10.795 mm)
This topology to both DIMMs is accurate for DQS, DQ, and DM, and address and command signals
This topology is not correct for CLK and CLK# and control group signals (CS#, CKE, and ODT),
which are always point-to-point single rank only.
Comparison of DDR3 and DDR2 DQ and DQS ODT Features and Topology
DDR3 and DDR2 SDRAM systems are quite similar. The physical topology of the data group of signals
may be considered nearly identical.
The FPGA end (driver) I/O standard changes from SSTL18 for DDR2 to SSTL15 for DDR3, but all other
OCT settings are identical. DDR3 offers enhanced ODT options for termination and drive-strength
settings at the memory end of the line.
For more information, refer to the DDR3 SDRAM ODT matrix for writes and the DDR3 SDRAM ODT
matrix for reads tables in the DDR2 and DDR3 SDRAM Board Design Guidelines chapter.
Related Information
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines on page 4-1
Dual-DIMM DDR3 Clock, Address, and Command Termination and Topology
One significant difference between DDR3 and DDR2 DIMM based interfaces is the address, command
and clock signals. DDR3 uses a daisy chained based architecture when using JEDEC standard modules.
The address, command, and clock signals are routed on each module in a daisy chain and feature a fly-by
termination on the module. Impedance matching is required to make the dual-DIMM topology work
effectively—40 to 50-ohm traces should be targeted on the main board.
Address and Command Signals
Two UDIMMs result in twice the effective load on the address and command signals, which reduces the
slew rate and makes it more difficult to meet setup and hold timing (tIS and tIH). However, address and
command signals operate at half the interface rate and are SDR. Hence a 400-Mbps data rate equates to an
address and command fundamental frequency of 100 MHz.
Control Group Signals
The control group signals (chip Select CS#, clock enable CKE, and ODT) are only ever single rank. A
dual-rank capable DDR3 DIMM slot has two copies of each signal, and a dual-DIMM slot interface has
four copies of each signal.
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
5-14
EMI_DG
2014.12.15
Clock Group Signals
The signal quality of these signals is identical to a single rank case. The control group of signals, are always
1T regardless of whether you implement a full-rate or half-rate design. As the signals are also SDR, the
control group signals operate at a maximum frequency of 0.5 × the data rate. For example, in a 400 MHz
design, the maximum control group frequency is 200 MHz.
Clock Group Signals
Like the control group signals, the clock signals in DDR3 SDRAM are only ever single rank loaded. A
dual-rank capable DDR3 DIMM slot has two copies of the signal, and a dual-slot interface has four copies
of the mem_clk and mem_clk_n signals.
For more information about a DDR3 two-DIMM system design, refer to Micron TN-41-08: DDR3 Design
Guide for Two-DIMM Systems.
FPGA OCT Features
Many FPGA devices offer OCT. Depending on the chosen device family, series (output), parallel (input)
or dynamic (bidirectional) OCT may be supported.
For more information specific to your device family, refer to the respective I/O features chapter in the
relevant device handbook.
Use series OCT in place of the near-end series terminator typically used in both Class I or Class II
termination schemes that both DDR2 and DDR3 type interfaces use.
Use parallel OCT in place of the far-end parallel termination typically used in Class I termination schemes
on unidirectional input only interfaces. For example, QDR-II type interfaces, when the FPGA is at the far
end.
Use dynamic OCT in place of both the series and parallel termination at the FPGA end of the line.
Typically use dynamic OCT for DQ and DQS signals in both DDR2 and DDR3 type interfaces. As the
parallel termination is dynamically disabled during writes, the FPGA driver only ever drives into a Class I
transmission line. When combined with dynamic ODT at the memory, a truly dynamic Class I termina‐
tion scheme exists where both reads and writes are always fully Class I terminated in each direction.
Hence, you can use a fully dynamic bidirectional Class I termination scheme instead of a static discretely
terminated Class II topology, which saves power, printed circuit board (PCB) real estate, and component
cost.
Arria V, Cyclone V, Stratix III, Stratix IV, and Stratix V Devices
Arria V, Cyclone V, Stratix III, Stratix IV, and Stratix V devices feature full dynamic OCT termination
capability, Altera advise that you use this feature combined with the SDRAM ODT to simplify PCB layout
and save power.
®
®
Arria II GX Devices
Arria II GX devices do not support dynamic OCT. Altera recommends that you use series OCT with
SDRAM ODT. Use parallel discrete termination at the FPGA end of the line when necessary.
For more information, refer to the DDR2 and DDR3 SDRAM Board Design Guidelines chapter.
Related Information
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines on page 4-1
Document Revision History
Altera Corporation
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
Removed Address and Command Signals section from Dual-DIMM
DDR2 Clock, Address, and Command Termination and Topology
December
2013
2013.12.16
•
•
•
•
June 2012
4.1
Added Feedback icon.
November
2011
4.0
Added Arria V and Cyclone V information.
June 2011
3.0
Added Stratix V information.
December
2010
2.1
Maintenance update.
July 2010
2.0
Updated Arria II GX information.
April 2010
1.0
Initial release.
Reorganized content.
Consolidated General Layout Guidelines.
Removed references to ALTMEMPHY.
Removed references to Stratix II devices.
Dual-DIMM DDR2 and DDR3 SDRAM Board Design Guidelines
Send Feedback
5-15
Altera Corporation
6
LPDDR2 SDRAM Board Design Guidelines
2014.12.15
EMI_DG
Subscribe
Send Feedback
The following topics provide guidelines to improve your system's signal integrity and to successfully
implement an LPDDR2 SDRAM interface in your system.
The LPDDR2 SDRAM Controller with UniPHY intellectual property (IP) enables you to implement
®
®
LPDDR2 SDRAM interfaces with Arria V and Cyclone V devices.
The following topics focus on key factors that affect signal integrity:
•
•
•
•
I/O standards
LPDDR2 configurations
Signal terminations
Printed circuit board (PCB) layout guidelines
I/O Standards
LPDDR2 SDRAM interface signals use HSUL-12 JEDEC I/O signaling standards, which provide low
power and low emissions. The HSUL-12 JEDEC I/O standard is mainly for point-to-point unterminated
bus topology. This standard eliminates the need for external series or parallel termination resistors in
LPDDR2 SDRAM implementation. With this standard, termination power is greatly reduced and
programmable drive strength is used to match the impedance.
To select the most appropriate standard for your interface, refer to the the Device Datasheet for Arria V
Devices chapter in the Arria V Device Handbook, or the Device Datasheet for Cyclone V Devices chapter in
the Cyclone V Device Handbook.
Related Information
• Arria V Device Datasheet
• Cyclone V Device Datasheet
LPDDR2 SDRAM Configurations
The LPDDR2 SDRAM Controller with UniPHY IP supports interfaces for LPDDR2 SDRAM with a single
device, and multiple devices up to a maximum width of 32 bits.
When using multiple devices, a balanced-T topology is recommended for the signal connected from
single point to multiple point, to maintain equal flight time.
You should connect a 200 ohm differential termination resistor between CK/CK# in multiple device
designs as shown in the second figure below, to maintain an effective resistance of 100 ohms.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
6-2
EMI_DG
2014.12.15
LPDDR2 SDRAM Configurations
You should also simulate your multiple device design to obtain the optimum drive strength settings and
ensure correct operation.
The following figure shows the main signal connections between the FPGA and a single LPDDR2
SDRAM component.
Figure 6-1: Configuration with a Single LPDDR2 SDRAM Component
ZQ
LPDDR2 SDRAM Device
DQS/DQS# DQ
DM
CK/CK
CA
CKE
RZQ
CS
4.7K
(1)
FGPA
DQS/DQS#
DQ
DM
CK/CK
COMMAND ADDRESS
CKE
CS
Note to Figure:
1. Use external discrete termination, as shown for CKE, but you may require a pull-down resistor to GND.
Refer to the LPDDR2 SDRAM device data sheet for more information about LPDDR2 SDRAM powerup sequencing.
The following figure shows the differential resistor placement for CK/CK# for multi-point designs.
Altera Corporation
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
LPDDR2 SDRAM Configurations
6-3
Figure 6-2: CK Differential Resistor Placement for Multi Point Design
CK
Trace
Length 3
200 W
CK#
LPDDR2
Device 1
Trace
Length 2
FPGA
CK
Trace Length 1
CK#
Trace
Length 2
200 W
Trace
Length 3
CK
CK#
LPDDR2
Device 2
Note to Figure:
1. Place 200-ohm differential resistors near the memory devices at the end of the last board trace
segments.
The following figure shows the detailed balanced topology recommended for the address and command
signals in the multi-point design.
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
6-4
EMI_DG
2014.12.15
OCT Signal Terminations for Arria V and Cyclone V Devices
Figure 6-3: Address Command Balanced-T Topology
TL2
TL1
FPGA
LPDDR2 Memory
. (1)
TL2
LPDDR2 Memory
Notes to Figure:
1. Split the trace close to the memory devices to minimize signal reflections and impedence
nonuniformity.
2. Keep the TL2 traces as short as possible, so that the memory devices appear as a single load.
OCT Signal Terminations for Arria V and Cyclone V Devices
Arria V and Cyclone V devices offer OCT technology. The following table lists the extent of OCT support
for each device.
Table 6-1: On-Chip Termination Schemes
Termination Scheme
I/O Standard
Arria V and Cyclone V
On-Chip Series Termination
without Calibration
HSUL-12
34/40/48/60/80
On-Chip Series Termination
with Calibration
HSUL-12
34/40/48/60/80
On-chip series (RS) termination supports output buffers, and bidirectional buffers only when they are
driving output signals. LPDDR2 SDRAM interfaces have bidirectional data paths. The UniPHY IP uses
series OCT for memory writes but no parallel OCT for memory reads because Arria V and Cyclone V
support only on-chip series termination in the HSUL-12 I/O standard.
Altera Corporation
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Outputs from the FPGA to the LPDDR2 Component
6-5
For Arria V and Cyclone V devices, the HSUL-12 I/O calibrated terminations are calibrated against 240
ohm 1% resistors connected to the RZQ pins in an I/O bank with the same VCCIO as the LPDDR2
interface.
Calibration occurs at the end of the device configuration.
LPDDR2 SDRAM memory components have a ZQ pin which connects through a resistor RZQ (240 ohm)
to ground. The output signal impedances for LPDDR2 SDRAM are 34.3 ohm, 40 ohm, 48 ohm, 60 ohm,
80 ohm, and 120 ohm. The output signal impedance is set by mode register during initialization. Refer to
the LPDDR2 SDRAM device data sheet for more information.
For information about OCT, refer to the I/O Features in Arria V Devices chapter in the Arria V Device
Handbook, or the I/O Features in Cyclone V Devices chapter in the Cyclone V Device Handbook.
The following section shows HyperLynx simulation eye diagrams to demonstrate signal termination
options. Altera strongly recommends signal terminations to optimize signal integrity and timing margins,
and to minimize unwanted emissions, reflections, and crosstalk.
All of the eye diagrams shown in this section are for a 50 ohm trace with a propagation delay of 509 ps
which is approximately a 2.8-inch trace on a standard FR4 PCB. The signal I/O standard is HSUL-12.
The eye diagrams in this section show the best case achievable and do not take into account PCB vias,
crosstalk, and other degrading effects such as variations in the PCB structure due to manufacturing
tolerances.
Note: Simulate your design to ensure correct operation.
Related Information
• I/O Features in Arria V Devices
• I/O Features in Cyclone V Devices
Outputs from the FPGA to the LPDDR2 Component
The following output signals are from the FPGA to the LPDDR2 SDRAM component:
•
•
•
•
•
•
write data (DQ)
data mask (DM)
data strobe (DQS/DQS#)
command address
command (CS, and CKE)
clocks (CK/CK#)
No far-end memory termination is needed when driving output signals from FPGA to LPDDR2 SDRAM.
Cyclone V and Arria V devices offer the OCT series termination for impedance matching.
Input to the FPGA from the LPDDR2 SDRAM Component
The LPDDR2 SDRAM component drives the following input signals into the FPGA:
• read data
• DQS
LPDDR2 SDRAM provides the flexibility to adjust drive strength to match the impedance of the memory
bus, eliminating the need for termination voltage (VTT) and series termination resistors.
The programmable drive strength options are 34.3 ohms, 40 ohms (default), 48 ohms, 60 ohms, 80 ohms,
and 120 ohms. You must perform board simulation to determine the best option for your board layout.
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
6-6
EMI_DG
2014.12.15
Termination Schemes
Note: By default, Altera LPDDR2 SDRAM UniPHY IP uses 40 ohm drive strength.
Termination Schemes
The following table lists the recommended termination schemes for major LPDDR2 SDRAM memory
interface signals.
These signals include data (DQ), data strobe (DQS), data mask (DM), clocks (CK, and CK#), command address
(CA), and control (CS#, and CKE).
Table 6-2: Termination Recommendations for Arria V and Cyclone V Devices
Signal Type
HSUL-12 Standard
(1) (2)
Memory End Termination
DQS/DQS#
R34 CAL
ZQ40
Data (Write)
R34 CAL
–
Data (Read)
–
ZQ40
Data Mask (DM)
R34 CAL
–
CK/CK# Clocks
R34 CAL
×1 = – (4)
×2 = 200 -ohmDifferential
Command Address (CA),
R34 CAL
–
Chip Select (CS#)
R34 CAL
–
R34 CAL
4.7 K-ohmparallel to GND
Clock Enable (CKE)
(3)
(5)
Notes to Table:
1. R is effective series output impedance.
2. CAL is OCT with calibration.
3. Altera recommends that you use a 4.7 K-ohmparallel to GND if your design meets the power
sequencing requirements of the LPDDR2 SDRAM component. Refer to the LPDDR2 SDRAM data
sheet for further information.
4. ×1 is a single-device load.
5. ×2 is a double-device load. An alternative option is to use a 100 -ohm differential termination at the
trace split.
Note: The recommended termination schemes in the above table are based on 2.8 inch maximum trace
length analysis. You may add the external termination resistor or adjust the drive strength to
improve signal integrity for longer trace lengths. Recommendations for external termination are as
follows:
• Class I termination (50 ohms parallel to VTT at the memory end) — Unidirectional signal
(Command Address, control, and CK/CK# signals)
• Class II termination (50 ohms parallel to VTT at both ends) — Bidirectional signal ( DQ and
DQS/DQS# signal)
Altera Corporation
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
General Layout Guidelines
6-7
Altera recommends that you simulate your design to ensure good signal integrity.
General Layout Guidelines
The following table lists general board design layout guidelines. These guidelines are Altera
recommendations, and should not be considered as hard requirements. You should perform signal
integrity simulation on all the traces to verify the signal integrity of the interface. You should extract the
slew rate and propagation delay information, enter it into the IP and compile the design to ensure that
timing requirements are met.
Table 6-3: General Layout Guidelines
Parameter
Guidelines
Impedance
• All signal planes must be 50-60-ohm, single-ended, ±10%
• All signal planes must be 100-ohm, differential ±10%
• All unused via pads must be removed, because they cause unwanted
capacitance
Decoupling Parameter
•
•
•
•
Power
• Route GND and VCC as planes
• Route VCCIO for memories in a single split plane with at least a 20-mil
(0.020 inches, or 0.508 mm) gap of separation
• Route VTT as islands or 250-mil (6.35-mm) power traces
• Route oscillators and PLL power as islands or 100-mil (2.54-mm) power
traces
General Routing
All specified delay matching requirements include PCB trace delays,
different layer propagation velocity variance, and crosstalk. To minimize
PCB layer propogation variance, Altera recommend that signals from the
same net group always be routed on the same layer.
Use 0.1 uF in 0402 size to minimize inductance
Make VTT voltage decoupling close to pull-up resistors
Connect decoupling caps between VTT and ground
Use a 0.1 uF cap for every other VTT pin and 0.01 uF cap for every VDD
and VDDQ pin
• Verify the capacitive decoupling using the Altera Power Distribution
Network Design Tool
•
•
•
•
•
•
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
Use 45° angles (not 90° corners)
Avoid T-Junctions for critical nets or clocks
Avoid T-junctions greater than 250 mils (6.35 mm)
Disallow signals across split planes
Restrict routing other signals close to system reset signals
Avoid routing memory signals closer than 0.025 inch (0.635 mm) to PCI
or system clocks
Altera Corporation
6-8
EMI_DG
2014.12.15
LPDDR2 Layout Guidelines
Related Information
Power Distribution Network Design Tool
LPDDR2 Layout Guidelines
The following table lists the LPDDR2 SDRAM general routing layout guidelines.
Note: The following layout guidelines include several +/- length-based rules. These length-based
guidelines are for first order timing approximations if you cannot simulate the actual delay
characteristics of your PCB implementation. They do not include any margin for crosstalk.Altera
recommends that you get accurate time base skew numbers when you simulate your specific
implementation.
Table 6-4: LPDD2 Layout Guidelines
Parameter
Guidelines
General Routing
• If you must route signals of the same net group on different layers with
the same impedance characteristic, simulate your worst case PCB trace
tolerances to ascertain actual propagation delay differences. Typical layer
to layer trace delay variations are of 15 ps/inch order.
• Avoid T-junctions greater than 75 ps (approximately 25 mils, 6.35 mm).
• Match all signals within a given DQ group with a maximum skew of ±10
ps and route on the same layer.
Clock Routing
• Route clocks on inner layers with outer-layer run lengths held to under
150 ps.
• These signals should maintain a 10-mil (0.254 mm) spacing from other
nets.
• Clocks should maintain a length-matching between clock pairs of ±5 ps.
• Differential clocks should maintain a length-matching between P and N
signals of ±2 ps.
• Space between different clock pairs should be at least three times the
space between the traces of a differential pair.
Address and Command
Routing
• To minimize crosstalk, route address, and command signals on a
different layer than the data and data mask signals.
• Do not route the differential clock (CK/CK#) and clock enable (CKE)
signals close to the address signals.
Altera Corporation
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
LPDDR2 SDRAM Layout Approach
Parameter
External Memory Routing
Rules
6-9
Guidelines
• Apply the following parallelism rules for the LPDDR2 SDRAM data
groups:
• 4 mils for parallel runs < 0.1 inch (approximately 1× spacing relative
to plane distance).
• 5 mils for parallel runs < 0.5 inch (approximately 1× spacing relative
to plane distance).
• 10 mils for parallel runs between 0.5 and 1.0 inches (approximately 2×
spacing relative to plane distance).
• 15 mils for parallel runs between 1.0 and 2.8 inch (approximately 3×
spacing relative to plane distance).
• Apply the following parallelism rules for the address/command group
and clocks group:
• 4 mils for parallel runs < 0.1 inch (approximately 1× spacing relative
to plane distance)
• 10 mils for parallel runs < 0.5 inch (approximately 2× spacing relative
to plane distance)
• 15 mils for parallel runs between 0.5 and 1.0 inches (approximately 3×
spacing relative to plane distance)
• 20 mils for parallel runs between 1.0 and 2.8 inches (approximately 4×
spacing relative to plane distance)
Maximum Trace Length
• Keep traces as short as possible. The maximum trace length of all signals
from the FPGA to the LPDDR2 SDRAM components should be less than
509 ps. Altera recommends that you simulate your design to ensure good
signal integrity.
Related Information
Altera Power Distribution Network (PDN) Design tool
LPDDR2 SDRAM Layout Approach
Altera recommends the following layout approach, based on the layout guidelines in the above table:
1. Route the differential clocks (CK/CK#) and data strobe (DQS/DQS#) with a length-matching between P
and N signals of ±2 ps.
2. Route the DQS /DQS# associated with a DQ group on the same PCB layer. Match these DQS pairs to
within ±5 ps.
3. Set the DQS/DQS# as the target trace propagation delay for the associated data and data mask signals.
4. Route the data and data mask signals for the DQ group ideally on the same layer as the associated DQS/
DQS# to within ±10 ps skew of the target DQS/DQS#.
5. Route the CK/CK# clocks and set as the target trace propagation delays for the DQ group. Match the
CK/CK# clock to within ±50 ps of all the DQS/DQS#.
6. Route the address/control signal group (address, CS, CKE) ideally on the same layer as the CK/CK#
clocks, to within ±20 ps skew of the CK/CK# traces.
This layout approach provides a good starting point for a design requirement of the highest clock
frequency supported for the LPDDR2 SDRAM interface.
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
Altera Corporation
6-10
EMI_DG
2014.12.15
Document Revision History
Note: Altera recommends that you create your project in the Quartus II software with a fully
implemented LPDDR2 SDRAM Controller with UniPHY interface, and observe the interface
timing margins to determine the actual margins for your design.
®
Although the recommendations in this chapter are based on simulations, you can apply the same general
principles when determining the best termination scheme, drive strength setting, and loading style to any
board designs. Even armed with this knowledge, it is still critical that you perform simulations, either
using IBIS or HSPICE models, to determine the quality of signal integrity on your designs.
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
• Removed millimeter approximations from lengths expressed in
picoseconds in LPDDR2 Layout Guidelines table.
• Minor formatting fixes in LPDDR2 Layout Guidelines table.
December
2013
2013.12.16
Consolidated General Layout Guidelines.
November
2012
1.0
Altera Corporation
Initial release.
LPDDR2 SDRAM Board Design Guidelines
Send Feedback
7
RLDRAM II and RLDRAM 3 Board Design
Guidelines
2014.12.15
EMI_DG
Subscribe
Send Feedback
The following topics provide layout guidelines for you to improve your system's signal integrity and to
successfully implement an RLDRAM II or RLDRAM 3 interface.
The RLDRAM II Controller with UniPHY intellectual property (IP) enables you to implement common
®
®
I/O (CIO) RLDRAM II interfaces with Arria V, Stratix III, Stratix IV, and Stratix V devices. The
RLDRAM 3 UniPHY IP enables you to implement CIO RLDRAM 3 interfaces with Stratix V and Arria V
GZ devices. You can implement separate I/O (SIO) RLDRAM II or RLDRAM 3 interfaces with the
ALTDQ_DQS or ALTDQ_DQS2 IP cores.
The following topics focus on the following key factors that affect signal integrity:
•
•
•
•
I/O standards
RLDRAM II and RLDRAM 3 configurations
Signal terminations
Printed circuit board (PCB) layout guidelines
I/O Standards
RLDRAM II interface signals use one of the following JEDEC I/O signalling standards:
• HSTL-15—provides the advantages of lower power and lower emissions.
• HSTL-18—provides increased noise immunity with slightly greater output voltage swings.
RLDRAM 3 interface signals use the following JEDEC I/O signalling standards: HSTL 1.2 V and SSTL-12.
To select the most appropriate standard for your interface, refer to the following:
• Device Data Sheet for Arria II Devices chapter in the Arria II Device Handbook
• Device Data Sheet for Arria V Devices chapter in the Arria V Device Handbook
• Stratix III Device Data Sheet: DC and Switching Characteristics chapter in the Stratix III Device
Handbook
• DC and Switching Characteristics for Stratix IV Devices chapter in the Stratix IV Device Handbook
• DC and Switching Characteristics for Stratix V Devices chapter in the Stratix V Device Handbook
The RLDRAM II Controller with UniPHY IP defaults to HSTL 1.8 V Class I outputs and HSTL 1.8 V
inputs. The RLDRAM 3 UniPHY IP defaults to HSTL 1.2 V Class I outputs and HSTL 1.2 V inputs.
Note: The default for RLDRAM 3 changes from Class I to Class II, supporting up to 933 MHz, with the
release of the Quartus II software version 12.1 SP1.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
7-2
EMI_DG
2014.12.15
RLDRAM II Configurations
Related Information
•
•
•
•
•
Device Data Sheet for Arria II Devices
Device Data Sheet for Arria V Devices
Stratix III Device Data Sheet: DC and Switching Characteristics
DC and Switching Characteristics for Stratix IV Devices
DC and Switching Characteristics for Stratix V Devices
RLDRAM II Configurations
The RLDRAM II Controller with UniPHY IP supports CIO RLDRAM II interfaces with one or two
devices. With two devices, the interface supports a width expansion configuration up to 72-bits. The
termination and layout principles for SIO RLDRAM II interfaces are similar to CIO RLDRAM II, except
that SIO RLDRAM II interfaces have unidirectional data buses.
The following figure shows the main signal connections between the FPGA and a single CIO RLDRAM II
component.
Figure 7-1: Configuration with a Single CIO RLDRAM II Component
ZQ
RLDRAM II Device
DK/DK QK/QK
(1)
DQ
(3)
DM
CK/K
A/BA
(3)
(1)
(5)
WE
(5)
REF
RQ
CS
VTT
(4)
VTTor V DD
(6)
FGPA
DK/DK
QK/QK
DQ
(2)
(2)
DM
CK/CK
ADDRESS/BANK ADDRESS
WE
REF
CS
Altera Corporation
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
RLDRAM 3 Configurations
7-3
Notes to Figure:
1.
2.
3.
4.
5.
6.
Use external differential termination on DK/DK# and CK/CK#.
Use FPGA parallel on-chip termination (OCT) for terminating QK/QK# and DQ on reads.
Use RLDRAM II component on-die termination (ODT) for terminating DQ and DM on writes.
Use external discrete termination with fly-by placement to avoid stubs.
Use external discrete termination for this signal, as shown for REF.
Use external discrete termination, as shown for REF, but you may require a pull-up resistor to VDD as
an alternative option. Refer to the RLDRAM II device data sheet for more information about
RLDRAM II power-up sequencing.
The following figure shows the main signal connections between the FPGA and two CIO RLDRAM II
components in a width expansion configuration.
Figure 7-2: Configuration with Two CIO RLDRAM II Components in a Width Expansion Configuration
ZQ
RLDRAM II Device 1
DK/DK QK/QK D
DM CK/CK A/BA/REF/WE CS
(1)
(3)
(4)
(3)
VTT
(5)
RQ
RLDRAM II Device 2
ZQ
RQ
DK/DK QK/QK D
DM CK/CK A/BA/REF/WE CS
(4)
(3)
(1)
(3)
VTTor VDD
(6)
FPGA
Device 1 DK/DK
Device 2 DK/DK
Device 1 QK/QK
Device 2 QK/QK
Device 1 DQ
Device 2 DQ
(2)
(2)
(2)
(2)
Device 1 DM
Device 2 DM
CK/CK
A/BA/REF/WE
CS
Notes to Figure:
1.
2.
3.
4.
5.
6.
Use external differential termination on DK/DK#.
Use FPGA parallel on-chip termination (OCT) for terminating QK/QK# and DQ on reads.
Use RLDRAM II component on-die termination (ODT) for terminating DQ and DM on writes.
Use external dual 200 Ω differential termination.
Use external discrete termination at the trace split of the balanced T or Y topology.
Use external discrete termination at the trace split of the balanced T or Y topology, but you may
require a pull-up resistor to VDD as an alternative option. Refer to the RLDRAM II device data sheet
for more information about RLDRAM II power-up sequencing.
RLDRAM 3 Configurations
The RLDRAM 3 UniPHY IP supports interfaces for CIO RLDRAM 3 with one or two devices. With two
devices, the interface supports a width expansion configuration up to 72-bits. The termination and layout
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
Altera Corporation
7-4
EMI_DG
2014.12.15
RLDRAM 3 Configurations
principles for SIO RLDRAM 3 interfaces are similar to CIO RLDRAM 3, except that SIO RLDRAM 3
interfaces have unidirectional data buses.
The following figure shows the main signal connections between the FPGA and a single CIO RLDRAM 3
component.
Figure 7-3: Configuration with a Single CIO RLDRAM 3 Component
ZQ
RLDRAM 3 Device
DK/DK QK/QK
(3)
FGPA
DK/DK
QK/QK
(2)
DQ
(2)
DQ
(3)
DM CK/CK A/BA WE
(1)
(5)
(3)
(5)
CS
REF
VTT
(4)
RQ
RESET
VTTor V DD VTTor V DD
(6)
(6)
DM
CK/CK
ADDRESS/BANK ADDRESS
WE
REF
CS
RESET
Notes to Figure:
1.
2.
3.
4.
5.
6.
Use external differential termination on CK/CK#.
Use FPGA parallel on-chip termination (OCT) for terminating QK/QK# and DQ on reads.
Use RLDRAM 3 component on-die termination (ODT) for terminating DQ, DM, and DK, DK# on writes.
Use external discrete termination with fly-by placement to avoid stubs.
Use external discrete termination for this signal, as shown for REF.
Use external discrete termination, as shown for REF, but you may require a pull-up resistor to VDD as
an alternative option. Refer to the RLDRAM 3 device data sheet for more information about RLDRAM
3 power-up sequencing.
The following figure shows the main signal connections between the FPGA and two CIO RLDRAM 3
components in a width expansion configuration.
Altera Corporation
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Signal Terminations
7-5
Figure 7-4: Configuration with Two CIO RLDRAM 3 Components in a Width Expansion Configuration
ZQ
RLDRAM 3 Device 1
DK/DK QK/QK
(3)
D
(2)
DM
CK/CK A/BA/REF/WE CS
(2)
(3)
V TT
(4)
RESET
RQ
ZQ
RLDRAM 3 Device 2
DK/DK QK/QK
(3)
D
(2)
DM
CK/CK A/BA/REF/WE
(2)
(3)
CS
RQ
RESET
V TTor V DD V TTor V DD
(5)
(5)
FPGA
Device 1 DK/DK
Device 2 DK/DK
Device 1 QK/QK
Device 2 QK/QK
(1)
(1)
Device 1 DQ
(1)
Device 2 DQ
(1)
Device 1 DM
Device 2 DM
CK/CK
A/BA/REF/WE
CS
RESET
Notes to Figure:
1.
2.
3.
4.
5.
Use FPGA parallel OCT for terminating QK/QK# and DQ on reads.
Use RLDRAM 3 component ODT for terminating DQ, DM, and DK on writes.
Use external dual 200 Ω differential termination.
Use external discrete termination at the trace split of the balanced T or Y topology.
Use external discrete termination at the trace split of the balanced T or Y topology, but you may
require a pull-up resistor to VDD as an alternative option. Refer to the RLDRAM 3 device data sheet
for more information about RLDRAM 3 power-up sequencing.
Signal Terminations
The following table lists the on-chip series termination (RS OCT) and on-chip parallel termination (RT
OCT) schemes for supported devices.
Note: For RLDRAM 3, the default output termination resistance (RS) changes from 50 ohm to 25 ohm
with the release of the Quartus II software version 12.1 SP1.
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
Altera Corporation
7-6
EMI_DG
2014.12.15
Signal Terminations
Table 7-1: On-Chip Termination Schemes
FPGA Device
Termination Scheme
RS OCT without Calibration
Class I Signal
Standards
Arria II GZ, Stratix III,
and Stratix IV
Arria V and Stratix V
Row/Column I/O
Row/Column I/O
RLDRAM II - HSTL- 50
15 and HSTL-18
50
RLDRAM 3 - HSTL
1.2 V
RS OCT with Calibration
RLDRAM II - HSTL- 50
15 and HSTL-18
50
(1)
50
(1)
RLDRAM 3 - HSTL
1.2 V
RT OCT with Calibration
RLDRAM II - HSTL- 50
15 and HSTL-18
RLDRAM 3 - HSTL
1.2 V
Note to Table:
1. Although 50-ohms is the recommended option, Stratix V devices offer a wider range of calibrated
termination impedances.
RLDRAM II and RLDRAM 3 CIO interfaces have bidirectional data paths. The UniPHY IP uses dynamic
OCT on the datapath, which switches between series OCT for memory writes and parallel OCT for
memory reads. The termination schemes also follow these characteristics:
• Although 50 -ohm. is the recommended option, Stratix V devices offer a wider range of calibrated
termination impedances.
• RS OCT supports output buffers.
• RT OCT supports input buffers.
• RS OCT supports bidirectional buffers only when they are driving output signals.
• RT OCT bidirectional buffers only when they are input signals.
For Arria II GZ, Stratix III, and Stratix IV devices, the HSTL Class I I/O calibrated terminations are
calibrated against 50-ohm 1% resistors connected to the R UP and R DN pins in an I/O bank with the same
VCCIO as the RLDRAM II interface. For Arria V and Stratix V devices, the HSTL Class I I/O calibrated
terminations are calibrated against 100-ohm 1% resistors connected to the R ZQ pins in an I/O bank with
the same VCCIO as the RLDRAM II and RLDRAM 3 interfaces.
The calibration occurs at the end of the device configuration.
RLDRAM II and RLDRAM 3 memory components have a ZQ pin that connects through a resistor RQ to
ground. Typically the RLDRAM II and RLDRAM 3 output signal impedance is a fraction of R Q. Refer to
the RLDRAM II and RLDRAM 3 device data sheets for more information.
Altera Corporation
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Input to the FPGA from the RLDRAM Components
7-7
For information about OCT, refer to the following:
•
•
•
•
•
I/O Features in Arria II Devices chapter in the Arria II Device Handbook
I/O Features in Arria V Devices chapter in the Arria V Device Handbook
Stratix III Device I/O Features chapter in the Stratix III Device Handbook
I/O Features in Stratix IV Devices chapter in the Stratix IV Device Handbook
I/O Features in Stratix V Devices chapter in the Stratix V Device Handbook
Altera strongly recommends signal terminations to optimize signal integrity and timing margins, and to
minimize unwanted emissions, reflections, and crosstalk.
Note: Simulate your design to check your termination scheme.
Related Information
•
•
•
•
•
I/O Features in Arria II Devices
I/O Features in Arria V Devices
Stratix III Device I/O Features
I/O Features in Stratix IV Devices
I/O Features in Stratix V Devices
Input to the FPGA from the RLDRAM Components
The RLDRAM II or RLDRAM 3 component drives the following input signals into the FPGA:
• Read data (DQ on the bidirectional data signals for CIO RLDRAM II and CIO RLDRAM 3).
• Read clocks (QK/QK#).
Altera recommends that you use the FPGA parallel OCT to terminate the data on reads and read clocks.
Outputs from the FPGA to the RLDRAM II and RLDRAM 3 Components
The following output signals are from the FPGA to the RLDRAM II and RLDRAM 3 components:
•
•
•
•
•
Write data (DQ on the bidirectional data signals for CIO RLDRAM II and RLDRAM 3)
Data mask (DM)
Address, bank address
Command (CS, WE, and REF)
Clocks (CK/CK# and DK/DK#)
For point-to-point single-ended signals requiring external termination, Altera recommends that you place
a fly-by termination by terminating at the end of the transmission line after the receiver to avoid untermi‐
nated stubs. The guideline is to place the fly-by termination within 100 ps propagation delay of the
receiver.
Although not recommended, you can place the termination before the receiver, which leaves an untermi‐
nated stub. The stub delay is critical because the stub between the termination and the receiver is
effectively unterminated, causing additional ringing and reflections. Stub delays should be less than 50 ps.
Altera recommends that the differential clocks, CK, CK# and DK, DK# (RLDRAM II) and CK, CK# (RLDRAM
3), use a differential termination at the end of the trace at the external memory component. Alternatively,
you can terminate each clock output with a parallel termination to VTT.
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
Altera Corporation
7-8
EMI_DG
2014.12.15
RLDRAM II Termination Schemes
RLDRAM II Termination Schemes
The following table lists the recommended termination schemes for major CIO RLDRAM II memory
interface signals. These signals include data (DQ), data mask (DM), clocks (CK, CK#, DK, DK#, QK, and QK#),
address, bank address, and command (WE#, REF#, and CS#).
Table 7-2: RLDRAM II Termination Recommendations for Arria II GZ, Arria V, Stratix III, Stratix IV, and
Stratix V Devices
Signal Type
HSTL 15/18 Standard
(1) (2) (3) (4)
Memory End Termination
DK/DK# Clocks
Class I R50 NO CAL
100 -ohmDifferential
QK/QK# Clocks
Class I P50 CAL
ZQ50
Data (Write)
Class I R50 CAL
ODT
Data (Read)
Class I P50 CAL
ZQ50
Data Mask
Class I R50 CAL
ODT
CK/CK# Clocks
Class I R50 NO CAL
×1 = 100-ohm Differential
(9)
×2 = 200-ohm Differential
(10)
Address/Bank Address
(5) (6)
Class I Max Current
50 -ohmParallel to VTT
Command (WE#, REF#)
(5) (6)
Class I Max Current
50 -ohmParallel to VTT
Class I Max Current
50 -ohmParallel to VTT
Command (CS#)
(5) (6) (7)
or Pull-up to VDD
QVLD
Altera Corporation
(8)
Class I P50 CAL
ZQ50
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
RLDRAM 3 Termination Schemes
Signal Type
HSTL 15/18 Standard
(1) (2) (3) (4)
7-9
Memory End Termination
Notes to Table:
1.
2.
3.
4.
5.
R is effective series output impedance.
P is effective parallel input impedance.
CAL is OCT with calibration.
NO CAL is OCT without calibration.
For width expansion configuration, the address and control signals are routed to 2 devices.
Recommended termination is 50 -ohm parallel to VTT at the trace split of a balanced T or Y routing
topology. Use a clamshell placement of the two RLDRAM II components to achieve minimal stub
delays and optimum signal integrity. Clamshell placement is when two devices overlay each other by
being placed on opposite sides of the PCB.
6. The UniPHY default IP setting for this output is Max Current. A Class I 50 -ohm output with calibra‐
tion output is typically optimal in single load topologies.
7. Altera recommends that you use a 50 -ohmparallel termination to VTT if your design meets the power
sequencing requirements of the RLDRAM II component. Refer to the RLDRAM II data sheet for
further information.
8. QVLD is not used in the RLDRAM II Controller with UniPHY implementations.
9. ×1 is a single-device load.
10.×2 is a double-device load. An alternative option is to use a 100 -ohm differential termination at the
trace split.
Note: Altera recommends that you simulate your specific design for your system to ensure good signal
integrity.
RLDRAM 3 Termination Schemes
The following table lists the recommended termination schemes for major CIO RLDRAM 3 memory
interface signals. These signals include data (DQ), data mask (DM), clocks (CK, CK#, DK, DK#, QK, and QK#),
address, bank address, and command (WE#, REF#, and CS#).
Table 7-3: RLDRAM 3 Termination Recommendations for Arria V GZ and Stratix V Devices
Signal Type
Memory End Termination
Option in the Chip (ODT)
Recommended On-Board Terminations
Data Read (DQ, QK)
40, 60 (series)
None
Data Write (DQ, DM, DK)
40, 60, 120 (parallel)
None
Address/Bank Address/ Command
(WE#, REF#, CS#) (1) (2) (3)
None
50-ohm Parallel to Vtt
CK/CK#
None
100 ohm Differential
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
Altera Corporation
7-10
EMI_DG
2014.12.15
PCB Layout Guidelines
Signal Type
Memory End Termination
Option in the Chip (ODT)
Recommended On-Board Terminations
Notes to Table:
1. For width expansion configuration, the address and control signals are routed to 2 devices.
Recommended termination is 50-ohm parallel to VTT at the trace split of a balanced T or Y routing
topology. Use a clamshell placement of the two RLDRAM 3 components to achieve minimal stub
delays and optimum signal integrity. Clamshell placement is when two devices overlay each other by
being placed on opposite sides of the PCB.
2. The UniPHY default IP setting for this output is Max Current. A Class I 50-ohm output with calibra‐
tion output is typically optimal in single load topologies.
3. Altera recommends that you use a 50-ohm parallel termination to VTT if your design meets the power
sequencing requirements of the RLDRAM 3 component. Refer to the RLDRAM 3 data sheet for
further information.
4. QVLD is not used in the RLDRAM 3 Controller with UniPHY implementations.
5. For information on the I/O standards and on-chip termination (OCT) resistance values supported for
RLDRAM 3, refer to the I/O Features chapter of the appropriate device handbook.
Altera recommends that you simulate your specific design for your system to ensure good signal integrity.
PCB Layout Guidelines
Altera recommends that you create your project in the Quartus II software with a fully implemented
RLDRAM II Controller with UniPHY interface, or RLDRAM 3 with UniPHY IP, and observe the
interface timing margins to determine the actual margins for your design.
®
Although the recommendations in this chapter are based on simulations, you can apply the same general
principles when determining the best termination scheme, drive strength setting, and loading style to any
board designs. Altera recommends that you perform simulations, either using IBIS or HSPICE models, to
determine the quality of signal integrity on your designs, and that you get accurate time base skew
numbers when you simulate your specific implementation.
Note: 1. The following layout guidelines include several +/- length-based rules. These length-based
guidelines are for first order timing approximations if you cannot simulate the actual delay
characteristics of your PCB implementation. They do not include any margin for crosstalk.
2. To reliably close timing to and from the periphery of the device, signals to and from the
periphery should be registered before any further logic is connected.
Related Information
Altera Power Distribution Network (PDN) Design Tool
General Layout Guidelines
The following table lists general board design layout guidelines. These guidelines are Altera
recommendations, and should not be considered as hard requirements. You should perform signal
integrity simulation on all the traces to verify the signal integrity of the interface. You should extract the
slew rate and propagation delay information, enter it into the IP and compile the design to ensure that
timing requirements are met.
Altera Corporation
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
RLDRAM II and RLDRAM 3 Layout Approach
7-11
Table 7-4: General Layout Guidelines
Parameter
Guidelines
Impedance
• All signal planes must be 50-60-ohm, single-ended, ±10%
• All signal planes must be 100-ohm, differential ±10%
• All unused via pads must be removed, because they cause unwanted
capacitance
Decoupling Parameter
•
•
•
•
Power
• Route GND and VCC as planes
• Route VCCIO for memories in a single split plane with at least a 20-mil
(0.020 inches, or 0.508 mm) gap of separation
• Route VTT as islands or 250-mil (6.35-mm) power traces
• Route oscillators and PLL power as islands or 100-mil (2.54-mm) power
traces
General Routing
All specified delay matching requirements include PCB trace delays,
different layer propagation velocity variance, and crosstalk. To minimize
PCB layer propogation variance, Altera recommend that signals from the
same net group always be routed on the same layer.
Use 0.1 uF in 0402 size to minimize inductance
Make VTT voltage decoupling close to pull-up resistors
Connect decoupling caps between VTT and ground
Use a 0.1 uF cap for every other VTT pin and 0.01 uF cap for every VDD
and VDDQ pin
• Verify the capacitive decoupling using the Altera Power Distribution
Network Design Tool
•
•
•
•
•
•
Use 45° angles (not 90° corners)
Avoid T-Junctions for critical nets or clocks
Avoid T-junctions greater than 250 mils (6.35 mm)
Disallow signals across split planes
Restrict routing other signals close to system reset signals
Avoid routing memory signals closer than 0.025 inch (0.635 mm) to PCI
or system clocks
Related Information
Power Distribution Network Design Tool
RLDRAM II and RLDRAM 3 Layout Approach
Using the layout guidelines in the preceding table, Altera recommends the following layout approach:
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
Altera Corporation
7-12
EMI_DG
2014.12.15
RLDRAM II and RLDRAM 3 Layout Guidelines
1. If the RLDRAM II interface has multiple DQ groups (×18 or ×36 RLDRAM II/RLDRAM 3 component
or width expansion configuration), match all the DK/DK# and QK ,QK # clocks as tightly as possible to
optimize the timing margins in your design.
2. Route the DK/DK# write clock and QK/QK# read clock associated with a DQ group on the same PCB
layer. Match these clock pairs to within ±5 ps.
3. Set the DK/DK# or QK/QK# clock as the target trace propagation delay for the associated data and data
mask signals.
4. Route the data and data mask signals for the DQ group ideally on the same layer as the associated
QK/QK# and DK/DK# clocks to within ±10 ps skew of the target clock.
5. Route the CK/CK# clocks and set as the target trace propagation delays for the address/command signal
group. Match the CK/CK# clock to within ±50 ps of all the DK/DK# clocks.
6. Route the address/control signal group (address, bank address, CS, WE, and REF) ideally on the same
layer as the CK/CK# clocks, to within ±20 ps skew of the CK/CK# traces.
Note: It is important to match the delays of CK vs. DK, and CK vs. Addr-Cmd as much as possible.
This layout approach provides a good starting point for a design requirement of the highest clock
frequency supported for the RLDRAM II and RLDRAM 3 interfaces.
For details on pin planning, refer to the Planning Pin and FPGA Resources chapter in the External
Memory Interface Handbook.
Related Information
Planning Pin and FPGA Resources on page 3-1
RLDRAM II and RLDRAM 3 Layout Guidelines
The following table lists the RLDRAM II and RLDRAM 3 general routing layout guidelines.
Table 7-5: RLDRAM II and RLDRAM 3 Layout Guidelines
Parameter
Guidelines
General Routing
• If you must route signals of the same net group on different layers with
the same impedance characteristic, simulate your worst case PCB trace
tolerances to ascertain actual propagation delay differences. Typical layer
to layer trace delay variations are of 15 ps/inch order.
• Avoid T-junctions greater than 150 ps.
• Match all signals within a given DQ group with a maximum skew of ±10
ps and route on the same layer.
Clock Routing
• Route clocks on inner layers with outer-layer run lengths held to under
150 ps.
• These signals should maintain a 10-mil (0.254 mm) spacing from other
nets.
• Clocks should maintain a length-matching between clock pairs of ±5 ps.
• Differential clocks should maintain a length-matching between P and N
signals of ±2 ps.
• Space between different clock pairs should be at least three times the
space between the traces of a differential pair.
Altera Corporation
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Layout Approach
Parameter
7-13
Guidelines
Address and Command
Routing
• To minimize crosstalk, route address, bank address, and command
signals on a different layer than the data and data mask signals.
• Do not route the differential clock signals close to the address signals.
• Keep the distance from the pin on the RLDRAM II or RLDRAM 3
component to the stub termination resistor (VTT) to less than 50 ps for
the address/command signal group.
• Keep the distance from the pin on the RLDRAM II or RLDRAM 3
component to the fly-by termination resistor (VTT) to less than 100 ps for
the address/command signal group.
External Memory Routing
Rules
• Apply the following parallelism rules for the RLDRAM II or RLDRAM 3
data/address/command groups:
• 4 mils for parallel runs < 0.1 inch (approximately 1× spacing relative
to plane distance).
• 5 mils for parallel runs < 0.5 inch (approximately 1× spacing relative
to plane distance).
• 10 mils for parallel runs between 0.5 and 1.0 inches (approximately 2×
spacing relative to plane distance).
• 15 mils for parallel runs between 1.0 and 3.3 inch (approximately 3×
spacing relative to plane distance).
Maximum Trace Length
• Keep the maximum trace length of all signals from the FPGA to the
RLDRAM II or RLDRAM 3 components to 600 ps.
Layout Approach
For all practical purposes, you can regard the TimeQuest timing analyzer's report on your memory
interface as definitive for a given set of memory and board timing parameters.
You will find timing under Report DDR in TimeQuest and on the Timing Analysis tab in the parameter
editor.
The following flowchart illustrates the recommended process to follow during the design phase, to
determine timing margin and make iterative improvements to your design.
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
Altera Corporation
7-14
EMI_DG
2014.12.15
Layout Approach
Primary Layout
Calculate Setup
and Hold Derating
Adjust Layout to Improve:
• Trace Length Mis-Match
• Signal Reflections (ISI)
• Cross Talk
• Memory Speed Grade
Calculate Channel
Signal Integrity
Calculate Board
Skews
Find Memory
Timing Parameters
Generate an IP Core that Accurately Represents Your
Memory Subsystem, Including pin-out and Accurate
Parameters in the Parameter Editor’s Board Settings Tab
Run Quartus II Compilation with the Generated IP Core
yes
Any Non-Core Timing
Violations in the Report
DDR Panel?
no
Done
Setup and Hold Derating
For information on calculating derating parameters, refer to Implementing and Parameterizing Memory
IP, in the External Memory Interface Handbook.
Channel Signal Integrity
For information on determining channel signal integrity for Stratix V and earlier products, refer to the
wiki page: http://www.alterawiki.com/wiki/Measuring_Channel_Signal_Integrity .
For information on Arria 10 board timing and layout approach, refer to:
Board Skew
For information on calculating board skew parameters, refer to Implementing and Parameterizing
Memory IP, in the External Memory Interface Handbook .
The Board Skew Parameter Tool is an interactive tool that can help you calculate board skew parameters if
you know the absolute delay values for all the memory related traces.
Memory Timing Parameters
For information on the memory timing parameters to be entered into the parameter editor, refer to the
datasheet for your external memory device.
Altera Corporation
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Arria V and Stratix V Board Setting Parameters
7-15
Related Information
Board Skew Parameter Tool
Arria V and Stratix V Board Setting Parameters
The following guidelines apply to the Board Setting parameters for Arria V and Stratix V devices.
Setup and Hold Derating
For information on calculating derating parameters, refer to Implementing and Parameterizing Memory
IP, in the External Memory Interface Handbook.
Channel Signal Integrity
For information on determining channel signal integrity for Stratix V and earlier products, refer to the
wiki page: http://www.alterawiki.com/wiki/Measuring_Channel_Signal_Integrity .
For information on Arria 10 board timing and layout approach, refer to:
Board Skew
For information on calculating board skew parameters, refer to Implementing and Parameterizing
Memory IP, in the External Memory Interface Handbook.
The Board Skew Parameter Tool is an interactive tool that can help you calculate board skew parameters if
you know the absolute delay values for all the memory related traces.
Memory Timing Parameters
For information on the memory timing parameters to be entered into the parameter editor, refer to the
datasheet for your external memory device.
Arria 10 Board Setting Parameters
For Board Setting and layout approach information for Arria 10 devices, refer to the Altera wiki at the
address below.
Arria 10 Board Setting and layout approach information: http://www.alterawiki.com/wiki/
Arria_10_EMIF_Simulation_Guidance .
Package Deskew for RLDRAM II and RLDRAM 3
You should follow Altera's package deskew guidance if you are using Stratix V or Arria 10 devices.
For more information on package deskew, refer to Package Deskew.
Document Revision History
Date
December
2014
Version
2014.12.15
Changes
Maintenance release.
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
Altera Corporation
7-16
EMI_DG
2014.12.15
Document Revision History
Date
Version
August 2014
2014.08.15
• Revised RLDRAM 3 Termination Recommendations for Arria V GZ
and Stratix V Devices table.
• Removed millimeter approximations from lengths expressed in
picoseconds in RLDRAM II and RLDRAM 3 Layout Guidelines table.
• Minor formatting fixes in RLDRAM II and RLDRAM 3 Layout
Guidelines table.
• Added Layout Approach section.
December
2013
2013.12.16
• Added note about byteenable support to Signal Descriptions section.
• Consolidated General Layout Guidelines.
November
2012
3.2
Added content supporting RLDRAM 3 and updated RLDRAM II
standards.
June 2012
3.1
Added Feedback icon.
November
2011
3.0
Added Arria V information.
June 2011
2.0
Added Stratix V information.
December
2010
1.0
Initial release.
Altera Corporation
Changes
RLDRAM II and RLDRAM 3 Board Design Guidelines
Send Feedback
8
QDR II and QDR IV SRAM Board Design
Guidelines
2014.12.15
EMI_DG
Subscribe
Send Feedback
The following topics provide guidelines for you to improve your system's signal integrity and layout
guidelines to help successfully implement a QDR II or QDR II+ SRAM interface in your system.
The QDR II and QDR II+ SRAM Controller with UniPHY intellectual property (IP) enables you to
®
®
implement QDR II and QDR II+ interfaces with Arria II GX, Arria V, Stratix III, Stratix IV, and
Stratix V devices.
Note: In the following topics, QDR II SRAM refers to both QDR II and QDR II+ SRAM unless stated
otherwise.
The following topics focus on the following key factors that affect signal integrity:
•
•
•
•
I/O standards
QDR II SRAM configurations
Signal terminations
Printed circuit board (PCB) layout guidelines
I/O Standards
QDR II SRAM interface signals use one of the following JEDEC I/O signalling standards:
• HSTL-15—provides the advantages of lower power and lower emissions.
• HSTL-18—provides increased noise immunity with slightly greater output voltage swings.
To select the most appropriate standard for your interface, refer to the Arria II GX Devices Data Sheet:
Electrical Characteristics chapter in the Arria II Device Handbook, Stratix III Device Datasheet: DC and
Switching Characteristics chapter in the Stratix III Device Handbook, or the Stratix IV Device Datasheet
DC and Switching Characteristics chapter in the Stratix IV Device Handbook.
Altera QDR II SRAM Controller with UniPHY IP defaults to HSTL 1.5 V Class I outputs and HSTL 1.5
V inputs.
®
Related Information
• Arria II GX Devices Data Sheet: Electrical Characteristics
• Stratix III Device Datasheet: DC and Switching Characteristics
• Stratix IV Device Datasheet DC and Switching Characteristics
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
8-2
EMI_DG
2014.12.15
QDR II SRAM Configurations
QDR II SRAM Configurations
The QDR II SRAM Controller with UniPHY IP supports interfaces with a single device, and two devices
in a width expansion configuration up to maximum width of 72 bits.
The following figure shows the main signal connections between the FPGA and a single QDR II SRAM
component.
Figure 8-1: Configuration With A Single QDR II SRAM Component
ZQ
QDR II Device
RQ
DOFF
Q
CQ/CQ
D
(3)
VTT
DOFFn
DATA IN
CQ/CQn
BWS
(3)
K/K
(3)
A
(3)
WPS
(3)
RPS
VTT
(4)
VTT
(1)
(2)
DATA OUT
BWSn
K/Kn
ADDRESS
WPSn
RPSn
The following figure shows the main signal connections between the FPGA and two QDR II SRAM
components in a width expansion configuration.
Altera Corporation
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
QDR II SRAM Configurations
8-3
Figure 8-2: Configuration With Two QDR II SRAM Components In A Width Expansion Configuration
ZQ
QDR II SRAM Device 1
DOFF
Q
VTT VTT VTT
(2)
RQ
DOFF
CQ/CQn D
VTT
(1)
ZQ
QDR II SRAM Device 2
RQ
(3)
BWS
VTT
(3)
K/K
A
VTT
WPS
(4)
RPS
Q
(4)
CQ/CQn D
VTT
(3)
(3)
BWS
VTT
(3)
K/K
VTT
A
(4)
WPS RPS
(4)
(3)
VTT
(5)
(2)
DOFFn
DATA IN
CQ/CQn0
CQ/CQn1
DATA OUT
BWSn
K0/K0n
K1/K1n
ADDRESS
WPSn
RPSn
The following figure shows the detailed balanced topology recommended for the address and command
signals in the width expansion configuration.
Figure 8-3: External Parallel Termination for Balanced Topology
TL2
FPGA
TL1
VTT
(1)
TL2
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
QDRII Memory
QDRII Memory
Altera Corporation
8-4
EMI_DG
2014.12.15
Signal Terminations
Signal Terminations
Arria II GX, Stratix III and Stratix IV devices offer on-chip termination (OCT) technology.
The following table summarizes the extent of OCT support for each device.
Table 8-1: On-Chip Termination Schemes (1)
FPGA Device
Termination
Scheme
On-Chip
Series
Termination
without
Calibration
HSTL-15
and
HSTL-18
Arria II GX
Column I/
O
Row I/O
Arria II GZ, Stratix III,
and Stratix IV
Column I/
O
Row I/O
Arria V and Stratix V
Column I/
O
Row I/O
Class I
50
50
50
50
—
—
On-Chip
Class I
Series
Termination
with Calibra‐
tion
50
50
50
50
—
—
On-Chip
Class I
Parallel
Termination
with Calibra‐
tion
—
—
50
50
50
50
Note to Table:
1. This table provides information about HSTL-15 and HSTL-18 standards because these are the
supported I/O standards for QDR II SRAM memory interfaces by Altera FPGAs.
On-chip series (RS) termination is supported only on output and bidirectional buffers, while on-chip
parallel (RT) termination is supported only on input and bidirectional buffers. Because QDR II SRAM
interfaces have unidirectional data paths, dynamic OCT is not required.
For Arria II GX, Stratix III and Stratix IV devices, the HSTL Class I I/O calibrated terminations are
calibrated against 50-ohm 1% resistors connected to the RUP and RDN pins in an I/O bank with the same
VCCIO as the QDRII SRAM interface. The calibration occurs at the end of the device configuration.
QDR II SRAM controllers have a ZQ pin which is connected via a resistor RQ to ground. Typically the
QDR II SRAM output signal impedance is 0.2 × RQ. Refer to the QDR II SRAM device data sheet for
more information.
For information about OCT, refer to the I/O Features in Arria II GX Devices chapter in the Arria II GX
Device Handbook, I/O Features in Arria V Devices chapter in the Arria V Device Handbook, Stratix III
Device I/O Features chapter in the Stratix III Device Handbook, I/O Features in Stratix IV Devices chapter
Altera Corporation
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Output from the FPGA to the QDR II SRAM Component
8-5
in the Stratix IV Device Handbook , and the I/O Features in Stratix V Devices chapter in the Stratix V
Device Handbook .
Related Information
•
•
•
•
•
I/O Features in Arria II GX Devices
I/O Features in Arria V Devices
Stratix III Device I/O Features
I/O Features in Stratix IV Devices
I/O Features in Stratix V Devices
Output from the FPGA to the QDR II SRAM Component
The following output signals are from the FPGA to the QDR II SRAM component:
•
•
•
•
•
write data
byte write select (BWSn)
address
control (WPSn and RPSn)
clocks, K/K#
Altera recommends that you terminate the write clocks, K and K#, with a single-ended fly-by 50ohmparallel termination to VTT. However, simulations show that you can consider a differential termina‐
tion if the clock pair is well matched and routed differentially.
Altera strongly recommends signal terminations to optimize signal integrity and timing margins, and to
minimize unwanted emissions, reflections, and crosstalk.
For point-to-point signals, Altera recommends that you place a fly-by termination by terminating at the
end of the transmission line after the receiver to avoid unterminated stubs. The guideline is to place the
fly-by termination within 100 ps propagation delay of the receiver.
Although not recommended, you can place the termination before the receiver, which leaves an untermi‐
nated stub. The stub delay is critical because the stub between the termination and the receiver is
effectively unterminated, causing additional ringing and reflections. Stub delays should be less than 50 ps.
Note: Simulate your design to ensure correct functionality.
Input to the FPGA from the QDR II SRAM Component
The QDR II SRAM component drives the following input signals into the FPGA:
• read data
• echo clocks, CQ/CQ#
For point-to-point signals, Altera recommends that you use the FPGA parallel OCT wherever possible.
For devices that do not support parallel OCT (Arria II GX), and for ×36 emulated configuration CQ/CQ#
termination, Altera recommends that you use a fly-by 50-ohm parallel termination to VTT. Although not
recommended, you can use parallel termination with a short stub of less that 50 ps propagation delay as
an alternative option. The input echo clocks, CQ and CQ# must not use a differential termination.
Termination Schemes
The following tables list the recommended termination schemes for major QDR II SRAM memory
interface signals.
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
Altera Corporation
8-6
EMI_DG
2014.12.15
Termination Schemes
These signals include write data (D), byte write select (BWS), read data (Q), clocks (K, K#, CQ, and CQ#),
address and command (WPS and RPS).
Table 8-2: Termination Recommendations for Arria II GX Devices
Signal Type
HSTL 15/18 Standard
FPGA End Discrete
Termination
(1) (2)
Memory End Termination
K/K# Clocks
Class I R50 CAL
—
50-ohm Parallel to VTT
Write Data
Class I R50 CAL
—
50-ohm Parallel to VTT
BWS
Class I R50 CAL
—
50-ohm Parallel to VTT
Class I Max Current
—
50-ohm Parallel to VTT
Class I Max Current
—
50-ohm Parallel to VTT
CQ/CQ#
Class I
50-ohm Parallel to VTT
ZQ50
CQ/CQ#
Class I
50-ohm Parallel to VTT
ZQ50
Class I
50-ohm Parallel to VTT
ZQ50
—
—
ZQ50
Address
(3) (4)
WPS, RPS
(3) (4)
×36 emulated
(5)
Read Data (Q)
QVLD
(6)
Notes to Table:
1. R is effective series output impedance.
2. CAL is calibrated OCT.
3. For width expansion configuration, the address and control signals are routed to 2 devices.
Recommended termination is 50 -ohm parallel to VTT at the trace split of a balanced T or Y routing
topology. For 400 MHz burst length 2 configurations where the address signals are double data rate, it
is recommended to use a clamshell placement of the two QDR II SRAM components to achieve
minimal stub delays and optimum signal integrity. Clamshell placement is when two devices overlay
each other by being placed on opposite sides of the PCB.
4. A Class I 50 -ohm output with calibration output is typically optimal in double load topologies.
5. For ×36 emulated mode, the recommended termination for the CQ/CQ# signals is a 50 -ohm parallel
termination to VTT at the trace split. Altera recommends that you use this termination when ×36 DQ/
DQS groups are not supported in the FPGA.
6. QVLD is not used in the QDR II or QDR II+ SRAM with UniPHY implementations.
Altera Corporation
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Termination Schemes
8-7
Table 8-3: Termination Recommendations for Arria V, Stratix III, Stratix IV, and Stratix V Devices
Signal Type
HSTL 15/18 Standard
FPGA End Discrete
Termination
(1) (2) (3)
Memory End Termination
K/K# Clocks
DIFF Class I R50 NO CAL —
Series 50 -ohm
Without Calibration
Write Data
Class I R50 CAL
—
50 -ohmParallel to VTT
BWS
Class I R50 CAL
—
50 -ohmParallel to VTT
Class I Max Current
—
50 -ohmParallel to VTT
Class I Max Current
—
50 -ohmParallel to VTT
Class I P50 CAL
—
ZQ50
CQ/CQ# ×36 emulated —
50 -ohm Parallel to VTT
ZQ50
Read Data (Q)
Class I P50 CAL
—
ZQ50
Class I P50 CAL
—
ZQ50
Address
(4) (5)
WPS, RPS
(4) (5)
CQ/CQ#
(6)
QVLD
(7)
Notes to Table:
1.
2.
3.
4.
R is effective series output impedance.
P is effective parallel input impedance.
CAL is calibrated OCT.
For width expansion configuration, the address and control signals are routed to 2 devices.
Recommended termination is 50-ohm parallel to VTT at the trace split of a balanced T or Y routing
topology. For 400 MHz burst length 2 configurations where the address signals are double data rate, it
is recommended to use a "clam shell" placement of the two QDR II SRAM components to achieve
minimal stub delays and optimum signal integrity. "Clam shell" placement is when two devices overlay
each other by being placed on opposite sides of the PCB.
5. The UniPHY default IP setting for this output is Max Current. A Class 1 50-ohm output with calibra‐
tion output is typically optimal in single load topologies.
6. For ×36 emulated mode, the recommended termination for the CQ/CQ# signals is a 50-ohm parallel
termination to VTT at the trace split. Altera recommends that you use this termination when ×36 DQ/
DQS groups are not supported in the FPGA.
7. QVLD is not used in the QDR II or QDR II+ SRAM Controller with UniPHY implementations.
Note: Altera recommends that you simulate your specific design for your system to ensure good signal
integrity.
For a ×36 QDR II SRAM interface that uses an emulated mode of two ×18 DQS groups in the FPGA,
there are two CQ/CQ# connections at the FPGA and a single CQ/CQ# output from the QDR II SRAM
device. Altera recommends that you use a balanced T topology with the trace split close to the FPGA and
a parallel termination at the split, as shown in the following figure.
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
Altera Corporation
8-8
EMI_DG
2014.12.15
General Layout Guidelines
Figure 8-4: Emulated ×36 Mode CQ/CQn Termination Topology
FPGA
TL2
CQ
VTT
(1)
(1)
TL1
TL2
CQ
CQ
TL2
CQn
VTT
CQn
QDRII Memory
TL1
TL2
CQ
For more information about ×36 emulated modes, refer to the “Exceptions for ×36 Emulated QDR II and
QDR II+ SRAM Interfaces in Arria II GX, Stratix III, and Stratix IV Devices" section in the Planning Pin
and Resources chapter.
Related Information
Planning Pin and FPGA Resources on page 3-1
General Layout Guidelines
The following table lists general board design layout guidelines. These guidelines are Altera
recommendations, and should not be considered as hard requirements. You should perform signal
integrity simulation on all the traces to verify the signal integrity of the interface. You should extract the
slew rate and propagation delay information, enter it into the IP and compile the design to ensure that
timing requirements are met.
Table 8-4: General Layout Guidelines
Parameter
Guidelines
Impedance
• All signal planes must be 50-60-ohm, single-ended, ±10%
• All signal planes must be 100-ohm, differential ±10%
• All unused via pads must be removed, because they cause unwanted
capacitance
Decoupling Parameter
•
•
•
•
Altera Corporation
Use 0.1 uF in 0402 size to minimize inductance
Make VTT voltage decoupling close to pull-up resistors
Connect decoupling caps between VTT and ground
Use a 0.1 uF cap for every other VTT pin and 0.01 uF cap for every VDD
and VDDQ pin
• Verify the capacitive decoupling using the Altera Power Distribution
Network Design Tool
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
QDR II Layout Guidelines
Parameter
8-9
Guidelines
Power
• Route GND and VCC as planes
• Route VCCIO for memories in a single split plane with at least a 20-mil
(0.020 inches, or 0.508 mm) gap of separation
• Route VTT as islands or 250-mil (6.35-mm) power traces
• Route oscillators and PLL power as islands or 100-mil (2.54-mm) power
traces
General Routing
All specified delay matching requirements include PCB trace delays,
different layer propagation velocity variance, and crosstalk. To minimize
PCB layer propogation variance, Altera recommend that signals from the
same net group always be routed on the same layer.
•
•
•
•
•
•
Use 45° angles (not 90° corners)
Avoid T-Junctions for critical nets or clocks
Avoid T-junctions greater than 250 mils (6.35 mm)
Disallow signals across split planes
Restrict routing other signals close to system reset signals
Avoid routing memory signals closer than 0.025 inch (0.635 mm) to PCI
or system clocks
Related Information
Power Distribution Network Design Tool
QDR II Layout Guidelines
The following table summarizes QDR II and QDR II SRAM general routing layout guidelines.
Note: 1. The following layout guidelines include several +/- length based rules. These length based
guidelines are for first order timing approximations if you cannot simulate the actual delay
characteristics of your PCB implementation. They do not include any margin for crosstalk.
2. Altera recommends that you get accurate time base skew numbers when you simulate your
specific implementation.
3. To reliably close timing to and from the periphery of the device, signals to and from the
periphery should be registered before any further logic is connected.
Table 8-5: QDR II and QDR II+ SRAM Layout Guidelines
Parameter
General Routing
Guidelines
• If signals of the same net group must be routed on different layers with the same
impedance characteristic, you must simulate your worst case PCB trace
tolerances to ascertain actual propagation delay differences. Typical later to later
trace delay variations are of 15 ps/inch order.
• Avoid T-junctions greater than 150 ps.
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
Altera Corporation
8-10
EMI_DG
2014.12.15
QDR II SRAM Layout Approach
Parameter
Clock Routing
Guidelines
•
•
•
•
•
•
•
•
External Memory
Routing Rules
Route clocks on inner layers with outer-layer run lengths held to under 150 ps.
These signals should maintain a 10-mil (0.254 mm) spacing from other nets.
Clocks should maintain a length-matching between clock pairs of ±5 ps.
Complementary clocks should maintain a length-matching between P and N
signals of ±2 ps.
Keep the distance from the pin on the QDR II SRAM component to stub
termination resistor (VTT) to less than 50 ps for the K, K# clocks.
Keep the distance from the pin on the QDR II SRAM component to fly-by
termination resistor (VTT) to less than 100 ps for the K, K# clocks.
Keep the distance from the pin on the FPGA component to stub termination
resistor (VTT) to less than 50 ps for the echo clocks, CQ, CQ#, if they require an
external discrete termination.
Keep the distance from the pin on the FPGA component to fly-by termination
resistor (VTT) to less than 100 ps for the echo clocks, CQ, CQ#, if they require an
external discrete termination.
• Keep the distance from the pin on the QDR II SRAM component to stub
termination resistor (VTT) to less than 50 ps for the write data, byte write select
and address/command signal groups.
• Keep the distance from the pin on the QDR II SRAM component to fly-by
termination resistor (VTT) to less than 100 ps for the write data, byte write select
and address/command signal groups.
• Keep the distance from the pin on the FPGA (Arria II GX) to stub termination
resistor (VTT) to less than 50 ps for the read data signal group.
• Keep the distance from the pin on the FPGA (Arria II GX) to fly-by termination
resistor (VTT) to less than 100 ps for the read data signal group.
• Parallelism rules for the QDR II SRAM data/address/command groups are as
follows:
• 4 mils for parallel runs < 0.1 inch (approximately 1× spacing relative to plane
distance).
• 5 mils for parallel runs < 0.5 inch (approximately 1× spacing relative to plane
distance).
• 10 mils for parallel runs between 0.5 and 1.0 inches (approximately 2× spacing
relative to plane distance).
• 15 mils for parallel runs between 1.0 and 6.0 inch (approximately 3× spacing
relative to plane distance).
Maximum Trace
Length
• Keep the maximum trace length of all signals from the FPGA to the QDR II
SRAM components to 6 inches.
Related Information
Altera Power Distribution Network (PDN) Design tool
QDR II SRAM Layout Approach
Using the layout guidelines in the above table, Altera recommends the following layout approach:
Altera Corporation
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
QDR II SRAM Layout Approach
8-11
1. Route the K/K# clocks and set the clocks as the target trace propagation delays for the output signal
group.
2. Route the write data output signal group (write data, byte write select), ideally on the same layer
as the K/K# clocks, to within ±10 ps skew of the K/K# traces.
3. Route the address/control output signal group (address, RPS, WPS), ideally on the same layer as the
K/K# clocks, to within ±20 ps skew of the K/K# traces.
4. Route the CQ/CQ# clocks and set the clocks as the target trace propagation delays for the input signal
group.
5. Route the read data output signal group (read data), ideally on the same layer as the CQ/CQ# clocks, to
within ±10 ps skew of the CQ/CQ# traces.
6. The output and input groups do not need to have the same propagation delays, but they must have all
the signals matched closely within the respective groups.
The following tables list the typical margins for QDR II and QDR II+ SRAM interfaces, with the
assumption that there is zero skew between the signal groups.
Table 8-6: Typical Worst Case Margins for QDR II SRAM Interfaces of Burst Length 2
Device
Speed Grade
Frequency (MHz)
Typical Margin
Address/
Command (ps)
Typical Margin
Write Data (ps)
Typical Margin
Read Data (ps)
Arria II GX
I5
250
± 240
± 80
± 170
Arria II GX
I5
200
± 480
± 340
± 460
Stratix IV
—
350
—
—
—
Stratix IV
C2
300
± 320
± 170
± 340
×36 emulated
×36 emulated
Table 8-7: Typical Worst Case Margins for QDR II+ SRAM Interfaces of Burst Length 4
Device
Speed Grade
Frequency (MHz)
Typical Margin
Address/
Command (ps) (1)
Typical Margin
Write Data (ps)
Typical Margin
Read Data (ps)
Arria II GX
I5
250
± 810
± 150
± 130
Arria II GX
I5
200
± 1260
± 410
± 420
Stratix IV
C2
400
± 550
± 10
± 80
Stratix IV
C2
300
± 860
± 180
± 300
×36 emulated
×36 emulated
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
Altera Corporation
8-12
EMI_DG
2014.12.15
Package Deskew for QDR II and QDR IV
Device
Speed Grade
Frequency (MHz)
Typical Margin
Address/
Command (ps) (1)
Typical Margin
Write Data (ps)
Typical Margin
Read Data (ps)
Note to Table:
1. The QDR II+ SRAM burst length of 4 designs have greater margins on the address signals because they
are single data rate.
Other devices and speed grades typically show higher margins than the ones in the above tables.
Note: Altera recommends that you create your project with a fully implemented QDR II or QDR II+
SRAM Controller with UniPHY interface, and observe the interface timing margins to determine
the actual margins for your design.
Although the recommendations in this chapter are based on simulations, you can apply the same general
principles when determining the best termination scheme, drive strength setting, and loading style to any
board designs. Even armed with this knowledge, it is still critical that you perform simulations, either
using IBIS or HSPICE models, to determine the quality of signal integrity on your designs.
Package Deskew for QDR II and QDR IV
You should follow Altera's package deskew guidance if you are using Stratix V or Arria 10 devices.
For more information on package deskew, refer to Package Deskew.
QDR IV Layout Recommendations
Altera recommends the following layout guidelines for QDR IV on Arria 10 devices.
1. For port B only: Swap QKB and QKB# signals between FPGA and QDR IV memory. Connect FPGA
QKB (positive) pin to QDR IV QKB# (negative) pin and vice-versa.
2. For each port, set the DK/DK# or QK/QK# clock as the target trace propagation delay for the
associated data signals (DQ).
3. For each port, route the data (DQ) signals for the DQ group ideally on the same layer as the associated
QK/QK# and DK/DK# clocks to within ±10 ps skew of the target clock.
4. Route the mem_ck (CK/CK#) clocks and set as the target trace propagation delays for the address/
command signal group. Match the CK/CK# clock to within ±50 ps of all the DK/DK# clocks for both
ports.
5. Route the address/control signal group ideally on the same layer as the mem_ck (CK/CK#) clocks, to
within ±10 ps skew of the mem_ck (CK/CK#) traces.
QDR IV Layout Approach
For all practical purposes, you can regard the TimeQuest timing analyzer's report on your memory
interface as definitive for a given set of memory and board timing parameters. You will find timing under
Report DDR in TimeQuest and on the Timing Analysis tab in the parameter editor.
The following flowchart illustrates the recommended process to follow during the design phase, to
determine timing margin and make iterative improvements to your design.
Altera Corporation
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
QDR IV Layout Approach
8-13
Primary Layout
Calculate Setup
and Hold Derating
Adjust Layout to Improve:
• Trace Length Mis-Match
• Signal Reflections (ISI)
• Cross Talk
• Memory Speed Grade
Calculate Channel
Signal Integrity
Calculate Board
Skews
Find Memory
Timing Parameters
Generate an IP Core that Accurately Represents Your
Memory Subsystem, Including pin-out and Accurate
Parameters in the Parameter Editor’s Board Settings Tab
Run Quartus II Compilation with the Generated IP Core
yes
Any Non-Core Timing
Violations in the Report
DDR Panel?
no
Done
For more detailed simulation guidance for Arria 10, refer to the Altera wiki: http://www.alterawiki.com/
wiki/Arria_10_EMIF_Simulation_Guidance
Setup and Hold Derating
For information on calculating derating parameters, refer to
Intersymbol Interference/Crosstalk
For information on intersymbol interference and crosstalk, refer to the Altera wiki: http://
www.alterawiki.com/wiki/Arria_10_EMIF_Simulation_Guidance
Board Skew
For information on calculating board skew parameters, refer to
If you know the absolute delays for all the memory related traces, the interactive Board Skew Parameter
Tool can help you calculate the necessary parameters.
Memory Timing Parameters
You can find the memory timing parameters to enter in the parameter editor, in your memory vendor's
datasheet.
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
Altera Corporation
8-14
EMI_DG
2014.12.15
QDR IV Layout Guidelines
QDR IV Layout Guidelines
Observe the following layout guidelines for your QDR IV interface.
Parameter
Guidelines
General Routing
• If you must route signals of the same net group on different layers with the same
impedance characteristic, simulate your worst case PCB trace tolerances to
determine actual propagation delay differences. Typical layer-to-layer trace delay
variations are on the order of 15 ps/inch.
• Avoid T-junctions greater than 150 ps.
• Match all signals within a given DQ group with a maximum skew of ±10 ps and
route on the same layer.
Clock Routing
•
•
•
•
Route clocks on inner layers with outer-layer run lengths held to less than 150 ps.
Clock signals should maintain a 10-mil (0.254 mm) spacing from other nets.
Clocks should maintain a length-matching between clock pairs of ±5 ps.
Differential clocks should maintain a length-matching between P and N signals of
±2 ps.
• Space between different clock pairs should be at least three times the space
between the traces of a differential pair.
Address and
• - To minimize crosstalk, route address, bank address, and command signals on a
Command Routing
different layer than the data signals.
• Do not route the differential clock signals close to the address signals.
• Keep the distance from the pin on the QDR IV component to the stub termina‐
tion resistor (VTT) to less than 50 ps for the address/command signal group.
• - Route the mem_ck (CK/CK#) clocks and set as the target trace propagation
delays for the address/command signal group. Match the CK/CK# clock to within
±50 ps of all the DK/DK# clocks for both ports.
• - Route the address/control signal group ideally on the same layer as the mem_ck
(CK/CK#) clocks, to within ±20 ps skew of the mem_ck (CK/CK#) traces.
Data Signals
• For port B only; Swap QKB and QKB# signals between FPGA and QDR IV
memory. Connect FPGA QKB (positive) pin to QDR IV QKB# (negative) pin and
vice-versa.
• For each port, route the DK/DK# write clock and QK/QK# read clock associated
with a DQ group on the same PCB layer. Match these clock pairs to within ±5 ps.
• For each port, set the DK/DK# or QK/QK# clock as the target trace propagation
delay for the associated data signals (DQ).
• For each port, route the data (DQ) signals for the DQ group ideally on the same
layer as the associated QK/QK# and DK/DK# clocks to within ±10 ps skew of the
target clock.
Maximum Trace
Length
• Keep the maximum trace length of all signals from the FPGA to the RLDRAM II
or RLDRAM 3 components to 600 ps.
Altera Corporation
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
EMI_DG
2014.12.15
Document Revision History
Parameter
8-15
Guidelines
Spacing Guidelines • Avoid routing two signal layers next to each other. Always make sure that the
signals related to memory interface are routed between appropriate GND or
power layers.
• For Data and Data Strobe traces: Maintain at least 3H spacing between the edges
(air-gap) of these traces, where H is the vertical distance to the closest return path
for that particular trace.
• For Address/Command/Control traces: Maintain at least 3H spacing between the
edges (air-gap) of these traces, where H is the vertical distance to the closest
return path for that particular trace.
• For Clock (mem_CK) traces: Maintain at least 5H spacing between two clock pair
or a clock pair and any other memory interface trace, where H is the vertical
distance to the closest return path for that particular trace.
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
• Change to K/K# Clocks row in Termination Recommendations for
Arria V, Stratix III, Stratix IV, and Stratix V Devices table.
• Removed millimeter approximations from lengths expressed in
picoseconds in QDR II and QDR II+ SRAM Layout Guidelines table.
• Minor formatting fixes in QDR II and QDR II+ SRAM Layout
Guidelines table.
December
2013
2013.12.16
Consolidated General Layout Guidelines.
November
2012
4.2
Changed chapter number from 7 to 8.
June 2012
4.1
Added Feedback icon.
November
2011
4.0
Added Arria V information.
June 2011
3.0
Added Stratix V information.
December
2010
2.0
Maintenance release.
July 2010
1.0
Initial release.
QDR II and QDR IV SRAM Board Design Guidelines
Send Feedback
Altera Corporation
Implementing and Parameterizing Memory IP
9
2014.12.15
EMI_DG
Subscribe
Send Feedback
The following topics describe the general overview of the Altera IP core design flow to help you quickly
get started with any Altera IP core.
®
The Altera IP Library is installed as part of the Quartus II installation process.You can select and
parameterize any Altera IP core from the library. Altera provides an integrated parameter editor that
allows you to customize IP cores to support a wide variety of applications. The parameter editor guides
you through the setting of parameter values and selection of optional ports. The following section
describes the general design flow and use of Altera IP cores.
®
Note: Information for Arria 10 External Memory Interface IP also applies to Arria 10 External Memory
Interface for HPS IP unless stated otherwise.
Installing and Licensing IP Cores
The Altera IP Library provides many useful IP core functions for production use without purchasing an
additional license. You can evaluate any Altera® IP core in simulation and compilation in the Quartus® II
software using the OpenCore® evaluation feature. Some Altera IP cores, such as MegaCore® functions,
require that you purchase a separate license for production use. You can use the OpenCore Plus feature to
evaluate IP that requires purchase of an additional license until you are satisfied with the functionality and
performance. After you purchase a license, visit the Self Service Licensing Center to obtain a license
number for any Altera product.
Figure 9-1: IP Core Installation Path
acds
quartus - Contains the Quartus II software
ip - Contains the Altera IP Library and third-party IP cores
altera - Contains the Altera IP Library source code
<IP core name> - Contains the IP core source files
Note: The default IP installation directory on Windows is <drive>:\altera\<version number>; on Linux it is
<home directory>/altera/ <version number>.
Related Information
• Altera Licensing Site
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
9-2
EMI_DG
2014.12.15
Free Evaluation
• Altera Software Installation and Licensing Manual
Free Evaluation
Altera's OpenCore Plus evaluation feature is applicable only to the DDR, DDR2 and DDR3 SDRAM
memory controllers. No license key or fee is required for Altera memory controllers implemented as hard
IP in Altera devices.
With the OpenCore Plus evaluation feature, you can perform the following actions:
•
•
•
•
Simulate the behavior of an IP core within your system.
Verify the functionality of your design, as well as evaluate its size and speed quickly and easily.
Generate time-limited device programming files for designs that include MegaCore functions.
Program a device and verify your design in hardware.
You need to purchase a license for the MegaCore only when you are completely satisfied with its function‐
ality and performance, and want to take your design to production.
OpenCore Plus Time-Out Behavior
OpenCore Plus hardware evaluation can support the following two modes of operation:
• Untethered—the design runs for a limited time.
• Tethered—requires a connection between your board and the host computer. If tethered mode is
supported by all IP cores in a design, the device can operate for a longer time or indefinitely.
All IP cores in a device time out simultaneously when the most restrictive evaluation time is reached. If
there is more than one IP core in a design, a specific IP core's time-out behavior may be masked by the
time-out behavior of the other IP cores.
Note: For IP cores, the untethered time-out is 1 hour; the tethered time-out value is indefinite.
Your design stops working after the hardware evaluation time expires and the local_ready output goes
low.
Design Flow
You can implement the external memory interface IP using the following flows:
• IP Catalog flow
• Qsys flow
The following figure shows the stages for creating a system in the Quartus II software using the available
flows.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
IP Catalog Design Flow
9-3
Figure 9-2: Design Flows
Select Design Flow
IP Catalog
Flow
Qsys Flow
Specify Parameters
Specify Parameters
Complete System
Optional
Perform
Functional Simulation
Does
Simulation Give
Expected Results?
Yes
Add Constraints
and Compile Design
IP Complete
Debug Design
Note to Figure:
The IP Catalog design flow is suited for simple designs where you want to manually instantiate the
external memory interface IP into a larger component. The Qsys design flow is recommended for more
complex system designs where you want the tool to manage the instantiation process.
IP Catalog Design Flow
The IP Catalog design flow allows you to customize the external memory interface IP, and manually
integrate the function into your design.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-4
EMI_DG
2014.12.15
IP Catalog and Parameter Editor
IP Catalog and Parameter Editor
The Quartus II IP Catalog (Tools > IP Catalog) and parameter editor help you easily customize and
integrate IP cores into your project. You can use the IP Catalog and parameter editor to select, customize,
and generate files representing your custom IP variation.
Note: The IP Catalog (Tools > IP Catalog) and parameter editor replace the MegaWizard Plug-In
Manager for IP selection and parameterization, beginning in Quartus II software version 14.0. Use
the IP Catalog and parameter editor to locate and paramaterize Altera IP cores.
™
The IP Catalog lists IP cores available for your design. Double-click any IP core to launch the parameter
editor and generate files representing your IP variation. The parameter editor prompts you to specify an
IP variation name, optional ports, and output file generation options. The parameter editor generates a
top-level Qsys system file (.qsys) or Quartus II IP file (.qip) representing the IP core in your project. You
can also parameterize an IP variation without an open project.
Use the following features to help you quickly locate and select an IP core:
• Filter IP Catalog to Show IP for active device family or Show IP for all device families.
• Search to locate any full or partial IP core name in IP Catalog. Click Search for Partner IP, to access
partner IP information on the Altera website.
• Right-click an IP core name in IP Catalog to display details about supported devices, open the IP core's
installation folder, andor view links to documentation.
Figure 9-3: Quartus II IP Catalog
Search and filter IP for your target device
Double-click to customize, right-click for information
Note: The IP Catalog is also available in Qsys (View > IP Catalog). The Qsys IP Catalog includes
exclusive system interconnect, video and image processing, and other system-level IP that are not
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Specifying Parameters for the IP Catalog Flow
9-5
available in the Quartus II IP Catalog. For more information about using the Qsys IP Catalog, refer
to Creating a System with Qsys in the Quartus II Handbook.
Specifying Parameters for the IP Catalog Flow
To specify parameters with the IP Catalog design flow, perform the following steps:
1. In the Quartus II software, create a Quartus II project using the New Project Wizard available from
the File menu.
2. Launch the IP Catalog from the Tools menu.
3. Select an external memory interface IP from the Memory Interfaces and Controllers folder in the
Library list.
Note: The availability of external memory interface IP depends on the device family your design is
using.
4. Depending on the window which appears, proceed as follows:
• New IP Instance Window: Specify the Top-level Name and Device Settings, and click Ok.
• Save IP Variation window: Specify the IP variation file name and IP variation file type, and click
Ok.
5. In the Presets window, select the preset matching your design requirement, and click Apply.
Tip: If none of the presets match your design requirements, you can apply the closest preset available
and then change the parameters manually. This method may be faster than entering all the
parameters manually, and reduces the chance of having incorrect settings.
6. Specify the parameters on all tabs.
Note: • For detailed explanation of the parameters, refer to Parameterizing Memory Controllers with
UniPHY IP and Parameterizing Memory Controllers with Arria 10 External Memory Interface
IP.
• Although you have applied presets, you may need to modify some of the preset parameters
depending on the frequency of operation. A typical list of parameters which you might need
to change includes the Memory CAS Latency setting, the Memory CAS Write Latency
setting, and the tWTR, tFAW, tRRD, and tRTP settings.
Tip: • As a good practice, review any warning messages displayed in the Messages Window and
correct any errors before making further changes.
• To simplify future work, you might want to store the current configuration by saving your
own presets. To create, modify, or remove your own custom presets, click New, Update, or
Delete at the bottom of the Presets list.
• If you want to generate an example design for your current configuration, click Example
Design at the top-right corner of the parameter editor, specify a path for the example design,
and click Ok.
7. Depending on which external memory interface IP is selected, perform the following steps to complete
the IP generation:
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-6
EMI_DG
2014.12.15
Using Example Designs
• For Arria 10 External Memory Interface IP:
1. Click Finish. Your configuration is saved as a .qsys file.
2. Click Yes when you are prompted to generate your IP.
3. Set Create HDL design files for synthesis to Verilog or VHDL.
Tip: If you want to do RTL simulation of your design, you should set Create simulation model
to either Verilog or VHDL. Some RTL simulation-related files, including simulatorspecific scripts, are generated only if you specify this parameter.
Note: For Arria 10 External Memory Interface IP, the synthesis and simulation model files are
identical. However, there are some differences in file types when generating for VHDL.
For synthesis files, only the top-level wrapper is generated in VHDL; the other files are
generated in System Verilog. For simulation files, all the files are generated as a Mentortagged encrypted IP for VHDL-only simulator support.
4. Click Generate.
5. When generation has completed, click Finish.
• For UniPHY-based IP:
1. Click the Finish button.
Note: The Finish button may be unavailable until you have corrected all parameterization
errors listed in the Messages window.
2. If prompted, specify whether you want to generate an example design by checking or
unchecking Generate Example Design, and then click Generate.
Caution: If you have already generated an example design, uncheck Generate Example Design
to prevent your previously generated files from being overwritten.
3. When generation is completed, click Exit.
8. Click Yes if you are prompted to add the .qip to the current Quartus II project. You can also turn on
Automatically add Quartus II IP Files to all projects.
Tip: Always read the generated readme.txt file, which contains information and guidelines specific to
your configuration.
9. You can now integrate your custom IP core instance in your design, simulate, and compile. While
integrating your IP core instance into your design, you must make appropriate pin assignments. You
can create a virtual pin to avoid making specific pin assignments for top-level signals while you are
simulating and not ready to map the design to hardware.
Note: For information about the Quartus II software, including virtual pins and the IP Catalog and Qsys,
refer to Quartus II Help.
Related Information
• Simulating Altera Designs
• Quartus II Help
Using Example Designs
When you generate your IP, you can instruct the system to produce an example design consisting of an
external memory interface IP of your configuration, together with a traffic generator.
For synthesis, the example design includes a project for which you can specify pin locations and a target
device, compile in the Quartus II software, verify timing closure, and test on your board using the
programming file generated by the Quatus II assembler. For simulation, the example design includes an
example memory model with which you can run simulation and evaluate the result.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Constraining the Design
9-7
For a UniPHY-based external memory interface, click Example Design in the parameter editor, or enable
Generate Example Design. The system produces an example design for synthesis in the example_project
directory, and generation scripts for simulation in the simulation directory. To generate the complete
example design for RTL simulation, follow the instructions in the readme.txt file in the simulation
directory.
For Arria 10 External Memory Interface IP, click Example Design in the parameter editor. The system
produces generation scripts in the directory path that you specify. To create a complete example design
for synthesis or RTL simulation, follow the instructions in the generated <variation_name>/altera_emif_
arch_nf_140/<synth|sim>/<variation_name>_altera_emif_arch_nf_140_<unique ID>_readme.txt file.
To compile an example design, open the .qpf file for the project and follow the standard design flow,
including constraining the design prior to full compilation. If necessary, change the example project
device to match the device in your project.
For more information about example designs, refer to Functional Description—Example Top Level project
in Volume 3 of the External Memory Interface Handbook. For more information about simulating an
example design, refer to Simulating the Example Design in the Simulating Memory IP chapter.
Constraining the Design
For Arria 10 External Memory Interface IP for HPS, pin location assignments are predefined in the
Quartus II IP file (.qip). In UniPHY-based and non-HPS Arria 10 external memory interfaces, you must
make your own location assignments.
Note: You should not overconstrain any EMIF IP-related registers unless you are advised to do so by
Altera, or you fully understand the effect on the external memory interface operation. Also, ensure
that any wildcards in your user logic do not accidentally target EMIF IP-related registers.
For more information about timing constraints and analysis, refer to Analyzing Timing of Memory IP.
Related Information
Analyzing Timing of Memory IP on page 11-1
Adding Pins and DQ Group Assignments
The assignments defined in the <variation_name>_pin_assignments.tcl script (for UniPHY-based IP) and the
Quartus II IP file (.qip) (for Arria 10 EMIF IP) help you to set up the I/O standards and the input/output
termination for the external memory interface IP. These assignments also help to relate the DQ pin groups
together for the Quartus II Fitter to place them correctly.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-8
EMI_DG
2014.12.15
Compiling the Design
• For UniPHY-based external memory interfaces, run the <variation_name>_pin_assignments.tcl script to
apply the input and output termination, I/O standards, and DQ group assignments to your design. To
run the pin assignment script, follow these steps:
1. On the Processing menu, point to Start, and click Start Analysis and Synthesis. Allow Analysis
and Synthesis to finish without errors before proceeding to step 2.
2. On the Tools menu click Tcl Scripts.
3. Specify the pin_assignments.tcl and click Run.
The pin assignment script does not create a PLL reference clock for the design. You must create a clock
for the design and provide pin assignments for the signals of both the example driver and testbench
that the MegaCore variation generates.
Note: For some UniPHY-based IP configurations, the afi_clk clock does not have a global signal
assignment constraint. In this case, you should add a suitable assignment for your design. For
example, for a UniPHY-based DDR3 IP targeting a Stratix IV device, if0|pll0|upll_memphy|
auto_generated|clk[0] does not have a global signal assignment and you should consider
adding either a global clock or a dual regional clock assignment to your project for this clock.
• For Arria 10 External Memory Interface IP, the Quartus II software automatically reads assignments
from the .qip file during compilation, so it is not necessary to apply assignments to your design
manually.
Note: • If you must overwrite the default assignments, ensure that you make your
changes in the Quatrus II Settings File (.qsf) and not the .qip file. Assignments
in the .qsf file take precedence over assignments in the .qip file. Note also, that
if you rerun the <variation_name>_pin_assignments.tcl file, it overwrites your
changes.
• If the PLL input reference clock pin does not have the same I/O standard as the
memory interface I/Os, a no-fit might occur because incompatible I/O
standards cannot be placed in the same I/O bank.
• If you are upgrading your memory IP from an earlier Quartus II version, rerun
the pin_assignments.tcl script in the later Quartus II revision.
• If you encounter a shortage of clock resources, the AFI clock domain can be
moved between regional, dual-regional, and global. Moving any other clock
domain can result in fit errors or timing closure problems.
Compiling the Design
After constraining your design, compile your design in the Quartus II software to generate timing reports
to verify whether timing has been met.
To compile the design, on the Processing menu, click Start Compilation.
After you have compiled the top-level file, you can perform RTL simulation or program your targeted
Altera device to verify the top-level file in hardware.
Note: In UniPHY-based memory controllers, the derive_pll_clocks command can affect timing
closure if it is called before the memory controller files are loaded. Ensure that the Quartus II IP
File (.qip) appears in the file list before any Synopsys Design Constraint Files (.sdc) files that
contain derive_pll_clocks.
For more information about simulating the memory IP, refer to Simulating Memory IP.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Qsys System Integration Tool Design Flow
9-9
Related Information
Simulating Memory IP on page 10-1
Qsys System Integration Tool Design Flow
You can use the Qsys system integration tool to build a system that includes your customized IP core.
You easily can add other components and quickly create a Qsys system. Qsys automatically generates
HDL files that include all of the specified components and interconnections. In Qsys, you specify the
connections you want. The HDL files are ready to be compiled by the Quartus II software to produce
output files for programming an Altera device. Qsys generates Verilog HDL simulation models for the IP
cores that comprise your system.
The following figure shows a high level block diagram of an example Qsys system.
Figure 9-4: Example Qsys System
Qsys System
PCIe to Ethernet Bridge
DDR3
SDRAM
DDR3
SDRAM
Controller
PHY
Cntl
Mem
Mstr
PCI Express
Subsystem
PCIe
CSR
Mem
Slave
Embedded Cntl
Mem
Mstr
CSR
Ethernet
Subsystem
Ethernet
For more information about the Qsys system interconnect, refer to the Qsys Interconnect chapter in
volume 1 of the Quartus II Handbook and to the Avalon Interface Specifications .
For more information about the Qsys tool and the Quartus II software, refer to the System Design with
Qsys section in volume 1 of the Quartus II Handbook and to Quartus II Help.
Related Information
• Qsys Interconnect
• Avalon Interface Specifications
• System Design with Qsys
Specify Parameters for the Qsys Flow
To specify parameters for your IP core using the Qsys flow, follow these steps:
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-10
Completing the Qsys System
EMI_DG
2014.12.15
1. In the Quartus II software, create a new Quartus II project using the New Project Wizard available
from the File menu.
2. On the Tools menu, click Qsys.
Note: Qsys automatically sets device parameters based on your Quartus II project settings. To set
device parameters manually, use the Device Family tab.
3. In the IP Catalog, select the available external memory interface IP from the Memory Interfaces and
Controllers folder in the Library list. (For Arria 10 EMIF for HPS, select the external memory
interface IP from the Hard Processor Components folder.) The relevant parameter editor appears.
Note: The availability of external memory interface IP depends on the device family your design is
using. To use Arria 10 External Memory Interface for HPS IP, your design must target a device
containing at least one HPS CPU core.
4. From the Presets list, select the preset matching your design requirement, and click Apply.
Tip: If none of the presets match your design requirements, you can apply the closest preset available
and then change the inappropriate parameters manually. This method may be faster than
entering all the parameters manually, and reduces the chance of having incorrect settings.
5. Specify the parameters on all tabs.
Note: • For detailed explanation of the parameters, refer to Parameterizing Memory Controllers with
UniPHY IP and Parameterizing Memory Controllers with Arria 10 External Memory Interface
IP.
• Although you have applied presets, you may need to modify some of the preset parameters
depending on the frequency of operation. A typical list of parameters which you might need
to change includes the Memory CAS Latency setting, the Memory CAS Write Latency
setting, and the tWTR, tFAW, tRRD, and tRTP settings.
• For UniPHY-based IP, turn on Generate power-of-2 bus widths for Qsys or SOPC Builder
on the Controller Settings tab.
Tip: • As a good practice, review any warning messages displayed in the Messages Window and
correct any errors before making further changes.
• To simplify future work, you might want to store the current configuration by saving your
own presets. To create, modify, or remove your own custom presets, click New, Update, or
Delete at the bottom of the Presets list.
• If you want to generate an example design for your current configuration, click Example
Design at the top-right corner of the parameter editor, specify a path for the example design,
and click Ok.
6. Click Finish to complete the external memory interface IP instance and add it to the system.
Note: The Finish button may be unavailable until you have corrected all parameterization errors
listed in the Messages window.
Completing the Qsys System
To complete the Qsys system, follow these steps:
1. Add and parameterize any additional components.
2. Connect the components using the Connection panel on the System Contents tab.
3. In the Export column, enter the name of any connections that should be a top-level Qsys system port.
Note: Ensure that the memory and oct interfaces are exported to the top-level Qsys system port. If
these interfaces are already exported, take care not to accidentally rename or delete either of
them in the Export column of the System Contents tab.
4. Click Finish.
5. Specify the File Name and click Save.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
UniPHY-Based External Memory Interface IP
9-11
6. When you are prompted to generate now, click Yes.
7. Set Create HDL design files for synthesis to either Verilog or VHDL.
Tip: If you want to do RTL simulation of your design, you should set Create simulation model to
either Verilog or VHDL. Some RTL simulation-related files, including simulator-specific scripts,
are generated only if you specify this parameter.
Note: For Arria 10 External Memory Interface IP, the synthesis and simulation model files are
identical. However, there are some differences in file types when generating for VHDL. For
synthesis files, only the top-level wrapper is generated in VHDL; the other files are generated in
System Verilog. For simulation files, all the files are generated as a Mentor-tagged encrypted IP
for VHDL-only simulator support.
8. Click Generate.
9. When generation has completed, click Finish.
10.If you are prompted to add the .qip file to the current Quartus II project, click Yes (If you want, you
can turn on Automatically Add Quatrus II IP Files to all projects).
Tip: Always read the generated readme.txt file, because it contains information and guidelines specific
to your configuration.
You can now simulate and compile your design. But before compilation, you must make approrriate pin
assignments. You can create a virtual pin to avoid making specific pin assignments for top-level signals
during simulation and not yet ready to map the design to hardware.
For information about the Quatrus II software, including virtual pins and the IP Catalog and Qsys, refer
to the Quartus II Help.
UniPHY-Based External Memory Interface IP
This section contains information about parameterizing UniPHY-based external memory interfaces.
Qsys Interfaces
The following tables list the signals available for each interface in Qsys, and provide a description and
guidance on connecting those interfaces.
DDR2 SDRAM Controller with UniPHY Interfaces
The following table lists the DDR2 SDRAM with UniPHY signals available for each interface in Qsys and
provides a description and guidance on how to connect those interfaces.
Table 9-1: DDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
pll_ref_clk interface
pll_ref_clk
Clock input
PLL reference clock input.
Reset input
Asynchronous global reset for PLL and all logic in
PHY.
global_reset interface
global_reset_n
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-12
EMI_DG
2014.12.15
DDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
soft_reset interface
soft_reset_n
Reset input
Asynchronous reset input. Resets the PHY, but not
the PLL that the PHY uses.
Reset output (PLL
master/no sharing)
When the interface is in PLL master or no sharing
modes, this interface is an asynchronous reset
output of the AFI interface. The controller asserts
this interface when the PLL loses lock or the PHY is
reset.
Reset output (PLL
master/no sharing)
This interface is a copy of the afi_reset interface. It
is intended to be connected to PLL sharing slaves.
Reset input (PLL
slave)
When the interface is in PLL slave mode, this
interface is a reset input that you must connect to
the afi_reset_export_n output of an identically
configured memory interface in PLL master mode.
Clock output (PLL
master/no sharing)
This AFI interface clock can be a full-rate or halfrate memory clock frequency based on the memory
interface parameterization. When the interface is in
PLL master or no sharing modes, this interface is a
clock output.
Clock input (PLL
slave)
This AFI interface clock can be a full-rate or halfrate memory clock frequency based on the memory
interface parameterization. When the interface is in
PLL slave mode, you must connect this afi_clk
input to the afi_clk output of an identically
configured memory interface in PLL master mode.
afi_reset interface
afi_reset_n
afi_reset_export interface
afi_reset_export_n
afi_reset_in interface
afi_reset_n
afi_clk interface
afi_clk
afi_clk_in interface
afi_clk
afi_half_clk interface
afi_half_clk
Altera Corporation
Clock output (PLL
master/no sharing)
The AFI half clock that is half the frequency of afi_
clk.When the interface is in PLL master or no
sharing modes, this interface is a clock output.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
DDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
9-13
Description/How to Connect
afi_half_clk_in interface
afi_half_clk
Clock input (PLL
slave)
The AFI half clock that is half the frequency of afi_
clk.When the interface is in PLL slave mode, this is
a clock input that you must connect to the afi_
half_clk output of an identically configured
memory interface in PLL master mode.
memory interface (DDR2 SDRAM)
mem_a
mem_ba
mem_ck
mem_ck_n
mem_cke
mem_cs_n
mem_dm
mem_ras_n
mem_cas_n
Conduit
Interface signals between the PHY and the memory
device.
mem_we_n
mem_dq
mem_dqs
mem_dqs_n
mem_odt
mem_ac_parity
mem_err_out_n
mem_parity_error_n
memory interface (LPDDR2)
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-14
EMI_DG
2014.12.15
DDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
mem_ca
mem_ck
mem_ck_n
mem_cke
mem_cs_n
Conduit
Interface signals between the PHY and the memory
device.
Avalon-MM Slave
Avalon-MM interface signals between the memory
interface and user logic.
Conduit
Memory interface status signals.
mem_dm
mem_dq
mem_dqs
mem_dqs_n
avl interface
avl_ready
avl_burst_begin
avl_addr
avl_rdata_valid
avl_rdata
avl_wdata
avl_be
avl_read_req
avl_write_req
avl_size
status interface
local_init_done
local_cal_success
local_cal_fail
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
DDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
9-15
Description/How to Connect
oct interface
rup (Stratix III/IV,
®
Arria II GZ)
®
rdn (Stratix III/IV,
Arria II GZ)
Conduit
OCT reference resistor pins for rup/rdn or rzqin.
Conduit
This powerdown interface for the controller is
enabled only when you turn on Enable Auto
Powerdown.
rzq (Stratix V, Arria V,
Cyclone V)
local_powerdown interface
local_powerdn_ack
pll_sharing interface
pll_mem_clk
pll_write_clk
pll_addr_cmd_clk
pll_locked
pll_avl_clk
pll_config_clk
Conduit
Interface signals for PLL sharing, to connect PLL
masters to PLL slaves. This interface is enabled only
when you set PLL sharing mode to master or slave.
Conduit
DLL sharing interface for connecting DLL masters
to DLL slaves. This interface is enabled only when
you set DLL sharing mode to master or slave.
pll_hr_clk
pll_p2c_read_clk
pll_c2p_write_clk
pll_dr_clk
dll_sharing interface
dll_delayctrl
dll_pll_locked
oct_sharing interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-16
EMI_DG
2014.12.15
DDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
seriesterminationcontrol
parallelterminationcontrol
Interface Type
Conduit
Description/How to Connect
OCT sharing interface for connecting OCT masters
to OCT slaves. This interface is enabled only when
you set OCT sharing mode to master or slave.
autoprecharge_req interface
local_autopch_req
Conduit
Precharge interface for connection to a custom
control block. This interface is enabled only when
you turn on Auto precharge Control.
user_refresh interface
local_refresh_req
local_refresh_chip
Conduit
User refresh interface for connection to a custom
control block. This interface is enabled only when
you turn on User Auto-Refresh Control.
Conduit
Self refresh interface for connection to a custom
control block. This interface is enabled only when
you turn on Self-refresh Control.
local_refresh_ack
self_refresh interface
local_self_rfsh_req
local_self_rfsh_chip
local_self_rfsh_ack
ecc_interrupt interface
ecc_interrupt
Conduit
ECC interrupt signal for connection to a custom
control block. This interface is enabled only when
you turn on Error Detection and Correction
Logic.
csr interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
DDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
9-17
Description/How to Connect
csr_write_req
csr_read_req
csr_waitrequest
csr_addr
csr_be
Avalon-MM Slave
Configuration and status register signals for the
memory interface, for connection to an Avalon_
MM master. This interface is enabled only when
you turn on Configuration and Status Register.
csr_wdata
csr_rdata
csr_rdata_valid
Hard Memory Controller MPFE FIFO Clock Interface
mp_cmd_clk
mp_rfifo_clk
mp_wfifo_clk
mp_cmd_reset
Conduit
When you enable the Hard Memory Interface, three
FIFO buffers (command, read data, and write data)
are created in the MPFE. Each FIFO buffer has its
own clock and reset port.
This interface is enabled when you turn on the
Enable Hard Memory Interface.
mp_rfifo_reset
mp_wfifo_reset
Hard Memory Controller Bonding Interface
bonding_in_1
bonding_in_2
bonding_in_3
bonding_out_1
Conduit
Bonding interface to bond two controllers to
expand the bandwidth. This interface is enabled
when you turn on the Export bonding interface.
bonding_out_2
bonding_out_3
Note to Table:
1. Signals available only in DLL master mode.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-18
EMI_DG
2014.12.15
DDR3 SDRAM Controller with UniPHY Interfaces
DDR3 SDRAM Controller with UniPHY Interfaces
The following table lists the DDR3 SDRAM with UniPHY signals available for each interface in Qsys and
provides a description and guidance on how to connect those interfaces.
Table 9-2: DDR3 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
pll_ref_clk interface
pll_ref_clk
Clock input
PLL reference clock input.
Reset input
Asynchronous global reset for PLL and
all logic in PHY.
Reset input
Asynchronous reset input. Resets the
PHY, but not the PLL that the PHY
uses.
Reset output (PLL
master/no sharing)
When the interface is in PLL master or
no sharing modes, this interface is an
asynchronous reset output of the AFI
interface. This interface is asserted
when the PLL loses lock or the PHY is
reset.
Reset output (PLL
master/no sharing)
This interface is a copy of the afi_reset
interface. It is intended to be connected
to PLL sharing slaves.
Reset input (PLL
slave)
When the interface is in PLL slave
mode, this interface is a reset input that
you must connect to the afi_reset_
export_n output of an identically
configured memory interface in PLL
master mode.
global_reset interface
global_reset_n
soft_reset interface
soft_reset_n
afi_reset interface
afi_reset_n
afi_reset_export interface
afi_reset_export_n
afi_reset_in interface
afi_reset_n
afi_clk interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
DDR3 SDRAM Controller with UniPHY Interfaces
Signals in Interface
afi_clk
Interface Type
9-19
Description/How to Connect
Clock output (PLL
master/no sharing)
This AFI interface clock can be full-rate
or half-rate memory clock frequency
based on the memory interface
parameterization. When the interface is
in PLL master or no sharing modes, this
interface is a clock output.
Clock input (PLL
slave)
This AFI interface clock can be full-rate
or half-rate memory clock frequency
based on the memory interface
parameterization. When the interface is
in PLL slave mode, this is a clock input
that you must connect to the afi_clk
output of an identically configured
memory interface in PLL master mode.
Clock output (PLL
master/no sharing)
The AFI half clock that is half the
frequency of afi_clk.When the
interface is in PLL master or no sharing
modes, this interface is a clock output.
Clock input (PLL
slave)
The AFI half clock that is half the
frequency of the afi_clk.When the
interface is in PLL slave mode, you
must connect this afi_half_clk
inputto the afi_half_clk output of an
identically configured memory
interface in PLL master mode.
afi_clk_in interface
afi_clk
afi_half_clk interface
afi_half_clk
afi_half_clk_in interface
afi_half_clk
memory interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-20
EMI_DG
2014.12.15
DDR3 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
mem_a
mem_ba
mem_ck
mem_ck_n
mem_cke
mem_cs_n
mem_dm
mem_ras_n
mem_cas_n
mem_we_n
Conduit
Interface signals between the PHY and
the memory device.
mem_dq
mem_dqs
mem_dqs_n
mem_odt
mem_reset_n
mem_ac_parity
mem_err_out_n
mem_parity_error_n
avl interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
DDR3 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
9-21
Description/How to Connect
avl_ready
avl_burst_begin
avl_addr
avl_rdata_valid
avl_rdata
avl_wdata
Avalon-MM Slave
Avalon-MM interface signals between
the memory interface and user logic.
Conduit
Memory interface status signals.
Conduit
OCT reference resistor pins for rup/rdn
or rzqin.
avl_be
avl_read_req
avl_write_req
avl_size
status interface
local_init_done
local_cal_success
local_cal_fail
oct interface
rup (Stratix III/IV, Arria II GZ)
rdn (Stratix III/IV, Arria II GZ)
rzq (Stratix V, Arria v, Cyclone V)
local_powerdown interface
local_powerdn_ack
Conduit
This powerdown interface for the
controller is enabled only when you
turn on Enable Auto Power Down.
pll_sharing interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-22
EMI_DG
2014.12.15
DDR3 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
pll_mem_clk
pll_write_clk
pll_addr_cmd_clk
pll_locked
pll_avl_clk
pll_config_clk
Conduit
Interface signals for PLL sharing, to
connect PLL masters to PLL slaves. This
interface is enabled only when you set
PLL sharing mode to master or slave.
Conduit
DLL sharing interface for connecting
DLL masters to DLL slaves. This
interface is enabled only when you set
DLL sharing mode to master or slave.
Conduit
OCT sharing interface for connecting
OCT masters to OCT slaves. This
interface is enabled only when you set
OCT sharing mode to master or slave.
pll_hr_clk
pll_p2c_read_clk
pll_c2p_write_clk
pll_dr_clk
dll_sharing interface
dll_delayctrl
dll_pll_locked
oct_sharing interface
seriesterminationcontrol
parallelterminationcontrol
autoprecharge_req interface
local_autopch_req
Conduit
Precharge interface for connection to a
custom control block. This interface is
enabled only when you turn on Autoprecharge Control.
user_refresh interface
local_refresh_req
local_refresh_chip
local_refresh_ack
Altera Corporation
Conduit
User refresh interface for connection to
a custom control block. This interface is
enabled only when you turn on User
Auto Refresh Control.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
DDR3 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
9-23
Description/How to Connect
self_refresh interface
local_self_rfsh_req
local_self_rfsh_chip
Conduit
local_self_rfsh_ack
Self refresh interface for connection to a
custom control block. This interface is
enabled only when you turn on Selfrefresh Control.
ecc_interrupt interface
ecc_interrupt
Conduit
ECC interrupt signal for connection to
a custom control block. This interface is
enabled only when you turn on Error
Detection and Correction Logic.
csr interface
csr_write_req
csr_read_req
csr_waitrequest
csr_addr
csr_be
Avalon-MM Slave
csr_wdata
Configuration and status register
signals for the memory interface, for
connection to an Avalon_MM master.
This interface is enabled only when you
turn on Configuration and Status
Register.
csr_rdata
csr_rdata_valid
Hard Memory Controller MPFE FIFO Clock Interface
mp_cmd_clk
mp_rfifo_clk
mp_wfifo_clk
mp_cmd_reset_n
mp_rfifo_reset_n
Conduit
When you enable the Hard Memory
Interface, three FIFO buffers
(command, read data, and write data)
are created in the MPFE. Each FIFO
buffer has its own clock and reset port.
This interface is enabled when you turn
on the Enable Hard Memory Interface.
mp_wfifo_reset_n
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-24
EMI_DG
2014.12.15
LPDDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
Hard Memory Controller Bonding Interface
bonding_in_1
bonding_in_2
bonding_in_3
bonding_out_1
Conduit
Use bonding interface to bond two
controllers to expand the bandwidth.
This interface is enabled when you turn
on the Export bonding interface.
bonding_out_2
bonding_out_3
Note to Table:
1. Signals available only in DLL master mode.
LPDDR2 SDRAM Controller with UniPHY Interfaces
The following table lists the LPDDR2 SDRAM signals available for each interface in Qsys and provides a
description and guidance on how to connect those interfaces.
Table 9-3: LPDDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
pll_ref_clk interface
pll_ref_clk
Clock input
PLL reference clock input.
Reset input
Asynchronous global reset for PLL and
all logic in PHY.
Reset input
Asynchronous reset input. Resets the
PHY, but not the PLL that the PHY
uses.
global_reset interface
global_reset_n
soft_reset interface
soft_reset_n
afi_reset interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
LPDDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
afi_reset_n
Interface Type
9-25
Description/How to Connect
Reset output (PLL
master/no sharing)
When the interface is in PLL master or
no sharing modes, this interface is an
asynchronous reset output of the AFI
interface. The controller asserts this
interface when the PLL loses lock or the
PHY is reset.
Reset output (PLL
master/no sharing)
This interface is a copy of the afi_reset
interface. It is intended to be connected
to PLL sharing slaves.
Reset input (PLL
slave)
When the interface is in PLL slave
mode, this interface is a reset input that
you must connect to the afi_reset_
export_n output of an identically
configured memory interface in PLL
master mode.
Clock output (PLL
master/no sharing)
This AFI interface clock can be a fullrate or half-rate memory clock
frequency based on the memory
interface parameterization. When the
interface is in PLL master or no sharing
modes, this interface is a clock output.
Clock input (PLL
slave)
This AFI interface clock can be a fullrate or half-rate memory clock
frequency based on the memory
interface parameterization. When the
interface is in PLL slave mode, you
must connect this afi_clk input to the
afi_clk output of an identically
configured memory interface in PLL
master mode.
Clock output (PLL
master/no sharing)
The AFI half clock that is half the
frequency of afi_clk. When the
interface is in PLL master or no sharing
modes, this interface is a clock output.
afi_reset_export interface
afi_reset_export_n
afi_reset_in interface
afi_reset_n
afi_clk interface
afi_clk
afi_clk_in interface
afi_clk
afi_half_clk interface
afi_half_clk
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-26
EMI_DG
2014.12.15
LPDDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
afi_half_clk_in interface
afi_half_clk
Clock input (PLL
slave)
The AFI half clock that is half the
frequency of afi_clk. When the
interface is in PLL slave mode, this is a
clock input that you must connect to
the afi_half_clk output of an identically
configured memory interface in PLL
master mode.
Memory interface
mem_ca
mem_ck
mem_ck_n
mem_cke
mem_cs_n
Conduit
Interface signals between the PHY and
the memory device.
mem_dm
mem_dq
mem_dqs
mem_dqs_n
avl interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
LPDDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
9-27
Description/How to Connect
avl_ready
avl_burst_begin
avl_addr
avl_rdata_valid
avl_rdata
avl_wdata
Avalon-MM Slave
Avalon-MM interface signals between
the memory interface and user logic.
Conduit
Memory interface status signals.
Conduit
OCT reference resistor pins for rzqin.
Conduit
This powerdown interface for the
controller is enabled only when you
turn on Enable Auto Powerdown.
avl_be
avl_read_req
avl_write_req
avl_size
status interface
local_init_done
local_cal_success
local_cal_fail
oct interface
rzq
local_powerdown interface
local_powerdn_ack
local_deep_powerdn interface
local_deep_powerdn_ack
local_deep_powerdn_chip
local_deep_powerdn_req
Conduit
Deep power down interface for the
controller to enable deep power down.
This interface is enable when turn on
Enable Deep Power-Down Controls.
pll_sharing interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-28
EMI_DG
2014.12.15
LPDDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
pll_mem_clk
pll_write_clk
pll_addr_cmd_clk
pll_locked
pll_avl_clk
Conduit
Interface signals for PLL sharing, to
connect PLL masters to PLL slaves. This
interface is enabled only when you set
PLL sharing mode to master or slave.
Conduit
DLL sharing interface for connecting
DLL masters to DLL slaves. This
interface is enabled only when you set
DLL sharing mode to master or slave.
Conduit
OCT sharing interface for connecting
OCT masters to OCT slaves. This
interface is enabled only when you set
OCT sharing mode to master or slave.
pll_config_clk
pll_mem_phy_clk
afi_phy_clk
pll_write_clk_pre_phy_clk
dll_sharing interface
dll_delayctrl
dll_pll_locked
oct_sharing interface
seriesterminationcontrol
parallelterminationcontrol
autoprecharge_req interface
local_autopch_req
Conduit
Precharge interface for connection to a
custom control block. This interface is
enabled only when you turn on Autoprecharge Control.
user_refresh interface
local_refresh_req
local_refresh_chip
local_refresh_ack
Conduit
User refresh interface for connection to
a custom control block. This interface is
enabled only when you turn on User
Auto-Refresh Control.
self_refresh interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
LPDDR2 SDRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
local_self_rfsh_req
local_self_rfsh_chip
Conduit
local_self_rfsh_ack
9-29
Description/How to Connect
Self refresh interface for connection to a
custom control block. This interface is
enabled only when you turn on Selfrefresh Control.
ecc_interrupt interface
ecc_interrupt
Conduit
ECC interrupt signal for connection to
a custom control block. This interface is
enabled only when you turn on Error
Detection and Correction Logic.
csr interface
csr_write_req
csr_read_req
csr_waitrequest
csr_addr
csr_be
Avalon-MM Slave
csr_wdata
Configuration and status register
signals for the memory interface, for
connection to an Avalon_MM master.
This interface is enabled only when you
turn on Configuration and Status
Register.
csr_rdata
csr_rdata_valid
Local_rdata_error interface
Local_rdata_error
Conduit
Indicates read data error when Error
Detection and Correction logic is
enabled.
Hard Memory Controller MPFE FIFO Clock Interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-30
EMI_DG
2014.12.15
QDR II and QDR II+ SRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
mp_cmd_clk
mp_rfifo_clk
mp_wfifo_clk
mp_cmd_reset_n
Conduit
When you enable the Hard Memory
Interface, three FIFO buffers
(command, read data, and write data)
are created in the MPFE. Each FIFO
buffer has its own clock and reset port.
This interface is enabled when you turn
on the Enable Hard Memory Interface.
mp_rfifo_reset_n
mp_wfifo_reset_n
Hard Memory Controller Bonding Interface
bonding_in_1
bonding_in_2
bonding_in_3
bonding_out_1
Conduit
Bonding interface to bond two control‐
lers to expand the bandwidth. This
interface is enabled when you turn on
the Export bonding interface.
bonding_out_2
bonding_out_3
QDR II and QDR II+ SRAM Controller with UniPHY Interfaces
The following table lists the QDR II and QDR II+ SRAM signals available for each interface in Qsys and
provides a description and guidance on how to connect those interfaces.
Table 9-4: QDR II and QDR II+ SRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
pll_ref_clk interface
pll_ref_clk
Clock input
PLL reference clock input.
Reset input
Asynchronous global reset for PLL and
all logic in PHY.
global_reset interface
global_reset_n
soft_reset interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
QDR II and QDR II+ SRAM Controller with UniPHY Interfaces
Signals in Interface
soft_reset_n
Interface Type
9-31
Description/How to Connect
Reset input
Asynchronous reset input. Resets the
PHY, but not the PLL that the PHY
uses.
Reset output (PLL
master/no sharing)
When the interface is in PLL master or
no sharing modes, this interface is an
asynchronous reset output of the AFI
interface. This interface is asserted
when the PLL loses lock or the PHY is
reset.
Reset output (PLL
master/no sharing)
This interface is a copy of the afi_reset
interface. It is intended to be connected
to PLL sharing slaves.
Reset input (PLL
slave)
When the interface is in PLL slave
mode, this interface is a reset input that
you must connect to the afi_reset_
export_n output of an identically
configured memory interface in PLL
master mode.
Clock output (PLL
master/no sharing)
This AFI interface clock can be full-rate
or half-rate memory clock frequency
based on the memory interface
parameterization. When the interface is
in PLL master or no sharing modes, this
interface is a clock output.
Clock input (PLL
slave)
This AFI interface clock can be full-rate
or half-rate memory clock frequency
based on the memory interface
parameterization. When the interface is
in PLL slave mode, this is a clock input
that you must connect to the afi_clk
output of an identically configured
memory interface in PLL master mode.
afi_reset interface
afi_reset_n
afi_reset_export interface
afi_reset_export_n
afi_reset_in interface
afi_reset_n
afi_clk interface
afi_clk
afi_clk_in interface
afi_clk
afi_half_clk interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-32
EMI_DG
2014.12.15
QDR II and QDR II+ SRAM Controller with UniPHY Interfaces
Signals in Interface
afi_half_clk
Interface Type
Description/How to Connect
Clock output (PLL
master/no sharing)
The AFI half clock that is half the
frequency of afi_clk.When the
interface is in PLL master or no sharing
modes, this interface is a clock output.
Clock input (PLL
slave)
The AFI half clock that is half the
frequency of afi_clk.When the
interface is in PLL slave mode, you
must connect this afi_half_clk input
to the afi_half_clk output of an
identically configured memory
interface in PLL master mode.
afi_half_clk_in interface
afi_half_clk
memory interface
mem_a
mem_cqn
mem_bws_n
mem_cq
Interface signals between the PHY and
the memory device.
mem_d
mem_k
mem_k_n
mem_q
Conduit
The sequencer holds mem_doff_n low
during initialization to ensure that
internal PLL and DLL circuits in the
memory device do not lock until clock
signals have stabilized.
mem_wps_n
mem_rps_n
mem_doff_n
avl_r interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
QDR II and QDR II+ SRAM Controller with UniPHY Interfaces
Signals in Interface
Interface Type
9-33
Description/How to Connect
avl_r_read_req
avl_r_ready
avl_r_addr
avl_r_size
Avalon-MM Slave
Avalon-MM interface between memory
interface and user logic for read
requests.
Avalon-MM Slave
Avalon-MM interface between memory
interface and user logic for write
requests.
Conduit
Memory interface status signals.
Conduit
OCT reference resistor pins for rup/rdn
or rzqin.
avl_r_rdata_valid
avl_r_rdata
avl_w interface
avl_w_write_req
avl_w_ready
avl_w_addr
avl_w_size
avl_w_wdata
avl_w_be
status interface
local_init_done
local_cal_success
local_cal_fail
oct interface
rup (Stratix III/IV, Arria II GZ,
Arria II GX)
rdn (Stratix III/IV, Arria II GZ,
Arria II GX)
rzq (Stratix V, Arria V, Cyclone V)
pll_sharing interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-34
EMI_DG
2014.12.15
RLDRAM II Controller with UniPHY Interfaces
Signals in Interface
Interface Type
Description/How to Connect
pll_mem_clk
pll_write_clk
pll_addr_cmd_clk
pll_locked
pll_avl_clk
pll_config_clk
Conduit
Interface signals for PLL sharing, to
connect PLL masters to PLL slaves. This
interface is enabled only when you set
PLL sharing mode to master or slave.
Conduit
DLL sharing interface for connecting
DLL masters to DLL slaves. This
interface is enabled only when you set
DLL sharing mode to master or slave.
pll_hr_clk
pll_p2c_read_clk
pll_c2p_write_clk
pll_dr_clk
dll_sharing interface
dll_delayctrl
dll_pll_locked
oct_sharing interface
seriesterminationcontrol(Stratix III/IV/
V, Arria II GZ, Arria V, Cyclone V)
parallelterminationcontrol (Stratix III/ Conduit
IV/V, Arria II GZ, Arria V, Cyclone V)
OCT sharing interface for connecting
OCT masters to OCT slaves. This
interface is enabled only when you set
OCT sharing mode to master or slave.
terminationcontrol (Arria II GX)
Note to Table:
1. Signals available only in DLL master mode.
RLDRAM II Controller with UniPHY Interfaces
The following table lists the RLDRAM II signals available for each interface in Qsys and provides a
description and guidance on how to connect those interfaces.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
RLDRAM II Controller with UniPHY Interfaces
9-35
Table 9-5: RLDRAM II Controller with UniPHY Interfaces
Interface Name
Interface Type
Description
pll_ref_clk interface
pll_ref_clk
Clock input.
PLL reference clock input.
Reset input
Asynchronous global reset for PLL and
all logic in PHY.
Reset input
Asynchronous reset input. Resets the
PHY, but not the PLL that the PHY
uses.
Reset output (PLL
master/no sharing)
When the interface is in PLL master or
no sharing modes, this interface is an
asynchronous reset output of the AFI
interface. This interface is asserted
when the PLL loses lock or the PHY is
reset.
Reset output (PLL
master/no sharing)
This interface is a copy of the afi_reset
interface. It is intended to be connected
to PLL sharing slaves.
Reset input (PLL
slave)
When the interface is in PLL slave
mode, this interface is a reset input that
you must connect to the afi_reset_
export_n output of an identically
configured memory interface in PLL
master mode.
Clock output (PLL
master/no sharing)
This AFI interface clock can be full-rate
or half-rate memory clock frequency
based on the memory interface
parameterization. When the interface is
in PLL master or no sharing modes, this
interface is a clock output.
global_reset interface
global_reset_n
soft_reset interface
soft_reset_n
afi_reset interface
afi_reset_n
afi_reset_export interface
afi_reset_export_n
afi_reset_in interface
afi_reset_n
afi_clk interface
afi_clk
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-36
EMI_DG
2014.12.15
RLDRAM II Controller with UniPHY Interfaces
Interface Name
Interface Type
Description
afi_clk_in interface
afi_clk
Clock input (PLL
slave)
This AFI interface clock can be full-rate
or half-rate memory clock frequency
based on the memory interface
parameterization. When the interface is
in PLL slave mode, you must connect
this afi_clk input to the afi_clk
output of an identically configured
memory interface in PLL master mode.
Clock output (PLL
master/no sharing)
The AFI half clock that is half the
frequency of the afi_clk.When the
interface is in PLL master or no sharing
modes, this interface is a clock output.
Clock input (PLL
slave)
The AFI half clock that is half the
frequency of the afi_clk.When the
interface is in PLL slave mode, you
must connect this afi_half_clk input
to the afi_half_clk output of an
identically configured memory
interface in PLL master mode.
afi_half_clk interface
afi_half_clk
afi_half_clk_in interface
afi_half_clk
memory interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
RLDRAM II Controller with UniPHY Interfaces
Interface Name
Interface Type
9-37
Description
mem_a
mem_ba
mem_ck
mem_ck_n
mem_cs_n
mem_dk
mem_dk_n
Conduit
Interface signals between the PHY and
the memory device.
Avalom-MM Slave
Avalon-MM interface between memory
interface and user logic.
mem_dm
mem_dq
mem_qk
mem_qk_n
mem_ref_n
mem_we_n
avl interface
avl_size
avl_wdata
avl_rdata_valid
avl_rdata
avl_ready
avl_write_req
avl_read_req
avl_addr
status interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-38
EMI_DG
2014.12.15
RLDRAM II Controller with UniPHY Interfaces
Interface Name
Interface Type
Description
local_init_done
local_cal_success
Conduit
Memory interface status signals.
Conduit
OCT reference resistor pins for rup/rdn
or rzqin.
Conduit
Interface signals for PLL sharing, to
connect PLL masters to PLL slaves. This
interface is enabled only when you set
PLL sharing mode to master or slave.
local_cal_fail
oct interface
rup (Stratix III/IV, Arria II GZ)
rdn (Stratix III/IV, Arria II GZ)
rzq (Stratix V)
pll_sharing interface
pll_mem_clk
pll_write_clk
pll_addr_cmd_clk
pll_locked
pll_avl_clk
pll_config_clk
pll_hr_clk
pll_p2c_read_clk
pll_c2p_write_clk
pll_dr_clk
dll_sharing interface
dll_delayctrl
Conduit
DLL sharing interface for connecting
DLL masters to DLL slaves. This
interface is enabled only when you set
DLL sharing mode to master or slave.
oct_sharing interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
RLDRAM 3 UniPHY Interface
Interface Name
Interface Type
seriesterminationcontrol
parallelterminationcontrol
Conduit
9-39
Description
OCT sharing interface for connecting
OCT masters to OCT slaves. This
interface is enabled only when you set
OCT sharing mode to master or slave.
parity_error_interrupt interface
parity_error
Conduit
Parity error interrupt conduit for
connection to custom control block.
This interface is enabled only if you
turn on Enable Error Detection Parity.
user_refresh interface
ref_req
ref_ba
Conduit
ref_ack
User refresh interface for connection to
custom control block. This interface is
enabled only if you turn on Enable
User Refresh.
reserved interface
reserved
Conduit
Reserved interface required for certain
pin configurations when you select the
®
Nios II-based sequencer.
Note to Table:
1. Signals available only in DLL master mode.
RLDRAM 3 UniPHY Interface
The following table lists the RLDRAM 3 signals available for each interface in Qsys and provides a
description and guidance on how to connect those interfaces.
Table 9-6: RLDRAM 3 UniPHY Interface
Signals in Interface
Interface Type
Description/How to Connect
pll_ref_clk interface
pll_ref_clk
Clock input
PLL reference clock input.
Reset input
Asynchronous global reset for PLL and
all logic in PHY.
global_reset interface
global_reset_n
soft_reset interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-40
EMI_DG
2014.12.15
RLDRAM 3 UniPHY Interface
Signals in Interface
soft_reset_n
Interface Type
Description/How to Connect
Reset input
Asynchronous reset input. Resets the
PHY, but not the PLL that the PHY
uses.
Reset output (PLL
master/no sharing)
When the interface is in PLL master or
no sharing modes, this interface is an
asynchronous reset output of the AFI
interface. The controller asserts this
interface when the PLL loses lock or the
PHY is reset.
Reset output (PLL
master/no sharing)
This interface is a copy of the afi_reset
interface. It is intended to be connected
to PLL sharing slaves.
Reset input (PLL
slave)
When the interface is in PLL slave
mode, this interface is a reset input that
you must connect to the afi_reset_
export_n output of an identically
configured memory interface in PLL
master mode.
Clock output (PLL
master/no sharing)
This AFI interface clock can be a fullrate or half-rate memory clock
frequency based on the memory
interface parameterization. When the
interface is in PLL master or no sharing
modes, this interface is a clock output.
Clock input (PLL
slave)
This AFI interface clock can be a fullrate or half-rate memory clock
frequency based on the memory
interface parameterization. When the
interface is in PLL slave mode, you
must connect this afi_clk input to the
afi_clk output of an identically
configured memory interface in PLL
master mode.
afi_reset interface
afi_reset_n
afi_reset_export interface
afi_reset_export_n
afi_reset_in interface
afi_reset_n
afi_clk interface
afi_clk
afi_clk_in interface
afi_clk
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
RLDRAM 3 UniPHY Interface
Signals in Interface
Interface Type
9-41
Description/How to Connect
afi_half_clk interface
afi_half_clk
Clock output (PLL
master/no sharing)
The AFI half clock that is half the
frequency of afi_clk. When the
interface is in PLL master or no sharing
modes, this interface is a clock output.
Clock input (PLL
slave)
The AFI half clock that is half the
frequency of afi_clk. When the
interface is in PLL slave mode, this is a
clock input that you must connect to
the afi_half_clk output of an identically
configured memory interface in PLL
master mode.
afi_half_clk_in interface
afi_half_clk
memory interface
mem_a
mem_ba
mem_ck
mem_ck_n
mem_cs_n
mem_dk
mem_dk_n
mem_dm
Conduit
Interface signals between the PHY and
the memory device.
mem_dq
mem_qk
mem_qk_n
mem_ref_n
mem_we_n
mem_reset_n
afi interface
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-42
EMI_DG
2014.12.15
RLDRAM 3 UniPHY Interface
Signals in Interface
Interface Type
Description/How to Connect
afi_addr
afi_ba
afi_cs_n
afi_we_n
afi_ref_n
afi_wdata_valid
afi_wdata
afi_dm
afi_rdata
Avalon-MM Slave
Altera PHY interface (AFI) signals
between the PHY and controller.
Conduit
OCT reference resistor pins for rzqin.
afi_rdata_en
afi_rdata_en_full
afi_rdata_valid
afi_rst_n
afi_cal_success
afi_cal_fail
afi_wlat
afi_rlat
oct interface
oct_rzqin
pll_sharing interface
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Generated Files for Memory Controllers with the UniPHY IP
Signals in Interface
Interface Type
9-43
Description/How to Connect
pll_mem_clk
pll_write_clk
pll_addr_cmd_clk
pll_locked
pll_avl_clk
pll_config_clk
Conduit
Interface signals for PLL sharing, to
connect PLL masters to PLL slaves. This
interface is enabled only when you set
PLL sharing mode to master or slave.
Conduit
DLL sharing interface for connecting
DLL masters to DLL slaves. This
interface is enabled only when you set
DLL sharing mode to master or slave.
Conduit
OCT sharing interface for connecting
OCT masters to OCT slaves. This
interface is enabled only when you set
OCT sharing mode to master or slave.
pll_mem_phy_clk
afi_phy_clk
pll_write_clk_pre_phy_clk
pll_p2c_read_clk
pll_c2p_write_clk
dll_sharing interface
dll_delayctrl
dll_pll_locked
oct_sharing interface
seriesterminationcontrol
parallelterminationcontrol
Generated Files for Memory Controllers with the UniPHY IP
When you complete the IP generation flow, there are generated files created in your project directory. The
directory structure created varies somewhat, depending on the tool used to parameterize and generate the
IP.
Note: The PLL parameters are statically defined in the <variation_name>_parameters.tcl at generation
time. To ensure timing constraints and timing reports are correct, when you edit the PLL
parameters, apply those changes to the PLL parameters in this file.
The following table lists the generated directory structure and key files created with the IP Catalog and
Qsys.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-44
EMI_DG
2014.12.15
Generated Files for Memory Controllers with the UniPHY IP
Table 9-7: Generated Directory Structure and Key Files for the IP Catalog Synthesis Files
Directory
File Name
Description
<working_dir>/
<variation_name>.qip
Quartus II IP file which refers to all
generated files in the synthesis fileset.
Include this file in your Quartus II project.
<working_dir>/
<variation_name>.v or
<variation_name>.vhd
Top-level wrapper synthesis files.
.v is IEEE Encrypted Verilog.
.vhd is generated VHDL.
<working_dir>/<variation_ <variation_name>_0002.v
name>/
UniPHY top-level wrapper.
<working_dir>/<variation_ *.v, *.sv, *.tcl, *.sdc, *.ppf
name>/
RTL and constraints files for synthesis.
<working_dir>/<variation_ <variation_name>_p0_pin_
name>/
assignments.tcl
Pin constraints script to be run after
synthesis.
Table 9-8: Generated Directory Structure and Key Files for the IP Catalog Simulation Files
Directory
File Name
Description
<working_dir>/<variation_ <variation_name>.v
name>_sim/
Top-level wrapper simulation files for both
Verilog and VHDL.
<working_dir>/<variation_ *.v, *.sv, *.vhd, *.vho,*hex,
name>_sim/<subcompo‐
*.mif
nent_module>/
RTL and constraints files for simulation.
.v and .sv files are IEEE Encrypted Verilog.
.vhd and .vho are generated VHDL.
Table 9-9: Generated Directory Structure and Key Files for the IP Catalog—Example Design Fileset
Synthesis Files
Directory
File Name
Description
<variation_name>_
<variation_name>_
example_design/example_ example.qip
project/
Quartus II IP file that refers to all generated
files in the synthesizable project.
<variation_name>_
<variation_name>_
example_design/example_ example.qpf
project/
Quartus II project for synthesis flow.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Generated Files for Memory Controllers with the UniPHY IP
Directory
File Name
<variation_name>_
<variation_name>_
example_design/example_ example.qsf
project/
9-45
Description
Quartus II project for synthesis flow.
<variation_name>_
<variation_name>_example.v Top-level wrapper.
example_design/example_
project/ <variation_name>
_example/
<variation_name>_
*.v, *.sv, *.tcl, *.sdc, *.ppf
example_design/example_
project/ <variation_name>
_example/ submodules/
RTL and constraints files.
<variation_name>_
<variation_name>_example_
example_design/example_ if0_p0_pin_assignments.tcl
project/ <variation_name>
_example/ submodules/
Pin constraints script to be run after
synthesis.
_if0 and _p0 are instance names.
Table 9-10: Generated Directory Structure and Key Files for the IP Catalog—Example Design Fileset
Simulation Files
Directory
File Name
Description
<variation_name>_
example_design/
simulation/
generate_sim_verilog_
example_design.tcl
<variation_name>_
example_design/
simulation/
generate_sim_vhdl_example_ Run this file to generate the VHDL
design.tcl
simulation example design.
<variation_name>_
example_design/
simulation/
README.txt
A text file with instructions about how to
generate and run the simulation example
design.
<variation_name>_
example_design/
simulation/verilog/
mentor
run.do
ModelSim script to simulate the generated
Verilog example design.
<variation_name>_
example_design/
simulation/vhdl/mentor
run.do
ModelSim script to simulate the generated
VHDL example design.
Implementing and Parameterizing Memory IP
Send Feedback
Run this file to generate the Verilog
simulation example design.
Altera Corporation
9-46
EMI_DG
2014.12.15
Generated Files for Memory Controllers with the UniPHY IP
Directory
File Name
Description
<variation_name>_
example_design/
simulation/verilog/
<variation_name>_sim/
<variation_name>_example_
sim.v
Top-level wrapper (Testbench) for Verilog.
<variation_name>_
example_design/
simulation/vhdl/
<variation_name>_sim/
<variation_name>_example_
sim.vhd
Top-level wrapper (Testbench) for VHDL.
<variation_name>_
example_design/
simulation/ <variation_
name>_sim/verilog/
submodules/
*.v, *.sv, *.hex, *.mif
RTL and ROM data for Verilog.
<variation_name>_
example_design/
simulation/ <variation_
name>_sim/vhdl/
submodules/
*.vhd, *.vho, *.hex, *.mif
RTL and ROM data for VHDL.
Table 9-11: Generated Directory Structure and Key Files for Qsys
Directory
File Name
Description
<working_dir>/<system_
name>/synthesis/
<system_name>.qip
Quartus II IP file that refers to all the
generated files in the synthesis fileset.
<working_dir>/<system_
name>/synthesis/
<system_name>.v
System top-level RTL for synthesis.
<working_dir>/<system_
name>/simulation/
<system_name>.v or
<variation_name>.vhd
System top-level RTL for simulation.
.v file is IEEE Encrypted Verilog.
.vhd file is generated VHDL.
<working_dir>/<system_
name>/synthesis/
submodules/
*.v, *.sv, *.tcl, *.sdc, *.ppf
RTL and constraints files for synthesis.
<working_dir>/<system_
name>/simulation/
submodules/
*.v, *.sv, *.hex, *.mif
RTL and ROM data for simulation.
The following table lists the prefixes or instance names of submodule files within the memory interface IP.
These instances are concatenated to form unique synthesis and simulation filenames.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Memory Controllers
9-47
Table 9-12: Prefixes of Submodule Files
Prefixes
Description
_c0
Specifies the controller.
_d0
Specifies the driver or traffic generator.
_dll0
Specifies the DLL.
_e0
Specifies the example design.
_if0
Specifies the memory Interface.
_m0
Specifies the AFI mux.
_oct0
Specifies the OCT.
_p0
Specifies the PHY.
_pll0
Specifies the PLL.
_s0
Specifies the sequencer.
_t0
Specifies the traffic generator status checker.
Parameterizing Memory Controllers
This section describes the parameters you can set for various UniPHY-based memory controllers.
Parameterizing Memory Controllers with UniPHY IP
The Parameter Settings page in the parameter editor allows you to parameterize the following settings for
the LPDDR2, DDR2, DDR3 SDRAM, QDR II, QDR II+ SRAM, RLDRAM II, and RLDRAM 3 memory
controllers with the UniPHY IP:
•
•
•
•
•
•
PHY Settings
Memory Parameters
Memory Timing
Board Settings
Controller Settings
Diagnostics
The messages window at the bottom of the parameter editor displays information about the memory
interface, warnings, and errors if you are trying to create something that is not supported.
Enabling the Hard Memory Interface
For Arria V and Cyclone V devices, enable the hard memory interface by turning on Interface Type >
Enable Hard Memory Interface in the parameter editor. The hard memory interface uses the hard
memory controller and hard memory PHY blocks in the Arria V and Cyclone V devices.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-48
EMI_DG
2014.12.15
PHY Settings for UniPHY IP
The half-rate bridge option is available only as an SOPC Builder component, Avalon-MM DDR
Memory Half-Rate Bridge, for use in a Qsys project.
PHY Settings for UniPHY IP
The following table lists the PHY parameters for UniPHY-based EMIF IP.
Table 9-13: PHY Parameters
Parameter
Description
General Settings
Speed Grade
Specifies the speed grade of the targeted FPGA device that affects the
generated timing constraints and timing reporting.
Generate PHY only
Turn on this option to generate the UniPHY core without a memory
controller. When you turn on this option, the AFI interface is exported so
that you can easily connect your own memory controller.
Not applicable to RLDRAM 3 UniPHY as no controller support for
RLDRAM 3 UniPHY.
Clocks
Memory clock frequency
The frequency of the clock that drives the memory device. Use up to 4
decimal places of precision.
To obtain the maximum supported frequency for your target memory
configuration, refer to the External Memory Interface Spec Estimator page
on the Altera website.
Achieved memory clock
frequency
The actual frequency the PLL generates to drive the external memory
interface (memory clock).
PLL reference clock
frequency
The frequency of the input clock that feeds the PLL. Use up to 4 decimal
places of precision.
Rate on Avalon-MM
interface
The width of data bus on the Avalon-MM interface. Full results in a width of
2× the memory data width. Half results in a width of 4× the memory data
width. Quarter results in a width of 8× the memory data width. Use Quarter
for memory frequency 533 MHz and above.
To determine the Avalon-MM interface rate selection for other memories,
refer to the local interface clock rate for your target device in the External
Memory Interface Spec Estimator page on the Altera website.
Note: MAX 10 devices support only half-rate Avalon-MM interface.
Achieved local clock
frequency
The actual frequency the PLL generates to drive the local interface for the
memory controller (AFI clock).
Enable AFI half rate clock Export the afi_half_rate clock which is running half of the AFI clock rate to
the top level.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
PHY Settings for UniPHY IP
Parameter
9-49
Description
Advanced PHY Settings
Advanced clock phase
control
Enables access to clock phases. Default value should suffice for most DIMMs
and board layouts, but can be modified if necessary to compensate for larger
address and command versus clock skews.
This option is available for DDR, DDR2 and DDR3 SDRAM only.
Note: This parameter is not available for MAX 10 devices.
Additional address and
command clock phase
Allows you to increase or decrease the amount of phase shift on the address
and command clock. The base phase shift center aligns the address and
command clock at the memory device, which may not be the optimal setting
under all circumstances. Increasing or decreasing the amount of phase shift
can improve timing. The default value is 0 degrees.
In DDR, DDR2, DDR3 SDRAM, and LPDDR2 SDRAM, you can set this
value from -360 to 360 degrees. In QDRII/II+ SRAM and RLDRAM II, the
available settings are -45, -22.5, 22.5, and 45.
To achieve the optimum setting, adjust the value based on the address and
command timing analysis results.
Note: This parameter is not available for MAX 10 devices.
Additional phase for core- Allows you to phase shift the latching clock of the core-to-periphery
to-periphery transfer
transfers. By delaying the latch clock, a positive phase shift value improves
setup timing for transfers between registers in the core and the half-rate
DDIO_OUT blocks in the periphery, respectively. Adjust this setting according
to the core timing analysis.
The default value is 0 degrees. You can set this value from -179 to 179
degrees.
Note: This parameter is not available for MAX 10 devices.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-50
EMI_DG
2014.12.15
PHY Settings for UniPHY IP
Parameter
Description
Additional CK/CK# phase Allows you to increase or decrease the amount of phase shift on the CK/CK#
clock. The base phase shift center aligns the address and command clock at
the memory device, which may not be the optimal setting under all
circumstances. Increasing or decreasing the amount of phase shift can
improve timing. Increasing or decreasing the phase shift on CK/CK# also
impacts the read, write, and leveling transfers, which increasing or
decreasing the phase shift on the address and command clocks does not.
To achieve the optimum setting, adjust the value based on the address and
command timing analysis results. Ensure that the read, write, and write
leveling timings are met after adjusting the clock phase. Adjust this value
when there is a core timing failure after adjusting Additional address and
command clock phase.
The default value is 0 degrees. You can set this value from -360 to 360
degrees.
This option is available for LPDDR2, DDR, DDR2, and DDR3 SDRAM only.
Note: This parameter is not available for MAX 10 devices.
Supply voltage
The supply voltage and sub-family type of memory.
This option is available for DDR3 SDRAM only.
I/O standard
The I/O standard voltage. Set the I/O standard according to your design’s
memory standard.
PLL sharing mode
When you select No sharing, the parameter editor instantiates a PLL block
without exporting the PLL signals. When you select Master, the parameter
editor instantiates a PLL block and exports the signals. When you select
Slave, the parameter editor exposes a PLL interface and you must connect an
external PLL master to drive the PLL slave interface signals.
Select No sharing if you are not sharing PLLs, otherwise select Master or
Slave.
For more information about resource sharing, refer to “The DLL and PLL
Sharing Interface” section in the Functional Description—UniPHY chapter
of the External Memory Interface Handbook.
Note: This parameter is not available for MAX 10 devices.
Number of PLL sharing
interfaces
This option allows you to specify the number of PLL sharing interfaces to
create, facilitating creation of many one-to-one connections in Qsys flow. In
Megawizard, you can select one sharing interface and manually connect the
master to all the slaves.
This option is enabled when you set PLL sharing mode to Master.
Note: This parameter is not available for MAX 10 devices.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
PHY Settings for UniPHY IP
Parameter
DLL sharing mode
9-51
Description
When you select No sharing, the parameter editor instantiates a DLL block
without exporting the DLL signals. When you select Master, the parameter
editor instantiates a DLL block and exports the signals. When you select
Slave, the parameter editor exposes a DLL interface and you must connect
an external DLL master to drive the DLL slave signals.
Select No sharing if you are not sharing DLLs, otherwise select Master or
Slave.
For more information about resource sharing, refer to “The DLL and PLL
Sharing Interface” section in the Functional Description—UniPHY chapter
of the External Memory Interface Handbook.
Note: This parameter is not available for MAX 10 devices.
Number of DLL sharing
interfaces
This option allows you to specify the number of DLL sharing interfaces to
create, facilitating creation of many one-to-one connections in Qsys flow. In
Megawizard, you can select one sharing interface and manually connect the
master to all the slaves.
This option is enabled when you set PLL sharing mode to Master.
Note: This parameter is not available for MAX 10 devices.
OCT sharing mode
When you select No sharing, the parameter editor instantiates an OCT
block without exporting the OCT signals. When you select Master, the
parameter editor instantiates an OCT block and exports the signals. When
you select Slave, the parameter editor exposes an OCT interface and you
must connect an external OCT control block to drive the OCT slave signals.
Select No sharing if you are not sharing OCT blocks, otherwise select
Master or Slave.
For more information about resource sharing, refer to “The OCT Sharing
Interface” section in the Functional Description—UniPHY chapter of the
External Memory Interface Handbook.
Note: This parameter is not available for MAX 10 devices.
Number of OCT sharing
interfaces
This option allows you to specify the number of OCT sharing interfaces to
create, facilitating creation of many one-to-one connections in Qsys flow. In
Megawizard, you can select one sharing interface and manually connect the
master to all the slaves.
This option is enabled when you set PLL sharing mode to Master.
Note: This parameter is not available for MAX 10 devices.
Reconfigurable PLL
location
When you set the PLL used in the UniPHY memory interface to be reconfig‐
urable at run time, you must specify the location of the PLL. This assignment
generates a PLL that can only be placed in the given sides.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-52
EMI_DG
2014.12.15
Memory Parameters for LPDDR2, DDR2 and DDR3 SDRAM for UniPHY IP
Parameter
Description
Sequencer optimization
Select Performance to enable the Nios II-based sequencer, or Area to enable
the RTL-based sequencer.
Altera recommends that you enable the Nios-based sequencer for memory
clock frequencies greater than 400 MHz and enable the RTL-based
sequencer if you want to reduce resource utilization.
This option is available for QDRII and QDR II+ SRAM, and RLDRAM II
only.
Note: This parameter is not available for MAX 10 devices.
Related Information
• External Memory Interface Spec Estimator
• Functional Description–UniPHY
Memory Parameters for LPDDR2, DDR2 and DDR3 SDRAM for UniPHY IP
The following table lists the memory parameters for LPDDR2, DDR2 and DDR3 SDRAM.
Use the Memory Parameters tab to apply the memory parameters from your memory manufacturer’s
data sheet.
Table 9-14: Memory Parameters for LPDDR2, DDR2, and DDR3 SDRAM
Parameter
Description
Memory vendor
The vendor of the memory device. Select
the memory vendor according to the
memory vendor you use. For memory
vendors that are not listed in the setting,
select JEDEC with the nearest memory
parameters and edit the parameter values
according to the values of the memory
vendor that you use. However, if you select
a configuration from the list of memory
presets, the default memory vendor for that
preset setting is automatically selected.
Memory format
The format of the memory device.
Select Discrete if you are using just the
memory device. Select Unbuffered or
Registered for DIMM format. Use the
DIMM format to turn on levelling circuitry
for LPDDR2 support device only. DDR2
supports DIMM also.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Parameters for LPDDR2, DDR2 and DDR3 SDRAM for UniPHY IP
Parameter
Number of clock enables per device/DIMM
9-53
Description
The number of clock enable pins per device
or DIMM. This value also determines the
number of ODT signals. (This parameter is
available only when the selected memory
format is Registered.)
Note: This parameter is not available
for MAX 10 devices.
Number of chip selects per device/DIMM
The number of chip selects per device or
DIMM. This value is not necessarily the
same as the number of ranks for RDIMMs
or LRDIMMs. This value must be 2 or
greater for RDIMMs or LRDIMMs. (This
parameter is available only when the
selected memory format is Registered.)
Note: This parameter is not available
for MAX 10 devices.
Number of ranks per slot
The number of ranks per DIMM slot. (This
parameter is available only when the
selected memory format is Registered.)
Note: This parameter is not available
for MAX 10 devices.
Number of slots
The number of DIMM slots. (This
parameter is available only when the
selected memory format is Registered.)
Note: This parameter is not available
for MAX 10 devices.
Memory device speed grade
The maximum frequency at which the
memory device can run.
Total interface width
The total number of DQ pins of the
memory device. Limited to 144 bits for
DDR2 and DDR3 SDRAM (with or without
leveling).
The total interface is depending on the rate
on Avalon-MM interface because the
maximum Avalon data width is 1024. If you
select 144 bit for total interface width with
Quarter-rate, the avalon data width is 1152
exceeding maximum avalon data width.
DQ/DQS group size
Implementing and Parameterizing Memory IP
Send Feedback
The number of DQ bits per DQS group.
Altera Corporation
9-54
EMI_DG
2014.12.15
Memory Parameters for LPDDR2, DDR2 and DDR3 SDRAM for UniPHY IP
Parameter
Number of DQS groups
Description
The number of DQS groups is calculated
automatically from the Total interface
width and the DQ/DQS group size
parameters.
Number of chip selects (DDR2 and DDR3 SDRAM device The number of chip-selects the IP core uses
only)
for the current device configuration.
Specify the total number of chip-selects
according to the number of memory device.
Depth expansion (LPDDR2 SDRAM)
Specifies number of devices are expanded in
depth. Only single chip select is supported.
Number of clocks
The width of the clock bus on the memory
interface.
Row address width
The width of the row address on the
memory interface.
Column address width
The width of the column address on the
memory interface.
Bank-address width
The width of the bank address bus on the
memory interface.
Enable DM pins
Specifies whether the DM pins of the
memory device are driven by the FPGA.
You can turn off this option to avoid
overusing FPGA device pins when using x4
mode memory devices.
When you are using x4 mode memory
devices, turn off this option for DDR3
SDRAM.
You must turn on this option if you are
using Avalon byte enable.
DQS# Enable (DDR2)
Turn on differential DQS signaling to
improve signal integrity and system
performance.
This option is available for DDR2 SDRAM
only.
Related Information
• Optimizing the Controller on page 13-1
• DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines on page 4-1
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Initialization Options for DDR2
9-55
Memory Initialization Options for DDR2
Memory Initialization Options—DDR2
Address and command parity
Enables address/command parity
checking. This is required for
Registered DIMM.
Burst length
Specifies the burst length.
Read burst type
Specifies accesses within a given burst
in sequential or interleaved order.
Specify sequential ordering for use
with the Altera memory controller.
Specify interleaved ordering only for
use with an interleaved-capable
custom controller, when the
Generate PHY only parameter is
enabled on the PHY Settings tab.
Mode Register 0
DLL precharge power
down
Determines whether the DLL in the
memory device is in slow exit mode
or in fast exit mode during precharge
power down. For more information,
refer to memory vendor data sheet.
Memory CAS latency
setting
Determines the number of clock
cycles between the READ command
and the availability of the first bit of
output data at the memory device.
For more information, refer to
memory vendor data sheet speed bin
table.
Set this parameter according to the
target memory speed grade and
memory clock frequency.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-56
EMI_DG
2014.12.15
Memory Initialization Options for DDR3
Memory Initialization Options—DDR2
Output drive strength
setting
Determines the output driver
impedance setting at the memory
device.
To obtain the optimum signal
integrity performance, select the
optimum setting based on the board
simulation results.
Memory additive CAS
latency setting
Determines the posted CAS additive
latency of the memory device.
Enable this feature to improve
command and bus efficiency, and
increase system bandwidth. For more
information, refer to the Optimizing
the Controller chapter.
Mode Register 1
Memory on-die termina‐
tion (ODT) setting
Determines the on-die termination
resistance at the memory device.
To obtain the optimum signal
integrity performance, select the
optimum setting based on the board
simulation results.
Mode Register 2
SRT Enable
Determines the selfrefresh tempera‐
ture (SRT). Select 1x refresh rate for
normal temperature (0-85C)or select
2x refresh rate for high-temperature
(>85C).
Memory Initialization Options for DDR3
Memory Initialization Options—DDR3
Mirror Addressing: 1 per chip select
Altera Corporation
Specifies the mirror addressing for
multiple rank DIMMs. Refer to
memory vendor data sheet for more
information. Enter ranks with
mirrored addresses in this field. For
example, for four chip selects, enter
1101 to mirror the address on chip
select #3, #2, and #0.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Initialization Options for DDR3
9-57
Memory Initialization Options—DDR3
Address and command parity
Enables address/command parity
checking to detect errors in data
transmission. This is required for
registered DIMM (RDIMM).
Read burst type
Specifies accesses within a given burst
in sequential or interleaved order.
Specify sequential ordering for use
with the Altera memory controller.
Specify interleaved ordering only for
use with an interleaved-capable
custom controller, when the
Generate PHY only parameter is
enabled on the PHY Settings tab.
Mode Register 0
DLL precharge power
down
Specifies whether the DLL in the
memory device is off or on during
precharge power-down.
Memory CAS latency
setting
The number of clock cycles between
the read command and the
availability of the first bit of output
data at the memory device and also
interface frequency. Refer to memory
vendor data sheet speed bin table.
Set this parameter according to the
target memory speed grade and
memory clock frequency.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-58
EMI_DG
2014.12.15
Memory Initialization Options for DDR3
Memory Initialization Options—DDR3
Output drive strength
setting
The output driver impedance setting
at the memory device.
To obtain the optimum signal
integrity performance, select the
optimum setting based on the board
simulation results.
Memory additive CAS
latency setting
The posted CAS additive latency of
the memory device.
Enable this feature to improve
command and bus efficiency, and
increase system bandwidth. For more
information, refer to the Optimizing
the Controller chapter.
Mode Register 1
ODT Rtt nominal value
The on-die termination resistance at
the memory device.
To obtain the optimum signal
integrity performance, select the
optimum setting based on the board
simulation results.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Initialization Options for DDR3
9-59
Memory Initialization Options—DDR3
Auto selfrefresh method
Disable or enable auto selfrefresh.
Selfrefresh temperature
Specifies the selfrefresh temperature
as Normal or Extended.
Memory write CAS
latency setting
The number of clock cycles from the
releasing of the internal write to the
latching of the first data in, at the
memory device and also interface
frequency. Refer to memory vendor
data sheet speed bin table and set
according to the target memory speed
grade and memory clock frequency.
Dynamic ODT (Rtt_WR) The mode of the dynamic ODT
value
feature of the memory device. This is
used for multi-rank configurations.
Refer to DDR2 and DDR3 SDRAM
Board Layout Guidelines.
To obtain the optimum signal
integrity performance, select the
optimum setting based on the board
simulation results.
Mode Register 2
DDR3 RDIMM/
The memory device features a set of
LRDIMM Control Words control words of SSTE32882 registers.
These 4-bit control words of serial
presence-detect (SPD) information
allow the controller to optimize
device properties to match different
DIMM net topologies.
You can obtain the control words
from the memory manufacturer's
data sheet. You enter each word in
hexadecimal, starting with RC15 on
the left and ending with RC0 on the
right.
Note: This parameter is not
available for MAX 10
devices.
LRDIMM Additional
Control Words
Implementing and Parameterizing Memory IP
Send Feedback
The memory device features a set of
control words of SSTE32882 registers.
These 4-bit control words of serial
presence-detect (SPD) information
allow the controller to optimize
device properties to match different
DIMM net topologies.
You can obtain the control words
from the memory manufacturer's
Altera Corporation
data sheet. You enter each word in
hexadecimal, starting with SPD (7772) or SPD(83-78) on the left and
ending with SPD(71-69) on the right.
Note: This parameter is not
9-60
EMI_DG
2014.12.15
Memory Initialization Options for LPDDR2
Memory Initialization Options for LPDDR2
Memory Initialization Options—LPDDR2
Burst Length
Specifies the burst length.
Read Burst Type
Specifies accesses within a given burst
in sequential or interleaved order.
Specify sequential ordering for use
with the Altera memory controller.
Specify interleaved ordering only for
use with an interleaved-capable
custom controller, when the
Generate PHY only parameter is
enabled on the PHY Settings tab.
Mode Register 1
Mode Register 2
Memory CAS latency
setting
Determines the number of clock
cycles between the READ command
and the availability of the first bit of
output data at the memory device.
Set this parameter according to the
target memory interface frequency.
Refer to memory data sheet and also
target memory speed grade.
Mode Register 3
Output drive strength
settings
Determines the output driver
impedance setting at the memory
device.
To obtain the optimum signal
integrity performance, select the
optimum setting based on the board
simulation results.
Memory Parameters for QDR II and QDR II+ SRAM for UniPHY IP
The following table describes the memory parameters for QDR II and QDR II+ SRAM for UniPHY IP.
Use the Memory Parameters tab to apply the memory parameters from your memory manufacturer’s
data sheet.
Table 9-15: Memory Parameters for QDR II and QDR II+ SRAM
Parameter
Description
Address width
The width of the address bus on the memory device.
Data width
The width of the data bus on the memory device.
Data-mask width
The width of the data-mask on the memory device,
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Parameters for RLDRAM II for UniPHY IP
Parameter
9-61
Description
CQ width
The width of the CQ (read strobe) bus on the
memory device.
K width
The width of the K (write strobe) bus on the
memory device.
Burst length
The burst length supported by the memory device.
For more information, refer to memory vendor data
sheet.
Topology
x36 emulated mode
Emulates a larger memory-width interface using
smaller memory-width interfaces on the FPGA.
Turn on this option when the target FPGA do not
support x36 DQ/DQS group. This option allows
two x18 DQ/DQS groups to emulate 1 x36 read data
group.
Emulated write groups
Number of write groups to use to form the x36
memory interface on the FPGA. Select 2 to use 2
x18 DQ/DQS group to form x36 write data group.
Select 4 to use 4 x9 DQ/DQS group to form x36
write data group.
Device width
Specifies the number of memory devices used for
width expansion.
Memory Parameters for RLDRAM II for UniPHY IP
The following table describes the memory parameters for RLDRAM II.
Use the Memory Parameters tab to apply the memory parameters from your memory manufacturer’s
data sheet.
Table 9-16: Memory Parameters for RLDRAM II
Parameter
Description
Address width
The width of the address bus on the memory device.
Data width
The width of the data bus on the memory device.
Bank-address width
The width of the bank-address bus on the memory
device.
Data-mask width
The width of the data-mask on the memory device,
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-62
EMI_DG
2014.12.15
Memory Timing Parameters for DDR2, DDR3, and LPDDR2 SDRAM for UniPHY IP
Parameter
QK width
Description
The width of the QK (read strobe) bus on the
memory device.
Select 1 when data width is set to 9. Select 2 when
data width is set to 18 or 36.
DK width
The width of the DK (write strobe) bus on the
memory device.
Select 1 when data width is set to 9 or 18. Select 2
when data width is set to 36.
Burst length
The burst length supported by the memory device.
For more information, refer to memory vendor data
sheet.
Memory mode register configuration
Configuration bits that set the memory mode. Select
the option according to the interface frequency.
Device impedance
Select External (ZQ) to adjust the driver impedance
using the external impedance resistor (RQ). The
output impedance range is 25-60. You must connect
the RQ resistor between ZQ pin and ground. The
value of RQ must be 5 times the output impedance.
For example, 60 output impedance requires 300 RQ.
Set the value according to the board simulation.
On-Die Termination
Turn on this option to enable ODT in the memory
to terminate the DQs and DM pins to Vtt.
Dynamically switch off during read operation and
switch on during write operation. Refer to memory
vendor data sheet for more information.
Topology
Device width
Specifies the number of memory devices used for
width expansion.
Memory Timing Parameters for DDR2, DDR3, and LPDDR2 SDRAM for UniPHY IP
The following table lists the memory timing parameters for DDR2, DDR3, and LPDDR2 SDRAM.
Use the Memory Timing tab to apply the memory timings from your memory manufacturer’s data sheet.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Timing Parameters for DDR2, DDR3, and LPDDR2 SDRAM for UniPHY IP
9-63
Table 9-17: Parameter Description
Parameter
Protocol
Description
tIS (base)
DDR2, DDR3, LPDDR2
Address and control setup to CK clock rise. Set
according to the memory speed grade and refer to
the memory vendor data sheet.
tIH (base)
DDR2, DDR3, LPDDR2
Address and control hold after CK clock rise. Set
according to the memory speed grade and refer to
the memory vendor data sheet.
tDS (base)
DDR2, DDR3, LPDDR2
Data setup to clock (DQS) rise. Set according to the
memory speed grade and refer to the memory
vendor data sheet.
tDH (base)
DDR2, DDR3, LPDDR2
Data hold after clock (DQS) rise. Set according to
the memory speed grade and refer to the memory
vendor data sheet.
tDQSQ
DDR2, DDR3, LPDDR2
DQS, DQS# to DQ skew, per access. Set according
to the memory speed grade and refer to the memory
vendor data sheet.
tQHS
DDR2, LPDDR2
DQ output hold time from DQS, DQS# (absolute
time value)
tQH
DDR3
DQ output hold time from DQS, DQS# (percentage
of tCK). Set according to the memory speed grade
and refer to the memory vendor data sheet.
tDQSCK
DDR2, DDR3, LPDDR2
DQS output access time from CK/CK#. Set
according to the memory speed grade and refer to
the memory vendor data sheet.
tDQSCK Delta
Short
LPDDR2
Absolute difference between any two tDQSCK
measurements (within a byte lane) within a
contiguous sequence of bursts in a 160ns rolling
window. Set according to the memory speed grade
and refer to the memory vendor data sheet.
tDQSCK Delta
Medium
LPDDR2
Absolute difference between any two tDQSCK
measurements (within a byte lane) within a
contiguous sequence of bursts in a 160ns rolling
window. Set according to the memory speed grade
and refer to the memory vendor data sheet.
tDQSCK Delta
Long
LPDDR2
Absolute difference between any two tDQSCK
measurements (within a byte lane) within a
contiguous sequence of bursts in a 160ns rolling
window. Set according to the memory speed grade
and refer to the memory vendor data sheet.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-64
EMI_DG
2014.12.15
Memory Timing Parameters for DDR2, DDR3, and LPDDR2 SDRAM for UniPHY IP
Parameter
Protocol
Description
tDQSS
DDR2, DDR3, LPDDR2
First latching edge of DQS to associated clock edge
(percentage of tCK). Set according to the memory
speed grade and refer to the memory vendor data
sheet.
tDQSH
DDR2, LPDDR2
tQSH
DDR3
DQS Differential High Pulse Width (percentage of
tCK). Specifies the minimum high time of the DQS
signal received by the memory. Set according to the
memory speed grade and refer to the memory
vendor data sheet.
tDSH
DDR2, DDR3, LPDDR2
DQS falling edge hold time from CK (percentage of
tCK). Set according to the memory speed grade and
refer to the memory vendor data sheet.
tDSS
DDR2, DDR3, LPDDR2
DQS falling edge to CK setup time (percentage of
tCK). Set according to the memory speed grade and
refer to the memory vendor data sheet.
tINIT
DDR2, DDR3, LPDDR2
Memory initialization time at power-up. Set
according to the memory speed grade and refer to
the memory vendor data sheet.
tMRD
DDR2, DDR3
tMRW
LPDDR2
Load mode register command period. Set according
to the memory speed grade and refer to the memory
vendor data sheet.
tRAS
DDR2, DDR3, LPDDR2
Active to precharge time. Set according to the
memory speed grade and refer to the memory
vendor data sheet.
tRCD
DDR2, DDR3, LPDDR2
Active to read or write time. Set according to the
memory speed grade and refer to the memory
vendor data sheet.
tRP
DDR2, DDR3, LPDDR2
Precharge command period. Set according to the
memory speed grade and refer to the memory
vendor data sheet.
tREFI
DDR2, DDR3
tREFICab
LPDDR2
Refresh command interval. (All banks only for
LPDDR2.) Set according to the memory speed
grade and temperature range. Refer to the memory
vendor data sheet.
tRFC
DDR2, DDR3
tRFCab
LPDDR2
Altera Corporation
Auto-refresh command interval. (All banks only for
LPDDR2.) Set according to the memory device
capacity. Refer to the memory vendor data sheet.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Timing Parameters for QDR II and QDR II+ SRAM for UniPHY IP
Parameter
Protocol
9-65
Description
tWR
DDR2, DDR3, LPDDR2
Write recovery time. Set according to the memory
speed grade and refer to the memory vendor data
sheet.
tWTR
DDR2, DDR3, LPDDR2
Write to read period. Set according to the memory
speed grade and memory clock frequency. Refer to
the memory vendor data sheet. Calculate the value
based on the memory clock frequency.
tFAW
DDR2, DDR3, LPDDR2
Four active window time. Set according to the
memory speed grade and page size. Refer to the
memory vendor data sheet.
tRRD
DDR2, DDR3, LPDDR2
RAS to RAS delay time. Set according to the
memory speed grade, page size and memory clock
frequency. Refer to the memory vendor data sheet.
Calculate the value based on the memory interface
frequency and memory clock frequency.
tRTP
DDR2, DDR3, LPDDR2
Read to precharge time. Set according to memory
speed grade. Refer to the memory vendor data
sheet. Calculate the value based on the memory
interface frequency and memory clock frequency.
Memory Timing Parameters for QDR II and QDR II+ SRAM for UniPHY IP
The following table lists the memory timing parameters for QDR II and QDR II+ SRAM.
Use the Memory Timing tab to apply the memory timings from your memory manufacturer’s data sheet.
Table 9-18: Parameter Description
Parameter
Description
QDR II and QDR II+ SRAM
tWL (cycles)
The write latency. Set write latency 0 for burst length of 2, and set write latency to 1
for burst length of 4.
tRL (cycles)
The read latency. Set according to memory protocol. Refer to memory data sheet.
tSA
The address and control setup to K clock rise. Set according to memory protocol.
Refer to memory data sheet.
tHA
The address and control hold after K clock rise. Set according to memory protocol.
Refer to memory data sheet.
tSD
The data setup to clock (K/K#) rise. Set according to memory protocol. Refer to
memory data sheet.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-66
EMI_DG
2014.12.15
Memory Timing Parameters for RLDRAM II for UniPHY IP
Parameter
Description
tHD
The data hold after clock (K/K#) rise. Set according to memory protocol. Refer to
memory data sheet.
tCQD
Echo clock high to data valid. Set according to memory protocol. Refer to memory
data sheet.
tCQDOH
Echo clock high to data invalid. Set according to memory protocol. Refer to memory
data sheet.
Internal jitter
The QDRII/II+ internal jitter. Refer to memory data sheet.
TCQHCQnH
The CQ clock rise to CQn clock rise (rising edge to rising edge). Set according to
memory speed grade. Refer to memory data sheet.
TKHKnH
The K clock rise to Kn clock rise (rising edge to rising edge). Set according to
memory speed grade. Refer to memory data sheet.
Memory Timing Parameters for RLDRAM II for UniPHY IP
The following table lists the memory timing parameters for RLDRAM II.
Use the Memory Timing tab to apply the memory timings from your memory manufacturer’s data sheet.
Table 9-19: Memory Timing Parameters
Parameter
Description
RLDRAM II
Maximum
memory clock
frequency
The maximum frequency at which the memory device can run. Set according to
memory speed grade. Refer to memory data sheet.
Refresh interval
The refresh interval. Set according to memory speed grade. Refer to memory data
sheet.
tCKH (%)
The input clock (CK/CK#) high expressed as a percentage of the full clock period.
Set according to memory speed grade. Refer to memory data sheet.
tQKH (%)
The read clock (QK/QK#) high expressed as a percentage of tCKH. Set according to
memory speed grade. Refer to memory data sheet.
tAS
Address and control setup to CK clock rise. Set according to memory speed grade.
Refer to memory data sheet.
tAH
Address and control hold after CK clock rise. Set according to memory speed grade.
Refer to memory data sheet.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Parameters for RLDRAM 3 for UniPHY IP
Parameter
9-67
Description
tDS
Data setup to clock (CK/CK#) rise. Set according to memory speed grade. Refer to
memory data sheet.
tDH
Data hold after clock (CK/CK#) rise. Set according to memory speed grade. Refer to
memory data sheet.
tQKQ_max
QK clock edge to DQ data edge (in same group). Set according to memory speed
grade. Refer to memory data sheet.
tQKQ_min
QK clock edge to DQ data edge (in same group). Set according to memory speed
grade. Refer to memory data sheet.
tCKDK_max
Clock to input data clock (max). Set according to memory speed grade. Refer to
memory data sheet.
tCKDK_min
Clock to input data clock (min). Set according to memory speed grade. Refer to
memory data sheet.
Memory Parameters for RLDRAM 3 for UniPHY IP
The following tables list the memory parameters for RLDRAM 3 for UniPHY IP.
Use the Memory Timing tab to apply the memory timings from your memory manufacturer’s data sheet.
Table 9-20: Memory Parameters for RLDRAM 3 for UniPHY
Parameter
Description
Enable data-mask
pins
Specifies whether the DM pins of the memory device are driven by the FPGA.
Data-mask width
The width of the data-mask on the memory device.
Data width
The width of the data bus on the memory device.
QK width
The width of the QK (read strobe) bus on the memory device.
Select 2 when data width is set to 18. Select 4 when data width is set to 36.
DK width
The width of the DK (write strobe) bus on the memory device. For x36 device,
DQ[8:0] and DQ[26:18] are referenced to DK0/DK0#, and DQ[17:9] and DQ[35:27]
are referenced to DK1/DK1#.
Address width
The width of the address bus on the memory device.
Bank-address
width
The width of the bank-address bus on the memory device.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-68
EMI_DG
2014.12.15
Memory Parameters for RLDRAM 3 for UniPHY IP
Parameter
Description
Burst length
The burst length supported by the memory device. Refer to memory vendor data
sheet.
tRC
Mode register bits that set the tRC. Set the tRC according to the memory speed grade
and data latency. Refer to the tRC table in the memory vendor data sheet.
Data Letency
Mode register bits that set the latency. Set latency according to the interface
frequency and memory speed grade. Refer to speed bin table in the memory data
sheet.
Output Drive
Mode register bits that set the output drive impedance setting. Set the value
according to the board simulation.
ODT
Mode register bits that set the ODT setting. Set the value according to the board
simulation.
AREF Protocol
Mode register setting for refreshing memory content of a bank. Select Multibank to
allow refresh 4 bank simultaneously. Select Bank Address Control to refresh a
particular bank by setting the bank address.
Write Protocol
Mode register setting for write protocol. When multiple bank (dual bank or quad
bank) is selected, identical data is written to multiple banks.
Topology
Device width
Specifies the number of memory devices used for width
expansion.
Table 9-21: Memory Timing Parameters for RLDRAM 3 for UniPHY
Parameter
Description
Memory Device Timing
Maximum memory clock frequency
The maximum frequency at which the memory
device can run.
tDS (base)
Base specification for data setup to DK/DK#. Set
according to memory speed grade. Refer to memory
data sheet.
tDH (base)
Base specification for data hold from DK/DK#. Set
according to memory speed grade. Refer to memory
data sheet.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Memory Parameters for RLDRAM 3 for UniPHY IP
Parameter
9-69
Description
tQKQ_max
QK/QK# clock edge to DQ data edge (in same
group). Set according to memory speed grade. Refer
to memory data sheet.
tQH (% of CK)
DQ output hold time from QK/QK#. Set according
to memory speed grade. Refer to memory data
sheet.
tCKDK_max(% of CK)
Clock to input data clock (max). Set according to
memory speed grade. Refer to memory data sheet.
tCKDK_min (% of CK)
Clock to input data clock (min). Set according to
memory speed grade. Refer to memory data sheet.
tCKQK_max
QK edge to clock edge skew (max). Set according to
memory speed grade. Refer to memory data sheet.
tIS (base)
Base specification for address and control setup to
CK.Set according to memory speed grade. Refer to
memory data sheet.
tIH (base)
Base specification for address and control hold from
CK. Set according to memory speed grade. Refer to
memory data sheet.
Controller Timing
Read-to-Write NOP commands (min)
Minimum number of no operation commands
following a read command and before a write
command. The value must be at least ((Burst
Length/2) + RL - WL + 2). The value, along with
other delay/skew parameters, are used by the "Bus
Turnaround" timing analysis to determine if bus
contention is an issue.
Set according to the controller specification.
Write-to-Read NOP commands (min)
Minimum number of no operation commands
following a write command and before a read
command. The value must be at least ((Burst
Length/2) + WL - RL + 1). The value, along with
other delay/skew parameters, are used by the "Bus
Turnaround" timing analysis to determine if bus
contention is an issue.
Set according to the controller specification.
RLDRAM 3 Board Derate
CK/CK# slew rate (differential)
Implementing and Parameterizing Memory IP
Send Feedback
CK/CK# slew rate (differential).
Altera Corporation
9-70
EMI_DG
2014.12.15
Board Settings
Parameter
Description
Address/Command slew rate
Address and command slew rate.
DK/DK# slew rate (Differential)
DK/DK# slew rate (differential).
DQ slew rate
DQ slew rate.
tIS
Address/command setup time to CK.
Board Settings
Use the Board Settings tab to model the board-level effects in the timing analysis.
The Board Settings tab allows you to specify the following settings:
• Setup and hold derating (For LPDDR2/DDR2/DDR3 SDRAM, RLDRAM 3 and RLDRAM II for
UniPHY IP)
• Channel Signal Integrity
• Board skews (For UniPHY IP.)
Note: For accurate timing results, you must enter board settings parameters that are correct for your
PCB.
The IP core supports single and multiple chip-select configurations. Altera has determined the effects on
the output signaling of single-rank configurations for certain Altera boards, and included the channel
uncertainties in the Quartus II timing models.
Because the Quartus II timing models hold channel uncertainties that are representative of specific Altera
boards, you must determine the board-level effects of your board, including any additional channel
uncertainty relative to Altera's reference design, and enter those values into the Board Settings panel in the
parameter editor. You can use HyperLynx or a similar simulator to obtain values that are representative of
your board.
For more information about how to include your board simulation results in the Quartus II software,
refer to the following sections. For more information about how to assign pins using pin planners, refer to
the design flow tutorials and design examples on the List of Designs Using Altera External Memory IP
page of the Altera Wiki.
For more general information about timing deration methodology, refer to the Timing Deration
Methodology for Multiple Chip Select DDR2 and DDR3 SDRAM Designs section in the Analyzing Timing
of Memory IP chapter.
Related Information
• Timing Deration Methodology for Multiple Chip Select DDR2 and DDR3 SDRAM Designs on
page 11-41
• Analyzing Timing of Memory IP
• List of Designs using Altera External Memory IP
Setup and Hold Derating for UniPHY IP
The slew rate of the output signals affects the setup and hold times of the memory device, and thus the
write margin. You can specify the slew rate of the output signals to see their effect on the setup and hold
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Setup and Hold Derating for UniPHY IP
9-71
times of both the address and command signals and the DQ signals, or alternatively, you may want to
specify the setup and hold times directly.
For RDIMMs, the slew rate is defined at the register on the RDIMM, instead of at the memory
component. For LRDIMMs, the slew rate is defined at the buffer on the LRDIMM, instead of at the
memory component.
Note: You should enter information derived during your PCB development process of prelayout (line)
and postlayout (board) simulation.
The following table lists the setup and hold derating parameters.
Table 9-22: Setup and Hold Derating Parameters
Parameter
Description
LPDDR2/DDR2/DDR3 SDRAM/RLDRAM 3
Derating method
Derating method. The default settings are based on
Altera internal board simulation data. To obtain
accurate timing analysis according to the condition
of your board, Altera recommends that you perform
board simulation and enter the slew rate in the
Quartus II software to calculate the derated setup
and hold time automatically or enter the derated
setup and hold time directly.
For more information, refer to the “Timing
Deration Methodology for Multiple Chip Select
DDR2 and DDR3 SDRAM Designs” section in the
Analyzing Timing of Memory IP chapter.
CK/CK# slew rate (differential)
CK/CK# slew rate (differential).
Address/Command slew rate
Address and command slew rate.
DQS/DQS# slew rate (Differential)
DQS and DQS# slew rate (differential).
DQ slew rate
DQ slew rate.
tIS
Address/command setup time to CK.
tIH
Address/command hold time from CK.
tDS
Data setup time to DQS.
tDH
Data hold time from DQS.
RLDRAM II
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-72
EMI_DG
2014.12.15
Setup and Hold Derating for UniPHY IP
Parameter
Description
tAS Vref to CK/CK# Crossing
For a given address/command and CK/CK# slew
rate, the memory device data sheet provides a
corresponding "tAS Vref to CK/CK# Crossing"
value that can be used to determine the derated
address/command setup time.
tAS VIH MIN to CK/CK# Crossing
For a given address/command and CK/CK# slew
rate, the memory device data sheet provides a
corresponding "tAS VIH MIN to CK/CK# Crossing"
value that can be used to determine the derated
address/command setup time.
tAH CK/CK# Crossing to Vref
For a given address/command and CK/CK# slew
rate, the memory device data sheet provides a
corresponding "tAH CK/CK# Crossing to Vref"
value that can be used to determine the derated
address/command hold time.
tAH CK/CK# Crossing to VIH MIN
For a given address/command and CK/CK# slew
rate, the memory device data sheet provides a
corresponding "tAH CK/CK# Crossing to VIH
MIN" value that can be used to determine the
derated address/command hold time.
tDS Vref to CK/CK# Crossing
For a given data and DK/DK# slew rate, the
memory device data sheet provides a corresponding
"tDS Vref to CK/CK# Crossing" value that can be
used to determine the derated data setup time.
tDS VIH MIN to CK/CK# Crossing
For a given data and DK/DK# slew rate, the
memory device data sheet provides a corresponding
"tDS VIH MIN to CK/CK# Crossing" value that can
be used to determine the derated data setup time.
tDH CK/CK# Crossing to Vref
For a given data and DK/DK# slew rate, the
memory device data sheet provides a corresponding
"tDH CK/CK# Crossing to Vref" value that can be
used to determine the derated data hold time.
tDH CK/CK# Crossing to VIH MIN
For a given data and DK/DK# slew rate, the
memory device data sheet provides a corresponding
"tDH CK/CK# Crossing to VIH MIN" value that
can be used to determine the derated data hold
time.
Derated tAS
The derated address/command setup time is
calculated automatically from the "tAS", the "tAS
Vref to CK/CK# Crossing", and the "tAS VIH MIN
to CK/CK# Crossing" parameters.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Intersymbol Interference Channel Signal Integrity for UniPHY IP
Parameter
9-73
Description
Derated tAH
The derated address/command hold time is
calculated automatically from the "tAH", the "tAH
CK/CK# Crossing to Vref", and the "tAH CK/CK#
Crossing to VIH MIN" parameters.
Derated tDS
The derated data setup time is calculated automati‐
cally from the "tDS", the "tDS Vref to CK/CK#
Crossing", and the "tDS VIH MIN to CK/CK#
Crossing" parameters.
Derated tDH
The derated data hold time is calculated automati‐
cally from the "tDH", the "tDH CK/CK# Crossing to
Vref", and the "tDH CK/CK# Crossing to VIH
MIN" parameters.
Related Information
Analyzing Timing of Memory IP on page 11-1
Intersymbol Interference Channel Signal Integrity for UniPHY IP
Channel signal integrity is a measure of the distortion of the eye due to intersymbol interference or
crosstalk or other effects.
Typically, when going from a single-rank configuration to a multi-rank configuration there is an increase
in the channel loss, because there are multiple stubs causing reflections. Although the Quartus II timing
models include some channel uncertainty, you must perform your own channel signal integrity
simulations and enter the additional channel uncertainty, relative to the reference eye, into the parameter
editor GUI.
For details about measuring channel loss parameters and entering channel signal integrity information
into the parameter editor GUI, refer to the Altera Wiki: http://www.alterawiki.com/wiki/
Measuring_Channel_Signal_Integrity.
The following table lists intersymbol interference parameters.
Table 9-23: ISI Parameters
Parameter
Derating method
Description
Choose between default Altera settings (with specific Altera boards) or
manually enter board simulation numbers obtained for your specific board.
This option is supported in LPDDR2/DDR2/DDR3 SDRAM only.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-74
EMI_DG
2014.12.15
Board Skews for UniPHY IP
Parameter
Address and command
eye reduction (setup)
Description
The reduction in the eye diagram on the setup side (or left side of the eye)
due to ISI on the address and command signals compared to a case when
there is no ISI. (For single rank designs, ISI can be zero; in multirank
designs, ISI is necessary for accurate timing analysis.)
For more information about how to measure the ISI value for the address
and command signals, refer to the “Measuring Eye Reduction for Address/
Command, DQ, and DQS Setup and Hold Time” section in Analyzing
Timing of Memory IP .
Address and command
eye reduction (hold)
The reduction in the eye diagram on the hold side (or right side of the eye)
due to ISI on the address and command signals compared to a case when
there is no ISI.
For more information about how to measure the ISI value for the address
and command signals, refer to “Measuring Eye Reduction for Address/
Command, DQ, and DQS Setup and Hold Time” section in Analyzing
Timing of Memory IP.
DQ/ D eye reduction
The total reduction in the eye diagram due to ISI on DQ signals compared to
a case when there is no ISI. Altera assumes that the ISI reduces the eye width
symmetrically on the left and right side of the eye.
For more information about how to measure the ISI value for the address
and command signals, refer to “Measuring Eye Reduction for Address/
Command, DQ, and DQS Setup and Hold Time” section in Analyzing
Timing of Memory IP .
Delta DQS/Delta K/ Delta The increase in variation on the range of arrival times of DQS compared to a
DK arrival time
case when there is no ISI. Altera assumes that the ISI causes DQS to further
vary symmetrically to the left and to the right.
For more information about how to measure the ISI value for the address
and command signals, refer to “Measuring Eye Reduction for Address/
Command, DQ, and DQS Setup and Hold Time” section in Analyzing
Timing of Memory IP .
Related Information
Analyzing Timing of Memory IP on page 11-1
Board Skews for UniPHY IP
PCB traces can have skews between them that can reduce timing margins. Furthermore, skews between
different chip selects can further reduce the timing margin in multiple chip-select topologies.
The Board Skews section of the parameter editor allows you to enter parameters to compensate for these
variations.
Note: You must ensure the timing margin reported in TimeQuest Report DDR is positive when the
board skew parameters are correct for the PCB.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Board Skew Parameters for LPDDR2/DDR2/DDR3 SDRAM
9-75
The following tables list the board skew parameters. For parameter equations containing delay values,
delays should be measured as follows:
• Non-fly-by topology (Balanced Tree)
• For discrete devices–all the delay (CK, Addr/Cmd, DQ and DQS) from the FPGA are right to every
memory device
• For UDIMMs–all the delay (CK, Addr/Cmd, DQ and DQS) from the FPGA to UDIMM connector
for every memory device on the UDIMM. If UDIMM delay information is available, calculate
delays to every memory device on the UDIMM.
• For RDIMMs–the Addr/Cmd and CK delay are from the FPGA to the register on the RDIMM. The
DQ and DQS delay are from FPGA to RDIMM connector for every memory device on the
RDIMM.
• For LRDIMMS–the delay from the FPGA to the register on the LRDIMM.
• Fly-by topology
• For discrete devices–the Addr/Cmd and CK delay are from the FPGA to the first memory device.
The DQ and DQS delay are from FPGA to every memory device.
• For UDIMMs–the Addr/Cmd and CK delay are from the FPGA to the UDIMM connector. The
DQ and DQS delay are from the FPGA to UDIMM connector for every memory device on the
UDIMM.
• For RDIMMs–the Addr/Cmd and CK delay are from the FPGA to the register on the RDIMM. The
DQ and DQS delay are from FPGA to RDIMM connector for every memory device on the
RDIMM.
• For LRDIMMS–the delay from the FPGA to the buffer on the LRDIMM.
Equations apply to any given memory device, except when marked by the board or group qualifiers (_b or
_g), where they apply to the particular device or group being iterated over.
Use board skew parameter calculator below to help you to calculate the board skews, refer to Board skew
parameter tool.
Related Information
Board skew parameter tool
Board Skew Parameters for LPDDR2/DDR2/DDR3 SDRAM
The following table lists board skew parameters for LPDDR2, DDR2, and DDR3 interfaces.
Table 9-24: Parameter Descriptions
Parameter
FPGA DQ/DQS
Package Skews
Deskewed on
Board
Description
Enable this parameter if you will deskew the FPGA package with your board traces on
the DQ and DQS pins. This option increases the read capture and write margins.
Enable this option when memory clock frequency is larger than 800 MHz. Enabling
this option improves the read capture and write timing margin. You can also rely on
the read capture and write timing margin in timing report to enable this option.
When this option is enabled, package skews are output on the DQ and DQS pins in
the Pin-Out File (.pin) and package skew is not included in timing analysis. All of the
other board delay and skew parameters related to DQ or DQS must consider the
package and the board together. For more information, refer to DDR2 and DDR3
Board Layout Guidelines .
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-76
EMI_DG
2014.12.15
Board Skew Parameters for LPDDR2/DDR2/DDR3 SDRAM
Parameter
Description
Address/
Enable this parameter if you will deskew the FPGA package with your board traces on
Command
the address and command pins. This option increases the address and command
Package Deskew margins. Enable this option when memory clock frequency is larger than 800
MHz.Enabling this option will improve the address and command timing margin.
You can also rely on the address and command margin in timing report to enable this
option.
When this option is enabled, package skews are output on the address and command
pins in the Pin-Out File (.pin) and package skew is not included in timing analysis. All
of the other board delay and skew parameters related to Address and Command must
consider the package and the board together. For more information, refer to DDR2
and DDR3 Board Layout Guidelines.
Maximum CK
delay to DIMM/
device
The delay of the longest CK trace from the FPGA to the memory device, whether on a
DIMM or the same PCB as the FPGA is expressed by the following equation:
Where n is the number of memory clock and r is number rank of DIMM/device. For
example in dual-rank DIMM implementation, if there are 2 pairs of memory clocks in
each rank DIMM, the maximum CK delay is expressed by the following equation:
Maximum DQS
delay to DIMM/
device
The delay of the longest DQS trace from the FPGA to the memory device, whether on
a DIMM or the same PCB as the FPGA is expressed by the following equation:
Where n is the number of DQS and r is number of rank of DIMM/device. For example
in dual-rank DIMM implementation, if there are 2 DQS in each rank DIMM, the
maximum DQS delay is expressed by the following equation:
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Board Skew Parameters for LPDDR2/DDR2/DDR3 SDRAM
Parameter
9-77
Description
Minimum delay The minimum skew or smallest positive skew (or largest negative skew) between the
difference
CK signal and any DQS signal when arriving at the same DIMM/device over all
between CK and DIMMs/devices is expressed by the following equation:
DQS
Where n is the number of memory clock, m is the number of DQS, and r is the
number of rank of DIMM/device. For example in dual-rank DIMM implementation,
if there are 2 pairs of memory clock and 4 DQS signals (two for each clock) for each
rank DIMM, the minimum delay difference between CK and DQS is expressed by the
following equation:
This parameter value affects the write leveling margin for DDR3 interfaces with
leveling in multi-rank configurations. This parameter value also applies to nonleveling configurations of any number of ranks with the requirement that DQS must
have positive margins in TimeQuest Report DDR.
For multiple boards, the minimum skew between the CK signal and any DQS signal
when arriving at the same DIMM over all DIMMs is expressed by the following
equation, if you want to use the same design for several different boards:
Note: If you are using a clamshell topology in a multirank/multi chip-select
design with either DIMM or discrete devices, the above calculations do not
apply; you may use the default values in the GUI.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-78
EMI_DG
2014.12.15
Board Skew Parameters for LPDDR2/DDR2/DDR3 SDRAM
Parameter
Description
Maximum delay The maximum skew or smallest negative skew (or largest positive skew) between the
difference
CK signal and any DQS signal when arriving at the same DIMM/device over all
between CK and DIMMs/devices is expressed by the following equation:
DQS
Where n is the number of memory clock, m is the number of DQS, and r is the
number of rank of DIMM/device. For example in dual-rank DIMM implementation,
if there are 2 pairs of memory clock and 4 DQS signals (two for each clock) for each
rank DIMM, the maximum delay difference between CK and DQS is expressed by the
following equation:
This value affects the write Leveling margin for DDR3 interfaces with leveling in
multi-rank configurations. This parameter value also applies to non-leveling configu‐
rations of any number of ranks with the requirement that DQS must have positive
margins in TimeQuest Report DDR.
For multiple boards, the maximum skew (or largest positive skew) between the CK
signal and any DQS signal when arriving at the same DIMM over all DIMMs is
expressed by the following equation, if you want to use the same design for several
different boards:
Note: If you are using a clamshell topology in a multirank/multi chip-select
design with either DIMM or discrete devices, the above calculations do not
apply; you may use the default values in the GUI.
Maximum skew
within DQS
group
The largest skew among DQ and DM signals in a DQS group. This value affects the
read capture and write margins for DDR2 and DDR3 SDRAM interfaces in all
configurations (single or multiple chip-select, DIMM or component).
For multiple boards, the largest skew between DQ and DM signals in a DQS group is
expressed by the following equation:
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Board Skew Parameters for LPDDR2/DDR2/DDR3 SDRAM
Parameter
Maximum skew
between DQS
groups
9-79
Description
The largest skew between DQS signals in different DQS groups. This value affects the
resynchronization margin in memory interfaces without leveling such as DDR2
SDRAM and discrete-device DDR3 SDRAM in both single- or multiple chip-select
configurations.
For multiple boards, the largest skew between DQS signals in different DQS groups is
expressed by the following equation, if you want to use the same design for several
different boards:
Average delay
difference
between DQ and
DQS
The average delay difference between each DQ signal and the DQS signal, calculated
by averaging the longest and smallest DQ signal delay values minus the delay of DQS.
The average delay difference between DQ and DQS is expressed by the following
equation:
where n is the number of DQS groups. For multi-rank or multiple CS configuration,
the equation is:
Maximum skew
within address
and command
bus
The largest skew between the address and command signals for a single board is
expressed by the following equation:
For multiple boards, the largest skew between the address and command signals is
expressed by the following equation, if you want to use the same design for several
different boards:
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-80
EMI_DG
2014.12.15
Board Skew Parameters for QDR II and QDR II+
Parameter
Average delay
difference
between address
and command
and CK
Description
A value equal to the average of the longest and smallest address and command signal
delay values, minus the delay of the CK signal. The value can be positive or negative.
Positive values represent address and command signals that are longer than CK
signals; negative values represent address and command signals that are shorter than
CK signals. The average delay difference between address and command and CK is
expressed by the following equation:
where n is the number of memory clocks. For multi-rank or multiple CS configura‐
tion, the equation is:
The Quartus II software uses this skew to
optimize the delay of the address and command signals to have appropriate setup and
hold margins for DDR2 and DDR3 SDRAM interfaces. You should derive this value
through board simulation.
For multiple boards, the average delay difference between address and command and
CK is expressed by the following equation, if you want to use the same design for
several different boards:
Related Information
DDR2, DDR3, and DDR4 SDRAM Board Design Guidelines on page 4-1
Board Skew Parameters for QDR II and QDR II+
The following table lists board skew parameters for QDR II and QDR II+ interfaces.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Board Skew Parameters for QDR II and QDR II+
9-81
Table 9-25: Parameter Descriptions
Parameter
Maximum delay
difference
between devices
Description
The maximum delay difference of data signals between devices is expressed by the
following equation:
For example, in a two-device configuration there is greater propagation delay for data
signals going to and returning from the furthest device relative to the nearest device.
This parameter is applicable for depth expansion. Set the value to 0 for non-depth
expansion design.
Maximum skew The maximum skew between D and BWS signals referenced by a common K signal.
within write data
group (ie, K
group)
Maximum skew The maximum skew between Q signals referenced by a common CQ signal.
within read data
group (ie, CQ
group)
Maximum skew
between CQ
groups
The maximum skew between CQ signals of different read data groups. Set the value to
0 for non-depth expansion designs.
Maximum skew
within address/
command bus
The maximum skew between the address/command signals.
Average delay
A value equal to the average of the longest and smallest address/command signal delay
difference
values, minus the delay of the K signal. The value can be positive or negative.
between address/
command and K The average delay difference between the address and command and K is expressed by
the following equation:
where n is the number of K clocks.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-82
EMI_DG
2014.12.15
Board Skew parameters for RLDRAM II and RLDRAM 3
Parameter
Average delay
difference
between write
data signals and
K
Description
A value equal to the average of the longest and smallest write data signal delay values,
minus the delay of the K signal. Write data signals include the D and BWS signals. The
value can be positive or negative.
The average delay difference between D and K is expressed by the following equation:
where n is the number of DQS groups.
Average delay
difference
between read
data signals and
CQ
A value equal to the average of the longest and smallest read data signal delay values,
minus the delay of the CQ signal. The value can be positive or negative.
The average delay difference between Q and CQ is expressed by the following
equation:
where n is the number of CQ groups.
Board Skew parameters for RLDRAM II and RLDRAM 3
The following table lists board skew parameters for RLDRAM II and RLDRAM 3 interfaces.
Table 9-26: Parameter Descriptions
Parameter
Maximum CK
delay to device
Description
The delay of the longest CK trace from the FPGA to any device/DIMM is expressed by
the following equation:
where n is the number of memory clocks. For example, the maximum CK delay for
two pairs of memory clocks is expressed by the following equation:
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Board Skew parameters for RLDRAM II and RLDRAM 3
Parameter
Maximum DK
delay to device
9-83
Description
The delay of the longest DK trace from the FPGA to any device/DIMM is expressed by
the following equation:
where n is the number of DK. For example, the maximum DK delay for two DK is
expressed by the following equation:
Minimum delay
difference
between CK and
DK
The minimum delay difference between the CK signal and any DK signal when
arriving at the memory device(s). The value is equal to the minimum delay of the CK
signal minus the maximum delay of the DK signal. The value can be positive or
negative.
The minimum delay difference between CK and DK is expressed by the following
equations:
where n is the number of memory clocks and m is the number of DK. For example,
the minimum delay difference between CK and DK for two pairs of memory clocks
and four DK signals (two DK signals for each clock) is expressed by the following
equation:
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-84
EMI_DG
2014.12.15
Board Skew parameters for RLDRAM II and RLDRAM 3
Parameter
Maximum delay
difference
between CK and
DK
Description
The maximum delay difference between the CK signal and any DK signal when
arriving at the memory device(s). The value is equal to the maximum delay of the CK
signal minus the minimum delay of the DK signal. The value can be positive or
negative.
The maximum delay difference between CK and DK is expressed by the following
equations:
where n is the number of memory clocks and m is the number of DK. For example,
the maximum delay difference between CK and DK for two pairs of memory clocks
and four DK signals (two DK signals for each clock) is expressed by the following
equation:
Maximum delay
difference
between devices
The maximum delay difference of data signals between devices is expressed by the
following equation:
For example, in a two-device configuration there is greater propagation delay for data
signals going to and returning from the furthest device relative to the nearest device.
This parameter is applicable for depth expansion. Set the value to 0 for non-depth
expansion design.
Maximum skew The maximum skew between the DQ signals referenced by a common QK signal.
within QK group
Maximum skew
between QK
groups
The maximum skew between QK signals of different data groups.
Maximum skew
within address/
command bus
The maximum skew between the address/command signals.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Controller Settings for UniPHY IP
Parameter
Average delay
difference
between address/
command and
CK
9-85
Description
A value equal to the average of the longest and smallest address/command signal delay
values, minus the delay of the CK signal. The value can be positive or negative.
The average delay difference between the address and command and CK is expressed
by the following equation:
where n is the number of memory clocks.
Average delay
difference
between write
data signals and
DK
A value equal to the average of the longest and smallest write data signal delay values,
minus the delay of the DK signal. Write data signals include the DQ and DM signals.
The value can be positive or negative.
The average delay difference between DQ and DK is expressed by the following
equation:
where n is the number of DK groups.
Average delay
difference
between read
data signals and
QK
A value equal to the average of the longest and smallest read data signal delay values,
minus the delay of the QK signal. The value can be positive or negative.
The average delay difference between DQ and QK is expressed by the following
equation:
where n is the number of QK groups.
Controller Settings for UniPHY IP
Use the Controller Settings tab to apply the controller settings suitable for your design.
Note: This section describes parameters for the High Performance Controller II (HPC II) with advanced
features first introduced in version 11.0 for designs generated in version 11.0 or later. Designs
created in earlier versions and regenerated in version 11.0 or later do not inherit the new advanced
features; for information on parameters for HPC II without the advanced features, refer to the
External Memory Interface Handbook for Quartus II version 10.1, available on the Literature:
External Memory Interfaces page of the Altera website.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-86
EMI_DG
2014.12.15
Controller Settings for UniPHY IP
The following table lists the controller settings.
Table 9-27: Controller Settings
Parameter
Description
LPDDR2/DDR2/DDR3 SDRAM
Generate power-of-2 bus
widths for SOPC Builder
Rounds down the Avalon-MM side
data bus to the nearest power of 2.
You must enable this option for Qsys
systems.
is option is enabled, the Avalon data
buses are truncated to 256 bits wide.
One Avalon read-write transaction of
256 bit width maps to four memory
beat transactions, each of 72 bits (8
MSB bits are zero, while 64 LSB bits
carry useful content). The four
memory beats may comprise an
entire burst length-of-4 transaction,
or part of a burst-length-of-8 transac‐
tion.
Avalon Interface
Generate SOPC Builder
compatible resets
This option is not required when
using the IP Catalog or Qsys.
Maximum Avalon-MM
burst length
Specifies the maximum burst length
on the Avalon-MM bus. Affects the
AVL_SIZE_WIDTH parameter.
Enable Avalon-MM byte- When you turn on this option, the
enable signal
controller adds the byte enable signal
(avl_be) for the Avalon-MM bus to
control the data mask (mem_dm)
pins going to the memory interface.
You must also turn on Enable DM
pins if you are turning on this option.
When you turn off this option, the
byte enable signal (avl_be) is not
enabled for the Avalon-MM bus, and
by default all bytes are enabled.
However, if you turn on Enable DM
pins with this option turned off, all
write words are written.
Altera Corporation
Avalon interface address
width
The address width on the AvalonMM interface.
Avalon interface data
width
The data width on the Avalon-MM
interface.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Controller Settings for UniPHY IP
Parameter
9-87
Description
Enable self-refresh
controls
Enables the self-refresh signals on the
controller top-level design. These
controls allow you to control when
the memory is placed into self-refresh
mode.
Enable Deep PowerDown Controls
Enables the Deep Power-Down
signals on the controller top level.
These signals control when the
memory is placed in Deep PowerDown mode.
This parameter is available only for
LPDDR2 SDRAM.
Low Power Mode
Implementing and Parameterizing Memory IP
Send Feedback
Enable auto-power down
Allows the controller to automatically
place the memory into (Precharge)
power-down mode after a specified
number of idle cycles. Specifies the
number of idle cycles after which the
controller powers down the memory
in the auto-power down cycles
parameter.
Auto power-down cycles
The number of idle controller clock
cycles after which the controller
automatically powers down the
memory. The legal range is from 1 to
65,535 controller clock cycles.
Altera Corporation
9-88
EMI_DG
2014.12.15
Controller Settings for UniPHY IP
Parameter
Description
Enable user auto refresh
controls
Enables the user auto-refresh control
signals on the controller top level.
These controller signals allow you to
control when the controller issues
memory autorefresh commands.
Enable auto precharge
control
Enables the autoprecharge control on
the controller top level. Asserting the
autoprecharge control signal while
requesting a read or write burst
allows you to specify whether the
controller should close (autopre‐
charge) the currently open page at the
end of the read or write burst.
Local-to-memory address Allows you to control the mapping
mapping
between the address bits on the
Avalon-MM interface and the chip,
row, bank, and column bits on the
memory.
Select Chip-Row-Bank-Col to
improve efficiency with sequential
traffic.
Select Chip-Bank-Row-Col to
improve efficiency with random
traffic.
Efficiency
Select Row-Chip-Bank-Col to
improve efficiency with multiple chip
select and sequential traffic.
Altera Corporation
Command queue look
ahead depth
Selects a look-ahead depth value to
control how many read or writes
requests the look-ahead bank
management logic examines. Larger
numbers are likely to increase the
efficiency of the bank management,
but at the cost of higher resource
usage. Smaller values may be less
efficient, but also use fewer resources.
The valid range is from 1 to 16.
Enable reordering
Allows the controller to perform
command and data reordering that
reduces bus turnaround time and
row/bank switching time to improve
controller efficiency.
Starvation limit for each
command
Specifies the number of commands
that can be served before a waiting
command is served. The valid range
is from 1 to 63.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Controller Settings for UniPHY IP
Parameter
9-89
Description
Enable Configuration
and Status Register
Interface
Enables run-time configuration and
status interface for the memory
controller. This option adds an
additional Avalon-MM slave port to
the memory controller top level,
which you can use to change or read
out the memory timing parameters,
memory address sizes, mode register
settings and controller status. If Error
Detection and Correction Logic is
enabled, the same slave port also
allows you to control and retrieve the
status of this logic.
CSR port host interface
Specifies the type of connection to the
CSR port. The port can be exported,
internally connected to a JTAG
Avalon Master, or both.
Configuration, Status, and Error
Handling
Select Internal (JTAG) to connect
the CSR port to a JTAG Avalon
Master.
Select Avalon-MM Slave to export
the CSR port.
Select Shared to export and connect
the CSR port to a JTAG Avalon
Master.
Implementing and Parameterizing Memory IP
Send Feedback
Enable error detection
and correction logic
Enables ECC for single-bit error
correction and double-bit error
detection. Your memory interface
must be a multiple of 16, 24, 40, or 72
bits wide to use ECC.
Enable auto error
correction
Allows the controller to perform auto
correction when a single-bit error is
detected by the ECC logic.
Altera Corporation
9-90
EMI_DG
2014.12.15
Controller Settings for UniPHY IP
Parameter
Description
Export bonding port
Turn on this option to export
bonding interface for wider avalon
data width with two controllers.
Bonding ports are exported to the top
level.
Number of ports
Specifies the number of Avalon-MM
Slave ports to be exported. The
number of ports depends on the
width and the type of port you
selected. There are four 64-bit read
FIFOs and four 64-bit write FIFOs in
the multi-port front-end (MPFE)
component. For example, If you
select 256 bits width and bidirectional
slave port, all the FIFOs are fully
utilized, therefore you can only select
one port.
Note: This parameter is not
available for MAX 10
devices.
Width
Multiple Port Front End
Specifies the local data width for each
Avalon-MM Slave port. The width
depends on the type of slave port and
also the number of ports selected.
This is due to the limitation of the
FIFO counts in the MPFE. There are
four 64-bit read FIFOs and four 64bit write FIFOs in the MPFE. For
example, if you select one bidirec‐
tional slave port, you can select up to
256 bits to utilize all the read and
write FIFOs.
As a general guideline to choosing an
optimum port width for your halfrate or quarter-rate design, apply the
following equation:
port width = 2 x DQ width x Interface
width multiplier
where the interface width multiplier
is 2 for half-rate interfaces and 4 for
quarter-rate interfaces.
Altera Corporation
Priority
Specifies the absolute priority for
each Avalon-MM Slave port. Any
transaction from the port with higher
priority number will be served before
transactions from the port with lower
priority number.
Weight
Specifies the relative priority for each
Avalon-MM Slave port. When
Sendthere
Feedback
are two or more ports having the
same absolute priority, the transac‐
tion from the port with higher (bigger
Implementing and Parameterizing Memory IP
EMI_DG
2014.12.15
Controller Settings for UniPHY IP
Parameter
9-91
Description
QDR II/QDR II+ SRAM and RLDRAM II
Generate power-of-2 data bus widths for SOPC Builder
Rounds down the Avalon-MM side
data bus to the nearest power of 2.
You must enable this option for Qsys
systems.
Generate SOPC Builder compatible resets
This option is not required when
using the IP Catalog or Qsys.
Maximum Avalon-MM burst length
Specifies the maximum burst length
on the Avalon-MM bus.
Enable Avalon-MM byte-enable signal
When you turn on this option, the
controller adds a byte-enable signal
(avl_be_w) for the Avalon-MM bus,
in which controls the bws_n signal on
the memory side to mask bytes
during write operations.
When you turn off this option, the
avl_be_w signal is not available and
the controller will always drive the
memory bws_n signal so as to not
mask any bytes during write
operations.
Avalon interface address width
Specifies the address width on the
Avalon-MM interface.
Avalon interface data width
Specifies the data width on the
Avalon-MM interface.
Reduce controller latency by
Specifies the number of clock cycles
by which to reduce controller latency.
Lower controller latency results in
lower resource usage and fMAX while
higher latency results in higher
resource usage and fMAX,
Enable user refresh
Enables user-controlled refresh.
Refresh signals will have priority over
read/write requests.
This option is available for
RLDRAM II only.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-92
EMI_DG
2014.12.15
Diagnostics for UniPHY IP
Parameter
Enable error detection parity
Description
Enables per-byte parity protection.
This option is available for
RLDRAM II only
Related Information
Literature: External Memory Interfaces
Diagnostics for UniPHY IP
The Diagnostics tab allows you to set parameters for certain diagnostic functions.
The following table describes parameters for simulation.
Table 9-28: Simulation Options
Parameter
Description
Simulation Options
Auto-calibration mode
Specifies whether you want to improve simulation performance by reducing
calibration. There is no change to the generated RTL. The following
autocalibration modes are available:
• Skip calibration—provides the fastest simulation. It loads the settings
calculated from the memory configuration and enters user mode.
• Quick calibration—calibrates (without centering) one bit per group
before entering user mode.
• Full calibration—calibrates the same as in hardware, and includes all
phases, delay sweeps, and centering on every data bit. You can use timing
annotated memory models. Be aware that full calibration can take hours
or days to complete.
To perform proper PHY simulation, select Quick calibration or Full
calibration. For more information, refer to the “Simulation Options”
section in the Simulating Memory IP chapter.
For QDR II, QDR II+ SRAM, and RLDRAM II, the Nios II-based sequencer
must be selected to enable the auto calibration modes selection.
Note: This parameter is not available for MAX 10 devices.
Skip memory initializa‐
tion delays
When you turn on this option, required delays between specific memory
initialization commands are skipped to speed up simulation.
Note: This parameter is not available for MAX 10 devices.
Enable verbose memory
model output
Turn on this option to display more detailed information about each
memory access during simulation.
Note: This parameter is not available for MAX 10 devices.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Arria 10 External Memory Interface IP
Parameter
9-93
Description
Enable support for Nios II Initializes the memory interface for use with the Run as Nios II ModelSim
®
ModelSim flow in
flow with Eclipse.
Eclipse
This parameter is not available for QDR II and QDR II+ SRAM.
Note: This parameter is not available for MAX 10 devices.
Debug Options
Debug level
Specifies the debug level of the memory interface.
Efficiency Monitor and Protocol Checker Settings
Enable the Efficiency
Enables efficiency monitor and protocol checker block on the controller
Monitor and Protocol
Avalon interface.
Checker on the Controller
This option is not available for QDR II and QDR II+ SRAM, or for the MAX
Avalon Interface
10 device family.
Arria 10 External Memory Interface IP
This section contains information about parameterizing Arria 10 External Memory Interface IP.
Qsys Interfaces
The interfaces in the Arria 10 External Memory Interface IP each have signals that can be connected in
Qsys. The following tables list the signals available for each interface and provides a description and
guidance on how to connect those interfaces.
Listed interfaces and signals are available in all configurations unless stated otherwise in the description
column. For Arria 10 External Memory Interface for HPS, the global_reset_reset_sink,
pll_ref_clk_clock_sink, hps_emif_conduit_end, oct_conduit_end and mem_conduit_end interfaces
are the only available interfaces regardless of your configuration.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-94
EMI_DG
2014.12.15
Qsys Interfaces
Arria 10 External Memory Interface IP Interfaces
Table 9-29: Interface: afi_clk_conduit_end
Signals in Interface
afi_clk
Interface
Type
Conduit
Direction
Output
Availability
Description
• DDR3, DDR4,
RLDRAM 3, QDR
IV
• Hard PHY only
The Altera PHY Interface (AFI)
clock output signal. The clock
frequency in relation to the
memory clock frequency
depends on the Clock rate of
user logic value set in the
parameter editor.
Connect this interface to the
(clock input) conduit of the
custom AFI-based memory
controller connected to the
afi_conduit_end or any user
logic block that requires the
generated clock frequency.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Qsys Interfaces
9-95
Table 9-30: Interface: afi_conduit_end
Signals in Interface
Interface
Type
Direction
afi_cal_success
Output
afi_cal_fail
Output
afi_cal_req
Input
afi_rlat
Output
afi_wlat
Output
afi_addr
Input
afi_rst_n
Input
afi_wdata_valid
Input
afi_wdata
Input
afi_rdata_en_full
Input
afi_rdata
Output
afi_rdata_valid
Output
afi_rrank
Input
afi_wrank
Input
afi_ba
Input
afi_cs_n
Input
afi_cke
Input
afi_odt
Input
afi_dqs_burst
Input
afi_ap
Input
afi_pe_n
Output
afi_ainv
Input
afi_ld_n
Input
afi_rw_n
Input
afi_cfg_n
Input
afi_lbk0_n
Input
afi_lbk1_n
Input
afi_rdata_dinv
afi_wdata_dinv
Conduit
Availability
• DDR3, DDR4,
RLDRAM 3, QDR
IV
• Hard PHY only
• DDR3, DDR4,
RLDRAM 3
• Hard PHY only
• DDR3, DDR4
• Hard PHY only
The Altera PHY Interface (AFI)
signals between the external
memory interface IP and the
custom AFI-based memory
controller.
Connect this interface to the
AFI conduit of the custom AFIbased memory controller.
• QDR IV
• Hard PHY only
Output
Input
afi_we_n
Input
• DDR3, RLDRAM 3
• Hard PHY only
afi_dm
Input
• DDR3,
RLDRAM 3
• Hard PHY only
• Enable DM
pins=True
Implementing and Parameterizing Memory IP
Send Feedback
afi_ras_n
Description
Input
• DDR3
Altera Corporation
9-96
EMI_DG
2014.12.15
Qsys Interfaces
Table 9-31: Interface: afi_half_clk_conduit_end
Signals in Interface
afi_half_clk
Interface
Type
Direction
Conduit
Output
Availability
Description
• DDR3, DDR4,
RLDRAM 3, QDR
IV
• Hard PHY only
The Altera PHY Interface (AFI)
half clock output signal. The
clock runs at half the frequency
of the AFI clock (afi_clk
clock).
Connect this interface to the
clock input conduit of the user
logic block that needs to be
clocked at the generated clock
frequency.
Table 9-32: Interface: afi_reset_conduit_end
Signals in Interface
afi_reset_n
Interface
Type
Direction
Conduit
Output
Availability
Description
• DDR3, DDR4,
RLDRAM 3, QDR
IV
• Hard PHY only
The Altera PHY Interface (AFI)
reset output signal. Asserted
when the PLL becomes
unlocked or when the PHY is
reset. Asynchronous assertion
and synchronous deassertion.
Connect this interface to the
reset input conduit of the
custom AFI-based memory
controller connected to the
afi_conduit_end and all the
user logic blocks that are under
the AFI clock domain afi_clk
or afi_half_clk clock).
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Qsys Interfaces
9-97
Table 9-33: Interface: cal_debug_avalon_slave
Signals in Interface
Interface
Type
Direction
Output
cal_debug_waitrequest
cal_debug_read
Input
cal_debug_write
Input
cal_debug_addr
Input
cal_debug_read_data
Output
cal_debug_write_data
Input
cal_debug_burstcount
cal_debug_byteenable
cal_debug_read_data_
valid
Availability
Input
Avalon
Memory- Input
Mapped Output
Slave
Description
The Avalon-MM signals
between the external memory
interface IP and the external
memory interface Debug
Component.
• EMIF Debug
Toolkit
• On-Chip Debug
Port=Export
Connect this interface to the
(to_ioaux) Avalon-MM
master of the Arria 10 EMIF
Debug Component IP or to
(cal_debug_out_avalon_
master) Avalon-MM master of
the other external memory
interface IP that has exported
the interface .
When in daisy-chaining mode,
ensure one of the connected
Avalon masters is either the
Arria 10 EMIF Debug
Component IP or the external
memory interface IP with
EMIF Debug Toolkit/OnChip Debug Port set to Add
EMIF Debug Interface.
Table 9-34: Interface: cal_debug_clk_clock_sink
Signals in Interface
cal_debug_clk
Interface
Type
Direction
Availability
Clock
Input
Input
• EMIF Debug
Toolkit / On-Chip
Debug
Port=Export
Description
The calibration debug clock
input signal.
Connect this interface to the
(avl_clk_out) clock output of
the Arria 10 EMIF Debug
Component IP or to (cal_
debug_out_clk_clock_
source) clock input of the
other external memory
interface IP, depending on
which IP the cal_debug_
avalon_slave interface is
connecting to.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-98
EMI_DG
2014.12.15
Qsys Interfaces
Table 9-35: Interface: cal_debug_out_avalon_master
Signals in Interface
Interface
Type
cal_debug_out_
waitrequest
Direction
Input
cal_debug_out_write
Input
cal_debug_out_addr
Input
cal_debug_out_write_
data
Avalon
MemoryMapped
Master
Output
Input
cal_debug_out_
burstcount
Input
cal_debug_out_
byteenable
Input
cal_debug_out_read_
data_valid
Altera Corporation
Description
Output
cal_debug_out_read
cal_debug_out_read_
data
Availability
• EMIF Debug
Toolkit / On-Chip
Debug
Port=Export
• Add EMIF Debug
Interface with
Enable DaisyChaining for
EMIF Debug
Toolkit/ On-Chip
Debug Port=True
The Avalon-MM signals
between the external memory
interface IP and the other
external memory interface IP.
Connect this interface to the
(cal_debug_avalon_slave)
Avalon-MM Master of the
external memory interface IP
that has exported the interface .
Output
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Qsys Interfaces
9-99
Table 9-36: Interface: cal_debug_out_clk_clock_source
Signals in Interface
Interface
Type
Direction
Availability
cal_debug_out_clk
Clock
Output
Output
• EMIF Debug
Toolkit / On-Chip
Debug
Port=Export
• Add EMIF Debug
Interface with
Enable DaisyChaining for
EMIF Debug
Toolkit/ On-Chip
Debug Port=True
Description
The calibration debug clock
output signal.
For EMIF Debug Toolkit/OnChip Debug Port=Export with
Enable Daisy-Chaining for
EMIF Debug Toolkit/ OnChip Debug Port=True, the
clock frequency follows the cal_
debug_clk frequency.
Otherwise, the clock frequency
in relation to the memory clock
frequency depends on the
Clock rate of user logic value
set in the parameter editor.
Connect this interface to the
(cal_debug_out_reset_
reset_source) clock input of
the other external memory
interface IP where the cal_
debug_avalon_master
interface is being connected to
or to any user logic block that
needs to be clocked at the
generated clock frequency.
Table 9-37: Interface: cal_debug_out_reset_reset_source
Signals in Interface
cal_debug_out_reset_n
Interface
Type
Direction
Availability
Reset
Output
Output
• EMIF Debug
Toolkit / On-Chip
Debug
Port=Export
• Add EMIF Debug
Interface with
Enable DaisyChaining for
EMIF Debug
Toolkit/ On-Chip
Debug Port=True
Implementing and Parameterizing Memory IP
Send Feedback
Description
The calibration debug reset
output signal. Asynchronous
assertion and synchronous
deassertion.
Connect this interface to the
(cal_debug_reset_reset_
sink) reset input of the other
external memory interface IP
where the cal_debug_avalon_
master interface being
connected to and all the user
logic blocks that are under the
calibration debug clock domain
(cal_debug_out_clk clock).
Altera Corporation
9-100
EMI_DG
2014.12.15
Qsys Interfaces
Table 9-38: Interface: cal_debug_reset_reset_sink
Signals in Interface
cal_debug_reset_n
Interface
Type
Direction
Availability
Description
Reset
Input
Input
• EMIF Debug
Toolkit / On-Chip
Debug
Port=Export
The calibration debug reset
input signal. Require asynchro‐
nous assertion and synchro‐
nous deassertion.
Connect this interface to the
(avl_rst_out) reset output of
the Arria 10 EMIF Debug
Component IP or to (cal_
debug_out_reset_reset_
source) clock input of the
other external memory
interface IP, depending on
which IP the cal_debug_
avalon_slave interface is
being connected to.
Table 9-39: Interface: clks_sharing_master_out_conduit_end
Signals in Interface
clks_sharing_master_
out
Interface
Type
Direction
Conduit
Input
Availability
• Core clocks
sharing=Master
Description
The core clock output signals.
Connect this interface to the
(clks_sharing_slave_in_
conduit_end) conduit of the
other external memory
interface IP with the Core clock
sharing set to slave or other
PLL Slave.
Table 9-40: Interface: clks_sharing_slave_in_conduit_end
Signals in Interface
clks_sharing_slave_in
Altera Corporation
Interface
Type
Direction
Conduit
Input
Availability
• Core clocks
sharing=Slave
Description
The core clock input signals.
Connect this interface to the
(clks_sharing_master_out_
conduit_end) conduit of the
other external memory
interface IP with the Core clock
sharing set to Master or other
PLL Master.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Qsys Interfaces
9-101
Table 9-41: Interface: ctrl_amm_avalon_slave
Signals in Interface
Interface
Type
Direction
Output
amm_ready
amm_read
Input
amm_write
Input
amm_address
Input
amm_readdata
Output
amm_writedata
Input
amm_burstcount
amm_readdatavalid
amm_byteenable
Input
Avalon
Memory- Output
Mapped
Input
Slave
Implementing and Parameterizing Memory IP
Send Feedback
Availability
Description
The Avalon-MM signals
between the external memory
interface IP and the user logic.
• DDR3, DDR4 with
Hard PHY & Hard
Controller
• QDR II/II+/II+
Xtreme, QDR IV
• DDR3, DDR4
with Hard PHY
& Hard
Controller and
Enable DM
pins=True
• QDR II/II+/II+
Xtreme with
Enable BWS#
pins=True
Connect this interface to the
Avalon-MM Master of the user
logic that needs to access the
external memory device. For
QDR II/II+/II+ Xtreme,
connect the ctrl_amm_avalon_
slave_0 to the user logic for
read request and connect the
ctrl_amm_avalon_slave_1 to
the user logic for write request.
In Ping Pong PHY mode, each
interface controls only one
memory device. Connect ctrl_
amm_avalon_slave_0 to the
user logic that will access the
first memory device, and
connect ctrl_amm_avalon_
slave_1 to the user logic that
will access the secondary
memory device.
Altera Corporation
9-102
EMI_DG
2014.12.15
Qsys Interfaces
Table 9-42: Interface: ctrl_auto_precharge_conduit_end
Signals in Interface
Interface
Type
Direction
Availability
Description
ctrl_auto_precharge_
req
Conduit
Input
• DDR3, DDR4 with
Hard PHY & Hard
Controller and
Enable AutoPrecharge
Control=True
The auto-precharge control
input signal. Asserting the
ctrl_auto_precharge_req
signal while issuing a read or
write burst instructs the
external memory interface IP to
issue read or write with autoprecharge to the external
memory device. This
precharges the row
immediately after the
command currently accessing it
finishes, potentially speeding
up a future access to a different
row of the same bank.
Connect this interface to the
conduit of the user logic block
that controls when the external
memory interface IP needs to
issue read or write with autoprecharge to the external
memory device.
Table 9-43: Interface: ctrl_ecc_user_interrupt_conduit_end
Signals in Interface
Interface Type
ctrl_ecc_user_interrupt Conduit
Altera Corporation
Direction
Output
Availability
• DDR3, DDR4
with Hard
PHY & Hard
Controller
and Enable
Error
Detection
and
Correction
Logic = True
Description
Controller ECC user
interrupt interface for
connection to a custom
control block that must
be notified when ECC
errors occur.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Qsys Interfaces
9-103
Table 9-44: Interface: ctrl_mmr_avalon_slave
Signals in Interface
Interface
Type
mmr_waitrequest
Direction
Input
mmr_write
Input
mmr_address
Input
mmr_writedata
mmr_burstcount
Description
Output
mmr_read
mmr_readdata
Availability
Avalon Output
MemoryMapped Input
Slave
Input
mmr_byteenable
Input
mmr_beginburst‐
transfer
Input
mmr_readdatavalid
The Avalon-MM signals
• DDR3, DDR4 with between the external memory
Hard PHY & Hard interface IP and the user logic.
Controller and
Connect this interface to the
Enable MemoryAvalon-MM master of the user
Mapped Configu‐ logic that needs to access the
ration and Status Memory-Mapped Configura‐
Register (MMR)
tion and Status Register
=True
(MMR) in the external memory
interface IP.
Output
Table 9-45: Interface: ctrl_power_down_conduit_end
Signals in Interface
ctrl_power_down_ack
Interface
Type
Direction
Availability
Conduit
Output
• DDR3, DDR4 with
Hard PHY & Hard
Controller and
Enable Auto
Power Down=True
Description
The auto power-down
acknowledgment signals. When
the ctrl_power_down_ack
signal is asserted, it indicates
that the external memory
interface IP is placing the
external memory device into
power-down mode.
Connect this interface to the
conduit of the user logic block
that requires the auto powerdown status, or leave it
unconnected.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-104
EMI_DG
2014.12.15
Qsys Interfaces
Table 9-46: Interface: ctrl_user_priority_conduit_end
Signals in Interface
Interface
Type
Direction
Availability
Description
ctrl_user_priority_hi
Conduit
Input
• DDR3, DDR4 with
Hard PHY & Hard
Controller
• Avalon MemoryMapped and
Enable Command
Priority
Control=true
The command priority control
input signal. Asserting the
ctrl_user_priority_hi
signal while issuing a read or
write request instructs the
external memory interface to
treat it as a high-priority
command. The external
memory interface attempts to
execute high-priority
commands sooner, to reduce
latency.
Connect this interface to the
conduit of the user logic block
that determines when the
external memory interface IP
treats the read or write request
as a high-priority command.
Table 9-47: Interface: emif_usr_clk_clock_source
Signals in Interface
emif_usr_clk
Interface
Type
Direction
Availability
Description
Clock
Output
Output
• DDR3, DDR4 with
Hard PHY & Hard
Controller
• QDR II/II+/II+
Xtreme
• QDR IV
The user clock output signal.
The clock frequency in relation
to the memory clock frequency
depends on the Clock rate of
user logic value set in the
parameter editor.
Connect this interface to the
clock input of the respective
user logic connected to the
ctrl_amm_avalon_slave_0 or
the ctrl_amm_avalon_slave_1
interfaces, or any user logic
block that needs to be clocked
at the generated clock
frequency.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Qsys Interfaces
9-105
Table 9-48: Interface: emif_usr_reset_reset_source
Signals in Interface
emif_usr_reset_n
Interface
Type
Direction
Availability
Reset
Output
Output
• DDR3, DDR4 with
Hard PHY & Hard
Controller
• QDR II/II+/II+
Xtreme
• QDR IV
Description
The user reset output signal.
Asserted when the PLL
becomes unlocked or the PHY
is reset. Asynchronous
assertion and synchronous
deassertion.
Connect this interface to the
reset input of the respective
user logic connected to ctrl_
amm_avalon_slave_0 or the
ctrl_amm_avalon_slave_1
interface and all the user logic
blocks that are under the user
clock domain (emif_usr_clk
clock).
Table 9-49: Interface: global_reset_reset_sink
Signals in Interface
global_reset_n
Interface
Type
Direction
Reset
Input
Input
Availability
• Core Clock
Sharing=No
Sharing / Master
Description
The global reset input signal.
Asserting the global_reset_n
signal causes the external
memory interface IP to be reset
and recalibrated.
Connect this interface to the
reset output of the asynchro‐
nous or synchronous reset
source that controls when the
external memory interface IP
needs to be reset and
recalibrated.
Table 9-50: Interface: hps_emif_conduit_end
Signals in Interface
Interface
Type
Direction
hps_to_emif
Input
emif_to_hps
Output
Conduit
Implementing and Parameterizing Memory IP
Send Feedback
Availability
• Arria 10 EMIF for
HPS IP
Description
The user interface signals
between the external memory
interface IP and the Hard
Processor System (HPS).
Connect this interface to the
EMIF conduit of the Arria 10
Hard Processor System.
Altera Corporation
9-106
EMI_DG
2014.12.15
Qsys Interfaces
Table 9-51: Interface: mem_conduit_end
Signals in Interface
Interface
Type
mem_ck
Direction
Availability
Output
mem_ck_n
Output
mem_reset_n
Output
mem_a
Output
mem_k_n
Output
mem_ras_n
Output
mem_cas_n
Output
mem_odt
Always available
• QDR II
• DDR3
Output
mem_dqs
Bidirec
tional
mem_dqs_n
Bidirec
tional
mem_ba
• DDR3, DDR4
Output
mem_cs_n
Output
mem_dq
Bidirec
tional
mem_we_n
• DDR3, DDR4,
RLDRAM 3
Output
• DDR3,
RLDRAM 3
Output
• DDR3,
RLDRAM 3
with Enable
DM pins=True
mem_rm
Output
• DDR3,
RLDRAM 3
with Memory
format=LRDI
MM and
Number of
rank multipli‐
cation pins > 0
mem_par
Output
• DDR3 with
Memory
format=RDIM
M / LRDIMM
• DDR4 with
Enable alert_n/
par pins=True
mem_dm
mem_alert_n
mem_cke
Altera Corporation
mem_bg
Description
Conduit
Input
Output
Output
• DDR3, DDR4
• DDR4
mem_act_n
Output
mem_dbi_n
Bidirectio • DDR4 with
nal
Enable DM
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Qsys Interfaces
9-107
Table 9-52: Interface: oct_conduit_end
Signals in Interface
oct_rzqin
Interface
Type
Direction
Conduit
Input
Availability
Always available
Description
The On-Chip Termination
(OCT) RZQ reference resistor
input signal.
Export this interface to the top
level for I/O assignments.
Table 9-53: Interface: pll_ref_clk_clock_sink
Signals in Interface
pll_ref_clk
Interface
Type
Direction
Clock
Input
Input
Availability
• Core clock
sharing=No
Sharing / Master
Description
The PLL reference clock input
signal.
Connect this interface to the
clock output of the clock source
that matches the PLL reference
clock frequency value set in the
parameter editor.
Table 9-54: Interface: status_conduit_end
Signals in Interface
Interface
Type
Direction
Availability
local_cal_success
local_cal_fail
Conduit
Output
Always available
Description
The PHY calibration status
output signals. When the
local_cal_success signal is
asserted, it indicates that the
PHY calibration was successful.
Otherwise, if local_cal_fail
signal is asserted, it indicates
that PHY calibration has failed.
Connect this interface to the
conduit of the user logic block
that requires the calibration
status information, or leave it
unconnected.
Related Information
http://www.alterawiki.com/wiki/Measuring_Channel_Signal_Integrity
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-108
EMI_DG
2014.12.15
Generated Files for Arria 10 External Memory Interface IP
Generated Files for Arria 10 External Memory Interface IP
When you complete the IP generation flow, there are generated files created in your project directory. The
directory structure created varies somewhat, depending on the tool used to parameterize and generate the
IP.
Note: The PLL parameters are statically defined in the <variation_name>_parameters.tcl at generation
time. To ensure timing constraints and timing reports are correct, when you edit the PLL
parameters, apply those changes to the PLL parameters in this file.
The following table lists the generated directory structure and key files created when generating the IP.
Table 9-55: Generated Directory Structure and Key Files for Synthesis
Directory
working_dir/
File Name
working_dir/<Top-level Name>/
Description
The Qsys files for your IP component or
system based on your configuration.
working_dir/<Top-level Name> *.ppf
/
Pin Planner File for use with the Pin
Planner.
working_dir/<Top-level Name> <Top-level Name>.v or <Top-level
/synth/
Name>.vhd
Qsys generated top-level wrapper for
synthesis.
working_dir/<Top-level Name> *.v or (*.v and *.vhd)
/altera_emif_<acds version>/
synth/
Arria 10 EMIF (non-HPS) top-level
dynamic wrapper files for synthesis. This
wrapper instantiates the EMIF ECC and
EMIF Debug Interface IP core.
working_dir/<Top-level Name> *.v or (*.v and *.vhd)
/altera_emif_a10_hps_<acds
version>/synth/
Arria 10 EMIF for HPS top-level dynamic
wrapper files for synthesis.
working_dir/<Top-level Name> *.sv, *.sdc, *.tcl and *.hex and *_
/altera_emif_a10_hps_<acds
readme.txt
version>/synth/
Arria 10 EMIF Core RTL, constraints files,
ROM content files and information files for
synthesis.
Whether the file type is set to Verilog or
VHDL, all the Arria 10 EMIF Core RTL
files will be generated as a SystemVerilog
file. The readme.txt file contains informa‐
tion and guidelines specific to your configu‐
ration.
Other EMIF ECC, EMIF Debug Interface IP
or Merlin Interconnect component files for
synthesis.
working_dir/<Top-level Name> *
/<other components>_<acds
version>/synth/
Table 9-56: Generated Directory Structure and Key Files for Simulation
Directory
File Name
working_dir/<Top-level Name> <Top-level Name>.v or <Top-level
/sim/
Name>.vhd
Altera Corporation
Description
Qsys generated top-level wrapper for
simulation.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Generated Files for Arria 10 External Memory Interface IP
Directory
File Name
9-109
Description
working_dir/<Top-level Name> *.tcl, *cds.lib, *.lib, *.var, *.sh,
/sim/<simulator vendor>/
*.setup
Simulator-specific simulation scripts.
working_dir/<Top-level Name> *.v or *.vhd
/altera_emif_<acds version>/
sim/
Arria 10 EMIF (non-HPS) top-level
dynamic wrapper files for simulation. This
wrapper instantiates the EMIF ECC and
EMIF Debug Interface IP cores.
working_dir/<Top-level Name> *.v or *.vhd
/altera_emif_a10_hps_<acds
version>/sim/
Arria 10 EMIF for HPS top-level dynamic
wrapper files for simulation.
working_dir/<Top-level Name> *sv or (*.sv and *.vhd), *.hex
/altera_emif_arch_nf_<acds
and *_readme.txt
version>/sim/
Arria 10 EMIF RTL, ROM content files, and
information files for simulation.
For SystemVerilog / Mix language
simulator, you may directly use the files
from this folder. For VHDL-only simulator,
other than the ROM content files, you have
to use files in <current folder>/mentor
directory instead.
The readme.txt file contains information
and guidelines specific to your configura‐
tion.
working_dir/<Top-level Name> *.sv and *.vhd
/sim/altera_emif_arch_nf_
<acds version>/sim/mentor/
Arria 10 EMIF core RTL for simulation.
Only available when you create a VHDL
simulation model. All .sv files are Mentortagged encrypted IP (IEEE Encrypted
Verilog) for VHDL-only simulator support.
working_dir/<Top-level Name>
/<other components>_<acds
version>/sim/
*
Other EMIF ECC, EMIF Debug Interface
IP, or Merlin Interconnect component files
for simulation
working_dir/<Top-level Name>
/<other components>_<acds
version>/sim/mentor/
*
Other EMIF ECC, EMIF Debug Interface
IP, or Merlin Interconnect component files
for simulation.
Availability depends on individual
component simulation model support and
the simulation model being set to VHDL .
All files in this folder are Mentor-tagged
encrypted IP (IEEE Encrypted Verilog) for
VHDL-only simulator support.
Table 9-57: Generated Directory Structure and Key Files for Qsys-Generated Testbench System
Directory
working_dir/<Top-level Name> *.qsys
_tb/
Implementing and Parameterizing Memory IP
Send Feedback
File Name
Description
The Qsys files for the QSYS generated
testbench system.
Altera Corporation
9-110
EMI_DG
2014.12.15
Generated Files for Arria 10 External Memory Interface IP
Directory
File Name
working_dir/<Top-level Name> <Top-level Name>.v or <Top-level
_tb/sim/
Name>.vhd
Description
Qsys generated testbench file for
simulation.
This wrapper instantiates BFM
components. For Arria 10 EMIF IP, this
module should instantiate the memory
model for the memory conduit being
exported from your created system.
working_dir/<Top-level Name> <Top-level Name>.v or <Top-level
_tb/<Top-level Name>_<id>/
Name>.vhd
sim/
Qsys generated top-level wrapper for
simulation.
working_dir/<Top-level Name> *.tcl, *cds.lib, *.lib, *.var, *.sh,
_tb/sim/<simulator vendor>/
*.setup
Simulator-specific simulation scripts.
working_dir/<Top-level Name> *.v or *.vhd
_tb/sim/<simulator vendor>/
Arria 10 EMIF (non-HPS) top-level
dynamic wrapper files for simulation.
This wrapper instantiates the EMIF ECC
and EMIF Debug Interface IP cores.
working_dir/<Top-level Name> *.v or *.vhd
_tb/altera_emif_a10_hps_
<acds version>/sim/
Arria 10 EMIF for HPS top-level dynamic
wrapper files for simulation.
working_dir/<Top-level Name> *sv or (*.sv and *.vhd), *.hex
_tb/altera_emif_arch_nf_
and *_readme.txt
<acds version>/sim/
Arria 10 EMIF Core RTL, ROM content
files and information files for simulation.
For SystemVerilog / Mix language
simulator, you may use the files from this
folder. For VHDL-only simulator, other
than the ROM content files, you must use
files in the <current folder>/mentor directory
instead. The readme.txt file contains
information and guidelines specific to your
configuration.
working_dir/<Top-level Name> *.sv and *.vhd
_tb/sim/altera_emif_arch_nf_
<acds version>/sim/mentor/
Arria 10 EMIF Core RTL for simulation.
working_dir/<Top-level Name> *
_tb/<other components>_
<acds version>/sim/
Other EMIF ECC, EMIF Debug Interface IP
or Merlin Interconnect component files for
simulation.
Altera Corporation
Only available when you create a VHDL
simulation model. All .sv files are Mentortagged encrypted IP (IEEE Encrypted
Verilog) for VHDL-only simulator support.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Directory
File Name
9-111
Description
Other EMIF ECC, EMIF Debug Interface IP
or Merlin Interconnect component files for
simulation.
working_dir/<Top-level Name> *
_tb/<other components>_
<acds version>/sim/mentor/
Only available depending on individual
component simulation model support and
when creating a VHDL simulation model.
All files in this folder are Mentor-tagged
encrypted IP (IEEE Encrypted Verilog) for
VHDL-only simulator support.
Table 9-58: Generated Directory Structure and Key Files for Example Designs
Directory
working_dir/*_example_
design*/
File Name
*.qsys, *.tcl and readme.txt
Description
Qsys files, generation scripts, and informa‐
tion for generating the Arria 10 EMIF IP
example design.
These files are available only when you
generate an example design. You may open
the .qsys file in Qsys to add more
components to the example design.
Parameterizing Arria 10 External Memory Interface IP
The Arria 10 EMIF IP parameter editor allows you to parameterize settings for the DDR3, DDR4, QDR
II/II+/II+ Xtreme, QDR IV, and RLDRAM 3 memory controllers for Arria 10 EMIF IP.
You can parameterize settings for the following tabs in the parameter editor:
•
•
•
•
•
•
•
General
I/O
Memory Topology
Memory Timing
Board Timing
Controller (Not applicable if you have selected Hard PHY only.)
Diagnostics
The text window at the bottom of the parameter editor displays information about the memory interface,
as well as warning and error messages. You should correct any errors indicated in this window before
clicking the Finish button.
Note: Default settings are the minimum required to achieve timing, and may vary depending on memory
protocol.
The following tables describe the parameterization settings available in the parameter editor for the Arria
10 EMIF IP.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-112
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Table 9-59: Group: General / Memory Protocol
Display Name
Protocol
Description
Protocol
The protocol of the memory interface.
All
Group: General / FPGA
Display Name
Speed grade
Description
Protocol
Specifies the speed grade of the FPGA, and whether it is All
an engineering sample (ES) or a production device. The
value is automatically determined based on the device
selected under View > Device Family. If no device is
specified, a production device of the fastest speed grade
is assumed.
You should always specify the correct target device
during IP generation. Failure to do so may result in IP
that does not work on hardware.
Table 9-60: Group: General / Interface
Display Name
Configuration
Description
Protocol
Specifies the configuration of the memory interface.
All
Several options are available, depending on protocol:
• (DDR3, DDR4) You may select Hard PHY and
Hard Controller or Hard PHY-Only.
• (QDR II/II+/II+ Xtreme, QDR IV) You can select
only Hard PHY and Soft Controller.
• (RLDRAM 3) You can select Hard PHY Only. If
you select Hard PHY Only, the AFI interface is
exported so that you can connect your own memory
controller or any third party IP.
DDR3, DDR4
Instantiate two controllers Select this option to instantiate two identically
sharing a Ping Pong PHY configured memory controllers that share the same
address/command bus through time multiplexing (i.e.
Ping Pong PHY topology). Ping Pong PHY results in
an interface with fewer pins, compared to having two
independent interfaces. When this option is enabled,
the IP core exposes two independent Avalon interfaces
to user logic, and a single external memory interface
with double the width for the data bus and the CS#,
CKE, ODT, and CK/CK# signals. (This option is
available only if you specify the Hard PHY and Hard
Controller option.)
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
9-113
Table 9-61: Group: General / Clocks
Display Name
Description
Protocol
Memory clock frequency
Frequency of memory clock in MHz.
Use recommended PLL
reference clock frequency
When checked, the PLL reference clock frequency is
All
automatically calculated for best performance.
Uncheck the check box if you want to specify your own
PLL reference clock frequency.
PLL reference clock
frequency
PLL reference clock frequency. You must select a valid All
PLL reference clock frequency from the list. The values
in the list can change if you change the the memory
interface frequency and/or the clock rate of user logic.
PLL reference clock jitter
The peak-to-peak jitter on the PLL reference clock
source. Should not exceed 10 ps time interval error
(TIE).
All
All
(Time interval error is the time deviation of the signal
edge from its ideal position.)
Clock rate of user logic
Determines the clock frequency of user logic in relation All
to the memory clock frequency. For example, if the
memory clock sent from the FPGA to the memory
device is toggling at 800MHz, a "Quarter rate" interface
means that the user logic in the FPGA runs at 200MHz.
Core clocks sharing
When a design contains multiple interfaces of the same All
protocol, rate, frequency, and PLL reference clock
source, it is possible to share a common set of core
clock domains, to reduce clock network usage and to
avoid clock synchronization logic between interfaces.
To achieve this, denote one of the interfaces as Master,
and the remaining interfaces as Slave. Then, in the
RTL, connect the clks_sharing_master_out signal
from the master interface to the clks_sharing_slave_
in signal of all the slave interfaces. Both master and
slave interfaces still expose their own output clock
ports in the RTL (for example, emif_usr_clk, afi_
clk), but the physical signals are equivalent and so it
does not matter whether a clock port from a master or
a slave is used.
All
Table 9-62: Group: I/O / General I/O Settings
Display Name
Voltage
Description
I/O voltage of the signaling between memory device
and memory interface.
Implementing and Parameterizing Memory IP
Send Feedback
Protocol
All
Altera Corporation
9-114
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Use default I/O settings
Description
Protocol
When checked, a legal set of I/O settings are
automatically selected. Note that the default I/O
settings are not necessarily optimized for your board.
To achieve optimal signal integrity, perform I/O
simulation and manually enter the I/O settings based
on simulation results, instead of using the defaults.
All
Table 9-63: Group: I/O / Address/Command
Display Name
Description
Protocol
I/O standard
I/O standard for the address/command pins of the
memory interface.
Output mode
Output termination or current strength of the address/ All
command output pins.
All
Table 9-64: Group: I/O / Memory Clock
Display Name
Description
Protocol
I/O standard
I/O standard for the memory clock pins of the memory All
interface.
Output mode
Output termination or current strength of the memory All
clock output pins.
Table 9-65: Group: I/O / Data Bus
Display Name
Description
Protocol
I/O standard
I/O standard for the data and data clock/strobe pins of
the memory interface.
Output mode
Output termination or current strength of the data and All
data clock/strobe pins.
Input mode
Input termination of the data and data clock/strobe
pins.
All
All
Table 9-66: Group: I/O / PHY Inputs
Display Name
Description
Protocol
PLL reference clock I/O
standard
/O standard for the PLL reference clock of the memory All
interface.
RZQ I/O standard
I/O standard for the RZQ pin of the memory interface. All
RZQ Resistor
Connect the RZQ pin to GND through an external
resistor of the specified value.
Altera Corporation
All
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
9-115
Table 9-67: Group: Memory Topology / Topology
Display Name
Description
Protocol
Memory format
The format of the external memory device. The
DDR3, DDR4
external memory device may be accessed directly as
discrete components, or via DIMMs (which can be
unbuffered, registered, or load-reduced, or SODIMM).
DQ width
Total number of DQ pins in the interface. Maximum
DDR3, DDR4
supported width is 144, or 72 in Ping Pong PHY mode.
DQ pins per DQS group
Number of DQ pins per DQS group.
DDR3, DDR4
Number of DQS Groups
Total number of DQS groups in the interface.
Automatically calculated as the total interface width
divided by the number of DQ pins per DQS group.
DDR3, DDR4
Number of clocks
Number of CK/CK# clock pairs exposed by the
memory interface.
DDR3, DDR4
Number of chip selects
Total number of chip selects in the interface.
DDR3, DDR4
Number of DIMMs
Total number of DIMMs.
DDR3, DDR4
Number of physical ranks Number of ranks per DIMM. For LRDIMM, this
per DIMM
represents the number of physical ranks on the DIMM
behind the memory buffer.
DDR3, DDR4
Number of rank multipli‐
cation pins
Number of rank multiplication pins used to access all
DDR3, DDR4
the physical ranks on an LRDIMM. These pins should
be connected to CS#[2] and/or CS#[3] of all LRDIMMs
in the system.
Number of chip selects per Number of chip selects (i.e. CS#) per DIMM.
DIMM
DDR3, DDR4
Number of clock enables
per DIMM
Number of clock enables (for example, CKE) per
DDR3, DDR4
DIMM. Only applicable to registered and load-reduced
DIMMs.
Row address width
Row address width. This is used to derive the total
number of address pins required.
DDR3, DDR4
Column address width
Column address width. This is used to derive the total
number of address pins required.
DDR3, DDR4
Bank address width
Number of bank address pins.
DDR3, DDR4,
RLDRAM 3
Bank group width
Number of bank group pins.
DDR4
DQ width per device
• Number of DQ pins per RLDRAM 3 device.
• Number of DQ pins per port per QDR IV device
RLDRAM 3, QDR
IV
DQ width
Number of DQ pins of the memory interface.
Automatically calculated based on the DQ width per
device and whether width expansion is enabled.
RLDRAM 3
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-116
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
Protocol
QK width
Number of QK clock pairs of the memory interface.
This is equal to the number of read data groups, and is
automatically calculated based on the DQ width per
device and whether width expansion is enabled.
DK width
Number of DK clock pairs of the memory interface.
RLDRAM 3
This is equal to the number of write data groups, and is
automatically calculated based on the DQ width per
device and whether width expansion is enabled.
CS# width
Number of chip selects of the memory interface.
RLDRAM 3
Enable DM pins
Indicates whether the interface uses the DM pins. If
enabled, one DM pin per DQS group is added.
DDR3, RLDRAM 3
Enable ALERT#/PAR pins Enables the alert_n/par pins used for address/
command parity and CRC.
ALERT# pin placement
RLDRAM 3
DDR4
The ALERT# (also known as ERR_OUT#) pin can
DDR3, DDR4
either be placed in an address/command I/O lane or in
a data I/O lane. If you place the pin in an address/
command I/O lane, IP generation automatically selects
a valid lane and pin location. If you place the pin in a
data I/O lane, you must also specify the DQS group
with which the pin is placed. It is recommended that
you accept the default setting.
For interfaces containing multiple memory devices, it is
recommended that you connected their ALERT# pins
together to the ALERT# pin on the FPGA.
DQS group of ALERT#
Select the DQS group with which the ALERT# pin is
placed.
DDR4
Data width per device
Number of D and Q pins per QDR II device.
QDR II/II+ /II+
Xtreme
Data width
Number of D and Q pins of the memory interface.
Automatically calculated based on the D and Q width
per device and whether width expansion is enabled.
QDR II/II+ /II+
Xtreme
BWS# width
Number of BWS# pins of the memory interface.
Automatically calculated based on the data width per
device and whether width expansion is enabled.
QDR II/II+ /II+
Xtreme
CQ width
Width of the CQ (read strobe) clock on the memory
device.
QDR II/II+ /II+
Xtreme
K width
Width of the K (address, command and write strobe)
clock on the memory device.
QDR II/II+ /II+
Xtreme
Enable BWS# pins
Indicates whether the interface uses the BWS# pins. If
enabled, 1 bws pin for every 9 D pins will be added.
QDR II/II+ /II+
Xtreme
Enable width expansion
Indicates whether to combine two memory devices to
double the data bus width.
QDR II/II+ /II+
Xtreme, RLDRAM
3, QDR IV
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
9-117
Display Name
Description
Protocol
Enable depth expansion
using twin die package
Indicates whether to combine two RLDRAM 3 devices
to double the address space.
RLDRAM 3
Address width
Number of address pins.
QDR II/II+ /II+
Xtreme, RLDRAM
3, QDR IV
Burst length
Burst length of the memory device.
QDR II/II+ /II+
Xtreme
DQA/DQB width
Number of DQ pins for port A or B of the memory
interface. Automatically calculated based on the DQ
width per device and whether width expansion is
enabled.
QDR IV
QKA/QKB width
Number of QK clock pairs for port A or B of the
QDR IV
memory interface. Automatically calculated based on
the DQ width per device and whether width expansion
is enabled.
DKA/DKB width
Number of DK clock pairs for port A or B of the
QDR IV
memory interface. Automatically calculated based on
the DQ width per device and whether width expansion
is enabled.
DINVA/DINVB width
Number of DINV pins for port A or B of the memory
interface. Automatically calculated based on the DQ
width per device and whether width expansion is
enabled.
QDR IV
Table 9-68: Group: Memory Topology / Configuration Register Settings
Display Name
Description
Protocol
Use address parity bit
Indicates whether to use
an extra address parity bit
and enable address parity
error detection.
QDR IV
Address bus inversion
Enable address bus
inversion.
QDR IV
Data bus inversion
Enable data bus inversion. QDR IV
ODT (Clock)
Determines the
configuration register
setting that controls the
clock ODT setting.
QDR IV
ODT (Address/Command)
Determines the
configuration register
setting that controls the
address/command ODT
setting.
QDR IV
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-118
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
Protocol
ODT (Data)
Determines the
configuration register
setting that controls the
data ODT setting.
QDR IV
Output Drive (pull up)
Determines the
configuration register
setting that controls the
pull-up output drive
setting.
QDR IV
Output Drive (pull down)
Determines the
configuration register
setting that controls the
pull-down output drive
setting.
QDR IV
Table 9-69: Group: Memory Topology / Mode Register Settings
Display Name
Description
Protocol
tRC
Determines the mode register setting that controls the
tRC.
RLDRAM 3
Data Latency
Determines the mode register setting that controls the
data latency.
RLDRAM 3
Output drive
Determines the mode register setting that controls the
output drive setting.
RLDRAM 3
ODT
Determines the mode register setting that controls the
ODT setting.
RLDRAM 3
AREF protocol
Determines the mode register setting that controls the
AREF protocol setting.
RLDRAM 3
Enable Mirror Addressing Enabling Address Mirroring for dual rank or quad rank DDR3, DDR4
for odd ranks
DIMM.
Burst Length
Specifies the burst length.
DDR3, DDR4,
RLDRAM 3
Write protocol
Determines the mode register setting that controls the
write protocol setting.
RLDRAM 3
Read Burst Type
Specifies whether accesses within a given burst are in
sequential or interleaved order.
DDR3, DDR4
DLL precharge power
down
Specifies whether the DLL in the memory device is off
or on during precharge power-down.
DDR3
Memory CAS latency
setting
Determines the number of clock cycles between the
READ command and the availability of the first bit of
output data at the memory device.
DDR3, DDR4
Output drive strength
setting
Specifies the output driver impedance setting at the
memory device.
DDR3, DDR4
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
9-119
Protocol
Memory additive CAS
latency setting
Determines the posted CAS additive latency of the
memory device.
DDR3, DDR4
ODT Rtt nominal value
Determines the ODT resistance at the memory device.
DDR3, DDR4
Auto self-refresh method
Turn on or off auto selfrefresh.
DDR3, DDR4
Self-refresh temperature
Specifies the self-refresh temperature is "Normal" or
"Extended" mode.
DDR3
Memory write CAS
latency setting
Specifies the number of clock cycles from the releasing
of the internal write to the latching of the first data in,
at the memory device.
DDR3, DDR4
Dynamic ODT (Rtt_WR)
value
Specifies the mode of the dynamic ODT feature of the
memory device.
DDR3, DDR4
DDR3 RDIMM/LRDIMM Each 4-bit word can be obtained from the manufactur‐ DDR3
control words
er's data sheet, and should be entered in hexadecimal,
starting with RC15 on the left and ending with RC0 on
the right.
DDR4 RDIMM/LRDIMM Each 4/8-bit setting can be obtained from the manufac‐ DDR4
control words
turer's data sheet, and should be entered in hexadec‐
imal, starting with the 8-bit setting RCBx on the left
and continuing to RC1x, followed by the 4-bit setting
RC0F and ending with RC00 on the right.
DDR3 LRDIMM
additional control words
DDR3
Each 4-bit word can be obtained from the LRDIMM
SPD info, and should be entered in hexadecimal,
starting with SPD(77-72) or SPD(83-78) on the left and
ending with SPD(71-69) on the right.
DDR4 LRDIMM
additional control words
Each 4-bit word can be obtained from the manufactur‐ DDR4
er's data sheet, and should be entered in hexadecimal,
starting with BC0F on the left and ending with BC00
on the right.
Write CRC enable
Write CRC enable.
DDR4
DDR4 geardown mode
Set DDR4 geardown mode for control signals at high
frequency.
DDR4
Per-DRAM addressability Per-DRAM addressability enable.
DDR4
Temperature sensor
readout
Temperature sensor readout enable.
DDR4
Fine granularity refresh
Fine granularity refresh setting (increased frequency of DDR4
refresh in exchange for shorter refresh).
Write CMD latency for
CRC/DM enable
Write CMD latency for simulataneous CRC and DM
enable.
DDR4
MPR read format
Multipurpose register readout format.
DDR4
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-120
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
Protocol
Temperature controlled
refresh range
Temperature controlled refresh range (Normal: 0C to
85C; Extended: 85C to 95C).
DDR4
Temperature controlled
refresh enable
Temperature controlled refresh enable.
DDR4
Internal VrefDQ monitor Enable/Disable Internal VrefDQ monitor.
DDR4
CS to Addr/CMD Latency CS to Addr/CMD Latency (CAL mode) for idle state
DRAM receiver power reduction.
DDR4
Self-refresh abort
Self refresh abort for latency reduction.
DDR4
Read preamble
Read preamble (cycles).
DDR4
Write preamble
Write preamble (cycles).
DDR4
Addr/CMD parity latency Additional latency incurred by enabling Address/
Command parity check.
DDR4
ODT input buffer during
powerdown mode
Enable/Disable ODT input buffer during powerdown
mode.
DDR4
RTT PARK
If set, termination is always enabled.
DDR4
Enable DM pins
Indicates whether the interface uses the DM pins. If
enabled, one DM pin per DQS group is added.
DDR4
Addr/CMD persistent
error
If set, Addr/CMD parity errors continue to be checked
after a previous Addr/CMD parity error.
DDR4
Write DBI
Write data bus inversion.
DDR4
Read DBI
Read data bus inversion.
DDR4
VrefDQ training value
VrefDQ training value.
DDR4
VrefDQ training range
VrefDQ training range.
DDR4
Table 9-70: Group: Memory Topology / ODT Activation Settings
Display Name
Description
Protocol
Use Default ODT
Assertion Tables
Enables the default ODT assertion pattern as
DDR3, DDR4
determined from vendor guidelines. These settings are
provided as a default only; Altera recommends that you
simulate your memory interface topology to determine
the optimal ODT settings and assertion patterns for
your interface.
ODT Assertion Table
during Read Accesses
Set the value to on to assert a given ODT signal when
reading from a specific bank.
DDR3, DDR4
ODT Assertion Table
during Write Accesses
Set the value to on to assert a given ODT signal when
writing from a specific bank.
DDR3, DDR4
Derived ODT Matrix for
Read Accesses
The matrix is derived based in settings for RTT_NOM
and RTT_PARK (DDR4) and the read ODT assertion
table.
DDR3, DDR4
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Derived ODT Matrix for
Write Accesses
Description
The matrix is derived based in settings for RTT_WR,
RTT_NOM and the write ODT assertion table.
9-121
Protocol
DDR3, DDR4
Table 9-71: Group: Memory Timing
Display Name
Description
Protocol
Speed bin
Speed bin of the memory device used.
All
tIS
Data to DK setup.
QDR IV
tIS (base)
Address and control setup to CK clock rise.
DDR3, DDR4,
RLDRAM 3
tIS (base) AC level
AC level of tIS (base) for derating purpose.
DDR3, DDR4
tIH
DK to Data hold.
QDR IV
tIH (base)
Address and control hold after CK clock rise.
DDR3, DDR4,
RLDRAM 3
tIH (base) DC level
DC level of tIH (base) for derating purpose.
DDR3, DDR4
tdIVW_dj
DQ Rx deterministic jitter.
DDR4
VdiVW_total
Rx Mask voltage - p-p total.
DDR4
tDS (base)
Base specification for data setup to DK.
DDR3, RLDRAM 3
tDS (base) AC level
AC level of tDS (base) for derating purpose.
DDR3
tDH (base)
Base specification for data hold from DK.
DDR3, RLDRAM 3
tDH (base) DC level
DC level of tDH (base) for derating purpose.
DDR3
tDQSQ
DQS, DQS# to DQ skew, per access.
DDR3, DDR4
tQKQ_max
QK clock edge to DQ/DINV data edge (in same group). RLDRAM 3, QDR
IV
tQH
• DQ output hold time from DQS, DQS# (percentage • DDR3, DDR4,
of tCK).
RLDRAM 3
• DQ/DINV output hold time from QK.
• QDR IV
tCKDK_max
Clock to Input Data Clock (Max).
RLDRAM 3, QDR
IV
tCKDK_min
Clock to Input Data Clock (Min)
RLDRAM 3, QDR
IV
tCKQK_max
QK edge to clock edge skew (Max).
RLDRAM 3, QDR
IV
tDQSCK
DQS output access time from CK/CK#.
DDR3, DDR4
tDQSS
First latching edge of DQS to associated clock edge
(percentage of tCK).
DDR3, DDR4
tQSH
DQS Differential High Pulse Width (percentage of
tCK).
DDR3, DDR4
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-122
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
Protocol
tDSH
DQS falling edge hold time from CK (percentage of
tCK).
tWLS
Write leveling setup time from rising CK, CK# crossing DDR3, DDR4
to rising DQS, DQS# crossing.
tWLH
Write leveling hold time from rising DQS, DQS#
crossing to rising CK, CK# crossing.
tDSS
DQS falling edge to CK setup time (percentage of tCK). DDR3, DDR4
tINIT
Memory initialization time at power-up.
DDR3, DDR4
tMRD
Load mode register command period.
DDR3, DDR4
tRAS
Active to precharge time.
DDR3, DDR4
tRCD
Active to read/write time.
DDR3, DDR4
tRP
Precharge command period.
DDR3, DDR4
tREFI
Refresh command interval.
DDR3, DDR4
tRFC
Auto-refresh command interval.
DDR3, DDR4
tWR
Write recovery time.
DDR3, DDR4
tWTR
Write to read period.
DDR3
tWTR_L
Write to read period (same bank group).
DDR4
tWTR_S
Write to read period (different bank group).
DDR4
tFAW
Four active window time.
DDR3, DDR4
tRRD
RAS to RAS delay time.
DDR3
tRRD_L
RAS to RAS delay time (same bank group).
DDR4
tRRD_S
RAS to RAS delay time (different bank group).
DDR4
tCCD_L
CAS to CAS delay time (same bank group).
DDR4
tCCD_S
CAS to CAS delay time (different bank group).
DDR4
tRTP
Read to precharge time.
DDR3, DDR4
tWL
Write Latency.
QDR II/II+ /II+
Xtreme
tRL
Read Latency.
QDR II/II+ /II+
Xtreme
tSA
Address and control setup to K clock rise.
QDR II/II+ /II+
Xtreme
tHA
Address and control hold after K clock rise.
QDR II/II+ /II+
Xtreme
tSD
Data setup to clock (K/K#) rise.
QDR II/II+ /II+
Xtreme
tHD
Data hold after clock (K/K#) rise.
QDR II/II+ /II+
Xtreme
Altera Corporation
DDR3, DDR4
DDR3, DDR4
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
9-123
Protocol
tCQD
Echo clock high to data valid.
QDR II/II+ /II+
Xtreme
tCQDOH
Echo clock high to data invalid.
QDR II/II+ /II+
Xtreme
Internal Jitter
QDRII internal jitter.
QDR II/II+ /II+
Xtreme
tCQH
Output clock (CQ/CQ#) HIGH.
QDR II/II+ /II+
Xtreme
tCCQO
K/K# clock rise to echo clock valid.
QDR II/II+ /II+
Xtreme
tAS
Address to clock setup.
QDR IV
tAH
Clock to address hold.
QDR IV
tCS
Control to clock setup.
QDR IV
tCH
Clock to control hold.
QDR IV
Table 9-72: Group: Board Timing / Slew Rates
Display Name
Description
Protocol
Use default slew rates
Select to use the recommended slew rates for the
chosen memory operating frequency.
All
CK/CK# slew rate
(Differential)
CK/CK# slew rate (Differential).
DDR3, DDR4,
RLDRAM 3, QDR
IV
K/K# slew rate (Differen‐
tial)
K/K# slew rate (Differential) .
QDR II/II+ /II+
Xtreme
Address and command
slew rate
Address and command slew rate.
All
QK/QK# slew rate
(Differential)
Slew rate (Differential) of QK/QK# when driven by
memory device during a read.
RLDRAM 3, QDR
IV
Read DQS/DQS# slew rate Slew rate (Differential) of DQS/DQS# when driven by
(Differential)
memory device during a read.
DDR3, DDR4
Read DQ slew rate
Slew rate of DQ when driven by memory device during DDR3, DDR4,
a read.
RLDRAM 3, QDR
IV
Write DQS/DQS# slew
rate (Differential)
Slew rate (Differential) of DQS/DQS# when driven by
memory interface during a write
DDR3, DDR4
DK/DK# slew rate
(Differential)
Slew rate (Differential) of DK/DK# when driven by
memory interface during a write.
RLDRAM 3, QDR
IV
Write DQ slew rate
Slew rate of DQ when driven by memory interface
during a write.
DDR3, DDR4,
RLDRAM 3, QDR
IV
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-124
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
Protocol
CQ/CQ# slew rate
(Complementary)
Slew rate (Differential) of CQ/CQ# when driven by
memory device during a read.
Read Q slew rate
Slew rate of Q when driven by memory device during a QDR II/II+ /II+
read
Xtreme
Write D slew rate
Slew rate of D when driven by memory interface
during a write.
QDR II/II+ /II+
Xtreme
QDR II/II+ /II+
Xtreme
Table 9-73: Group: Board Timing / Board and Package Skews
Display Name
Description
Protocol
Use default ISI/crosstalk
values
Select to use the default ISI/crosstalk values for your
chosen topology, please overwrite these values with
values from your own board.
All
Address and command
ISI/crosstalk
Address/command window reduction due to ISI/
crosstalk.
All
QK/QK# ISI/crosstalk
Read data window reduction due to ISI/crosstalk of
RLDRAM 3, QDR
QK/QK# signal when driven by memory device during IV
a read.
Read DQS/DQS# ISI/
crosstalk
Read data window reduction due to ISI/crosstalk of
DQS/DQS# signal when driven by memory device
during a read.
Read DQ ISI/crosstalk
Read data window reduction due to ISI/crosstalk of DQ DDR3, DDR4,
signal when driven by memory device during a read.
QDR IV
Write DQS/DQS# ISI/
crosstalk
Write data window reduction due to ISI/crosstalk of
DQS/DQS# signal when driven by memory interface
during a write.
DDR3, DDR4
DK/DK# ISI/crosstalk
Write data window reduction due to ISI/crosstalk of
DK/DK# signal when driven by memory interface
during a write.
RLDRAM 3, QDR
IV
Write DQ ISI/crosstalk
Write data window reduction due to ISI/crosstalk of
DQ signal when driven by memory interface during a
write.
DDR3, DDR4,
RLDRAM 3, QDR
IV
Package deskewed with
Check this if your board layout compensates for skew
board layout (DQS group) on DQ and DM pins in the FPGA package.
DDR3, DDR4,
RLDRAM 3
DDR3, DDR4
CQ/CQ# ISI/crosstalk
Read data window reduction due to ISI/crosstalk of
QDR II/II+ /II+
CQ/CQ# signal when driven by memory device during Xtreme
a read.
Read Q slew rate
Slew rate of Q when driven by memory device during a QDR II/II+ /II+
read
Xtreme
K/K# ISI/crosstalk
Write data window reduction due to ISI/crosstalk of K/ QDR II/II+ /II+
K# signal when driven by memory interface during a
Xtreme
write.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
9-125
Protocol
Write D ISI/crosstalk
Write data window reduction due to ISI/crosstalk of D QDR II/II+ /II+
signal when driven by memory interface during a write. Xtreme
Maximum board skew
within DQS group
The largest skew between all DQ and DM pins in a
DDR3, DDR4
DQS group. Enter your board skew only. Package skew
will be calculated automatically, based on the memory
interface configuration, and added to this value. This
value affects the read capture and write margins.
Maximum system skew
within DQS group
The largest skew between all DQ and DM pins in a
DQS group. Enter combined board and package skew.
This value affects the read capture and write margins.
DDR3, DDR4
Package deskewed with
board layout (QK group)
Check this if your board layout compensates for skew
on DQ and DM pins in the FPGA package.
RLDRAM 3, QDR
IV
Maximum board skew
within QK group
The largest skew between all DQ and DM pins in a QK RLDRAM 3, QDR
group. Enter your board skew only. Package skew will IV
be calculated automatically, based on the memory
interface configuration, and added to this value. This
value affects the read capture and write margins.
Maximum system skew
within QK group
The largest skew between all DQ and DM pins in a QK RLDRAM 3
group. Enter combined board and package skew. This
value affects the read capture and write margins.
Package deskewed with
board layout (address/
command bus)
Check this if your board layout compensates for skew
on address and command pins in the FPGA package.
DDR3, DDR4,
RLDRAM 3, QDR
IV
Maximum system skew
within address/command
bus
The largest skew between the address and command
signals. Enter combined board and package skew.
All
Average delay difference
between DQS and CK
The average delay difference between the DQS signals
and the CK signal, calculated by averaging the longest
and smallest DQS delay minus the CK delay. Positive
values represent DQS signals that are longer than CK
signals and negative values represent DQS signals that
are shorter than CK signals. The Quartus II software
uses this skew to optimize the delay of the DQS signals
to have appropriate setup and hold margins.
DDR3, DDR4
Average delay difference
between DK and CK
The average delay difference between the DK signals
and the CK signal, calculated by averaging the longest
and smallest DK delay minus the CK delay. Positive
values represent DK signals that are longer than CK
signals and negative values represent DK signals that
are shorter than CK signals. The Quartus II software
uses this skew to optimize the delay of the DK signals
to have appropriate setup and hold margins.
RLDRAM 3, QDR
IV
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-126
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
Protocol
Maximum delay
The largest propagation delay on DQ signals between
RLDRAM 3, QDR
difference between devices ranks. For example, in a two-rank configuration where IV
you place devices in series there is an extra propagation
delay for DQ signals going to and coming back from
the furthest device compared to the nearest device.
Maximum delay
difference between
DIMMs/devices
The largest propagation delay on DQ signals between
DDR3, DDR4
ranks. For example, in a two-rank configuration where
you place DIMMs in different slots there is an extra
propagation delay for DQ signals going to and coming
back from the furthest DIMM compared to the nearest
DIMM.
Maximum skew between
DQS groups
The largest skew between DQS signals in different DQS DDR3, DDR4
groups.
Maximum skew between
DK groups
The largest skew between DK signals in different DK
groups.
Average delay difference
between address/
command and CK
The average delay difference between the address and DDR3, DDR4,
command signals and the CK signal, calculated by
RLDRAM 3, QDR
averaging the longest and smallest Address/Command IV
signal delay minus the CK delay. Positive values
represent address and command signals that are longer
than CK signals and negative values represent address
and command signals that are shorter than CK signals.
The Quartus II software uses this skew to optimize the
delay of the address and command signals to have
appropriate setup and hold margins.
Maximum CK delay to
device
The delay of the longest CK trace from the FPGA to
any device.
RLDRAM 3, QDR
IV
Maximum CK delay to
DIMM/device
The delay of the longest CK trace from the FPGA to
any DIMM/device.
DDR3, DDR4
Maximum DK delay to
device
The delay of the longest DK trace from the FPGA to
any device.
RLDRAM 3, QDR
IV
Maximum DQS delay to
DIMM/device
The delay of the longest DQS trace from the FPGA to
any DIMM/device.
DDR3, DDR4
Package deskewed with
board layout (Q group)
Check this if your board layout compensates for skew
on Q pins in the FPGA package.
QDR II/II+ /II+
Xtreme
Maximum board skew
within Q group
The largest skew between all Q pins in a Q group. Enter QDR II/II+ /II+
your board skew only. Package skew will be calculated Xtreme
automatically, based on the memory interface
configuration, and added to this value. This value
affects the read capture and write margins.
Maximum system skew
within Q group
The largest skew between all Q pins in a Q group. Enter QDR II/II+ /II+
combined board and package skew. This value affects
Xtreme
the read capture and write margins.
Package deskewed with
board layout (D group)
Check this if your board layout compensates for skew
on D and BWS# pins in the FPGA package.
Altera Corporation
RLDRAM 3, QDR
IV
QDR II/II+ /II+
Xtreme
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
9-127
Protocol
Maximum skew within D
group
The largest skew between all D and BWS# pins in a D
group. Enter combined board and package skew. This
value affects the read capture and write margins.
QDR II/II+ /II+
Xtreme
Maximum board skew
within D group
The largest skew between all D and BWS# pins in a D
group. Enter your board skew only. Package skew will
be calculated automatically, based on the memory
interface configuration, and added to this value. This
value affects the read capture and write margins.
QDR II/II+ /II+
Xtreme
Package deskewed with
board layout (address/
command bus)
Check this if your board layout compensates for skew
on address and command pins in the FPGA package.
QDR II/II+ /II+
Xtreme
Average delay difference
between address/
command and K
The average delay difference between the address and QDR II/II+ /II+
command signals and the K signal, calculated by
Xtreme
averaging the longest and smallest Address/Command
signal delay minus the K delay. Positive values
represent address and command signals that are longer
than K signals and negative values represent address
and command signals that are shorter than K signals.
The Quartus II software uses this skew to optimize the
delay of the address and command signals to have
appropriate setup and hold margins.
Table 9-74: Group: Controller
Display Name
Description
Protocol
Maximum Avalon-MM
burst length
Specifies the maximum burst length on the AvalonMM bus.
Generate power-of-2 data
bus widths for Qsys
If enabled, the Avalon data bus width is rounded down QDR II/II+ /II+
to the nearest power-of-2. The width of the symbols
Xtreme, QDR IV
within the data bus is also rounded down to the nearest
power-of-2. You should only enable this option if you
know you will be connecting the memory interface to
Qsys interconnect components that require the data
bus and symbol width to be a power-of-2. If this option
is enabled, you cannot utilize the full density of the
memory device.
QDR II/II+ /II+
Xtreme, QDR IV
Table 9-75: Group: Controller / Low Power Mode
Display Name
Description
Protocol
Enable Auto Power-Down Select this option to allow the controller to
automatically place the memory device into powerdown mode after a specified number of idle controller
clock cycles.
DDR3, DDR4
Auto Power-Down Cycles
DDR3, DDR4
The number of idle controller cycles after which the
memory device is placed into power-down mode.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-128
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Table 9-76: Group: Controller / Efficiency
Display Name
Description
Protocol
Enable Auto-Precharge
Control
Select this option to enable the auto-precharge control
on the controller top level. Asserting the autoprecharge control signal while requesting a read or
write burst allows you to specify whether or not the
controller should close (auto-precharge) the currently
open page at the end of the read or write burst,
potentially speeding up a future access to a different
page of the same bank.
DDR3, DDR4
Address Ordering
Controls the mapping between the Avalon addresses
and the memory device addresses.
DDR3, DDR4
Enable Reordering
Enable this option to allow the controller to perform
command and data reordering to improve efficiency.
DDR3, DDR4
Starvation limit for each
command
Specifies the number of commands that can be served
before a starved command is starved.
DDR3, DDR4
Enable Command Priority Select this option to enable the user-requested
Control
command priority control on the controller top level.
The control signal allows you to indicate whether a
read or write request should be treated as high priority
by the controller. The controller attempts to issue high
priority commands sooner, to reduce latency.
DDR3, DDR4
Table 9-77: Group: Controller / Configuration, Status and Error Handling
Display Name
Description
Protocol
Enable Memory-Mapped Enable this option to change or read out the memory
DDR3, DDR4
Configuration and Status timing parameters, memory address size, mode register
Register (MMR) Interface settings, controller status, and request sideband
operations.
Enable Error Detection
and Correction Logic
Select this option to enable error correction code
DDR3, DDR4
(ECC) for single-bit error correction and double-bit
error detection. Your memory interface must be a
multiple of 16, 24, 40, or 72 bits wide in order to be able
to use ECC. (ECC is implemented as soft logic.)
Enable Auto Error
Correction
Select this option to allow the controller to perform
auto correction when a single-bit error has been
detected by the ECC logic.
Altera Corporation
DDR3, DDR4
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
9-129
Table 9-78: Group:
Display Name
Description
Additional read-to-write
turnaround time (same rank)
Specifies additional
number of idle controller
(not DRAM) cycles when
switching the data bus
from a read to a write
within the same logical
rank. This can be used to
resolve bus contention
issues specific to your
board topology. The value
is added to the default
which is auto-calculated.
Rely on default setting
unless you suspect a
problem.
Additional write-to-read
turnaround time (same rank)
Specifies additional
number of idle controller
(not DRAM) cycles when
switching the data bus
from a write to a read
within the same logical
rank. This can be used to
resolve bus contention
issues specific to your
board topology. The value
is added to the default
which is auto-calculated.
Rely on default setting
unless you suspect a
problem.
Protocol
Additional read-to-read turnaround Specifies additional
time (different ranks)
number of idle controller
(not DRAM) cycles when
switching the data bus
from a read of one logical
rank to a read of another
logical rank. This can be
used to resolve bus
contention issues specific
to your board topology.
The value is added to the
default which is autocalculated. Rely on default
setting unless you suspect
a problem.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-130
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
Display Name
Description
Additional read-to-write
turnaround time (different ranks)
Specifies additional
number of idle controller
(not DRAM) cycles when
switching the data bus
from a read of one logical
rank to a write of another
logical rank. This can be
used to resolve bus
contention issues specific
to your board topology.
The value is added to the
default which is autocalculated. Rely on default
setting unless you suspect
a problem.
Additional write-to-write
turnaround time (different ranks)
Specifies additional
number of idle controller
(not DRAM) cycles when
switching the data bus
from a write of one logical
rank to a write of another
logical rank. This can be
used to resolve bus
contention issues specific
to your board topology.
The value is added to the
default which is autocalculated. Rely on default
setting unless you suspect
a problem.
Additional write-to-read
turnaround time (different ranks)
Specifies additional
number of idle controller
(not DRAM) cycles when
switching the data bus
from a write of one logical
rank to a read of another
logical rank. This can be
used to resolve bus
contention issues specific
to your board topology.
The value is added to the
default which is autocalculated. Rely on default
setting unless you suspect
a problem.
Altera Corporation
Protocol
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Parameterizing Arria 10 External Memory Interface IP
9-131
Table 9-79: Group: Diagnostic / Simulation Options
Display Name
Calibration mode
Description
Protocol
Specifies whether to skip memory interface calibration All
during simulation, or to simulate the full calibration
process. Simulating the full calibration process can take
a long time (i.e. hours, or even days, depending on the
width and depth of the memory interface) and is not
recommended. Skipping the calibration process results
in much faster simulation time, but is only expected to
work when the memory model is ideal and the
interconnect delays are zero.
Table 9-80: Group: Diagnostic / Calibration Debug Options
Display Name
Description
Protocol
EMIF Debug Toolkit/OnChip Debug Port
All
Specifies the connectivity of an Avalon slave interface
for use by the EMIF Debug Toolkit or user core logic
access to calibration data. If you select Disabled, no
debug features are enabled. If you select Export, an
Avalon slave interface named cal_debug is exported
from the IP. To use this interface with the EMIF Debug
Toolkit, it is necessary to instantiate and connect an
EMIF Debug Interface IP core to it, or connect it to the
cal_debug_out interface of another EMIF core. If Add
EMIF Debug Interface is selected, an EMIF Debug
Interface component containing a JTAG Avalon
Master is connected to the debug port. This option
allows the core to be accessed using the EMIF Debug
Toolkit.
Enable Daisy-Chaining
for EMIF Debug Toolkit/
On-Chip Debug Port
If enabled, exports an Avalon-MM Master interface
(cal_debug_out) which can be used to connect to the
cal_debug interface of other EMIF cores residing in
the same I/O column. This option only applies if the
EMIF Debug Toolkit/On-Chip Debug Port option is
not set to Disabled.
All
Interface ID
ID used to identify this interface within the I/O
column. This is used by the EMIF Debug Toolkit and
the On-Chip Debug Port. Interface IDs should be
unique among EMIF cores within the same I/O
column. If the EMIF Debug Toolkit/On-Chip Debug
Port is set to Disabled, the interface ID is unused.
All
Table 9-81: Group: Diagnostic / Example Design
Display Name
Number of core clocks
sharing slaves to
instantiate
Description
Number of core clock sharing slaves to instantiate in
the example design. Applies only if the Core clocks
sharing parameter in the General tab is set to Master
or Slave.
Implementing and Parameterizing Memory IP
Send Feedback
Protocol
All
Altera Corporation
9-132
EMI_DG
2014.12.15
About Memory Presets
About Memory Presets
Presets help simplify the process of copying memory parameter values from memory device data sheets to
the EMIF parameter editor.
For DDRx protocols, the memory presets are named using the following convention:
PROTOCOL-SPEEDBIN LATENCY FORMAT-AND-TOPOLOGY CAPACITY (INTERNAL-ORGANIZATION)
For example, the preset named DDR4-2666U CL18 Component 1CS 2Gb (512Mb x 4) refers to a DDR4
x4 component rated at the DDR4-2666U JEDEC speed bin, with nominal CAS latency of 18 cycles, one
chip-select, and a total memory space of 2Gb. The JEDEC memory specification defines multiple speed
bins for a given frequency (that is, DDR4-2666U and DDR4-2666V). You may be able to determine the
exact speed bin implemented by your memory device using its nominal latency. When in doubt, contact
your memory vendor.
For RLDRAMx and QDRx protocols, the memory presets are named based on the vendor's device part
number.
When the preset list does not contain the exact configuration required, you can still minimize data entry
by selecting the preset closest to your configuration and then modify parameters as required.
Prior to production you should always review the parameter values to ensure that they match your
memory device data sheet, regardless of whether a preset is used or not. Incorrect memory parameters can
cause functional failures.
x4 Mode for Arria 10 External Memory Interface
Non-HPS Arria 10 external memory interfaces support DQ pins-per-DQS group-of-4 (x4 mode) for
DDR3 and DDR4 memory protocols.
The following restrictions apply to the use of x4 mode:
• The total interface width is limited to 72 bits.
• You must disable the Enable DM pins option.
• For DDR4, you must disable the DBI option.
Additional Notes About Parameterizing Arria 10 EMIF IP for HPS
Although Arria 10 EMIF IP and Arria 10 EMIF IP for HPS are similar components, there are some
additional requirements necessary in the HPS case.
The following rules and restrictions apply to Arria 10 EMIF IP for HPS:
• Supported memory protocols are limited to DDR3 and DDR4.
• The only supported configuration is the hard PHY with the hard memory controller.
• The maximum memory clock frequency for Arria 10 EMIF IP for HPS may be different than for
regular Arria 10 EMIF IP. Refer to the External Memory Interface Spec Estimator for details.
• Only half-rate interfaces are supported.
• Sharing of clocks is not supported.
• The total interface width is limited to a multiple of 16, 24, 40 or 72 bits (with ECC enabled), or a
positive value divisible by the number of DQ pins per DQS group (with ECC not enabled). For devices
other than 10ASXXXKX40, the total interface width is further limited to a maximum of 40 bits with
ECC enabled and 32 bits with ECC not enabled.
• Only x8 data groups are supported; that is, DQ pins-per-DQS group must be 8.
• DM pins must be enabled.
• The EMIF debug toolkit is not supported.
• Ping Pong PHY is not supported.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Board Timing
9-133
• The interface to and from the HPS is a fixed-width conduit.
• A maximum of 3 address/command I/O lanes are supported. For example:
• DDR3
• For component format, maximum number of chip selects is 2.
• For UDIMM or SODIMM format:
• Maximum number of DIMMs is 2, when the number of physical ranks per DIMM is 1.
• Maximum number of DIMMs is 1, when the number of physical ranks per DIMM is 2.
• Maximum number of physical ranks per DIMMs is 2, when the number of DIMMs is 1.
• For RDIMM format:
• Maximum number of clocks is 1.
• Maximum number of DIMMs is 1.
• Maximum number of physical ranks per DIMM is 2.
• LRDIMM memory format is not supported.
• DDR4
• For component format:
• Maximum number of clocks is 1.
• Maximum number of chip selects is 2
• For UDIMM or RDIMM format:
• Maximum number of clocks is 1.
• Maximum number of DIMMs is 2, when the number of physical ranks per DIMM is 1.
• Maximum number of DIMMs is 1, when the number of physical ranks per DIMM is 2.
• Maximum number of physical ranks per DIMM is 2, when the number of DIMMs is 1.
• For SODIMM format:
• Maximum number of clocks is 1.
• Maximum number of DIMMs is 1.
• Maximum number of physical ranks per DIMM is 1.
• Arria 10 EMIF IP for HPS also has specific pin-out requirements. For information, refer to Planning
Pin and FPGA Resources.
Board Timing
Use the Board Timing tab to model the board-level effects in the timing analysis.
The Board Timing tab allows you to specify the following settings:
• Slew rates (For LPDDR2/DDR3/DDR4 SDRAM, RLDRAM 3 and RLDRAM II for Arria 10 EMIF IP.)
• Intersymbol interference
• Board and package skews (For Arria 10 EMIF IP.)
Note: For accurate timing results, you must enter board settings parameters that are correct for your
PCB.
The IP core supports single and multiple chip-select configurations. Altera has determined the effects on
the output signaling of single-rank configurations for certain Altera boards, and included the channel
uncertainties in the Quartus II timing models.
Because the Quartus II timing models hold channel uncertainties that are representative of specific Altera
boards, you must determine the board-level effects of your board, including any additional channel
uncertainty relative to Altera's reference design, and enter those values into the Board Timing panel in the
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-134
EMI_DG
2014.12.15
Slew Rates for Arria 10 EMIF IP
parameter editor. You can use HyperLynx or a similar simulator to obtain values that are representative of
your board.
For more information about how to include your board simulation results in the Quartus II software,
refer to the following sections. For more information about how to assign pins using pin planners, refer to
the design flow tutorials and design examples on the List of Designs Using Altera External memory IP
page of the Altera Wiki.
For more general information about timing deration methodology, refer to the Timing Deration
Methodology for Multiple Chip Select DDR2 and DDR3 SDRAM Designs section in the Analyzing Timing
of Memory IP chapter.
Related Information
List of designs using Altera External Memory IP
Slew Rates for Arria 10 EMIF IP
The slew rate of the output signals affects the setup and hold times of the memory device, and thus the
write margin. You can specify the slew rate of the output signals to see their effect on the setup and hold
times of both the address and command signals and the DQ signals, or alternatively, you may want to
specify the setup and hold times directly.
For RDIMMs, the slew rate is defined at the register on the RDIMM, instead of at the memory
component. For LRDIMMs, the slew rate is defined at the buffer on the LRDIMM, instead of at the
memory component. You should enter information derived during your PCB development process of
prelayout (line) and postlayout (board) simulation.
Table 9-82: Slew Rate Parameters
Parameter
Protocols
Description
Use default slew rates
DDR3, DDR4, QDR
II/II+/II+ Xtreme,
QDR IV, RLDRAM 3
Select to use the recommended slew rates for the
chosen memory operating frequency.
CK/CK# slew rate (Differen‐
tial)
DDR3, DDR4, QDR
IV, RLDRAM 3
CK/CK# slew rate (Differential)
K/K# slew rate (Differential)
QDR II/II+/II+
Xtreme
K/K# slew rate (Differential)
Address and command slew
rate
DDR3, DDR4, QDR
II/II+/II+ Xtreme,
QDR IV, RLDRAM 3
Address and command slew rate
Read DQS/DQS# slew rate
(Differential)
DDR3, DDR4
Slew rate (Differential) of DQS/DQS# when
driven by memory device during a read.
CQ/CQ# slew rate
(Complementary)
QDR II/II+/II+
Xtreme
CQ/CQ# slew rate (Complementary)
QK/QK# slew rate (Differen‐
tial)
QDR IV, RLDRAM 3
Slew rate (Differential) of QK/QK# when driven
by memory device during a read.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Intersymbol/Crosstalk for Arria 10 EMIF IP
Parameter
Protocols
9-135
Description
Read DQ slew rate
DDR3, DDR4, QDR
IV, RLDRAM 3
Slew rate of DQ when driven by memory device
during a read.
Read Q slew rate
QDR II/II+/II+
Xtreme
Slew rate of Q when driven by memory device
during a read.
DK/DK# slew rate (Differen‐
tial)
QDR IV, RLDRAM 3
Slew rate (Differential) of DK/DK# when driven
by memory interface during a write.
Write DQS/DQS# slew rate
(Differential)
DDR3, DDR4
Slew rate (Differential) of DQS/DQS# when
driven by memory interface during a write
Write DQ slew rate
DDR3, DDR4, QDR
IV, RLDRAM 3
Slew rate of DQwhen driven by memory
interface during a write.
Write D slew rate
QDR II/II+/II+
Xtreme
Slew rate of D when driven by memory interface
during a write.
Intersymbol/Crosstalk for Arria 10 EMIF IP
Channel signal integrity is a measure of the distortion of the eye due to intersymbol interference or
crosstalk or other effects.
For details about measuring channel loss parameters and entering channel signal integrity information
into the parameter editor GUI, refer to the Altera Wiki.
Table 9-83: Intersymbol Interference/Crosstalk Parameters
Parameter
Use default ISI/crosstalk values
Protocols
DDR3, DDR4, QDR II/II
+/II+ Xtreme, QDR IV,
RLDRAM 3
Address and command ISI/crosstalk DDR3, DDR4, QDR II/II
+/II+ Xtreme, QDR IV,
RLDRAM 3
Description
Select to use the default ISI/crosstalk
values for your chosen topology,
please overwrite these values with
values from your own board.
Address/command window
reduction due to ISI/crosstalk.
Read DQS/DQS# ISI/crosstalk
DDR3, DDR4
Read data window reduction due to
ISI/crosstalk of DQS/ DQS# signal
when driven by memory device
during a read.
CQ/CQ# ISI/crosstalk
QDR II/II+/II+ Xtreme
Read data window reduction due to
ISI/crosstalk of CQ/ CQ# signal when
driven by memory device during a
read.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-136
EMI_DG
2014.12.15
Board and Package Skews for Arria 10 EMIF IP
Parameter
Protocols
Description
QK/QK# ISI/crosstalk
QDR IV, RLDRAM 3
Read data window reduction due to
ISI/crosstalk of QK/ QK# signal when
driven by memory device during a
read.
Read DQ ISI/crosstalk
DDR3, DDR4, QDR IV,
RLDRAM 3
Read data window reduction due to
ISI/crosstalk of DQ signal when
driven by memory device during a
read.
Read Q ISI/crosstalk
QDR II/II+/II+ Xtreme
DK/DK# ISI/crosstalk
QDR IV, RLDRAM 3
Write datawindowreduction due to
ISI/crosstalk of DK/DK# signal when
driven by memory interface during a
write.
Write DQS/DQS# ISI/crosstalk
DDR3, DDR4
Write datawindowreduction due to
ISI/crosstalk of DQS/DQS# signal
when driven by memory interface
during a write.
Write DQ ISI/crosstalk
DDR3, DDR4, QDR IV,
RLDRAM 3
Write data window reduction due to
ISI/crosstalk of DQ signal when
driven by memory interface during a
write.
K/K# ISI/crosstalk
QDR II/II+/II+ Xtreme
Write data window reduction due to
ISI/crosstalk of K/K# signal when
driven by memory interface during a
write.
Write D ISI/crosstalk
QDR II/II+/II+ Xtreme
Write data window reduction due to
ISI/crosstalk of D signal when driven
by memory interface during a write.
Board and Package Skews for Arria 10 EMIF IP
PCB traces and packaging can introduce skews that can reduce timing margins.
Table 9-84: Board and Package Skew Parameters
Parameter
Protocols
Description
Intrabus slews (skews among pins in the same bus)
Package deskewed with board layout DDR3, DDR4
(DQS group)
Altera Corporation
Check this if your board layout
compensates for skew on DQ and
DM pins in the FPGA package.
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Board and Package Skews for Arria 10 EMIF IP
Parameter
Protocols
9-137
Description
Package deskewed with board layout QDR II/II+/II+ Xtreme
(Q group)
Check this if your board layout
compensates for skew on Q pins in
the FPGA package.
Package deskewed with board layout QDR IV, RLDRAM 3
(QK group)
Check this if your board layout
compensates for skew on DQ and
DM pins in the FPGA package.
Maximum board skew within DQS
group
DDR3
The largest skew between all DQ and
DMpins in a DQS group. Enter your
board skew only. Package skew will
be calculated automatically, based on
the memory interface configuration,
and added to this value. This value
affects the read capture and write
margins.
Maximum board skew within Q
group
QDR II/II+/II+ Xtreme
The largest skew between all Q pins
in a Q group. Enter your board skew
only. Package skew will be calculated
automatically, based on the memory
interface configuration, and added to
this value. This value affects the read
capture and write margins.
Maximum board skew within QK
group
RLDRAM 3
The largest skew between all DQ and
DM pins in a QK group. Enter your
board skew only. Package skew will
be calculated automatically, based on
the memory interface configuration,
and added to this value. This value
affects the read capture and write
margins.
Maximum system skew within DQS DDR4
group
The largest skew between all DQ and
DMpins in a DQS group. Enter
combined board and package skew.
This value affects the read capture
and write margins.
Package deskewed with board layout QDR II/II+/II+ Xtreme
(D group)
Check this if your board layout
compensates for skew on D and
BWS# pins in the FPGA package.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-138
EMI_DG
2014.12.15
Board and Package Skews for Arria 10 EMIF IP
Parameter
Protocols
Description
QDR II/II+/II+ Xtreme
The largest skew between all D and
BWS# pins in a D group. Enter your
board skew only. Package skew will
be calculated automatically, based on
the memory interface configuration,
and added to this value. This value
affects the read capture and write
margins.
Package deskewed with board layout DDR3, QDR II/II+/II+
Xtreme, QDR IV,
(address/command bus)
RLDRAM 3
Check this if your board layout
compensates for skew on address and
command pins in the FPGA package.
Maximum system skew within
address/command bus
DDR3, QDR II/II+/II+
Xtreme, QDR IV,
RLDRAM 3
The largest skew between the address
and command signals. Enter
combined board and package skew.
Maximum board skew within
address/command bus
DDR4
Maximum board skew within D
group
Interbus skews (skew among buses)
Average delay difference between
DQS and CK
DDR3, DDR4
The average delay difference between
the DQS signals and the CK signal,
calculated by averaging the longest
and smallest DQS delay minus the
CK delay. Positive values represent
DQS signals that are longer than CK
signals and negative values represent
DQS signals that are shorter
thanCKsignals. The Quartus II
software uses this skew to optimize
the delay of the DQS signals to have
appropriate setup and hold margins.
Average delay difference between
DK and CK
QDR IV, RLDRAM 3
The average delay difference between
theDK signals and the CK signal,
calculated by averaging the longest
and smallest DK delay minus the CK
delay. Positive values represent DK
signals that are longer than CK
signals and negative values represent
DK signals that are shorter than CK
signals. The Quartus II software uses
this skew to optimize the delay of the
DK signals to have appropriate setup
and hold margins.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Board and Package Skews for Arria 10 EMIF IP
Parameter
Protocols
Maximum delay difference between DDR3, DDR4
DIMMs/devices
Maximum skew between DQS
groups
DDR3, DDR4
9-139
Description
The largest propagation delay on DQ
signals between ranks. For example,
in a two-rank configuration where
you place DIMMs in different slots
there is an extra propagation delay for
DQ signals going to and coming back
from the furthest DIMM compared to
the nearest DIMM.
The largest skew between DQS
signals in different DQS groups.
Maximum delay difference between QDR IV, RLDRAM 3
devices
The largest propagation delay on DQ
signals between ranks. For example,
in a two-rank configuration where
you place devices in series there is an
extra propagation delay for DQ
signals going to and coming back
from the furthest device compared to
the nearest device.
Maximum skew between DK groups QDR IV, RLDRAM 3
The largest skew between DK signals
in different DK groups.
Average delay difference between
address/command and CK
Implementing and Parameterizing Memory IP
Send Feedback
DDR3, DDR4, QDR IV,
RLDRAM 3
The average delay difference between
the address and command signals and
the CK signal, calculated by averaging
the longest and smallest Address/
Command signal delay minus
theCKdelay. Positive values represent
address and command signals that
are longer than CK signals and
negative values represent address and
command signals that are shorter
than CK signals. The Quartus II
software uses this skew to optimize
the delay of the address and
command signals to have appropriate
setup and hold margins.
Altera Corporation
9-140
EMI_DG
2014.12.15
Signal Delays for Arria 10 EMIF IP
Parameter
Protocols
Average delay difference between
address/command and K
QDR II/II+/II+ Xtreme
Average delay difference between
devices
QDR II/II+/II+ Xtreme
Description
The average delay difference between
the address and command signals and
the K signal, calculated by averaging
the longest and smallest Address/
Command signal delay minus the K
delay. Positive values represent
address and command signals that
are longer than K signals and negative
values represent address and
command signals that are shorter
than K signals. The Quartus II
software uses this skew to optimize
the delay of the address and
command signals to have appropriate
setup and hold margins.
Signal Delays for Arria 10 EMIF IP
Some parameters all you to specify certain maximum delay values.
Table 9-85: Signal Delay Parameters
Parameter
Protocols
Description
Maximum CK delay to DIMM/
device
DDR3, DDR4
The delay of the longest CK trace
from the FPGA to any DIMM/device.
Maximum CK delay to device
QDR IV, RLDRAM 3
The delay of the longest CK trace
from the FPGA to any device/DIMM.
Maximum DQS delay to DIMM/
device
DDR3, DDR4
The delay of the longest DQS trace
from the FPGA to any DIMM/device.
Maximum K delay to device
QDR II/II+/II+ Xtreme
The delay of the longest K trace from
the FPGA to any device.
Maximum DK delay to device
QDR IV, RLDRAM 3
The delay of the longest DK trace
from the FPGA to any device.
Document Revision History
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
EMI_DG
2014.12.15
Document Revision History
Date
December
2014
Version
2014.12.15
9-141
Changes
• Added MAX 10 device support to the PHY Parameters table in PHY
Settings for UniPHY IP
• Changed Memory Parameters for LPDDR2, DDR2, and DDR3
SDRAM table to accommodate MAX 10 devices.
• Added Enable Deep Power-Down Controls parameter to Controller
Settings table in Controller Settings for UniPHY IP section.
• Arria 10 External Memory Interface IP section:
•
•
•
•
• Removed references to Arria 10 devices from Board Settings topic
in UniPHY-Based External Memory Interface IP section. Added
new Board Timing topic.
• Added QDR IV support to tables in Qsys Interfaces section.
• Removed afi_c from afi_conduit_end table and mem_c from
mem_conduit_end table.
• Changed description of global_reset_n signal in the Interface:
global_reset_reset_sink table.
• Added Board Timing section and subtopics.
Changed Memory Initialization Options for DDR3 table to accommo‐
date MAX 10 devices.
Replaced Parameter Descriptions table in Memory Timing Parameters
for DDR2, DDR3, and LPDDR2 SDRAM for UniPHY IP section with
new table including LPDDR2.
Removed General Settings for Arria 10 EMIF IP section.
Parameterizing Arria 10 External Memory Interface IP section:
• Added DDR4 support to tables.
• Changed descriptions of RDIMM/LRDIMM control words and
LRDIMM additional control words in Group: Memory Topology /
Mode Register Settings table.
• Removed Chip ID Width from Group: Memory Topology /
Topology table.
• Added entry for Instantiate two controllers sharing a Ping Pong
PHY, and expanded description of Configuration, in the Group:
General / Interface table.
• Changed Total interface width entry to DQ width and changed
Place ALERT# pin to ALERT# pin placement in Group: Memory
Topology / Topology table.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-142
EMI_DG
2014.12.15
Document Revision History
Date
Version
August 2014
2014.08.15
Changes
• Added note about Arria 10 EMIF IP and Arria 10 EMIF IP for HPS to
beginning of chapter.
• Added IP Catalog to Design Flows figure.
• Replaced MegaWizard Plug-In Manager Flow with IP Catalog Design
Flow.
• Revised Specify Parameters for the Qsys Flow and Completing the Qsys
System sections.
• Added information to description of mem_doff_n in QDR II and QDR
II+ SRAM Controller with UniPHY Interfaces table.
• Reorganized content into separate sections for UniPHY-Based
External Memory Interfaces and Arria 10 External Memory Interface
IP.
• Replaced the following sections with the new Arria 10 EMIF IP
Interfaces section:
•
•
•
•
•
•
•
•
•
•
•
•
•
Altera Corporation
•
•
• DDR3 Controller with Arria 10 EMIF Interfaces
• LPDDR2 SDRAM Controller with Arria 10 EMIF Interfaces
• QDR II/II+ Controller with Arria 10 EMIF Interfaces
• RLDRAM II Controller with Arria 10 EMIF Interfaces
• RLDRAM 3 Controller with Arria 10 EMIF Interfaces
Changed name of Generated Files for Memory Controllers with Arria
10 EMIF IP section to Generated Files for Arria 10 External Memory
Interface IP, and revised content.
Revised content of General Settings for Arria 10 EMIF IP section.
Added new Parameterizing Arria 10 External Memory Interface IP
section.
Revised content of Memory Topology for LPDDR2, DDR3 and DDR4
SDRAM for Arria 10 EMIF IP section.
Added Memory Parameters for QDR IV for Arria 10 EMIF IP section.
Revised content of Memory Parameters for RLDRAM 3 for Arria 10
EMIF IP section.
Added slew rate information for QDR II, QDR II+, and QDR II+
Xtreme to table in Slew Rates for Arria 10 EMIF IP section.
Revised content of ISI Parameters table in Intersymbol Interference
Channel Signal Integrity for UniPHY IP section.
Revised description of fly-by topology for UDIMMs in Board Skews
for UniPHY IP section.
Added MAX 10 to Simulation Options table in Diagnostics for
UniPHY IP section.
Added note to descriptions of Minimum delay difference between
CK and DQS and Maximum delay difference between CK and DQS
in Board Skew Parameters for LPDDR2/DDR2/DDR3 SDRAM section.
Revised content of Parameter Descriptions table in Board and Package
Skews for LPDDR2/DDR3/DDR4 SDRAM for Arria 10 EMIF IP
section.
Revised content of Parameter Descriptions table in Board and Package
Skews for QDR II, QDR II+, and QDR II+ Xtreme for Arria 10 EMIF
Implementing and Parameterizing Memory IP
IP section.
Revised content of Parameter Descriptions table in Board and
Package
Send
Feedback
Skews for RLDRAM II and RLDRAM 3 for Arria 10 EMIF IP section.
Revised content of Controller Settings table in Controller Settings for
EMI_DG
2014.12.15
Document Revision History
Date
December
2013
Version
2013.12.16
9-143
Changes
•
•
•
•
•
•
•
•
•
•
Removed references to ALTMEMPHY.
Removed references to HardCopy.
Removed references to Stratix II devices.
Removed references to SOPC Builder.
Added Arria 10 information to Qsys Interface, Generated Files,
Parameter Settings, Board Settings, and Controller Settings sections.
Added descriptions of several registered DIMM parameters to
Memory Parameters for LPDDR2, DDR2, and DDR3 SDRAM table.
Added steps for compiling example project.
Added clock information to Adding Pins and DQ Group Assignments.
Updated Intersymbol Interference for UniPHY IP to Intersymbol
Interference Channel Signal Integrity for UniPHY IP.
Added Intersymbol Interference Channel Signal Integrity for Arria 10
EMIF IP.
November
2012
6.0
• Added RLDRAM 3 information.
• Added LPDDR2 information.
• Changed chapter number from 8 to 9.
June 2012
5.0
• Added number of sharing interfaces parameters to Clock Parameters
table.
• Added DQ/DQS Package Deskew and Address/Command Package
Deskew descriptions to Board Skew Parameters table.
• Added equations for multiple boards to several parameter descrip‐
tions in Board Skew Parameters table.
• Added Feedback icon.
November
2011
4.0
• Updated Installation and Licensing section.
• Combined Qsys and SOPC Builder Interfaces sections.
• Combined parameter settings for DDR, DDR2, DDR3 SDRAM,
QDRII SRAM, and RLDRAM II for both ALTMEMPHY and
UniPHY IP.
• Added parameter usage details to Parameterizing Memory Controllers
with UniPHY IP section.
• Moved Functional Description section for DDR, DDR2, DDR3
SDRAM, QDRII SRAM, and RLDRAM II to volume 3 of the External
Memory Interface Handbook.
Implementing and Parameterizing Memory IP
Send Feedback
Altera Corporation
9-144
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
June 2011
3.0
• Removed references to High-Performance Controller.
• Updated High-Performance Controller II information.
• Removed HardCopy III, HardCopy IV E, HardCopy IV GX, Stratix
III, and Stratix IV support.
• Updated Generated Files lists.
• Added Qsys and SOPC Builder Interfaces section.
December
2010
2.1
• Updated Design Flows and Generated Files information.
• Updated Parameterizing Memory Controllers with UniPHY IP chapter
July 2010
2.0
• Added information for new GUI parameters: Controller latency,
Enable reduced bank tracking for area optimization, and Number
of banks to track.
• Removed information about IP Advisor. This feature is removed
from the DDR/DDR2 SDRAM IP support for version 10.0.
February 2010
1.3
Corrected typos.
February 2010
1.2
• Full support for Stratix IV devices.
• Added timing diagrams for initialization and calibration stages for
HPC.
November
2009
1.1
Minor corrections.
November
2009
1.0
Initial release.
Altera Corporation
Implementing and Parameterizing Memory IP
Send Feedback
Simulating Memory IP
10
2014.12.15
EMI_DG
Subscribe
Send Feedback
To simulate your design you require the following components:
•
•
•
•
A simulator—The simulator must be any Altera-supported VHDL or Verilog HDL simulator
A design using one of Altera’s external memory IP
An example driver (to initiate read and write transactions)
A testbench and a suitable memory simulation model
Memory Simulation Models
There are two types of memory simulation models that you can use:
• Altera-provided generic memory model.
The Quartus® II software generates this model together with the example design and this model adheres
to all the memory protocol specifications. You can parameterize the generic memory model.
• Vendor-specific memory model.
Memory vendors such as Micron and Samsung provide simulation models for specific memory
components that you can download from their websites. Although Denali models are also available,
currently Altera does not provide support for Denali models. You should ensure that all simulation
models that you use to simulate Altera memory IP are JEDEC compliant.
Simulation Options
The following simulation options are available with the example testbench to improve simulation speed:
• Full calibration—Calibrates the same way as in hardware, and includes all phase, delay sweeps, and
centering on every data bit.
Note: Arria 10 EMIF full calibration simulation will be available in a future release of the Quartus II
software.
• Quick calibration—Calibrates the read and write latency only, skipping per bit deskew. (Not available
for Arria 10 EMIF IP.)
• Skip calibration—Provides the fastest simulation. It loads the settings calculated from the memory
configuration and enters user mode.
By default, the UniPHY IP generates abstract PHY, which uses skip calibration regardless of the
simulation options that you chose in the parameter editor.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
10-2
EMI_DG
2014.12.15
Simulation Options
Note: For proper simulation of DQS Tracking, you must enable either full calibration or quick calibra‐
tion.
The following table lists typical simulation times implemented using UniPHY IP. The simulation times in
the table are estimates based on average run times of a few example designs. The simulation times for your
design may vary depending on the memory interface specifications, simulator, or the system you are
using.
Table 10-1: Typical Simulation Times Using UniPHY IP
Estimated Simulation Time
Calibration Mode/Run Time (1)
Full
Small Interface
(×8 Single Rank)
Large Interface (×72 Quad Rank)
10 minutes
~ 1 day
3 minutes
4 hours
3 minutes
20 minutes
• Full calibration
• Includes all phase/delay sweeps
and centering
Quick
• Scaled down calibration
• Calibrate one pin
Skip
• Skip all calibration, jump to user
mode
• Preload calculated settings
Note to Table:
1. Uses one loop of driver test. One loop of driver is approximately 600 read or write requests, with burst
length up to 64.
Table 10-2: Typical Simulation Times Using Arria 10 EMIF IP
Estimated Simulation Time
Calibration Mode/Run Time (1)
Full
Small Interface
(×8 Single Rank)
20 minutes
Large Interface (×72 Quad Rank)
~ 1 day
• Full calibration
• Includes all phase/delay sweeps
and centering
Altera Corporation
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Simulation Walkthrough with UniPHY IP
10-3
Estimated Simulation Time
Calibration Mode/Run Time (1)
Skip
Small Interface
(×8 Single Rank)
10 minutes
Large Interface (×72 Quad Rank)
25 minutes
• Skip all calibration, jump to user
mode
• Preload calculated settings
Note to Table:
1. Uses one loop of driver test. One loop of driver is approximately 600 read or write requests, with burst
length up to 64.
For more information about steps to follow before simulating, modifying the vendor memory model, and
simulation flow for UniPHY IPs, refer to the “Simulation Walkthrough with UniPHY IP”.
Related Information
Simulation Walkthrough with UniPHY IP on page 10-3
Simulation Walkthrough with UniPHY IP
Simulation of the whole memory interface is a good way to determine the latency of your system.
However, the latency found in simulation may be different than the latency found on the board because
functional simulation does not take into account board trace delays and different process, voltage, and
temperature scenarios.
For a given design on a given board, the latency found may differ by one clock cycle (for full-rate designs)
or two clock cycles (for half-rate designs) upon resetting the board. Different boards can also show
different latencies even with the same design.
The UniPHY IP supports only functional simulation. Functional simulation is supported at the RTL level
and after generating a post-fit functional simulation netlist. The post-fit netlist for designs that contain
UniPHY IP is a hybrid of the gate level (for FPGA core) and RTL level (for the external memory interface
IP). Altera recommends that you validate the functional operation of your design using RTL simulation,
and the timing of your design using TimeQuest Timing Analysis.
For UniPHY-based external memory interfaces, you can perform functional simulation using an example
design that is generated with your IP core. The example design files are created in the \<variation_name>_
example_design directory.
You can use the IP functional simulation model with any Altera-supported VHDL or Verilog HDL
simulator.
After you have generated the memory IP, view the README.txt file located in the \<variation_name>_
example_design\simulation directory for instructions on how to generate the simulation example design for
Verilog HDL or VHDL. The README.txt file also explains how to run simulation using the ModelSimAltera software. Altera provides simulation scripts for the Mentor, Cadence, Aldec, and Synopsys
simulators; however, detailed instructions on how to perform simulation using these third party
simulators are not provided.
Simulating Memory IP
Send Feedback
Altera Corporation
10-4
Simulation Scripts
EMI_DG
2014.12.15
Simulation Scripts
The Quartus II software generates three simulation scripts during project generation for four different
third party simulation tools—Cadence, Synopsys, Aldec, and Mentor.
The simulation scripts reduce the number of files that you need to compile separately before simulating a
design. These scripts are located in three separate folders under the <project directory>\<varitation_name>_
sim directory, each named after the names of the simulation tools. The example designs also provide
equivalent scripts after you run the .tcl script from the project located in the \<variation_name>_example_
design\simulation directory.
The order of the files in the simulation scripts is important. Ensure that you maintain the files in order, to
avoid error messages and warning messages during simulation. If you choose not to use the Alteragenerated simulation scripts in your simulation environment, you must maintain the specified file order
when compiling the memory controller with the user-generated simulation script.
Preparing the Vendor Memory Model
You can replace the Altera-supplied memory model with a vendor-specific memory model. In general,
you may find vendor-specific models to be standardized, thorough, and well supported, but sometimes
more complex to setup and use.
Note: Altera does not provide support for vendor-specific memory models. If you do want to replace the
Altera-supplied memory model with a vendor-supplied memory model, you should observe the
following guidelines:
• Ensure that you have the correct vendor-supplied memory model for your memory device.
• Disconnect all signals from the default memory model and reconnect them to the vendorsupplied memory model.
• If you intend to run simulation from the Quartus II software, ensure that the . qip file points to
the vendor-supplied memory model.
When you are using a vendor-supplied memory model instead of the generated functional simulation
model, you must modify the vendor memory model and the testbench files by following these steps:
1. Obtain and copy the vendor memory model to the \<variation_name>_example_design\simulation
\<variation_name>_sim\ submodules directory. For example, obtain the ddr2.v and
ddr2_parameters.vh simulation model files from the Micron website and save them in the directory.
• The auto-generated generic SDRAM model may be used as a placeholder for a specific vendor
memory model.
• Some vendor DIMM memory models do not use data mask (DM) pin operation, which can cause
calibration failures. In these cases, use the vendor’s component simulation models directly.
2. Open the vendor memory model file in a text editor and specify the speed grade and device width at
the top of the file. For example, you can add the following statements for a DDR2 SDRAM model file:
'define sg25
'define x8
The first statement specifies the memory device speed grade as –25 (for 400 MHz operation). The
second statement specifies the memory device width per DQS.
3. Check that the following statement is included in the vendor memory model file. If not, include it at
the top of the file. This example is for a DDR2 SDRAM model file:
`include "ddr2_parameters.vh"
4. Save the vendor memory model file.
Altera Corporation
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Preparing the Vendor Memory Model
10-5
5. Open the simulation example project file <variation_name>_example_sim.qpf, located in the
<variation_name>_example_design\simulation directory.
6. On the Tools menu, select TCL scripts to run the generate_sim_verilog_example_design.tcl file, in
which generates the simulation example design.
7. To enable vendor memory model simulation, you have to include and compile the vendor memory
model by adding it into the simulation script. Open the .tcl script, msim_setup.tcl, located in the
<variation_name>_example_design\simulation\verilog\mentor directory in the text editor. Add in the
following line in the '# Compile the design files in correct order' section:
vlog
+incdir+$QSYS_SIMDIR/submodules/
"$QSYS_SIMDIR/submodules/<vendor_memory>.v"
-work <variation_name>_example_sim_work
8. Open the simulation example design, <variation_name>_example_sim.v, located in the <variation_name>_
example_design\simulation\verilog directory in a text editor and delete the following module:
alt_mem_if_<memory_type>_mem_model_top_<memory_type>_mem_if_dm_pins_en_mem_if_dqs
n_en
Note: The actual name of the pin may differ slightly depending on the memory controller you are
using.
9. Instantiate the downloaded memory model and connect its signals to the rest of the design.
10.Ensure that the ports names and capitalization in the memory model match the port names and
capitalization in the testbench.
Note: The vendor memory model may use different pin names and capitalization than the generated
functional simulation model.
11.Save the testbench file.
The original instantiation may be similar to the following code:
alt_mem_if_ddr2_mem_model_top_mem_if_dm_pins_en_mem_if_dqsn_en #(
.MEM_IF_ADDR_WIDTH
(13),
.MEM_IF_ROW_ADDR_WIDTH
(12),
.MEM_IF_COL_ADDR_WIDTH
(8),
.MEM_IF_CS_PER_RANK
(1),
.MEM_IF_CONTROL_WIDTH
(1),
.MEM_IF_DQS_WIDTH
(1),
.MEM_IF_CS_WIDTH
(1),
.MEM_IF_BANKADDR_WIDTH
(3),
.MEM_IF_DQ_WIDTH
(8),
.MEM_IF_CK_WIDTH
(1),
.MEM_IF_CLK_EN_WIDTH
(1),
.DEVICE_WIDTH
(1),
.MEM_TRCD
(6),
.MEM_TRTP
(3),
.MEM_DQS_TO_CLK_CAPTURE_DELAY (100),
.MEM_IF_ODT_WIDTH
(1),
.MEM_MIRROR_ADDRESSING_DEC
(0),
.MEM_REGDIMM_ENABLED
(0),
.DEVICE_DEPTH
(1),
.MEM_INIT_EN
(0),
.MEM_INIT_FILE
(""),
.DAT_DATA_WIDTH
(32)
) m0 (
.mem_a
(e0_memory_mem_a),
// memory.mem_a
.mem_ba
(e0_memory_mem_ba),
//
.mem_ba
.mem_ck
(e0_memory_mem_ck),
//
.mem_ck
.mem_ck_n (e0_memory_mem_ck_n), //
.mem_ck_n
.mem_cke
(e0_memory_mem_cke),
//
.mem_cke
.mem_cs_n (e0_memory_mem_cs_n), //
.mem_cs_n
.mem_dm
(e0_memory_mem_dm),
//
.mem_dm
Simulating Memory IP
Send Feedback
Altera Corporation
10-6
EMI_DG
2014.12.15
Functional Simulation with Verilog HDL
.mem_ras_n
.mem_cas_n
.mem_we_n
.mem_dq
.mem_dqs
.mem_dqs_n
.mem_odt
);
(e0_memory_mem_ras_n),
(e0_memory_mem_cas_n),
(e0_memory_mem_we_n),
(e0_memory_mem_dq),
(e0_memory_mem_dqs),
(e0_memory_mem_dqs_n),
(e0_memory_mem_odt)
//
//
//
//
//
//
//
.mem_ras_n
.mem_cas_n
.mem_we_n
.mem_dq
.mem_dqs
.mem_dqs_n
.mem_odt
Replace the original code with the following code:
ddr2 memory_0 (
.addr (e0_memory_mem_a), // memory.mem_a
.ba (e0_memory_mem_ba), // .mem_ba
.clk (e0_memory_mem_ck), // .mem_ck
.clk_n (e0_memory_mem_ck_n), // .mem_ck_n
.cke (e0_memory_mem_cke), // .mem_cke
.cs_n (e0_memory_mem_cs_n), // .mem_cs_n
.dm_rdqs (e0_memory_mem_dm), // .mem_dm
.ras_n (e0_memory_mem_ras_n), // .mem_ras_n
.cas_n (e0_memory_mem_cas_n), // .mem_cas_n
.we_n (e0_memory_mem_we_n), // .mem_we_n
.dq (e0_memory_mem_dq), // .mem_dq
.dqs (e0_memory_mem_dqs), // .mem_dqs
.rdqs_n (), // .mem_dqs_n
.dqs_n (e0_memory_mem_dqs_n), // .mem_dqs_n
.odt (e0_memory_mem_odt) // .mem_odt);
If you are interfacing with a DIMM or multiple memory components, you need to instantiate all the
memory components in the simulation file.
Functional Simulation with Verilog HDL
Altera provides simulation scripts for you to run the example design. The simulation scripts are for
Synopsys, Cadence, Aldec, and Mentor simulators.
The simulation scripts are located in the following main folder locations:
Simulation scripts in the simulation folders are located as follows:
•
•
•
•
•
<variation_name>_example_design\simulation\verilog\mentor\msim_setup.tcl
<variation_name>_example_design\simulation\verilog\synopsys\vcs\vcs_setup.sh
<variation_name>_example_design\simulation\verilog\synopsys\vcsmx\vcsmx_setup.sh
<variation_name>_example_design\simulation\verilog\aldec\rivierapro_setup.tcl
<variation_name>_example_design\simulation\verilog\cadence\ncsim_setup.sh
Simulation scripts in the <>_sim_folder are located as follows:
•
•
•
•
•
<variation_name>_sim\mentor\msim_setup.tcl
<variation_name>_sim\cadence\ncsim_setup.sh
<variation_name>_sim\synopsys\vcs\vcs_setup.sh
<variation_name>_sim\vcsmx\vcsmx_setup.sh
<variation_name>_sim\aldec\rivierapro_setup.tcl
For more information about simulating Verilog HDL or VHDL designs using command lines, refer to the
Mentor Graphics ModelSim® and QuestaSim Support chapter in volume 3 of the Quartus II Software
Handbook.
Related Information
Mentor Graphics ModelSim and QuestaSim Support
Altera Corporation
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Functional Simulation with VHDL
10-7
Functional Simulation with VHDL
The UniPHY VHDL fileset is specifically for customers who use VHDL exclusively and who do not have a
mixed-language (VHDL and Verilog) simulation license. All other customers should either select the
Verilog language option during generation, or simulate using the synthesis fileset.
The UniPHY IP VHDL simulation fileset consists of the following types of files:
• IPFS-generated VHDL files
• IEEE Encrypted Verilog HDL files (for Mentor, and in addition the equivalent plain-text Verilog files
for all simulators that support mixed-language simulations).
• Plain-text VHDL files.
Although the IEEE Encrypted files are written in Verilog, you can simulate these files in combination with
VHDL without violating the single-language restrictions in ModelSim because they are encrypted.
Because the VHDL fileset consists of both VHDL and Verilog files, you must follow certain mixedlanguage simulation guidelines. The general guideline for mixed-language simulation is that you must
always link the Verilog files (whether encrypted or not) against the Verilog version of the Altera libraries,
and the VHDL files (whether simgen-generated or pure VHDL) against the VHDL libraries.
Altera provides simulation scripts for you to run the example design. The simulation scripts are for
Synopsys, Cadence, Aldec, and Mentor simulators. These simulation scripts are located in the following
main folder locations:
Simulation scripts in the simulation folders are located as follows:
•
•
•
•
<variation_name>_example_design\simulation\vhdl\mentor\msim_setup.tcl
<variation_name>_example_design\simulation\vhdl\synopsys\vcsmx\vcsmx_setup.sh
<variation_name>_example_design\simulation\vhdl\cadence\ncsim_setup.sh
<variation_name>_example_design\simulation\vhdl\aldec\rivierapro_setup.tcl
Simulation scripts in the <>_sim_folder are located as follows:
•
•
•
•
<variation_name>_sim\mentor\msim_setup.tcl
<variation_name>_sim\cadence\ncsim_setup.sh
<variation_name>_sim\synopsys\vcsmx\vcsmx_setup.sh
<variation_name>_sim\aldec\rivierapro_setup.tcl
For more information about simulating Verilog HDL or VHDL designs using command lines, refer to the
Mentor Graphics ModelSim® and QuestaSim Support chapter in volume 3 of the Quartus II Software
Handbook.
Related Information
Mentor Graphics ModelSim and QuestaSim Support
Simulating the Example Design
This topic describes how to simulate the example design in Cadence, Synopsys, Mentor, and Aldec
simulators.
Simulating Memory IP
Send Feedback
Altera Corporation
10-8
EMI_DG
2014.12.15
Simulating the Example Design
To simulate the example design in the Quartus II software using the Cadence simulator, follow these
steps:
1. At the Linux shell command prompt, change directory to <name>_example_design\simulation\<verilog/
vhdl>\cadence
2. Run the simulation by typing the following command at the command prompt:
sh ncsim_setup.sh
To simulate the example design in the Quartus II software using the Synopsys simulator, follow these
steps:
1. At the Linux shell command prompt, change directory to <name>_example_design\simulation\<verilog/
vhdl>\synopsys\vcsmx
2. Run the simulation by typing the following command at the command prompt:
sh vcsmx_setup.sh
To simulate the example design in the Quartus II software using the Mentor simulator, follow these steps:
1. At the Linux or Windows shell command prompt, change directory to <name>_example_design\
simulation\<verilog/vhdl>\mentor
2. Execute the msim_setup.tcl script that automatically compiles and runs the simulation by typing the
following command at the Linux or Windows command prompt:
vsim -do run.do
or
Type the following command at the ModelSim command prompt:
do run.do
To simulate the example design in the Quartus II software using the Aldec simulator, follow these steps:
1. At the Linux or Windows shell command prompt, change directory to <name>_example_design\
simulation\<verilog/vhdl>\aldec
2. Execute the rivierapro_setup.tcl script that automatically compiles and runs the simulation by typing
the following command at the Linux or Windows command prompt:vsim -do rivierapro.tcl
3. To compile and elaborate the design after the script loads, type ld_debug.
4. Type run -all to run the simulation.
For more information about simulation, refer to the Simulating Altera Designs chapter in volume 3 of the
Quartus II Handbook.
If your Quartus II project appears to be configured correctly but the example testbench still fails, check
the known issues on the Knowledge Database page of the Altera website before filing a service request.
Related Information
• Simulating Altera Designs
• Knowledge Database
Altera Corporation
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Abstract PHY
10-9
Abstract PHY
UniPHY IP generates both synthesizable and abstract models for simulation, with the abstract model as
default. The UniPHY abstract model replaces the PLL with simple fixed-delay model, and the detailed
models of the hard blocks with simple cycle-accurate functional models.
Full calibration mode cannot be used with abstract models, which is the default model type for all devices
except Arria V and Cyclone V. In addition to enabling full calibration during generation, you must also
disable the use of abstract models by modifying the generated simulation scripts as described below. For
VHDL, the UniPHY abstract model is the only option because you cannot switch to regular simulation
model. The PLL frequencies in simulation may differ from the real time simulation due to pico-second
timing rounding.
However, you can switch to regular simulation models for Verilog HDL language. The full and quick
calibration modes are available for regular simulation models.
Add an additional command line to the compilation script for the two relevant files to enable regular PHY
simulation:
+define+ALTERA_ALT_MEM_IF_PHY_FAST_SIM_MODEL=0
The two relevant files are:
• In <variation_name>_example_design/simulation/verilog/submodules:
<variation_name>_example_sim_e0_if0_p0.sv
and
<variation_name>_example_sim_e0_if0_pll0.sv
or
• In <variation_name>_sim/submodules:
<variation_name>_p0.sv
and
<variation_name>_pll0.sv
To switch to regular simulation models for the Verilog HDL language on the example simulation design,
follow the appropriate steps for your simulator:
• For the Mentor simulator, edit the msim_setup.tcl file as follows:
vlog
- sv "$QSYS_SIMDIR/submodules/<variation_name>_example_sim_e0_if0_p0.sv”
+define+ALTERA_ALT_MEM_IF_PHY_FAST_SIM_MODEL=0
-work <variation_name>_example_sim_work
vlog - sv
"$QSYS_SIMDIR/submodules/<variation_name>/_example_sim_e0_if0_pll0.sv"
+define+ALTERA_ALT_MEM_IF_PHY_FAST_SIM_MODEL=0
-work <variation_name>_example_sim_work
Simulating Memory IP
Send Feedback
Altera Corporation
10-10
PHY-Only Simulation
EMI_DG
2014.12.15
• For the Cadence simulator, edit the ncsim_setup.sh file as follows:
ncvlog
- sv “$QSYS_SIMDIR/submodules/<variation_name>_example_sim_e0_if0_p0.sv"
+define+ALTERA_ALT_MEM_IF_PHY_FAST_SIM_MODEL=0
-work <variation_name>_example_sim_work
- cdslib ./cds_libs/skip_example_sim_work.cds.lib
ncvlog - sv
"$QSYS_SIMDIR/submodules/<variation_name>_example_sim_e0_if0_pll0.sv"
+define+ALTERA_ALT_MEM_IF_PHY_FAST_SIM_MODEL=0
-work <variation_name>_example_sim_work
- cdslib ./cds_libs/<variation_name>_example_sim_work.cds.lib
• For the Synopsys simulator, edit the vscmx_setup.sh file as follows:
vlogan +v2k - sverilog
"$QSYS_SIMDIR/submodules/<variation_name>_example_sim_e0_if0_p0.sv"
+define+ALTERA_ALT_MEM_IF_PHY_FAST_SIM_MODEL=0
- work <variation_name>_example_sim_work
vlogan +v2k - sverilog
"$QSYS_SIMDIR/submodules/<variation_name>_example_sim_e0_if0_pll0.sv"
+define+ALTERA_ALT_MEM_IF_PHY_FAST_SIM_MODEL=0
- work <variation_name>_example_sim_work
If you use the UniPHY abstract model, the simulation is two times faster in magnitude if compared to the
real simulation model. Instantiating a standalone UniPHY IP in your design further improves the
simulation time if you use a half-rate controller with UniPHY or a larger memory DQ width.
PHY-Only Simulation
To enable PHY-only simulation in the parameter editor, under PHY Settings tab, in the FPGA section,
turn on Generate PHY only. This setting also applies to designs using Qsys. This option allows you to
replace the Altera high-performance memory controllers with your own custom controller.
When you are using a standard UniPHY memory interface, by default, the parameter editor generates an
external memory interface with a controller and a PHY. The controller and PHY are connected internally
with the Altera PHY interface (AFI). The memory interface has an Avalon slave port that connects to the
controller to allow communication from the user logic. When you turn on the PHY-only option, the
parameter editor generates the PHY without the controller. In this case, the PHY is accessed via the AFI
port, which can be externally connected to a custom controller. In the example design, a controller is
instantiated externally to the memory interface. This provides a fully functional example design and
demonstrates how to connect the controller to manage the transactions from the traffic generator.
The following figure shows the difference in the UniPHY memory interface when the PHY-only option is
enabled.
Altera Corporation
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Post-fit Functional Simulation
10-11
Figure 10-1: PHY-only Option
UniPHY Memory Interface
Standard UniPHY
Traffic
Generator M
Avalon
S
S Controller
AFI
PHY
Memory Model
UniPHY Memory Interface
PHY-only option
Traffic
Generator M
Avalon
S Controller
AFI
PHY
Memory Model
Post-fit Functional Simulation
The post-fit functional simulation does not work for the UniPHY IP core because of the following
inherent problems:
• The UniPHY sample 'X's during calibration, in which causes an issue during timing simulation
• Some internal transfers that are 0-cycle require delays to properly function in a post-fit netlist
To enable functional simulation for a design that uses UniPHY IP core, a quasi-post-fit scheme is
implemented. This scheme allows gate-level simulation of the full design (excluding the UniPHY IP),
while you use RTL simulation for the UniPHY IP. The quasi-post-fit scheme involves partitioning blocks
in the EMIF and swaping them with simulation RTL. With this workaround the memory interface is
partially post-fit RTL and partially premap RTL, therefore the simulation flow is not impeded.
Gate simulation for the hard memory controller is not supported.
Running Post-fit Simulation
Assuming that the UniPHY IP has been generated and inserted in some larger design, follow these steps
to run post-fit simulation:
1. In the Quartus II software, set up a project that contains a UniPHY IP core.
2. On the Assignments menu, click Assignment Editor.
3. In the assignment editor, add the global assignment VERILOG_MACR and set the value to
SYNTH_FOR_SIM=1.
4. On the Assignments menu, click Settings.
5. In the Category list, under EDA Tools Settings, select Simulation.
6. On the Simulation page, select a tool name (for example, ModelSim-Altera).
7. In the Format for output netlist list, select a HDL language.
8. In the Output directory box, type or browse to the location where you want output files saved.
9. Click More EDA Netlist Writer Settings to choose from a list of other options.
10.Set the value for Maintain hierarchy to PARTITION_ONLY, and click OK.
Simulating Memory IP
Send Feedback
Altera Corporation
10-12
EMI_DG
2014.12.15
Running Post-fit Simulation
11.Elaborate the project. On the Processing menu, select Start and click Start Hierarchy Elaboration.
12.In the Project Navigator window, click the Hierarchy tab. In the Entity box, locate the instances for
the following devices:
a. For instances in Stratix III, Stratix IV, Arria II GX, Arria II GZ , click the + icon to expand the
following top-level design entities, right-click on the lower-level entities, select Design Partition,
and click Set as Design Partition:
• <hierarchy path to UniPHY top-level>\<name>_if0:if0\<name>_if0_p0:p0
• <hierarchy path to UniPHY top-level>\<name>_if0:if0\<name>_if0_s0:s0
b. For instances in Arria V or Stratix V, click the + icon to expand the following top-level design
entity, right-click on the lower-level entities, select Design Partition, and click Set as Design
Partition:
• <hierarchy path to UniPHY top-level>\<name>_if0:if0\<name>_if0_s0:s0
For instances of hard memory interfaces in Arria V, no design partition is necessary.
13.In the Design Partitions Window, ensure that the netlist type value of the design partitions listed in
Step12 a and 12b are set to Post-synthesis.
14.On the Processing menu, select Start and click Start Analysis and Synthesis.
15.Run the Pin assignments script. To run the pin assignment script, follow these steps:
a. On the Tools menu,click TCL Scripts.
b. In the Libraries list, locate the <name>_pin_assignment.tcl.
c. Click Run.
16.On the Processing menu, select Start and click Partition Merge.
17.On the Processing menu, select Start and click Start Fitter.
18.On the Processing menu, select Start and click Start EDA netlist writer .
19.The output post-fit netlist is located in the directory you chose in Step 8.
20.Assume that the netlist filename is dut.vo (or dut.vho for VHDL). Replace the instance of the
partitioned modules (specified in step 12) in dut.vo and instantiate the original instance of the RTL. As
a result, the RTL of those modules will simulate correctly instead of the the post-fit netlist. For
example, you can delete the definition of the <name>_if0_s0 (and <name>_if0_p0, if appropriate)
modules in the post-fit netlist, and ensure that your simulator compiles the post-fit netlist and all the
UniPHY RTL in order to properly link these modules for simulation.
(This step does not apply to hard memory interfaces on Arria V devices.)
21.To match the post-fit netlist instantiation of s0 (and p0, if appropriate) with the original RTL module
definition (specified in step 12), you must also account for three device input ports that are added to
the post-fit netlist. The easiest way to do this is to delete the following three connections from the s0
(and p0, if appropriate) instances in the post-fit netlist:
• .devpor(devpor)
• .devclrn(devclrn)(
• .devoe(devpoe)
(This step does not apply to hard memory interfaces on Arria V devices.)
22.For Stratix V the <name>_if0_s0 instance in the post-fit netlist will also have a connection .QIC_GND_
PORT( <wire name> ) that you must delete because it does not match with the original RTL module.
Altera Corporation
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Simulation Issues
10-13
(This step does not apply to hard memory interfaces on Arria V devices.)
23.Set up and run your simulator.
Simulation Issues
When you simulate an example design in the ModelSim, you might see the following warnings, which are
expected and not harmful:
# ** Warning: (vsim-3015)
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_controller_phy.sv(402
): [PCDPC] - Port size (1 or 1) does not match connection size (7) for port
'local_size'.
#
Region:
/uniphy_s4_example_top_tb/dut/mem_if/controller_phy_inst/alt_ddrx_controller_inst
# ** Warning: (vsim-3015)
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_controller_phy.sv(402
): [PCDPC] - Port size (9 or 9) does not match connection size (1) for port
'ctl_cal_byte_lane_sel_n'.
#
Region:
/uniphy_s4_example_top_tb/dut/mem_if/controller_phy_inst/alt_ddrx_controller_inst
# ** Warning: (vsim-3015)
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_controller_phy.sv(402
): [PCDPC] - Port size (18 or 18) does not match connection size (1) for port
'afi_doing_read'.
#
Region:
/uniphy_s4_example_top_tb/dut/mem_if/controller_phy_inst/alt_ddrx_controller_inst
# ** Warning: (vsim-3015)
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_controller_phy.sv(402
): [PCDPC] - Port size (2 or 2) does not match connection size (1) for port
'afi_rdata_valid'.
#
Region:
/uniphy_s4_example_top_tb/dut/mem_if/controller_phy_inst/alt_ddrx_controller_inst
# ** Warning: (vsim-3015)
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_controller_phy.sv(402
): [PCDPC] - Port size (112 or 112) does not match connection size (1) for port
'bank_information'.
#
Region:
/uniphy_s4_example_top_tb/dut/mem_if/controller_phy_inst/alt_ddrx_controller_inst
# ** Warning: (vsim-3015)
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_controller_phy.sv(402
): [PCDPC] - Port size (8 or 8) does not match connection size (1) for port
'bank_open'.
#
Region:
/uniphy_s4_example_top_tb/dut/mem_if/controller_phy_inst/alt_ddrx_controller_inst
# ** Warning: (vsim-3017)
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_alt_ddrx_bank_timer_
wrapper.v(1191): [TFMPC] - Too few port connections. Expected 127, found 126.
#
Region:
/uniphy_s4_example_top_tb/dut/mem_if/controller_phy_inst/alt_ddrx_controller_inst
/bank_timer_wrapper_inst/bank_timer_inst
# ** Warning: (vsim-3722)
Simulating Memory IP
Send Feedback
Altera Corporation
10-14
EMI_DG
2014.12.15
Simulation Walkthrough with Arria 10 EMIF IP
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_alt_ddrx_bank_timer_
wrapper.v(1191): [TFMPC] - Missing connection for port 'wr_to_rd_to_pch_all'.
# ** Warning: (vsim-3015)
D:/design_folder/iptest10/simulation/uniphy_s4/rtl/uniphy_s4_alt_ddrx_bank_timer_
wrapper.v(1344): [PCDPC] - Port size (5 or 5) does not match connection size (1)
for port 'wr_to_rd_to_pch_all'.
#
Region:
/uniphy_s4_example_top_tb/dut/mem_if/controller_phy_inst/alt_ddrx_controller_
inst/bank_timer_wrapper_inst/rank_monitor_inst
# ** Warning: (vsim-8598) Non-positive replication multiplier inside concat.
Replication will be ignored
Warning-[OSPA-N] Overriding same parameter again
/p/eda/acd/altera/quartusII/10.1/quartus/eda/sim_lib/synopsys/stratixv_atoms_
ncrypt.v, 8499
Warning-[ZONMCM] Zero or negative multiconcat multiplier
../quartus_stratix5/ddr3_ctlr_sim/ddr3_ctlr_sequencer.sv, 916
Zero or negative multiconcat multiplier is found in design. It will be
replaced by 1'b0.
Source info: {INIT_COUNT_WIDTH {1'b0}}
Warning-[PCWM-W] Port connection width mismatch
../quartus_stratix5/ddr3_ctlr_sim/ddr3_ctlr_sequencer_cpu.v, 2830
"the_sequencer_cpu_nios2_oci_itrace"
The following 38-bit expression is connected to 16-bit port "jdo" of module
"ddr3_ctlr_sequencer_cpu_nios2_oci_itrace", instance
"the_sequencer_cpu_nios2_oci_itrace".
Expression: jdo
use +lint=PCWM for more details
Simulation Walkthrough with Arria 10 EMIF IP
Simulation of the whole memory interface is a good way to determine the latency of your system.
However, the latency found in simulation may be different than the latency found on the board because
functional simulation does not take into account board trace delays and different process, voltage, and
temperature scenarios.
For a given design on a given board, the latency found may differ by one clock cycle (for full-rate designs)
or two clock cycles (for half-rate designs) upon resetting the board. Different boards can also show
different latencies even with the same design.
The Arria 10 EMIF IP supports only functional simulation. Functional simulation is supported at the RTL
level and after generating a post-fit functional simulation netlist. The post-fit netlist for designs that
contain Arria 10 EMIF IP is a hybrid of the gate level (for FPGA core) and RTL level (for the external
memory interface IP). Altera recommends that you validate the functional operation of your design using
RTL simulation, and the timing of your design using TimeQuest Timing Analysis.
For Arria 10 EMIF IP, you can perform functional simulation of an example design that is generated with
your IP core. The example design files are created in the \<variation_name>_example_design directory.
Altera Corporation
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Skip Calibration Versus Full Calibration
10-15
You can use the IP functional simulation model with any Altera-supported VHDL or Verilog HDL
simulator.
After you have generated the memory IP, view the README. txt file located in the \<variation_name>_
example_design directory for instructions on how to generate the simulation example design for Verilog
HDL or VHDL. Simulation filesets for both Verilog HDL and VHDL are located in \<variation_name>_
example_design\sim. The README.txt file also explains how to run simulation using the ModelSim-Altera
software. Altera provides simulation scripts for the Mentor, Cadence, Aldec, and Synopsys simulators;
however, detailed instructions on how to perform simulation using these third party simulators are not
provided.
Skip Calibration Versus Full Calibration
Calibration must occur shortly after the memory device is initialized, to compensate for uncertainties of
the hardware system, including silicon PVT variation, circuit board trace delays, and skewed arrival times.
Such variations are usually not present in an RTL simulation environment, therefore there are two
options for how the calibration algorithm behaves during simulation: Skip Calibration mode (which is the
default), and Full Calibration mode.
Skip Calibration Mode
In Skip Calibration mode, the calibration processor assumes an ideal hardware environment, where PVT
variations, board delays, and trace skews are all zero. Instead of running the actual calibration routine, the
calibration processor calculates the expected arrival time of read data based on the memory latency values
that you provide, thus reducing much simulation processing. Skip calibration mode is recommended for
use during system development, because it allows you to focus on interacting with the controller and
optimizing your memory access patterns, thus facilitating rapid RTL development.
Full Calibration Mode
Full Calibration mode simulates every stage of the calibration algorithm immediately after memory device
initialization. Because the calibration algorithm processes each data group sequentially and each pin in
each group individually, simulation time increases with the number of groups and data pins in your
interface. You can observe how the calibration algorithm compensates for various delays in the system by
incorporating your own board delay model based on trace delays from your PCB design tools. Due to the
large simulation overhead, Full Calibration simulation mode is not recommended for rapid development
of IP cores.
VHDL Support
VHDL support for mixed-language simulators is implemented by generating the top-level wrapper for the
core in VHDL, while all submodules are provided as clear text SystemVerilog files.
A set of precompiled device libraries is provided for use with the ModelSIM Altera Edition singlelanguage simulator which is supplied with the Quartus II software. Submodules normally provided as
cleartext SystemVerilog files are encrypted using IEEE Verilog encryption for ModelSIM AE.
Simulation Scripts
The Quartus II software generates three simulation scripts during project generation for four different
third party simulation tools—Cadence, Synopsys, Aldec, and Mentor.
The simulation scripts reduce the number of files that you need to compile separately before simulating a
design. These scripts are located in four separate folders under the <project directory>\<varitation_name>_sim
directory, each named after the names of the simulation tools. The example designs also provide
Simulating Memory IP
Send Feedback
Altera Corporation
10-16
EMI_DG
2014.12.15
Functional Simulation with Verilog HDL
equivalent scripts after you run the .tcl script from the project located in the \<variation_name>_example_
design\sim directory.
Functional Simulation with Verilog HDL
Altera provides simulation scripts for you to run the example design. The simulation scripts are for
Synopsys, Cadence, Aldec, and Mentor simulators.
The simulation scripts are located in the following main folder locations:
Simulation scripts in the simulation folders are located as follows:
•
•
•
•
•
<variation_name>_example_design\sim\mentor\msim_setup.tcl
<variation_name>_example_design\sim\synopsys\vcs\vcs_setup.sh
<variation_name>_example_design\sim\synopsys\vcsmx\vcsmx_setup.sh
<variation_name>_example_design\sim\aldec\rivierapro_setup.tcl
<variation_name>_example_design\sim\cadence\ncsim_setup.sh
Simulation scripts in the <>_sim_folder are located as follows:
•
•
•
•
•
<variation_name>_sim\mentor\msim_setup.tcl
<variation_name>_sim\cadence\ncsim_setup.sh
<variation_name>_sim\synopsys\vcs\vcs_setup.sh
<variation_name>_sim\synopsys\vcsmx\vcsmx_setup.sh
<variation_name>_sim\aldec\rivierapro_setup.tcl
For more information about simulating Verilog HDL or VHDL designs using command lines, refer to the
Mentor Graphics ModelSim® and QuestaSim Support chapter in volume 3 of the Quartus II Software
Handbook.
Related Information
Mentor Graphics ModelSim and QuestaSim Support
Functional Simulation with VHDL
The Arria 10 EMIF VHDL fileset is specifically for customers who use VHDL exclusively and who do not
have a mixed-language (VHDL and Verilog) simulation license. All other customers should either select
the Verilog language option during generation.
The Arria 10 EMIF VHDL simulation fileset consists of the following types of files:
• IPFS-generated VHDL files
• IEEE Encrypted Verilog HDL files (for Mentor, and in addition the equivalent plain-text Verilog files
for all simulators that support mixed-language simulations).
• Plain-text VHDL files.
Although the IEEE Encrypted files are written in Verilog, you can simulate these files in combination with
VHDL without violating the single-language restrictions in ModelSim because they are encrypted.
Because the VHDL fileset consists of both VHDL and Verilog files, you must follow certain mixedlanguage simulation guidelines. The general guideline for mixed-language simulation is that you must
always link the Verilog files (whether encrypted or not) against the Verilog version of the Altera libraries,
and the VHDL files (whether simgen-generated or pure VHDL) against the VHDL libraries.
Altera Corporation
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Simulating the Example Design
10-17
Altera provides simulation scripts for you to run the example design. The simulation scripts are for
Synopsys, Cadence, Aldec, and Mentor simulators. These simulation scripts are located in the following
main folder locations:
Simulation scripts in the simulation folders are located as follows:
•
•
•
•
•
<variation_name>_example_design\sim\mentor\msim_setup.tcl
<variation_name>_example_design\sim\synopsys\vcsmx\vcsmx_setup.sh
<variation_name>_example_design\sim\synopsys\vcs\vcs_setup.sh
<variation_name>_example_design\sim\cadence\ncsim_setup.sh
<variation_name>_example_design\sim\aldec\rivierapro_setup.tcl
Simulation scripts in the <>_sim_folder are located as follows:
•
•
•
•
<variation_name>_sim\mentor\msim_setup.tcl
<variation_name>_sim\cadence\ncsim_setup.sh
<variation_name>_sim\synopsys\vcsmx\vcsmx_setup.sh
<variation_name>_sim\aldec\rivierapro_setup.tcl
For more information about simulating Verilog HDL or VHDL designs using command lines, refer to the
Mentor Graphics ModelSim® and QuestaSim Support chapter in volume 3 of the Quartus II Software
Handbook.
Related Information
Mentor Graphics ModelSim and QuestaSim Support
Simulating the Example Design
This topic describes how to simulate the example design in Cadence, Synopsys, Mentor, and Aldec
simulators.
To simulate the example design in the Quartus II software using the Cadence simulator, follow these
steps:
1. At the Linux shell command prompt, change directory to <name>_example_design\sim\cadence
2. Run the simulation by typing the following command at the command prompt:
sh ncsim_setup.sh
To simulate the example design in the Quartus II software using the Synopsys simulator, follow these
steps:
1. At the Linux shell command prompt, change directory to <name>_example_design\sim\synopsys\vcsmx
2. Run the simulation by typing the following command at the command prompt:
sh vcsmx_setup.sh
To simulate the example design in the Quartus II software using the Mentor simulator, follow these steps:
1. At the Linux or Windows shell command prompt, change directory to <name>_example_design\sim\
mentor
2. Execute the msim_setup.tcl script that automatically compiles and runs the simulation by typing the
following command at the Linux or Windows command prompt:
vsim -do msim_setup.tcl
or
Simulating Memory IP
Send Feedback
Altera Corporation
10-18
EMI_DG
2014.12.15
Document Revision History
Type the following command at the ModelSim command prompt:
do msim_setup.tcl
Note: Altera does not provide the run.do file for the example design with the Arria 10 EMIF interface.
To simulate the example design in the Quartus II software using the Aldec simulator, follow these steps:
1. At the Linux or Windows shell command prompt, change directory to <name>_example_design\sim\
aldec
2. Execute the rivierapro_setup.tcl script that automatically compiles and runs the simulation by typing
the following command at the Linux or Windows command prompt:vsim -do rivierapro.tcl
3. To compile and elaborate the design after the script loads, type ld_debug.
4. Type run -all to run the simulation.
For more information about simulation, refer to the Simulating Altera Designs chapter in volume 3 of the
Quartus II Handbook.
If your Quartus II project appears to be configured correctly but the example testbench still fails, check
the known issues on the Knowledge Database page of the Altera website before filing a service request.
Related Information
• Simulating Altera Designs
• Knowledge Database
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
Removed references to MegaWizard Plug-In Manager.
December
2013
2013.12.16
•
•
•
•
•
November
2012
6.0
Changed chapter number from 9 to 10.
June 2012
5.0
• Added path to simulation scripts for Riviera-PRO to Functional
Simulations section.
• Added simulation procedure for Riviera-PRO to Simulating the
Example Design section.
• Updated the Abstract PHY section.
• Updated the Post-fit Functional Simulation procedure.
• Added Feedback icon.
Altera Corporation
Removed references to ALTMEMPHY.
Removed references to HardCopy.
Removed references to SOPC Builder.
Added Simulation Walkthrough with Arria 10 EMIF IP.
Clarified explanation of full calibration mode with abstract models in
Abstract PHY section.
Simulating Memory IP
Send Feedback
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
November
2011
4.0
• Added the PHY-Only Simulation section.
• Added the Post-fit Functional Simulation section.
• Updated the Simulation Walkthrough with UniPHY IP section.
June 2011
3.0
• Added an overview about memory simulation.
• Added the Simulation Walkthrough with UniPHY IP section.
December
2010
2.1
Updated fr 10.1 release.
July 2010
2.0
Updated for 10.0 release.
January 2010
1.1
Corrected typos.
November
2009
1.0
Initial release.
Simulating Memory IP
Send Feedback
10-19
Altera Corporation
11
Analyzing Timing of Memory IP
2014.12.15
EMI_DG
Subscribe
Send Feedback
The external memory physical layer (PHY) interface offers a combination of source-synchronous and
self-calibrating circuits to maximize system timing margins. The physical layer interface is a
®
plug-and-play solution that the Quartus II TimeQuest Timing Analyzer timing constrains and analyzes.
The Altera IP and the numerous device features offered by Arria II, Arria V, Arria 10, Cyclone V,
®
Stratix III, Stratix IV, and Stratix V FPGAs, greatly simplify the implementation of an external memory
interface.
®
®
This chapter details the various timing paths that determine overall external memory interface perform‐
ance, and describes the timing constraints and assumptions that the PHY IP uses to analyze these paths.
This chapter focuses on timing constraints for external memory interfaces based on the UniPHY IP. For
information about timing constraints and analysis of external memory interfaces and other sourcesynchronous interfaces based on the ALTDQ_DQS and ALTDQ_DQS2 IP cores, refer to AN 433:
Constraining and Analyzing Source-Synchronous Interfaces and the Quartus II TimeQuest Timing
Analyzer chapter in volume 3 of the Quartus II Handbook.
External memory interface timing analysis is supported only by the TimeQuest Timing Analyzer, for the
following reasons:
• The wizard-generated timing constraint scripts support only the TimeQuest analyzer.
• The Classic Timing Analyzer does not offer analysis of source-synchronous outputs. For example,
write data, address, and command outputs.
• The Classic Timing Analyzer does not support detailed rise and fall delay analysis.
The performance of an FPGA interface to an external memory device is dependent on the following items:
•
•
•
•
•
Read datapath timing
Write datapath timing
Address and command path timing
Clock to strobe timing (tDQSS in DDR and DDR2 SDRAM, and tKHK#H in QDR II and QDRII+ SRAM)
Read resynchronization path timing (applicable for DDR, DDR2, and DDR3 SDRAM in Arria II,
Arria V, Arria V GZ, Arria 10, Cyclone V, Stratix III, Stratix IV, and Stratix V devices)
• Write leveling path timing (applicable for DDR2 and DDR3 SDRAM with UniPHY, and DDR3 and
DDR4 SDRAM with Arria 10 EMIF IP.)
• PHY timing paths between I/O element and core registers
• PHY and controller internal timing paths (core fMAX and reset recovery/removal)
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
11-2
EMI_DG
2014.12.15
Memory Interface Timing Components
• I/O toggle rate
• Output clock specifications
• Bus turnaround timing (applicable for RLDRAM II and DDR2 and DDR3 SDRAM with UniPHY)
Note: External memory interface performance depends on various timing components, and overall
system level performance is limited by performance of the slowest link (that is, the path with the
smallest timing margins).
Related Information
• AN 433: Constraining and Analyzing Source-Synchronous Interfaces
• Quartus II TimeQuest Timing Analyzer
Memory Interface Timing Components
There are several categories of memory interface timing components, including source-synchronous
timing paths, calibrated timing paths, internal FPGA timing paths, and other FPGA timing parameters.
Understanding the nature of timing paths enables you to use an appropriate timing analysis methodology
and constraints. The following section examines these aspects of memory interface timing paths.
Source-Synchronous Paths
Source-synchronous timing paths are those where clock and data signals pass from the transmitting
device to the receiving device.
An example of a source-synchronous timing path is the FPGA-to-memory write datapath. The FPGA
device transmits DQ output data signals to the memory along with a center-aligned DQS output strobe
signal. The memory device uses the DQS signal to clock the data on the DQ pins into its internal registers.
Note: For brevity, the following topics refer to data signals and clock strobe signals as DQ signals and
DQS signals, respectively. While the terminology is formally correct only for DDR-type interfaces
and does not match QDR II, QDR II+ and RLDRAM II pin names, the behavior is similar enough
that most timing properties and concepts apply to both. The clock that captures address and
command signals is always referred to as CK/CK# too.
Calibrated Paths
Calibrated timing paths are those where the clock used to capture data is dynamically positioned within
the data valid window (DVW) to maximize timing margin.
For UniPHY-based controllers and Arria 10 EMIF controllers, the sequencer block analyzes all path
delays between the read capture registers and the read FIFO buffer to set up the FIFO write clock phase
for optimal timing margin. The read postamble calibration process is implemented in a similar manner to
the read resynchonization calibration. In addition, the sequencer block calibrates a read data valid signal
to the delay between a controller issuing a read command and read data returning to controller.
In DDR2, DDR3, and RLDRAM II with UniPHY, and in Arria 10 EMIF, the IP calibrates the writeleveling chains and programmable output delay chain to align the DQS edge with the CK edge at memory
to meet the tDQSS, tDSS, and tDSH specifications.
Both UniPHY IP and Arria 10 EMIF IP enable the dynamic deskew calibration with the Nios II sequencer
for read and write paths. Dynamic deskew process uses the programmable delay chains that exist within
the read and write data paths to adjust the delay of each DQ and DQS pin to remove the skew between
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Internal FPGA Timing Paths
11-3
different DQ signals and to centre-align the DQS strobe in the DVW of the DQ signals. This process
occurs at power up for the read and the write paths.
Internal FPGA Timing Paths
Other timing paths that have an impact on memory interface timing include FPGA internal fMAX paths
for PHY and controller logic.
This timing analysis is common to all FPGA designs. With appropriate timing constraints on the design
(such as clock settings), the TimeQuest Timing Analyzer reports the corresponding timing margins.
For more information about the TimeQuest Timing Analyzer, refer to the Quartus II TimeQuest Timing
Analyzer chapter in volume 3 of the Quartus II Handbook.
Related Information
Quartus II TimeQuest Timing Analyzer
Other FPGA Timing Parameters
Some FPGA data sheet parameters, such as I/O toggle rate and output clock specifications, can limit
memory interface performance.
I/O toggle rates vary based on speed grade, loading, and I/O bank location— top/bottom versus left/right.
This toggle rate is also a function of the termination used (OCT or external termination) and other
settings such as drive strength and slew rate.
Note: Ensure you check the I/O performance in the overall system performance calculation. Altera
recommends that you perform signal integrity analysis for the specified drive strength and output
pin load combination.
For information about signal integrity, refer to the board design guidelines chapters and AN 476: Impact
of I/O Settings on Signal Integrity in Stratix III Devices.
Output clock specifications include clock period jitter, half-period jitter, cycle-to-cycle jitter, and skew
between FPGA clock outputs. You can obtain these specifications from the FPGA data sheet and must
meet memory device requirements. You can use these specifications to determine the overall data valid
window for signals transmitted between the memory and FPGA device.
Related Information
AN476: Impact of I/O Settings on Signal Integrity in Stratix III Devices
FPGA Timing Paths
The following topics describe the FPGA timing paths, the timing constraints examples, and the timing
assumptions that the constraint scripts use.
In Arria II, Arria V, Arria V GZ, Arria 10, Cyclone V, Stratix III, Stratix IV, and Stratix V devices, the
interface margin is reported based on a combination of the TimeQuest Timing Analyzer and further steps
to account for calibration that occurs at runtime. First the TimeQuest analyzer returns the base setup and
hold slacks, and then further processing adjusts the slacks to account for effects which cannot be modeled
in TimeQuest.
Arria II Device PHY Timing Paths
The following table lists all Arria II devices external memory interface timing paths.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-4
EMI_DG
2014.12.15
Arria II Device PHY Timing Paths
Table 11-1: Arria II Devices External Memory Interface Timing Paths
Timing Path
Read Data
Write Data
Circuit Category
(2) (6)
(2) (6)
Destination
Memory DQ, DQS Pins
DQ Capture Registers
in IOE
Source-Synchronous
FPGA DQ, DQS Pins
Memory DQ, DM, and
DQS Pins
(2)
(2)
Source
Source-Synchronous
Address and command Source-Synchronous
Clock-to-Strobe
(1)
FPGA CK/CK# and Addr/ Memory Input Pins
Cmd Pins
Source-Synchronous
FPGA CK/CK# and DQS
Output Pins
Memory Input Pins
Read Resynchroniza‐
tion (2)
Calibrated
IOE Capture Registers
IOE Resynchronization
Registers
Read Resynchroniza‐
tion (2) (5)
Calibrated
IOE Capture Registers
Read FIFO in FPGA
Core
PHY IOE-Core Paths
Source-Synchronous
IOE Resynchronization
Registers
FIFO in FPGA Core
PHY and Controller
Internal Paths (2)
Internal Clock fMAX
Core Registers
Core Registers
I/O
FPGA Output Pin
Memory Input Pins
I/O
FPGA Output Pin
Memory Input Pins
(2)
I/O Toggle Rate
(3)
Output Clock Specifi‐
cations (Jitter, DCD)
(4)
Notes to Table:
1.
2.
3.
4.
Timing paths applicable for an interface between Arria II devices and SDRAM component.
Timing margins for this path are reported by the TimeQuest Timing Analyzer Report DDR function.
Altera recommends that you perform signal integrity simulations to verify I/O toggle rate.
For output clock specifications, refer to the Arria II Device Data Sheet chapter of the Arria II
Handbook.
5. Only for UniPHY IP.
6. Arria II GX devices use source-synchronous and calibrated path.
The following figure shows the Arria II GX devices input datapath registers and circuit types.
Note: UniPHY IP interfaces bypass the synchronization registers.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
11-5
Arria II Device PHY Timing Paths
Figure 11-1: Arria II GX Devices Input Data Path Registers and Circuit Types in SDRAM Interface
Internal
Source
Synchronous
Calibrated
I/O Source
Synchronous
Arria II GX FPGA
DDR Input Registers
DQ
Input
Reg AI
FIFO
Synchronization
Registers
SDRAM
Input
Reg CI
Input
Reg BI
DQS
Resynchronization Clock
The following figure shows the Arria II GZ devices input datapath registers and circuit types.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-6
EMI_DG
2014.12.15
Stratix III and Stratix IV PHY Timing Paths
Figure 11-2: Arria II GZ Devices Input Data Path Registers and Circuit Types in SDRAM Interface
I/O Source
Synchronous and Calibrated
Arria II GZ FPGA
DDR Input Registers
DQ
Input
Reg AI
FIFO
SDRAM
Input
Reg CI
Input
Reg BI
DQS
Half-Rate
Resynchronization Clock
Related Information
Device Datasheet for Arria II Devices
Stratix III and Stratix IV PHY Timing Paths
A close look at all the register transfers occurring in the Stratix III and Stratix IV input datapath reveals
many source-synchronous and calibrated circuits.
Note: The information in the following figure and table is based on Stratix IV devices, but is also
applicable to Stratix III devices.
The following figure shows a block diagram of this input path with some of these paths identified for
Stratix IV devices. The output datapath contains a similar set of circuits.
Note: UniPHY IP interfaces bypass the alignment and synchronization registers.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
11-7
Stratix III and Stratix IV PHY Timing Paths
Figure 11-3: Stratix IV Input Path Registers and Circuit Types in SDRAM Interface
Internal
Source
Synchronous
Half-Rate Data Registers
Calibrated
I/O Source
Synchronous and Calibrated
Stratix IV FPGA
DDR Input Registers
Alignment
and
Synchronization
Registers
FIFO
DQ
Input
Reg A I
SDRAM
Input
Reg C I
Input
Reg B I
DQS
Resynchronization Clock
Half-Rate
Resynchronization Clock
I/O Clock
Divider
The following table lists the timing paths applicable for an interface between Stratix IV devices and halfrate SDRAM components.
Note: The timing paths are also applicable to Stratix III devices, but Stratix III devices use only sourcesynchronous path for read and write data paths.
Table 11-2: Stratix IV External Memory Interface Timing Paths (Part 1 of 2)
Timing Path
Read Data
(1)
Write Data
(1)
Circuit Category
Analyzing Timing of Memory IP
Send Feedback
Destination
Source-Synchronous and
Calibrated
Memory DQ, DQS Pins
DQ Capture Registers
in IOE
Source-Synchronous and
Calibrated
FPGA DQ, DQS Pins
Memory DQ, DM, and
DQS Pins
Address and command Source-Synchronous
(1)
Source
FPGA CK/CK# and Addr/ Memory Input Pins
Cmd Pins
Altera Corporation
11-8
EMI_DG
2014.12.15
Arria V, Arria V GZ, Arria 10, Cyclone V, and Stratix V Timing paths
Timing Path
Clock-to-Strobe
Circuit Category
(1)
Source
Destination
Source-Synchronous
FPGA CK/CK# and DQS
Output Pins
Memory Input Pins
Read Resynchroniza‐
tion (1)
Calibrated
IOE Capture Registers
IOE Alignment and
Resynchronization
Registers
Read Resynchroniza‐
tion (1) (4)
Calibrated
IOE Capture Registers
Read FIFO in FPGA
Core
PHY IOE-Core Paths
Source-Synchronous
IOE Half Data Rate
Registers and Half-Rate
Resynchronization Clock
FIFO in FPGA Core
PHY & Controller
Internal Paths (1)
Internal Clock fMAX
Core registers
Core registers
I/O – Data sheet
FPGA Output Pin
Memory Input Pins
I/O – Data sheet
FPGA Output Pin
Memory Input Pins
(1)
I/O Toggle Rate
(2)
Output Clock Specifi‐
cations (Jitter, DCD)
(3)
Notes to Table:
1. Timing margins for this path are reported by the TimeQuest Timing Analyzer Report DDR function.
2. Altera recommends that you perform signal integrity simulations to verify I/O toggle rate.
3. For output clock specifications, refer to theDC and Switching Characteristics chapter of the Stratix IV
Device Handbook.
4. Only for UniPHY IP.
Related Information
• DC and Switching Characteristics for Stratix III Devices
• DC and Switching Characteristics for Stratix IV Devices
Arria V, Arria V GZ, Arria 10, Cyclone V, and Stratix V Timing paths
The following figures show block diagrams of the input data paths for Arria V, Arria V GZ, Cyclone V,
and Stratix V devices, and for Arria 10 devices.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Arria V, Arria V GZ, Arria 10, Cyclone V, and Stratix V Timing paths
11-9
Figure 11-4: Arria V, Arria V GZ, Cyclone V, and Stratix V Input Data Path
I/O Source
Synchronous and Calibrated
DDR Input Registers
DQ
Input
Reg A I
SDRAM
FIFO
Input
Reg C I
Input
Reg B I
DQS
The following figure shows a block diagram of the Arria 10 input data path.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-10
EMI_DG
2014.12.15
Arria V, Arria V GZ, Arria 10, Cyclone V, and Stratix V Timing paths
Figure 11-5: Arria 10 Input Data Path
I/O Source
Synchronous and Calibrated
I/O Lane
DDR Input Registers
Input
Reg A I
Delay Line
DQ
SDRAM
FIFO
Input
Reg C I
Input
Reg B I
DQS
Delay Line
DQS
The following table lists all Arria V, Arria V GZ, Arria 10, Cyclone V, and Stratix V devices external
memory interface timing paths.
Table 11-3: Arria V, Arria V GZ, Arria 10, Cyclone V, and Stratix V External Memory Interface Timing Paths
(1)
Timing Path
Read Data
Write Data
(2)
(2)
Circuit Category
Altera Corporation
Destination
Source-Synchronous and
Calibrated
Memory DQ, DQS Pins
Source-Synchronous and
Calibrated
FPGA DQ, DM, DQS Pins Memory DQ, DM, and
DQS Pins
Address and command Source-Synchronous
(2)
Source
DQ Capture Registers
in IOE
FPGA CK/CK# and Addr/ Memory Input Pins
Cmd Pins
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Arria V, Arria V GZ, Arria 10, Cyclone V, and Stratix V Timing paths
Timing Path
Clock-to-Strobe
Circuit Category
(2)
Source
Destination
Source-Synchronous
FPGA CK/CK# and DQS
Output Pins
Memory Input Pins
Read Resynchroniza‐
tion (2)
Source-Synchronous
IOE Capture Registers
Read FIFO in IOE
PHY & Controller
Internal Paths (2)
Internal Clock fMAX
Core Registers
Core Registers
I/O – Data sheet
FPGA Output Pin
Memory Input Pins
I/O – Data sheet
FPGA Output Pin
Memory Input Pins
i/O Toggle Rate
(3)
Output Clock Specifi‐
cations (Jitter, DCD)
11-11
(4)
Notes to Table:
1. This table lists the timing paths applicable for an interface between Arria V, Arria V GZ, Cyclone V,
and Stratix V devices and half-rate SDRAM components.
2. Timing margins for this path are reported by the TimeQuest Timing Analyzer Report DDR function.
3. Altera recommends that you perform signal integrity simulations to verify I/O toggle rate.
4. For output clock specifications, refer to the DC and Switching Characteristics chapter of the respective
Device Handbook.
The following table lists the Arria 10 external memory interface timing paths.
Timing Path
Circuit Category
Source
Destination
Read Data (1)
Source-Synchronous Memory DQ, DQS
and Calibrated
Pins
DQ Capture Registers in IOE
Write Data (1)
Source-Synchronous FPGA DQ, DM,
and Calibrated
DQS Pins
Memory DQ, DM, and DQS
Pins
Address and Command (1)
Source-Synchronous FPGA CK/CK# and
Address/Command
Pins
Memory Input Pins
Clock-to-Strobe (1)
Source-Synchronous FPGA CK/CK# and
DQS Output Pins
Memory Input Pins
PHY & Controller Internal
Paths
Internal Clock fmax
Core Registers
Core Registers
I/O Toggle Rate (2)
I/O Data sheet
FPGA Output Pin
Memory Input Pins
Output Clock Specifications
(Jitter, DCD) (3)
I/O Data sheet
FPGA Output Pin
Memory Input Pins
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-12
EMI_DG
2014.12.15
Timing Constraint and Report Files for UniPHY IP
Timing Path
Circuit Category
Source
Destination
Notes to Table:
1. The Report DDR function in the TimeQuest Timing Analyzer reports the timing margins for this path.
2. You should perform signal integrity simulations for verify I/O toggle rate.
3. For output clock verifications, refer to the DC and Switching Characteristics chapter of the Arria 10
Device Handbook.
Timing Constraint and Report Files for UniPHY IP
To ensure a successful external memory interface operation, the UniPHY IP generates two sets of files for
timing constraints but in different folders and with slightly different filenames.
One set of files are used for the synthesis project, which is available under the <variation_name> folder
located in the main project folder while the other set of files are the example designs, located in the
<variation_name>example design\example_project folder.
The project folders contain the following files for timing constraints and reporting scripts:
•
•
•
•
•
•
<variation_name>.sdc
<variation_name>_timing.tcl
<variation_name>_report_timing.tcl
<variation_name>_report_timing_core.tcl
<variation_name>_pin_map.tcl
<variation_name>_parameters.tcl
<variation_name>.sdc
The <variation_name>.sdc is listed in the wizard-generated Quartus II IP File (.qip). Including this file in
the project allows the Quartus II Synthesis and Fitter to use the timing driven compilation to optimize the
timing margins.
To analyze the timing margins for all UniPHY timing paths, execute the Report DDR function in the
TimeQuest Timing Analyzer.
The UniPHY IP uses the .sdc to constrain internal FPGA timing paths, address and command paths, and
clock-to-strobe timing paths, and more specifically:
•
•
•
•
•
•
Creating clocks on PLL inputs
Creating generated clocks
Calling derive_clock_uncertainty
Cutting timing paths for specific reset paths
Setting input and output delays on DQ inputs and outputs
Setting output delays on address and command outputs (versus CK/CK# outputs)
<variation_name>_timing.tcl
This script includes the memory, FPGA, and board timing parameters for your variation. It is included
within <variation_name>_report_timing.tcl and <variation_name>.sdc.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Timing Constraint and Report Files for Arria 10 EMIF IP
11-13
<variation_name>_report_timing.tcl
This script reports the timing slack for your variation. It runs automatically during compilation (during
static timing analysis). You can also run this script with the Report DDR task in the TimeQuest Timing
Analyzer. This script is run for every instance of the same variation.
<variation_name>_report_timing_core.tcl
This script contains high-level procedures that the <variation_name>_report_timing.tcl script uses to
compute the timing slack for your variation. This script runs automatically during compilation.
<variation_name>_pin_map.tcl
This script is a library of functions and procedures that the <variation_name>_report_timing.tcl and
<variation_name> .sdc scripts use. The <variation_name>_pin_assignments.tcl script, which is not
relevant to timing constraints, also uses this library.
<variation_name>_parameters.tcl
This script defines some of the parameters that describe the geometry of the core and the PLL configura‐
tion. Do not change this file, except when you modify the PLL through the parameter editor. In this case,
the changes to the PLL parameters do not automatically propagate to this file and you must manually
apply those changes in this file.
Timing Constraint and Report Files for Arria 10 EMIF IP
To ensure a successful external memory interface operation, the UniPHY IP generates two sets of files for
timing constraints but in different folders and with slightly different filenames.
One set of files are used for synthesis project, which is available under the <variation_name> folder
located in the main project folder while the other set of files are the example designs, located in the
<variation_name>_example design\qii folder.
The project folders contain the following files for timing constraints and reporting scripts:
•
•
•
•
•
<variation_name>.sdc
<variation_name>_ip_parameters.tcl
<variation_name>_parameters.tcl
<variation_name>_pin_map.tcl
<variation_name>_report_timing.tcl
<variation_name>.sdc
The <variation_name>.sdc file is listed in the Quartus II IP File (.qip), which you generate by running
make_qii_design.tcl. The <variation_name>.sdc file allows the Quartus II fitter to optimize timing
margins with timing-driven compilation.
To analyze timing margins for all Arria 10 external memory interface IP timing paths, run the Report
DDR function in the TimeQuest Timing Analyzer.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-14
EMI_DG
2014.12.15
Timing Constraint and Report Files for Arria 10 EMIF IP
The Arria 10 EMIF IP uses the .sdc file for the following operations:
•
•
•
•
•
Creating clocks on PLL inputs
Creating generated clocks
Calling derive_clock_uncertainty
Creating a false path from a user clock to a hard memory controller clock, and vice versa
Setting output delays on address and command outputs (versus CK/CK# outputs)
<variation_name>_ip_parameters.tcl
The <variation_name>_ip_parameters.tcl file is a script that lists the Arria 10 EMIF IP memory
parameters and board parameters defined in the MegaWizard, which are used in the .sdc file and timing
report scripts.
<variation_name>_parameters.tcl
The <variation_name>_parameters.tcl file is a script that lists the Arria 10 EMIF IP device and speed
grade dependent values, which are used in the .sdc file and report timing scripts:
•
•
•
•
Jitter
Simultaneous switching noise
Duty cycle distortion
Calibration uncertainties
<variation_name>_pin_map.tcl
The <variation_name>_pin_map.tcl file is a library of functions and procedures that the
<variation_name>report_timing.tcl and <variation_name>.sdc scripts use.
<variation_name>_report_timing.tcl
The <variation_name>_report_timing.tcl file is a script that contains timing analysis flow and reports the
timing slack for your variation. This script runs automatically during calibration (during static timing
analysis) by sourcing the following files:
•
•
•
•
<variation_name>_ip_parameters.tcl
<variation_name>_parameters.tcl
<variation_name>_pin_map.tcl
<variation_name>_report_timing_core.tcl
You can also run <variation_name>_report_timing.tcl with the Report DDR function in the TimeQuest
Timing Analyzer. This script runs for every instance of the same variation.
<variation_name>_report_timing_core.tcl
The <variation_name>_report_timing_core.tcl file is a script that <variation_name>_report_timing.tcl
uses to calculate the timing slack for your variation. <variation_name>_report_timing_core.tcl runs
automatically during compilation.
<variation_name>_report_io_timing.tcl
The <variation_name>_report_io_timing.tcl file is a script that contains an early I/O estimation for your
external memory interface design, excluding FPGA core timing analysis. This script allows you to
determine early I/O margins without having to compile your design.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Timing Analysis Description
11-15
Timing Analysis Description
The following sections describe the timing analysis using the respective FPGA data sheet specifications
and the user-specified memory data sheet parameters.
• Core to core (C2C) transfers have timing constraint created and are timing analyzed by TimeQuest
Analyzer. Core timing does not include user logic timing within core or to and from EMIF block. Both
UniPHY-based IP and Arria 10 EMIF IP provide the constrained clock to the customer logic.
• Core to periphery (C2P) transfers have timing constraint created and are timing analyzed by
TimeQuest Analyzer. This is common for UniPHY and Arria 10 External Memory Interfaces IP.
Because of the increased number of C2P/P2C signals in 20nm families compared to previous families,
more work is expected to ensure that these special timing arcs are properly modeled, both during
TimeQuest and compilation.
• Periphery to core (P2C) transfers have timing constraint created and are timing analyzed by
TimeQuest Analyzer. This is common for UniPHY and Arria 10 External Memory Interfaces IP.
Because of the increased number of C2P/P2C signals in 20nm families compared to previous families,
more work is expected to ensure that these special timing arcs are properly modeled, both during
TimeQuest and compilation.
• Periphery to periphery (P2P) transfers are modeled entirely by a minimum pulse with violation on the
hard block, and have no internal timing arc. In UniPHY-based IP, P2P transfers are reported as part of
Core Timing analysis. For Arria 10 EMIF IP, P2P transfers are modeled only by a minimum pulse
width violation on hardened block.
To account for the effects of calibration, the UniPHY IP and Arria 10 EMIF IP include additional scripts
that are part of the <phy_variation_name>_report_timing.tcl and <phy_variation_name>_ report_timing_core.tcl
files that determine the timing margin after calibration. These scripts use the setup and hold slacks of
individual pins to emulate what is occurring during calibration to obtain timing margins that are
representative of calibrated PHYs. The effects considered as part of the calibrated timing analysis include
improvements in margin because of calibration, and quantization error and calibration uncertainty
because of voltage and temperature changes after calibration. The calibration effects do not apply to
Stratix III devices.
Related Information
Timing Constraint and Report Files for UniPHY IP on page 11-12
UniPHY IP Timing Analysis
The following topics describe timing analysis for UniPHY-based external memory interface IP.
Address and Command
Address and command signals are single data rate signals latched by the memory device using the FPGA
output clock.
Some of the address and command signals are half-rate data signals, while others, such as the chip select,
are full-rate signals. The TimeQuest Timing Analyzer analyzes the address and command timing paths
using the set_output_delay (max and min) constraints.
PHY or Core
Timing analysis of the PHY or core path includes the path of soft registers in the device and the register in
the I/O element.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-16
EMI_DG
2014.12.15
PHY or Core Reset
However, the analysis does not include the paths through the pin or the calibrated path. The PHY or core
analyzes this path by calling the report_timing command in <variation_name>_report_timing.tcl and
<variation_name>_report_timing_core.tcl .
PHY or Core Reset
The PHY or core reset is the internal timing of the asynchronous reset signals to the UniPHY IP.
The PHY or core analyzes this path by calling the report_timing command in <variation_name>_report_
timing.tcl and <variation_name>_report_timing_core.tcl.
Read Capture and Write
Stratix III memory interface designs perform read capture and write timing analysis using the TCCS and
SW timing specification.
Read capture and write timing analysis for Arria II, Cyclone IV, Stratix IV, and Stratix V memory
interface designs are based on the timing slacks obtained from the TimeQuest Timing Analyzer and all
the effects included with the Quartus II timing model such as die-to-die and within-die variations, aging,
systematic skew, and operating condition variations. Because the PHY IP adjusts the timing slacks to
account for the calibration effects, there are two sets of read capture and write timing analysis numbers—
Before Calibration and After Calibration.
Stratix III
This topic details the timing margins, such as the read data and write data timing paths, which the
TimeQuest Timing Analyzer callates for Stratix III designs. Timing paths internal to the FPGA are either
guaranteed by design and tested on silicon, or analyzed by the TimeQuest Timing Analyzer using
corresponding timing constraints.
For design guidelines about implementing and analyzing your external memory interface using the PHY
in Stratix III and Stratix IV devices, refer to the design tutorials on the List of designs using Altera External
Memory IP page of the Altera Wiki website.
Timing margins for chip-to-chip data transfers can be defined as:
Margin = bit period – transmitter uncertainties – receiver requirements
where:
• Sum of all transmitter uncertainties = transmitter channel-to-channel skew (TCCS).
The timing difference between the fastest and slowest output edges on data signals, including tCO
variation, clock skew, and jitter. The clock is included in the TCCS measurement and serves as the
time reference.
• Sum of all receiver requirements = receiver sampling window (SW) requirement.
The period of time during which the data must be valid to capture it correctly. The setup and hold
times determine the ideal strobe position within the sampling window.
• Receiver skew margin (RSKM) = margin or slack at the receiver capture register.
For TCCS and SW specifications, refer to the DC and Switching Characteristics chapter of the
Stratix III Device Handbook.
The following figure relates this terminology to a timing budget diagram.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Stratix III
11-17
Figure 11-6: Sample Timing Budget Diagram
Bit Period (TUI)
½ × TCCS
RSKM
Sampling Window (SW)
Setup + Hold + S kew + Jitter
RSKM
½ ×TC CS
Data Skew with
respect to Clock
The timing budget regions marked “½ × TCCS” represent the latest data valid time and earliest data
invalid times for the data transmitter. The region marked sampling window is the time required by the
receiver during which data must stay stable. This sampling window comprises the following:
• Internal register setup and hold requirements
• Skew on the data and clock nets within the receiver device
• Jitter and uncertainty on the internal capture clock
Note: The sampling window is not the capture margin or slack, but instead the requirement from the
receiver. The margin available is denoted as RSKM.
The simple example illustrated in the preceding figure does not consider any board level uncertainties,
assumes a center-aligned capture clock at the middle of the receiver sampling window region, and
assumes an evenly distributed TCCS with respect to the transmitter clock pin. In this example, the left end
of the bit period corresponds to time t = 0, and the right end of the bit period corresponds to time t = TUI
(where TUI stands for time unit interval). Therefore, the center-aligned capture clock at the receiver is
best placed at time t = TUI/2.
Therefore:
the total margin = 2 × RSKM = TUI – TCCS – SW.
Consider the case where the clock is not center-aligned within the bit period (clock phase shift = P), and
the transmitter uncertainties are unbalanced (TCCSLEAD and TCCSLAG). TCCSLEAD is defined as the skew
between the clock signal and latest data valid signal. TCCSLAG is defined as the skew between the clock
signal and earliest data invalid signal. Also, the board level skew across data and clock traces are specified
as tEXT. For this condition, you should compute independent setup and hold margins at the receiver
(RSKMSETUP and RSKMHOLD). In this example, the sampling window requirement is split into a setup
side requirement (SWSETUP) and hold side (SWHOLD) requirement. The following figure illustrates the
timing budget for this condition. A timing budget similar to that shown is used for Stratix III FPGA read
and write data timing paths.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-18
EMI_DG
2014.12.15
Read Capture
Figure 11-7: Sample Timing Budget with Unbalanced (TCCS and SW) Timing Parameters
Clock Phase Shift = P
Bit Period (TUI)
TCCSLEAD
tEXT
RSKMSETUP
SWSETUP
SWHOLD
RSKMHOLD
tEXT
TCCSLAG
Sampling Window (SW)
Therefore:
Setup margin = RSKMSETUP = P – TCCSLEAD – SWSETUP – tEXT
Hold margin = RSKMHOLD = (TUI – P) – TCCSLAG – SWHOLD – tEXT
The timing budget illustrated in the first figure with balanced timing parameters applies for calibrated
paths where the clock is dynamically center-aligned within the data valid window. The timing budget
illustrated in the second figure with unbalanced timing parameters applies for circuits that employ a static
phase shift using a DLL or PLL to place the clock within the data valid window.
Related Information
• Read Capture on page 11-18
• List of designs using Altera External Memory IP
• Stratix III Device Handbook
Read Capture
Memory devices provide edge-aligned DQ and DQS outputs to the FPGA during read operations.
Stratix III FPGAs center-aligns the DQS strobe using static DLL-based delays. Stratix III devices use a
source synchronous circuit for data capture.
When applying this methodology to read data timing, the memory device is the transmitter and the FPGA
device is the receiver.
The transmitter channel-to-channel skew on outputs from the memory device is available from the
corresponding device data sheet. Let us examine the TCCS parameters for a DDR2 SDRAM component.
For DQS-based capture:
• The time between DQS strobe and latest data valid is defined as tDQSQ
• The time between earliest data invalid and next strobe is defined as tQHS
• Based on earlier definitions, TCCSLEAD = tDQSQ and TCCSLAG = tQHS
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Read Capture
11-19
The sampling window at the receiver, the FPGA, includes several timing parameters:
•
•
•
•
Capture register micro setup and micro hold time requirements
DQS clock uncertainties because of DLL phase shift error and phase jitter
Clock skew across the DQS bus feeding DQ capture registers
Data skew on DQ paths from pin to input register including package skew
For TCCS and SW specifications, refer to the DC and Switching Characteristics chapter of the
Stratix III Device Handbook.
The following figure shows the timing budget for a read data timing path.
Figure 11-8: Timing Budget for Read Data Timing Path
DQS Delay Shift
Half-Period (min)
tDQSQ
tEXT
Read
Setup
Margin
DQ Skew + DQS Uncertainty
+ mTsu + mTh
tSW_SETUP
Read
Hold
Margin
tEXT
Duty Cycle
Distortion (tDCD)
tQHS
tSW_HOLD
The following table lists a read data timing analysis for a Stratix III –2 speed-grade device interfacing with
a 400-MHz DDR2 SDRAM component.
Table 11-4: Read Data Timing Analysis for Stratix III Device with a 400-MHz DDR2 SDRAM
Parameter
Memory Specifications
Specifications
Value (ps)
Send Feedback
Description
tHP
1250
Average half period as
specified by the
memory data sheet, tHP
= 1/2 * tCK
tDCD
50
Duty cycle distortion =
2% × tCK = 0.02 × 2500
ps
tDQSQ
200
Skew between DQS
and DQ from memory
tQHS
300
Data hold skew factor
as specified by memory
(1)
Analyzing Timing of Memory IP
(1)
Altera Corporation
11-20
EMI_DG
2014.12.15
Write Capture
Parameter
Specifications
Value (ps)
Description
tSW_SETUP
181
FPGA Specifications
tSW_HOLD
306
Board Specifications
tEXT
20
Maximum board trace
variation allowed
between any two signal
traces (user specified
parameter)
tDVW
710
tHP – tDCD – tDQSQ –
tQHS – 2 × tEXT
tDQS_PHASE_DELAY
500
Ideal phase shift delay
on DQS capture strobe
Timing Calculations
Results
FPGA sampling
window specifications
for a given configura‐
tion (DLL mode,
width, location, and so
on.)
= (DLL phase
resolution × number of
delay stages × tCK) /
360° = (36° × 2 stages ×
2500 ps)/360° = 500 ps
Setup margin
99
RSKMSETUP = tDQSQ_
PHASE_DELAY – tDQSQ –
tSW_SETUP – tEXT
Hold margin
74
RSKMHOLD = tHP –
tDCD – tDQS_PHASE_
DELAY – tQHS – tSW_
HOLD – tEXT
Notes to Table:
1. This sample calculation uses memory timing parameters from a 72-bit wide 256-MB micron
MT9HTF3272AY-80E 400-MHz DDR2 SDRAM DIMM.
Related Information
Stratix III Device Handbook
Write Capture
During write operations, the FPGA generates a DQS strobe and a center-aligned DQ data bus using
multiple PLL-driven clock outputs. The memory device receives these signals and captures them
internally. The Stratix III family contains dedicated DDIO (double data rate I/O) blocks inside the IOEs.
For write operations, the FPGA device is the transmitter and the memory device is the receiver. The
memory device’s data sheet specifies data setup and data hold time requirements based on the input slew
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Write Capture
11-21
rate on the DQ/DQS pins. These requirements make up the memory sampling window, and include all
timing uncertainties internal to the memory.
Output skew across the DQ and DQS output pins on the FPGA make up the TCCS specification. TCCS
includes contributions from numerous internal FPGA circuits, including:
• Location of the DQ and DQS output pins
• Width of the DQ group
• PLL clock uncertainties, including phase jitter between different output taps used to center-align DQS
with respect to DQ
• Clock skew across the DQ output pins, and between DQ and DQS output pins
• Package skew on DQ and DQS output pins
Refer to the DC and Switching Characteristics chapter of the Stratix III Device Handbook for TCCS and
SW specifications.
The following figure illustrates the timing budget for a write data timing path.
Figure 11-9: Timing Budget for Write Data Timing Path
TX_DVWLAG
DQ-DQS Output Clock Offset
TX_DVWLEAD
TCCS LEAD
(DQS to
late DQ)
t EXT
Write
Setup
Margin
tDS
t DH
Memory Sampling Window
Write
Hold
Margin
tEXT
TCCS LAG
(early DQ
to late DQS)
TCO /Clock skew
The following table lists a write data timing analysis for a Stratix III –2 speed-grade device interfacing with
a DDR2 SDRAM component at 400 MHz. This timing analysis assumes the use of a differential DQS
strobe with 2.0-V/ns edge rates on DQS, and 1.0-V/ns edge rate on DQ output pins. Consult your
memory device’s data sheet for derated setup and hold requirements based on the DQ/DQS output edge
rates from your FPGA.
.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-22
EMI_DG
2014.12.15
Write Capture
Table 11-5: Write Data Timing Analysis for 400-MHz DDR2 SDRAM Stratix III Device
Parameter
Specifications
Value (ps)
(1)
Description
tHP
1250
Average half period as
specified by the
memory data sheet
tDSA
250
Memory setup require‐
ment (derated for DQ/
DQS edge rates and
VREF reference voltage)
tDHA
250
Memory hold require‐
ment (derated for DQ/
DQS edge rates and
VREF reference voltage)
TCCSLEAD
229
FPGA Specifications
TCCSLAG
246
FPGA transmitter
channel-to-channel
skew for a given
configuration (PLL
setting, location, and
width).
Board Specifications
tEXT
20
Maximum board trace
variation allowed
between any two signal
traces (user specified
parameter)
tOUTPUT_CLOCK _OFFSET
625
Output clock phase
offset between DQ &
DQS output clocks =
90°.
Memory Specifications
(1)
tOUTPUT_CLOCK_OFFSET
= (output clock phase
DQ and DQS offset x
tCK)/360° = (90° x
2500)/360° = 625
Timing Calculations
Altera Corporation
TX_DVWLEAD
396
Transmitter data valid
window = tOUTPUT_
CLOCK_OFFSET –
TCCSLEAD
TX_DVWLAG
379
Transmitter data valid
window = tHP tOUTPUT_CLOCK_OFFSET
– TCCSLAG
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Arria II, Arria V, Cyclone V, Stratix IV and Stratix V
Parameter
Results
Specifications
Value (ps)
11-23
Description
Setup margin
126
TX_DVWLEAD – tEXT –
tDSA
Hold margin
109
TX_DVWLAG – tEXT –
tDHA
Notes to Table:
1. This sample calculation uses memory timing parameters from a 72-bit wide 256-MB micron
MT9HTF3272AY-80E 400-MHz DDR2 SDRAM DIMM
Related Information
• Read Capture on page 11-18
• Stratix III Device Handbook
Arria II, Arria V, Cyclone V, Stratix IV and Stratix V
Read capture timing analysis indicates the amount of slack on the DDR DQ signals that are latched by the
FPGA using the DQS strobe output of the memory device.
Read Capture
The read capture timing paths are analyzed by a combination of the TimeQuest Timing Analyzer using
the set_input_delay (max and min), set_max_delay, and set_min_delay constraints, and further
steps to account for calibration that occurs at runtime. The UniPHY IP include timing constraints in the
<phy_variation_name>.sdc file, and further slack analysis in <phy_variation_name>_report_timing.tcl
and <phy_variation_name>_report_timing_core.tcl files.
In Arria II and Stratix IV devices, the margin is reported based on a combination of the TimeQuest
Timing Analyzer calculation results and further processing steps that account for the calibration that
occurs at runtime. First, the TimeQuest analyzer returns the base setup and hold slacks, and further
processing steps adjust the slacks to account for effects which the TimeQuest analyzer cannot model.
Write
Write timing analysis indicates the amount of slack on the DDR DQ signals that are latched by the
memory device using the DQS strobe output from the FPGA device. The write timing paths are analyzed
by a combination of the TimeQuest Timing Analyzer using the set_output_delay (max and min) and
further steps to account for calibration that occurs at runtime. The UniPHY IP includes timing
constraints in the <phy_variation_name>.sdc (UniPHY) file, and further slack analysis in the
<phy_variation_name>_report_timing.tcl and <phy_variation_name>_report_timing_core.tcl files.
Read Resynchronization
In a UniPHY interface, a FIFO buffer synchronizes the data transfer from the data capture to the core.
The calibration process sets the depth of the FIFO buffer and no dedicated synchronization clock is
required. Refer to <phy_variation_name> _report_timing_core.tcl for more information about the
resynchronization timing margin equation.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-24
EMI_DG
2014.12.15
DQS versus CK—Arria II GX and Cyclone IV Devices
DQS versus CK—Arria II GX and Cyclone IV Devices
The DQS versus CK timing path indicates the skew requirement for the arrival time of the DQS strobe at
the memory with respect to the arrival time of CK/CK# at the memory. Arria II GX and Cyclone IV
devices require the DQS strobes and CK clocks to arrive edge aligned.
There are two timing constraints for DQS versus CK timing path to account for duty cycle distortion. The
DQS/DQS# rising edge to CK/CK# rising edge (tDQSS) requires the rising edge of DQS to align with the
rising edge of CK to within 25% of a clock cycle, while the DQS/DQS# falling edge setup/hold time from
CK/CK# rising edge (tDSS/tDSH) requires the falling edge of DQS to be more than 20% of a clock cycle
away from the rising edge of CK.
The TimeQuest Timing Analyzer analyzes the DQS vs CK timing paths using the set_output_delay
(max and min) constraints. For more information, refer to <phy_variation_name>
_phy_ddr_timing.sdc.
Write Leveling tDQSS
In DDR2 SDRAM and DDR3 SDRAM interfaces, write leveling tDQSS timing is a calibrated path that
details skew margin for the arrival time of the DQS strobe with respect to the arrival time of CK/CK# at
the memory side.
For proper write leveling configuration, DLL delay chain must be equal to 8. The PHY IP reports the
margin through an equation. For more information, refer to <phy_variation_name>
_report_timing_core.tcl.
Write Leveling tDSH/tDSS
In DDR2 SDRAM and DDR3 SDRAM interfaces, write leveling tDSH/tDSS timing details the setup and
hold margin for the DQS falling edge with respect to the CK clock at the memory.
The PHY IP reports the margin through an equation. For more information, refer to
<phy_variation_name> _report_timing_core.tcl.
DK versus CK (RLDRAM II with UniPHY)
In RLDRAM II with UniPHY designs using the Nios-based sequencer, DK versus CK timing is a
calibrated path that details skew margin for the arrival time of the DK clock versus the arrival time of
CK/CK# on the memory side.
The PHY IP reports the margin through an equation. For more information, refer to
<phy_variation_name> _report_timing_core.tcl.
Bus Turnaround Time
In DDR2 and DDR3 SDRAM, and RLDRAM II (CIO) with UniPHY designs that use bidirectional data
bus, you may have potential encounter with data bus contention failure when a write command follows a
read command. The bus-turnaround time analysis determines how much margin there is on the
switchover time and prevents bus contention.
If the timing is violated, you can either increase the controller's bus turnaround time, which may reduce
efficiency or board traces delay. Refer to <variation> _report_timing_core.tcl for the equation. You can
find this analysis in the timing report. This analysis is only available for DDR2/3 SDRAM and
RLDRAM II UniPHY IPs in Arria II GZ, Arria V, Cyclone V, Stratix IV, and Stratix V devices.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Timing Analysis Description for Arria 10 EMIF IP
11-25
To determine whether the bus turnaround time issue is the cause of your design failure and to overcome
this timing violation, follow these steps:
1. When the design fails, change the default values of MEM_IF_WR_TO_RD_TURNAROUND_OCT and
MEM_IF_RD_TO_WR_TURNAROUND_OCT parameters in the controller wrapper file to a maximum value of
5. If the design passes after the change, it is a bus turnaround issue.
2. To solve the bus turnaround time issue, reduce the values of the MEM_IF_WR_TO_RD_TURNAROUND_OCT
and MEM_IF_RD_TO_WR_TURNAROUND_OCT parameters gradually until you reach the minimum value
needed for the design to pass on board.
Timing Analysis Description for Arria 10 EMIF IP
Timing analysis of Arria 10 external memory interface IP is somewhat simpler than that of UniPHYbased IP, because Arria 10 devices have more hardened blocks and there are fewer soft logic registers to be
analyzed, because most are user logic registers.
Your Arria 10 EMIF IP includes a Synopsys Design Constraints File (.sdc) which contains timing
constraints specific to your IP. The .sdc file also contains Tool Command Language (.tcl) scripts which
perform various timing analyses specific to memory interfaces.
Two timing analysis flows are available for Arria 10 EMIF IP:
• Early I/O Timing Analysis, which is a precompilation flow.
• Full Timing Analysis, which is a post-compilation flow.
PHY or Core
Timing analysis of the PHY or core path includes path from last set of registers in core to first set of
registers to periphery (C2P), path from last set of registers in periphery to first of registers in core (P2C)
and ECC related path if it is enabled.
As with 28 nm devices, core timing analysis excludes user logic timing to or from Altera EMIF blocks. The
Arria 10 EMIF IP provides a constrained clock (for example: ddr3_usr_clk) with which to clock customer
logic. In 28 nm devices, pll_afi_clk is used for this purpose
The PHY or core analyzes this path by calling the report_timing command in <variation_name>_
report_timing.tcl and <variation_name>_report_timing_core.tcl.
Note: In version 14.1, you may notice that the Spatial Pessimism Removal slack values in the Core to
Periphery and Periphery to Core tables are always equal to zero. This occurs because pessimism
removal is now integrated into the base timing analysis.
I/O Timing
I/O timing analysis includes analysis of read capture, write, address and command, DQS gating, and write
leveling.
The TimeQuest Timing Analyzer provides a breakdown of the timing budgets which details margin loss
due to transmitter, receiver, and channel. TimeQuest displays the total margin in the last row of the
timing report.
The I/O timing analysis described in the following topics is based on an Arria 10 -2 speed-grade device,
interfacing with a DDR3 SDRAM UDIMM at 1066 MHz. A 1066 MHz DDR3 SDRAM UDIMM is used
for the analysis.
Read Capture
Read capture timing analysis indicates the amount of slack on the DDR DQ signals that are latched by the
FPGA using the DQS strobe output of the memory device.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-26
EMI_DG
2014.12.15
Write
The TimeQuest Timing Analyzer analyzes read capture timing paths through conventional static timing
analysis and further processing steps that account for memory calibration (which may include pessismism
removal) and calibration uncertainties as shown in the following figure.
Figure 11-10: Read Capture Timing Analysis
Channel Effects
Transmitter Effects
(Memory)
Receiver Effects
(FPGA)
Write
Write timing analysis indicates the amount of slack on the DDR DQ signals that are latched by the
memory device using the DQS strobe output from the FPGA device.
As with read capture, the TimeQuest Timing Analyzer analyzes write timing paths through conventional
static timing analysis and further processing steps that account for memory calibration (which may
include pessismism removal) and calibration uncertainties as shown in the following figure.
Figure 11-11: Write Timing Analysis
Channel
Effects
Rec ei v e r Effe c ts
(M e m o ry )
Transmitte r Effect s
(F P G A)
Address and Command
Address and command signals are single data rate signals latched by the memory device using the FPGA
output clock; some are half-rate data signals, while others, such as the chip select, are full-rate signals.
The TimeQuest Timing Analyzer analyzes the address and command timing paths through conventional
static timing analysis and further processing steps that account for memory pessismism removal (as
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
DQS Gating / Postamble
11-27
shown in the following figure). Depending on the memory protocol in use, if address command calibra‐
tion is performed, calibration uncertainty is subtracted from the timing window while PVT variation and
skew effects are not subtracted, and vice versa
Figure 11-12: Address and Command Timing Analysis
Channel Effects
Receiver Effects
(Memory)
Transmitter Effects
(FPGA)
DQS Gating / Postamble
Postamble timing is a setup period during which the DQS signal goes low after all the DQ data has been
received from the memory device during a read operation. After postamble time, the DQS signal returns
from a low-impedance to a high-impedance state to disable DQS and disallow any glitches from writing
false data over valid data.
The TimeQuest Timing Analyzer analyzes the postamble timing path in DDRx memory protocols only
through an equation which considers memory calibration, calibration uncertainty, and tracking
uncertainties as shown in the following figure.
Figure 11-13: DQS Gating Timing Analysis
Channel Effects
Transmitter Effects (Memory)
Receiver Effects (FPGA)
Write Leveling
In DDR3 SDRAM and DDR4 SDRAM interfaces, write leveling details the margin for the DQS strobe
with respect to CK/CK# at the memory side.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-28
EMI_DG
2014.12.15
Timing Report DDR
The TimeQuest Timing Analyzer analyzes the write leveling timing path through an equation which
considers memory calibration, calibration uncertainty and PVT variation as shown in the following
figure.
Figure 11-14: Write Leveling Timing Analysis
Channel
Effe c ts
Rec ei ve r Effe c ts
(M e mory)
Transmitte r Effe c ts
(F P G A)
Timing Report DDR
The Report DDR task in the TimeQuest Timing Analyzer generates custom timing margin reports for all
UniPHY and Arria 10 EMIF IP instances in your design. The TimeQuest Timing Analyzer generates this
custom report by sourcing the wizard-generated <variation_name>_report_timing.tcl script.
This <variation_name>_report_timing.tcl script reports the following timing slacks on specific paths of the
DDR SDRAM:
•
•
•
•
•
•
•
•
•
•
•
Read capture
Read resynchronization
Mimic, address and command
Core
Core reset and removal
Half-rate address and command
DQS versus CK
Write
Write leveling (tDQSS)
Write leveling (tDSS/tDSH)
DQS Gating (Postamble)
In Stratix III designs, the <variation_name>_report_timing.tcl script checks the design rules and assumptions
as listed in “Timing Model Assumptions and Design Rules”. If you do not adhere to these assumptions
and rules, you receive critical warnings when the TimeQuest Timing Analyzer runs during compilation or
when you run the Report DDR task.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Timing Report DDR
11-29
To generate a timing margin report, follow these steps:
1. Compile your design in the Quartus II software.
2. Launch the TimeQuest Timing Analyzer.
3. Double-click Report DDR from the Tasks pane. This action automatically executes the Create
Timing Netlist, Read SDC File, and Update Timing Netlist tasks for your project.
• The .sdc may not be applied correctly if the variation top-level file is the top-level file of the project.
You must have the top-level file of the project instantiate the variation top-level file.
The Report DDR feature creates a new DDR folder in the TimeQuest Timing Analyzer Report pane.
Expanding the DDR folder reveals the detailed timing information for each PHY timing path, in addition
to an overall timing margin summary for the UniPHY instance, as shown in the following figure.
Figure 11-15: Timing Margin Summary Window Generated by Report DDR Task
Note: Bus turnaround time shown in the above figure is available in all UniPHY IPs and devices except in
QDR II and QDR II+ SRAM memory protocols and Stratix III devices.
The following figure shows the timing analysis results calculated using FPGA timing model before
adjustment in the Before Calibration panel.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-30
Report SDC
EMI_DG
2014.12.15
Figure 11-16: Read and Write Before Calibration
The following two figures show the read capture and write margin summary window generated by the
Report DDR Task for a DDR3 core. It first shows the timing results calculated using the FPGA timing
model. The <variation_name>_report_timing_core.tcl then adjusts these numbers to account for effects
that are not modeled by either the timing model or by TimeQuest Timing Analyzer. The read and write
timing margin analysis for Stratix III devices does not need any adjustments.
Figure 11-17: Read Capture Margin Summary Window
Figure 11-18: Write Capture Margin Summary Window
Related Information
Timing Model Assumptions and Design Rules on page 11-33
Report SDC
The Report SDC task in the TimeQuest Timing Analyzer generates the SDC assignment reports for your
design. The TimeQuest Timing Analyzer generates this constraint report by sourcing the .sdc. The SDC
assignment reports show the constraint applied in the design.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Calibration Effect in Timing Analysis
11-31
For example, the reports may include the following constraints:
•
•
•
•
•
•
•
•
•
Create Clock
Create Generated Clock
Set Clock Uncertainty
Set Input Delay
Set Output Delay
Set False Path
Set Multicycle Path
Set Maximum Delay
Set Minimum Delay
The following figure shows the SDC assignments generated by the Report SDC task for a DDR3 SDRAM
core design. The timing analyzer uses these constraint numbers in analysis to calculate the timing margin.
Refer to the .sdc files of each constraints number.
Figure 11-19: SDC Assignments Report Window
Calibration Effect in Timing Analysis
Timing analysis for Arria II, Arria V, Arria V GZ, Cyclone IV, Cyclone V, Stratix IV, and Stratix V
devices take into account the calibration effects to improve the timing margin.
The following topics discuss ways to include the calibration effects in timing analysis.
Calibration Emulation for Calibrated Path
In conventional static timing analysis, calibration paths do not include calibration effects. To account for
the calibration effects, the timing analyzer emulates the calibration process and integrates it into the
timing analysis.
Normally the calibration process involves adding or subtracting delays to a path. The analyzer uses the
delay obtained through static timing analysis in the emulation algorithm to estimate the extra delay added
during calibration. With these estimated delays, the timing analysis emulates hardware calibration and
obtains a better estimate timing margin.
Note: Refer to <phy_variation_name>_report_timing.tcl and <phy_variation_name>_report_timing_core.tcl for
the files that determine the timing margin after calibration.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-32
EMI_DG
2014.12.15
Calibration Error or Quantization Error
Calibration Error or Quantization Error
Hardware devices use calibration algorithms when delay information is unknown or incomplete. If the
delay information is unknown, the timing analysis of the calibrated paths has to work with incomplete
data. This unknown information may cause the timing analysis calibration operations to pick topologies
that are different than what would actually occur in hardware.
The differences between what can occur in hardware and what occurs in the timing analysis are quantified
and included in the timing analysis of the calibrated paths as quantization error or calibration error.
Calibration Uncertainties
Calibration results may change or reduce due to one or more of the following uncertainties:
• Jitter and DCD effects
• Voltage and temperature variations
• Board trace delays changing due to noise on terminated supply voltages
These calibration uncertainties are accounted for in the timing analysis.
Memory Calibration
All the timing paths reported include one or more memory parameters, such as tDQSS and tDQSQ. These
specifications indicate the amount of variation that occurs in various timing paths in the memory and
abstracts them into singular values so that they can be used by others when interfacing with the memory
device.
JEDEC defines these parameters in their specification for memory standards, and every memory vendor
must meet this specification or improve it. However, there is no proportion of each specification due to
different types of variations. Variations that are of interest are typically grouped into three different types:
process variations (P), voltage variations (V), and temperature variations (T). These together compose
PVT variations that typically define the JEDEC specification. You can determine the maximum P
variation by comparing different dies, and you can determine the maximum V and T variations by
operating a design at the endpoints of the range of voltage and temperature. P variations do not change
once the chip has been fabricated, while V and T variations change over time.
The timing analysis for Stratix V FPGAs at 667 MHz of various paths (if the analysis is comprehensive
and includes all the sources of noise) indicate that there is no timing margin available. However, the
designs do actually work in practice with a reasonable amount of margin. The reason for this behavior is
that the memory devices typically have specifications that easily beat the JEDEC specification and that our
calibration algorithms calibrate out the process portion of the JEDEC specification, leaving only the V and
T portions of the variations.
The memory calibration figure determination includes noting what percentage of the JEDEC specification
of various memory parameters is caused by process variations for which UniPHY calibration algorithms
can calibrate out, and to apply that to the full JEDEC specification. The remaining portion of the variation
is caused by voltage and temperature variations which cannot be calibrated out.
You can find the percentage of the JEDEC specification that is due to process variation is set in
<variation_name>_report_timing.tcl .
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Timing Model Assumptions and Design Rules
11-33
Timing Model Assumptions and Design Rules
External memory interfaces using Altera IP are optimized for highest performance, and use a
high-performance timing model to analyze calibrated and source-synchronous, double-data rate I/O
timing paths. This timing model applies to designs that adhere to a set of predefined assumptions.
These timing model assumptions include memory interface pin-placement requirements, PLL and clock
network usage, I/O assignments (including I/O standard, termination, and slew rate), and many others.
For example, the read and write datapath timing analysis is based on the FPGA pin-level tTCCS and tSW
specifications, respectively. While calculating the read and write timing margins, the Quartus II software
analyzes the design to ensure that all read and write timing model assumptions are valid for your variation
instance.
Note: Timing model assumptions only apply to Stratix III devices.
When the Report DDR task or report_timing.tcl script is executed, the timing analysis assumptions
checker is invoked with specific variation configuration information. If a particular design rule is not met,
the Quartus II software reports the failing assumption as a Critical Warning message.
The following figure shows a sample set of messages generated when the memory interface DQ, DQS, and
CK/CK# pins are not placed in the same edge of the device.
Figure 11-20: Read and Write Timing Analysis Assumption Verification
Memory Clock Output Assumptions
To verify the quality of the FPGA clock output to the memory device (CK/CK# or K/K#), which affects
FPGA performance and quality of the read clock/strobe used to read data from the memory device, the
following assumptions are necessary:
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-34
EMI_DG
2014.12.15
Memory Clock Assumptions for Stratix III Devices
• The slew rate setting must be Fast or an on-chip termination (OCT) setting must be used.
• The output delay chains must all be 0 (the default value applied by the Quartus II software). These
delay chains include the Stratix III D5 and D6 output delay chains.
• The output open-drain parameter on the memory clock pin IO_OBUF atom must be Off. The Output
Open Drain logic option must not be enabled.
• The weak pull-up on the CK and CK# pads must be Off. The Weak Pull Up Resistor logic option
must not be enabled.
• The bus hold on the CK and CK# pads must be Off. The Enable Bus Hold Circuitry logic option must
not be enabled.
• All CK and CK# pins must be declared as output-only pins or bidirectional pins with the output enable
set to VCC.
Memory Clock Assumptions for Stratix III Devices
For Stratix III devices the following additional memory clock assumptions are necessary:
•
•
•
•
•
•
All memory clock output pins must be placed on DIFFOUT pin pairs on the same edge of the device.
For DDR3 SDRAM interfaces:
The CK pins must be placed on FPGA output pins marked DQ, DQS, or DQSn.
The CK pin must be fed by an OUTPUT_PHASE_ALIGNMENT WYSIWYG with a 0° phase shift.
The PLL clock driving CK pins must be the same as the clock driving the DQS pins.
The T4 (DDIO_MUX) delay chains setting for the memory clock pins must be the same as the settings for
the DQS pins.
• For non-DDR3 interfaces, the T4 (DDIO_MUX) delay chains setting for the memory clock pins must be
greater than 0.
• The programmable rise and fall delay chain settings for all memory clock pins must be set to 0.
• The memory output clock signals must be generated with the DDIO configuration shown in the
following figure, with a signal splitter to generate the n- pin pair and a regional clock network-to-clock
to output DDIO block.
Figure 11-21: DDIO Configuration with Signal Splitter
FPGA LEs
I/O Elements
VCC
D Q
D Q
1
0
mem_clk (1)
mem_clk_n (1)
System Clock (2)
Write Data Assumptions
To verify the memory interface using the FPGA TCCS output timing specifications, the following
assumptions are necessary:
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Write Data Assumptions for Stratix III Devices
11-35
• For QDRII and QDRII+ memory interfaces, the write clock output pins (such as K/K# or DK/DK#)
must be placed in DQS/DQSn pin pairs.
• The PLL clock used to generate the write-clock signals and the PLL clock used to generate the
write-data signals must come from the same PLL.
• The slew rate for all write clocks and write data pins must be set to Fast or OCT must be used.
• When auto deskew is not enabled, the output delay chains and output enable delay chains must all be
set to the default values applied by Quartus II. These delay chains include the Stratix III D5 and D6
delay chains.
• The output open drain for all write clocks and write data pins’ IO_OBUF atom must be set to Off. The
Output Open Drain logic option must not be enabled.
• The weak pull-up for all write clocks and write data pins must be set to Off. The Weak Pull Up
Resistor logic option must not be enabled.
• The Bus Hold for all write clocks and write data pins must be set to Off. The Enable Bus Hold
Circuitry logic option must not be enabled.
Write Data Assumptions for Stratix III Devices
For Stratix III devices the following additional write data assumptions are necessary:
• Differential write clock signals (DQS/DQSn) must be generated using the signal splitter.
• The write data pins (including the DM pins) must be placed in related DQ pins associated with the
chosen DQS pin. The only exception to this rule is for QDRII and QDRII+ ×36 interfaces emulated
using two ×18 DQ groups. For such interfaces, all of the write data pins must be placed on the same
edge of the device (left, right, top, or bottom). Also, the write clock K/K# pin pair should be placed on
one of the DQS/DQSn pin pairs on the same edge.
• All write clock pins must have similar circuit structure.
• For DDR2 SDRAM interfaces and DDR3 SDRAM with leveling interfaces, all DQS/DQS# write
strobes must be fed by DDIO output registers clocked by the write-leveling delay chain in the
OUTPUT_PHASE_ALIGNMENT block.
• For DDR and DDR2 SDRAM interfaces, all write clock pins must be fed by DDIO output registers
clocked by a global or regional clock network.
• All write data pins must have similar circuit structure.
• For DDR3 SDRAM interfaces, all write data pins must be fed by either DDIO output registers
clocked by the OUTPUT_PHASE_ALIGNMENT block, VCC, or GND.
• For DDR and DDR2 SDRAM interfaces, all write data pins must be fed by either DDIO output
registers clocked by a global or regional clock network, VCC, or GND.
• The write clock output must be 72,° 90°, or 108° more than the write data output.
• For DDR2 SDRAM and DDR3 SDRAM with leveling interfaces, the write-leveling delay chain in
the OUTPUT_PHASE_ALIGNMENT block must implement a phase shift of 72°, 90°, or 108° to
center-align write clock with write data.
• For DDR and DDR2 SDRAM interfaces, the phase shift of the PLL clock used to clock the write
clocks must be 72 to 108° more than the PLL clock used to clock the write data clocks to generated
center-aligned clock and data.
• The T4 (DDIO_MUX) delay chains must all be set to 3. When differential DQS (using splitter) is used,
T4 must be set to 2.
• The programmable rise and fall delay chain settings for all memory clock pins must be set to 0.
The following table lists I/O standards supported for the write clock and write data signals for each
memory type and pin location.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-36
EMI_DG
2014.12.15
Read Data Assumptions
Table 11-6: I/O standards
MemoryType
Placement
Legal I/O Standards for
DQS
Legal I/O Standards for DQ
DDR3 SDRAM
Row I/O
Differential 1.5-V SSTL
Class I
1.5-V SSTL Class I
DDR3 SDRAM
Column I/O
Differential 1.5-V SSTL
Class I
1.5-V SSTL Class I
Differential 1.5-V SSTL
Class II
DDR2 SDRAM
Any
1.5-V SSTL Class II
SSTL-18 Class I
SSTL-18 Class I
SSTL-18 Class II
SSTL-18 Class II
Differential 1.8V SSTL
Class I
Differential 1.8V SSTL
Class II
DDR SDRAM
Any
QDRII and QDR II +
SRAM
Any
RLDRAM II
Any
SSTL-2 Class I
SSTL-2 Class I
SSTL-2 Class II
SSTL-2 Class II
HSTL-1.5 Class I
HSTL-1.5 Class I
HSTL-1.8 Class I
HSTL-1.8 Class I
HSTL-1.5 Class I
HSTL-1.5 Class I
HSTL-1.8 Class I
HSTL-1.8 Class I
Read Data Assumptions
To verify that the external memory interface can use the FPGA Sampling Window (SW) input timing
specifications, the following assumptions are necessary:
• The read clocks input pins must be placed on DQS pins. DQS/DQS# inputs must be placed on
differential DQS/DQSn pins on the FPGA.
• Read data pins (DQ) must be placed on the DQ pins related to the selected DQS pins.
• For QDR II and QDR II+ SRAM interfaces, the complementary read clocks must have a single-ended
I/O standard setting of HSTL-18 Class I or HSTL-15 Class I.
• For RLDRAM II interfaces, the differential read clocks must have a single ended I/O standard setting
of HSTL 18 Class I or HSTL 15 Class I.
Read Data Assumptions for Stratix III Devices
For Stratix III devices the following additional read data and mimic pin assumptions are necessary:
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
DLL Assumptions
11-37
• For DDR3, DDR2, and DDR SDRAM interfaces, the read clock pin can only drive a DQS bus clocking
a ×4 or ×9 DQ group.
• For QDR II, QDR II+ SRAM, and RLDRAM II interfaces, the read clock pin can only drive a DQS bus
clocking a ×9, ×18, or ×36 DQ group.
• For non-wraparound DDR, DDR2, and DDR3 interfaces, the mimic pin, all read clock, and all read
data pins must be placed on the same edge of the device (top, bottom, left, or right). For wraparound
interfaces, these pins can be placed on adjacent row I/O and column I/O edges and operate at reduced
frequencies.
• All read data pins and the mimic pin must feed DDIO_IN registers and their input delay chains D1,
D2, and D3 set to the Quartus II default.
• DQS phase-shift setting must be either 72° or 90° (supports only one phase shift for each operating
band and memory standard).
• All read clock pins must have the dqs_ctrl_latches_enable parameter of its DQS_DELAY_CHAIN
WYSIWYG set to false.
• The read clocks pins must have their D4 delay chain set to the Quartus II default value of 0.
• The read data pins must have their T8 delay chain set to the Quartus II default value of 0.
• When differential DQS strobes are used (DDR3 and DDR2 SDRAM), the mimic pin must feed a true
differential input buffer. Placing the memory clock pin on a DIFFIO_RX pin pair allows the mimic path
to track timing variations on the DQS input path.
• When single ended DQS strobes are used, the mimic pin must feed a single ended input buffer.
DLL Assumptions
The following DLL assumptions are necessary:
• The DLL must directly feed its delayctrlout[] outputs to all DQS pins without intervening logic or
inversions.
• The DLL must be in a valid frequency band of operation as defined in the corresponding device data
sheet.
• The DLL must have jitter reduction mode and dual-phase comparators enabled.
PLL and Clock Network Assumptions for Stratix III Devices
To verify that the memory interface’s PLL is configured correctly, the following assumptions are
necessary:
• The PLL that generates the memory output clock signals and write data and clock signals must be set
to No compensation mode to minimize output clock jitter.
• The reference input clock signal to the PLL must be driven by the dedicated clock input pin located
adjacent to the PLL, or from the clock output signal from the adjacent PLL. If the reference clock
cascades from another PLL, that upstream PLL must be in No compensation mode and Low
bandwidth mode.
• For DDR3 and DDR2 SDRAM interfaces, use only regional or dual regional clock networks to route
PLL outputs that generate the write data, write clock, and memory output clock signals. This require‐
ment ensures that the memory output clocks (CK/CK#) meet the memory device input clock jitter
specifications, and that output timing variations or skews are minimized.
• For other memory types, the same clock tree type (global, regional, or dual regional) is recommended
for PLL clocks generating the write clock, write data, and memory clock signals to minimize timing
variations or skew between these outputs.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-38
EMI_DG
2014.12.15
Common Timing Closure Issues
Common Timing Closure Issues
The following topics describe potential timing closure issues that can occur when using the UniPHY IP.
For possible timing closure issues with UniPHY variations, refer to the Quartus II Software Release Notes
for the software version that you are using. You can solve some timing issues by moving registers or
changing the project fitting setting to Standard (from Auto).
The Quartus II Software Release Notes list common timing issues that can be encountered in a particular
version of the Quartus II software.
Note: In UniPHY-based memory controllers, the derive_pll_clocks command can affect timing
closure if it is called before the memory controller files are loaded. Ensure that the Quartus II IP
File (.qip) appears in the file list before any Synopsys Design Constraint Files (.sdc) files that
contain derive_pll_clocks.
Related Information
Quartus II Software and Device Support Release Notes
Missing Timing Margin Report
The UniPHY timing margin reports may not be generated during compilation if the .sdc does not appear
in the Quartus II project settings.
Timing margin reports are not generated if you specify the UniPHY variation as the top-level project
entity. Instantiate the UniPHY variation as a lower level module in your user design or memory
controller.
Incomplete Timing Margin Report
The timing report may not include margin information for certain timing paths if certain memory
interface pins are optimized away during synthesis.
Verify that all memory interface pins appear in the <variation>_all_pins.txt file generated during
compilation, and ensure that they connect to the I/O pins of the top-level FPGA design.
Read Capture Timing
In Stratix III and Stratix IV devices, read capture timing may fail if the DQS phase shift selected is not
optimal or if the board skew specified is large.
• You can adjust the effective DQS phase shift implemented by the DLL to balance setup and hold
margins on the read timing path. The DQS phase shift can be adjusted in coarse PVT-compensated
steps of 22.5°, 30°, 36°, or 45° by changing the number of delay buffers (range 1 to 4), or in fine steps
using the DQS phase offset feature that supports uncompensated delay addition and subtraction in
approximately 12 ps steps.
• To adjust the coarse phase shift selection, determine the supported DLL modes for your chosen
memory interface frequency by referencing the DLL and DQS Logic Block Specifications tables in the
Switching Characteristics section of the device data sheet. For example, a 400 MHz DDR2 interface on
a -2 speed grade device can use DLL mode 5 (resolution 36°, range 290 – 450 MHz) to implement a 72°
phase shift, or DLL mode 6 (resolution 45°, range 360–560 MHz) to implement a 90° phase shift.
Note: Ensure that you specify the appropriate board-skew parameter when you parameterize the control‐
lers in the parameter editor. The default board trace length mismatch used is 20 ps.
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Write Timing
11-39
Write Timing
Negative timing margins may be reported for write timing paths if the PLL phase shift used to generate
the write data signals is not optimal.
Adjust the PLL phase shift selection on the write clock PLL output using the PLL parameter editor.
Note: Regenerating the UniPHY-based controller overwrites changes made using the PLL parameter
editor.
Address and Command Timing
You can optimize the timing margins on the address and command timing path by changing the PLL
phase shift used to generate these signals. In the DDR2 or DDR3 SDRAM Controllers with UniPHY IP
cores, modify the Additional CK/CK# phase and Additional Address and Command clock phase
parameters.
The DDR2 and DDR3 SDRAM memory controllers use 1T memory timing even in half-rate mode, which
may affect the address command margins for DDR2 or DDR3 SDRAM designs that use memory DIMMs.
DDR2 SDRAM designs have a greater impact because the address command bus fans out to all the
memory devices on a DIMM increasing the loading effect on the bus. Make sure your board designs are
robust enough to have the memory clock rising edge within the 1T address command window. You can
also use the Additional Address and Command clock phase parameter to adjust the phase of the address
and command if needed.
The far-end load value and board trace delay differences between address and command and memory
clock pins can result in timing failures if they are not accounted for during timing analysis.
The Quartus II Fitter may not optimally set output delay chains on the address and command pins. To
ensure that any PLL phase-shift adjustments are not negated by delay chain adjustments, create logic
assignments using the Assignment Editor to set all address and command output pin D5 delay chains to 0.
For Stratix III and Stratix IV devices, some corner cases of device family and memory frequency may
require an increase to the address and command clock phase to meet core timing. You can identify this
situation, if the DDR timing report shows a PHY setup violation with the phy_clk launch clock, and the
address and command latch clock—clock 0 (half-rate phy_clk) or 2 (full-rate phy_clk), and 6,
respectively.
If you see this timing violation, you may fix it by advancing the address and command clock phase as
required. For example, a 200-ps violation for a 400-MHz interface represents 8% of the clock period, or
28.8. Therefore, advance the address and command phase from 270 to 300. However, this action reduces
the setup and hold margin at the DDR device.
PHY Reset Recovery and Removal
A common cause for reset timing violations in UniPHY designs is the selection of a global or regional
clock network for a reset signal.
The UniPHY IP does not require any dedicated clock networks for reset signals. Only UniPHY PLL
outputs require clock networks, and any other PHY signal using clock networks may result in timing
violations.
You can correct such timing violations by:
• Setting the Global Signal logic assignment to Off for the problem path (using the Assignment Editor),
or
• Adjusting the logic placement (using the Assignment Editor or Chip Planner)
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-40
EMI_DG
2014.12.15
Clock-to-Strobe (for DDR and DDR2 SDRAM Only)
Clock-to-Strobe (for DDR and DDR2 SDRAM Only)
Memory output clock signals and DQS strobes are generated using the same PLL output clock. Therefore,
no timing optimization is possible for this path and positive timing margins are expected for interfaces
running at or below the FPGA data sheet specifications.
For DDR3 interfaces, the timing margin for this path is reported as Write Leveling.
Read Resynchronization and Write Leveling Timing (for SDRAM Only)
These timing paths apply only to Arria II GX, Stratix III, and Stratix IV devices, and are implemented
using calibrated clock signals driving dedicated IOE registers. Therefore, no timing optimization is
possible for these paths, and positive timing margin is expected for interfaces running at or below the
FPGA data sheet specifications.
Ensure that you specify the correct memory device timing parameters (tDQSCK, tDSS, tDSH) and board skew
(tEXT) in the DDR2 and DDR3 SDRAM Controllers with UniPHY parameter editor.
Optimizing Timing
For full-rate designs you may need to use some of the Quartus II advanced features, to meet core timing,
by following these steps:
1. On the Assignments menu click Settings. In the Category list, click Analysis & Synthesis Settings.
For Optimization Technique select Speed.
Figure 11-22: Optimization Technique
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Timing Deration Methodology for Multiple Chip Select DDR2 and DDR3 SDRAM
Designs
11-41
• Turn on Perform physical synthesis for combinational logic.
•
•
•
•
For more information about physical synthesis, refer to the Netlist and Optimizations and Physical
Synthesis chapter in the Quartus II Software Handbook.
Turn on Perform register retiming
Turn on Perform automatic asynchronous signal pipelining
Turn on Perform register duplication
You can initially select Normal for Effort level, then if the core timing is still not met, select Extra.
Figure 11-23: Physical Synthesis Optimizations
Related Information
Netlist Optimizations and Physical Synthesis
Timing Deration Methodology for Multiple Chip Select DDR2 and DDR3
SDRAM Designs
In a multiple chip select system, each individual rank has its own chip select signal. Consequently, you
must change the Total Memory chip selects, Number of chip select (for discrete components) or
Number of chip select per slot (DIMMs) in the Preset Editor of the UniPHY-based parameter editors.
In the Preset Editor, you must leave the baseline non-derated tDS, tDH, tIS, tIH values, because the
settings on the Board Settings page account for multiple chip select slew rate deration.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-42
EMI_DG
2014.12.15
Multiple Chip Select Configuration Effects
The following topics explain two timing deration methodologies for multiple chip-select DDR2 and
DDR3 SDRAM designs:
• Timing Deration using the Board Settings
• Timing Deration Using the Excel-Based Calculator
For Arria II GX, Arria II GZ, Arria V GZ, Cyclone V, Stratix IV, and Stratix V devices, the UniPHY-based
controller parameter editor has an option to select multiple chip-select deration.
Note: To perform multiple chip-select timing deration for other Altera devices (such as Stratix III
devices), Altera provides an Excel-based calculator available from the Altera website.
Timing deration in this section applies to either discrete components or DIMMs.
Note: You can derate DDR SDRAM multiple chip select designs by using the DDR2 SDRAM section of
the Excel-based calculator, but Altera does not guarantee the results.
This section assumes you know how to obtain data on PCB simulations for timing deration from
HyperLynx or any other PCB simulator.
Related Information
• Timing Deration using the Board Settings on page 11-43
• Multi Chip Select Calculator
Multiple Chip Select Configuration Effects
A DIMM contains one or several RAM chips on a small PCB with pins that connect it to another system
such as a motherboard or router.
Nonregistered (unbuffered) DIMMs (or UDIMMs) connect address and control buses directly from the
module interface to the DRAM on the module.
Registered DIMMs (RDIMMs) and load-reduced DIMMs (LRDIMMs) improve signal integrity (and
hence potential clock rates and/or overall memory size) by electrically buffering address and command
signals as well as the data bus (for LRDIMMs) at a cost of additional latency. Both RDIMMs and
LRDIMMs use parity on the address and command bus for increased robustness.
Multiple chip select configurations allow for one set of data pins (and address pins for UDIMMs) to be
connected to two or more memory ranks. Multiple chip select configurations have a number of effects on
the timing analysis including the intersymbol interference (ISI) effects, board effects, and calibration
effects.
ISI Effects
With multiple chip selects and possible slots loading the far end of the pin, there may be ISI effects on a
signal causing the eye openings for DQ, DQS, and address and command signals to be smaller than for
single-rank designs.
The following figure shows the eye shrinkage for DQ signal of a single rank system (top) and multiple
chip select system (bottom). The ISI eye reductions reduce the timing window available for both the write
path and the address and command path analysis. You must specify them as output delay constraints in
the .sdc.
Extra loading from the additional ranks causes the slew rate of signals from the FPGA to be reduced. This
reduction in slew rate affects some of the memory parameters including data, address, command and
control setup and hold times (tDS, tDH, tIS, and tIH).
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Calibration Effects
11-43
Figure 11-24: Eye Shrinkage for DQ Signal
Calibration Effects
In addition to SI effects, multiple chip select topologies change the way that the FPGA calibrates to the
memories.
In single rank without leveling situations, the calibration algorithm centers the resynchronization or
capture phase such that it is optimum for the single rank. When there are two or more ranks in a system,
the calibration algorithms must calibrate to the average point of the ranks.
Board Effects
Unequal length PCB traces result in delays reducing timing margins. Skews between different memory
ranks can further reduce the timing margins in multiple chip select topologies.
Board skews can also affect the extent to which the FPGA can calibrate to the different ranks. If the skew
between various signals for different ranks is large enough, the timing margin on the fully calibrated paths
such as write leveling and resynchronization changes.
To account for all these board effects for Arria II GX, Arria II GZ, Arria V, Cyclone V, Stratix IV, and
Stratix V devices, refer to the Board Settings page in the UniPHY-based controller parameter editors.
Note: To perform multiple chip select timing deration for other Altera devices (for example, Stratix III
devices), use the Excel-based calculator available from the Altera website.
Related Information
Multi Chip Select Calculator
Timing Deration using the Board Settings
When you target Arria II GX, Arria II GZ, Arria V, Cyclone V, Stratix IV, or Stratix V devices, the
UniPHY-based parameter editors include the Board Settings page, to automatically account for the
timing deration caused by the multiple chip selects in your design.
When you target Stratix III devices, you can derate single chip-select designs using the parameter editors
to account for the skews, ISI, and slew rates in the Board Settings page.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-44
EMI_DG
2014.12.15
Slew Rates
If you are targeting Stratix III devices you see the following warning:
"Warning: Calibration performed on all chip selects, timing analysis only performed on first chip select.
Manual timing derating is required"
Note: You must perform manual timing deration using the Excel-based calculator.
The Board Settings page allows you to enter the parameters related to the board design including skews,
signal integrity, and slew rates. The Board Settings page also includes the board skew setting parameter,
Addr/Command to CK skew.
Slew Rates
You can obtain the slew rates in one of the following ways:
• Altera performs PCB simulations on internal Altera boards to compute the output slew rate and ISI
effects of various multiple chip select configurations. These simulation numbers are prepopulated in
the Slew Rates based on the number of ranks selected. The address and command setup and hold
times (tDS, tDH, tIS, tIH) are then computed from the slew rate values and the baseline nonderated
tDS, tDH, tIS, tIH numbers entered in the Preset Editor. The parameter editor shows the computed
values in Slew Rates. If you do not have access to a simulator to obtain accurate slew rates for your
specific system, Altera recommends that you use these prepopulated numbers for an approximate
estimate of your actual board parameters.
• Alternatively, you can update these default values, if dedicated board simulation results are available
for the slew rates. Custom slew rates cause the tDS, tDH, tIS, tIH values to be updated. Altera
recommends performing board level simulations to calculate the slew rate numbers that accounts for
accurate board-level effects for your board.
• You can modify the auto-calculatedtDS, tDH, tIS, tIH values with more accurate dedicated results
direct from the vendor data sheets, if available.
Slew Rate Setup, Hold, and Derating Calculation
Slew rate is calculated based on the nominal slew rate for setup and hold times. The total tIS (setup time)
and tIH (hold time) required is calculated by adding the Micron data sheet tIS (base) and tIH (base)
values to the delta tIS and delta tIH derating values, respectively.
For more information about slew rate calculation, setup, hold, and derating values, download the data
sheet specifications from the following vendor websites:
• Micron (www.micron.com)For example, refer to Command and Address Setup, Hold, and Derating
section in the Micron DDR3 data sheet.
• JEDEC (www.jedec.org)For example, refer to the DDR2 SDRAM Standard data sheet.
The following section describes the timing derating algorithms and shows you where to obtain the setup,
hold, and derating values in the Micron data sheet.
The slew rate derating process uses the following timing derating algorithms, which is similar to the
JEDEC specification:
tDS = tDS(base) + deltatDS + (VIHAC -VREF)/(DQ slew rate)
tDH
= tDH(base) + delta tDH + (VIHDC -VREF)/(DQ slew rate)
tIS =tIS (base) + delta tIS + (VIHAC -VREF)/(Address/Command slew rate)
tIH= tIH(base) + delta tIH + (VIHDC -VREF)/(Address/Command slew rate)
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Slew Rate Setup, Hold, and Derating Calculation
11-45
where:
• The setup and hold values for tDS(base), tDH(base), tIS(base), and tIH(base) are obtained from the
Micron data sheet. The following figure shows an example of the values from the Micron data sheet.
Figure 11-25: Setup and Hold Values from Micron Data sheet
• The JEDEC defined logic trip points for DDR3 SDRAM memory standard are as follow:
• VIHAC = VREF + 0.175 V
• VIHDC = VREF + 0.1 V
• VILAC = VREF - 0.175 V
• VILDC = VREF - 0.1 V
• The derating values for delta tIS, tIH, tDH, and tDS are obtained from the Micron data sheet.
The following figure shows an image of the derating values from the Micron data sheet.
Figure 11-26: Derating Values from Micron Data sheet
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-46
EMI_DG
2014.12.15
Intersymbol Interference
Related Information
• www.micron.com
• Micron DDR3 Data Sheet
• www.jedec.org
Intersymbol Interference
ISI parameters are similarly auto-populated based on the number of ranks you select with Altera's PCB
simulations. You can update these autopopulated typical values, if more accurate dedicated simulation
results are available.
Altera recommends performing board-level simulations to calculate the slew rate and ISI deltas that
account for accurate board level effects for your board. You can use HyperLynx or similar simulators to
obtain these simulation numbers. The default values have been computed using HyperLynx simulations
for Altera boards with multiple DDR2 and DDR3 SDRAM slots.
The wizard writes these parameters for the slew rates and the ISI into the .sdc and they are used during
timing analysis.
Measuring Eye Reduction for Address/Command, DQ, and DQS Setup and Hold Time
This topic describes how to measure eye reduction for address/command, DQ, and DQS.
Channel signal integrity is a measure of the distortion of the eye due to intersymbol interference or
crosstalk or other effects. Typically, when going from a single-rank configuration to a multi-rank configu‐
ration there is an increase in the channel loss due to reflections caused by multiple stubs. Although the
Quartus II timing model includes some channel uncertainty, you must perform your own channel signal
integrity simulations and enter the additional channel uncertainty, as compared to the reference eye, into
the parameter editor.
For details about measuring channel signal integrity, refer to Measuring Channel Signal Integrity, on the
Altera Wiki.
Related Information
http://alterawiki.com/wiki/Measuring_Channel_Signal_Integrity
Early I/O Timing Estimation for Arria 10 EMIF IP
Early I/O timing analysis allows you to run I/O timing analysis without first compiling your design. You
can use early I/O timing analysis to quickly evaluate whether adequate timing margin exists on the I/O
interface between the FPGA and external memory device.
Early I/O timing analysis performs the following analyses:
•
•
•
•
•
Altera Corporation
Read analysis
Write analysis
Address and command analysis
DQS gating analysis
Write leveling analysis
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Performing Early I/O Timing Analysis for Arria 10 EMIF IP
11-47
Early I/O timing analysis takes into consideration the following factors:
•
•
•
•
The timing parameters of the memory device
The speed and topology of the memory interface
The board timing and ISI characteristics
The timing of the selected FPGA device
Performing Early I/O Timing Analysis for Arria 10 EMIF IP
To perform early I/O timing analysis, follow these steps:
1. Instantiate an Arria 10 EMIF IP core.
a. On the Memory Timing tab, enter accurate memory parameters.
b. On the Board Timing tab, enter accurate values for Slew Rate, Intersymbol Interference, and Board
and Package Skews.
2. After generating your IP core, create a Quartus II project and select your device from the Available
devices list.
3. To launch the TimeQuest Timing Analyzer, select TimeQuest Timing Analyzer from the Tools
menu.
4. To run early I/O timing analysis:
a. Select Run Tcl Script from the Script menu.
b. Run submodule\<variation_name>_report_io_timing.tcl.
The following figure shows an early I/O timing analysis from the TimeQuest Timing Analyzer using a
DDR3 example design.
Figure 11-27: Report DDR Timing Results
Report DDR details the read capture, write, address and command, DQS gating, and write leveling timing
analyses, which are identical to those obtained after a full design compilation. Core FPGA timing paths
are not included in early I/O timing analysis.
Analyzing Timing of Memory IP
Send Feedback
Altera Corporation
11-48
EMI_DG
2014.12.15
Performing I/O Timing Analysis
Performing I/O Timing Analysis
For accurate I/O timing analysis, the Quartus II software must be made aware of the board trace and
loading information. This information must be derived and refined during your PCB development
process of pre-layout (line) and post-layout (board) simulations.
For external memory interfaces that use memory modules (DIMMs), the board trace and loading
information must include the trace and loading information of the module in addition to the main and
host platform, which you can obtain from your memory vendor.
You can use the following I/O timing analysis methods for your memory interface:
• Perform I/O Timing Analysis with 3rd Party Simulation Tools
• Perform Advanced I/O Timing Analysis with Board Trace Delay Model
Related Information
• Performing I/O Timing Analysis with 3rd Party Simulation Tools on page 11-48
• Performing Advanced I/O Timing Analysis with Board Trace Delay Model on page 11-48
Performing I/O Timing Analysis with 3rd Party Simulation Tools
Altera recommends that you perform I/O timing analysis using the 3rd party simulation tool flow because
this flow involves post layout simulation that can capture more accurate I/O timing. This method is also
easier because it only requires you to enter the slew rates, board skews, and ISI values in the parameter
editor.
To perform I/O timing analysis using 3rd party simulation tools, follow these steps:
1. Use a 3rd party simulation tool such as HyperLynx to simulate the full path for DQ, DQS, CK, Address,
and Command signals.
2. Under the Board Settings tab of the parameter editor, enter the slowest slew rate, ISI, and board skew
values.
Performing Advanced I/O Timing Analysis with Board Trace Delay Model
You should use this method only if you are unable to perform post-layout simulation on the memory
interface signals to obtain the slew rate parameters, and/or when no simulation tool is available.
To perform I/O timing analysis using board trace delay model, follow these steps:
1. After the instantiation is complete, analyze and synthesize your design.
2. Add pin and DQ group assignment by running the <variation_name>_p0_pin_assignments.tcl
script.
Note: The naming of the pin assignment file may vary depending on the Quartus II software version
that you are using.
3. Enter the pin location assignments.
4. Assign the virtual pins, if necessary.
5. Enter the board trace model information. To enter board trace model information, follow these steps:
Altera Corporation
Analyzing Timing of Memory IP
Send Feedback
EMI_DG
2014.12.15
Document Revision History
11-49
a. In the Pin Planner, select the pin or group of pins for which you want to enter board trace
parameters.
b. Right-click and select Board Trace Model.
6. Compile your design. To compile the design, on the Processing menu, click Start Compilation.
7. After successfully compiling the design, perform timing analysis in the TimeQuest timing analyzer. To
perform timing analysis, follow these steps:
a.
b.
c.
d.
e.
f.
g.
h.
In the Quartus II software, on the Tools menu, click TimeQuest Timing Analyzer.
On the Tasks pane, click Report DDR.
On the Report pane, select Advanced I/O Timing>Signal Integrity Metrics.
In the Signal Integrity Metrics window, right-click and select Regenerate to regenerate the signal
integrity metrics.
In the Signal Integrity Metrics window, note the 10–90% rise time (or fall time if fall time is worse)
at the far end for CK/CK#, address, and command, DQS/DQS#, and DQ signals.
In the DDR3 SDRAM controller parameter editor, in the Board Settings tab, type the values you
obtained from the signal integrity metrics.
For the board skew parameters, set the maximum skew within DQS groups of your design. Set the
other board parameters to 0 ns.
Compile your design.
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
Removed occurrences of MegaWizard Plug-In Manager.
December
2013
2013.12.16
•
•
•
•
•
November
2012
6.0
Changed chapter number from 10 to 11.
June 2012
5.0
Added Feedback icon.
November
2011
4.0
• Added Arria V and Cyclone V information.
• Added Performing I/O Timing Analysis section.
• Added Measuring Eye Reduction for Address/Command, DQ, and
DQS Setup and Hold Time section.
June 2011
3.0
Updated for 11.0 release.
December
2010
2.1
Added Arria II GZ and Stratix V, updated board skews table.
July 2010
2.0
Added information about UniPHY-based IP and controllers.
Analyzing Timing of Memory IP
Send Feedback
Removed references to ALTMEMPHY.
Removed references to HardCopy.
Removed references to Stratix II devices.
Removed references to Cyclone III and Cyclone IV devices.
Added information for Arria 10 support.
Altera Corporation
11-50
EMI_DG
2014.12.15
Document Revision History
Date
Version
January 2010
1.2
Corrected typos.
December
2009
1.1
Added Timing Deration section.
November
2009
1.0
Initial release.
Altera Corporation
Changes
Analyzing Timing of Memory IP
Send Feedback
Debugging Memory IP
12
2014.12.15
EMI_DG
Subscribe
Send Feedback
The following topics describe the tools and processes for debugging external memory interfaces.
The discussion focuses on issues pertaining to the Altera DDR, DDR2, DDR3, QDRII, QDRII+, and
RLDRAM II IP.
®
In general, memory debugging issues can be categorized as follows:
•
•
•
•
Resource and planning issues
Interface configuration issues
Functional issues
Timing issues
Some issues may not be directly related to interface operation; problems can also occur at the Quartus II
Fitter stage, or in timing analysis.
®
Resource and Planning Issues
Typically, single stand-alone interfaces should not present Quartus II Fitter or timing problems.
You may find that fitter, timing, and hardware operation can sometimes become a challenge, as multiple
interfaces are combined into a single project, or as the device utilization increases. In such cases, interface
configuration is not the issue; rather, the placement and total device resource requirements can create
problems.
Resource Issue Evaluation
External memory interfaces typically require the following resource types, which you must consider when
trying to place logic manually. You might also use additional constraints to force the placement or
location of external memory interface IP:
•
•
•
•
Dedicated IOE DQS group resources and pins
Dedicated DLL resources
Specific PLL resources
Specific global, regional, and dual-regional clock net resources
Dedicated IOE DQS Group Resources and Pins
Fitter issues can occur with even a single interface, if you do not size the interface to fit within the
specified constraints and requirements. A typical requirement includes containing assignments for the
interface within a single bank or possibly side of the chosen device.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
12-2
Dedicated DLL Resources
EMI_DG
2014.12.15
Such a constraint requires that the chosen device meets the following conditions:
• Sufficient DQS groups and sizes to support the required number of common I/O (CIO) or separate
I/O (SIO) data groups.
• Sufficient remaining pins to support the required number of address, command, and control pins.
Failure to evaluate these fundamental requirements can result in suboptimal interface design, if the
chosen device cannot be modified. The resulting wraparound interfaces or suboptimal pseudo read and
write data groups artificially limit the maximum operating frequency.
Multiple blocks of IP further complicate the issue, if other IP has either no specified location constraints
or incompatible location constraints.
The Quartus II fitter may first place other components in a location required by your memory IP, then
error at a later stage because of an I/O assignment conflict between the unconstrained IP and the
constrained memory IP.
Your design may require that one instance of IP is placed anywhere on one side of the device, and that
another instance of IP is placed at a specific location on the same side.
While the two individual instances may compile in isolation, and the physical number of pins may appear
sufficient for both instances, issues can occur if the instance without placement constraints is placed
before the instance with placement constraints.
In such circumstances, Altera recommends manually placing each individual pin, or at least try using
more granular placement constraints.
For more information about the pin number and DQS group capabilities of your chosen device, refer to
device data sheets or the Quartus II Pin Planner.
Dedicated DLL Resources
Altera devices typically use DLLs to enhance data capture at the FPGA. While multiple external memory
interfaces can usually share DLL resources, fitter issues can occur when there is insufficient planning
before HDL coding.
If DLL sharing is required, Altera gives the following recommendations for each instance of the IP that
shares the DLL resources:
• Must have compatible DLL requirements—same frequency and mode.
• Exports its autogenerated DLL instance out of its own dedicated PHY hierarchy and into the top-level
design file. This procedure allows easy comparison of the generated DLL’s mode, and allows you to
explicitly show the required DLL sharing between two IP blocks in the HDL
Note: The Quartus II fitter does not dynamically merge DLL instances.
Specific PLL Resources
When only a single interface resides on one side or one quadrant of a device, PLL resources are typically
not an issue. However if multiple interfaces or IP are required on a single side or quadrant, consider the
specific PLL used by each IP, and the sharing of any PLL resources.
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Specific Global, Regional and Dual-Regional Clock Net Resources
12-3
The Quartus II software automerges PLL resources, but not for any dynamically controlled PLL
components. Use the following PLL resource rules:
• Ensure that the PLL located in the same bank or side of the device is available for your memory
controller.
• If multiple PLLs are required for multiple controllers that cannot be shared, ensure that enough PLL
resources are available within each quadrant to support your interface number requirements.
• Try to limit multiple interfaces to a single quadrant. For example, if two complete same size interfaces
can fit on a single side of the device, constrain one interface entirely in one bank of that side, and the
other controller in the other bank.
For more information about using multiple PHYs or controllers, refer to the design tutorials on the List of
designs using Altera External Memory IP page of the Altera Wiki website.
Related Information
List of designs using Altera External Memory IP
Specific Global, Regional and Dual-Regional Clock Net Resources
Memory PHYs typically have specific clock resource requirements for each PLL clock output.
For example because of characterization data, the PHY may require that the phy_clk is routed on a global
clock net. The remaining clocks may all be routed on a global or a regional clock net. However, they must
all be routed on the same type. Otherwise, the operating frequency of the interface is lowered, because of
the increased uncertainty between two different types of clock nets. The design may still fit, but not meet
timing.
Planning Your Design
It is important to understand your design and to plan its resource usage and layout. Include the following
steps in your design planning:
1. Plan the total number of DQS groups and total number of other pins required in your shared area. Use
the Pin Planner to assist with this activity.
2. Decide which PLLs or clock networks can be shared between IP blocks, then ensure that sufficient
resources are available. For example, if an IP core requires a regional clock network, a PLL located on
the opposite side of the device cannot be used.
3. Calculate the number of total clock networks and types required when trying to combine multiple
instances of IP.
4. You must understand the number of quadrants that the IP uses and if this number can be reduced. For
example, an interface may be autoplaced across an entire side of the device, but may actually be
constrained to fit in a single bank.
By optimizing physical placement, you ensure that the system uses regional clock networks whereever
possible. The use of regional clock networks instead of dual-regional clock networks can help maintain
clock net resources and simplify routing.
Optimizing Design Utilization
As device utilization increases, the Quartus II software may have difficulty placing the core. To optimize
design utilization, follow these steps:
Debugging Memory IP
Send Feedback
Altera Corporation
12-4
EMI_DG
2014.12.15
Interface Configuration Performance Issues
1. Review any fitter warning messages in multiple IP designs to ensure that clock networks or PLL modes
are not modified to achieve the desired fit.
2. Use the Quartus II Fitter resource section to compare the types of resources used in a successful
standalone IP implementation to those used in an unreliable multiple IP implementation.
3. Use this information to better constrain the project to achieve the same results as the standalone
project.
4. Use the Chip Planner (Floorplan and Chip Editor) to compare the placement of the working standalone design to the multiple IP project. Then use LogicLock™ or Design Partitions to better guide the
Quartus II software to the required results.
5. When creating LogicLock regions, ensure that they encompass all required resources. For example, if
constraining the read and write datapath hierarchy, ensure that your LogicLock region includes the
IOE blocks used for your datapath pin out.
Interface Configuration Performance Issues
There are a large number of interface combinations and configurations possible in an Altera design,
therefore it is impractical for Altera to explicitly state the achievable fMAX for every combination.
Altera seeks to provide guidance on typical performance, but this data is subject to memory component
timing characteristics, interface widths, depths directly affecting timing deration requirements, and the
achieved skew and timing numbers for a specific PCB.
FPGA timing issues should generally not be affected by interface loading or layout characteristics. In
general, the Altera performance figures for any given device family and speed-grade combination should
usually be achievable.
To resolve FPGA (PHY and PHY reset) timing issues, refer to the Analyzing Timing of Memory IP
chapter.
Achievable interface timing (address and command, half-rate address and command, read and write
capture) is directly affected by any layout issues (skew), loading issues (deration), signal integrity issues
(crosstalk timing deration), and component speed grades (memory timing size and tolerance). Altera
performance figures are typically stated for the default (single rank, unbuffered DIMM) case. Altera
provides additional expected performance data where possible, but the fMAX is not achievable in all
configurations. Altera recommends that you optimize the following items whenever interface timing
issues occur:
•
•
•
•
Improve PCB layout tolerances
Use a faster speed grade of memory component
Ensure that the interface is fully and correctly terminated
Reduce the loading (reduce the deration factor)
Related Information
Analyzing Timing of Memory IP on page 11-1
Interface Configuration Bottleneck and Efficiency Issues
Depending on the transaction types, efficiency issues can exist where the achieved data rate is lower than
expected. Ideally, these issues should be assessed and resolved during the simulation stage because they
are sometimes impossible to solve later without rearchitecting the product.
Any interface has a maximum theoretical data rate derived from the clock frequency, however, in practise
this theoretical data rate can never be achieved continuously due to protocol overhead and bus
turnaround times.
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Functional Issue Evaluation
12-5
Simulate your desired configuration to ensure that you have specified a suitable external memory family
and that your chosen controller configuration can achieve your required bandwidth.
Efficiency can be assessed in several different ways, and the primary requirement is an achievable
continuous data rate. The local interface signals combined with the memory interface signals and a
command decode trace should provide adequate visibility of the operation of the IP to understand
whether your required data rate is sufficient and the cause of the efficiency issue.
To show if under ideal conditions the required data rate is possible in the chosen technology, follow these
steps:
1. Use the memory vendors own testbench and your own transaction engine.
2. Use either your own driver, or modify the provided example driver, to replicate the transaction types
typical of your system.
3. Simulate this performance using your chosen memory controller and decide if the achieved perform‐
ance is still acceptable.
Observe the following points that may cause efficiency or bottleneck issues at this stage:
• Identify the memory controller rate (full, half, or quarter) and commands, which may take two or four
times longer than necessary
• Determine whether the memory controller is starved for data by observing the appropriate request
signals.
• Determine whether the memory controller processor transactions at a rate sufficient to meet
throughput requirements by observing appropriate signals, including the local ready signal.
Altera has several versions and types of memory controller, and where possible you can evaluate different
configurations based on the results of the first tests.
Consider using either a faster interface, or a different memory type to better align your data rate require‐
ments to the IP available directly from Altera.
Altera also provides stand-alone PHY configurations so that you may develop custom controllers or use
third-party controllers designed specifically for your requirements.
Functional Issue Evaluation
Functional issues occur at all frequencies (using the same conditions) and are not altered by speed grade,
temperature, or PCB changes. You should use functional simulation to evaluate functional issues.
The Altera IP includes the option to autogenerate a testbench specific to your IP configuration, which
provides an easy route to functional verification.
The following issues should be considered when trying to debug functional issues in a simulation environ‐
ment.
Correct Combination of the Quartus II Software and ModelSim-Altera Device
Models
When running any simulations, ensure that you are using the correct combination of the Quartus II
software and device models.
Altera only tests each release of software and IP with the aligned release of device models. Failure to use
the correct RTL and model combination may result in unstable simulation environments.
Debugging Memory IP
Send Feedback
Altera Corporation
12-6
EMI_DG
2014.12.15
Altera IP Memory Model
The ModelSim -Altera edition of the ModelSim simulator comes precompiled with the Altera device
family libraries included. You must always install the correct release of ModelSim-Altera to align with
your Quartus II software and IP release.
®
If you are using a full version of ModelSim-SE or PE, or any other supported simulation environment,
ensure that you are compiling the current Quartus II supplied libraries. These libraries are located in the
<Quartus II install path>/quartus/eda/sim_lib/ directory.
Altera IP Memory Model
Altera memory IP autogenerates a generic simplified memory model that works in all cases. This simple
read and write model is not designed or intended to verify all entered IP parameters or transaction
requirements.
The Altera-generated memory model may be suitable to evaluate some limited functional issues, but it
does not provide comprehensive functional simulation.
Vendor Memory Model
Contact the memory vendor directly as many additional models are available from the vendors support
system.
When using memory vendor models, ensure that the model is correctly defined for the following
characteristics:
•
•
•
•
•
•
•
Speed grade
Organization
Memory allocation
Maximum memory usage
Number of ranks on a DIMM
Buffering on the DIMM
ECC
Note: Refer to the readme.txt file supplied with the memory vendor model, for more information about
how to define this information for your configuration.
During simulation vendor models output a wealth of information regarding any device violations that
may occur because of incorrectly parameterized IP.
Note: Refer to Transcript Window Messages, for more information.
Insufficient Memory in Your PC
If you are running the ModelSim-Altera simulator, the limitation on memory size may mean that you
have insufficient memory to run your simulation. Or, if you are using a 32-bit operating system, your PC
may have insufficient memory.
Typical simulation tool errors include: "Iteration limit reached" or "Error out of memory".
When using either the Altera generic memory model, or a vendor specific model quite large memory
depths can be required if you do not specify your simulation carefully.
For example, if you simulate an entire 4-GB DIMM interface, the hardware platform that performs that
simulation requires at least this amount of memory just for the simulation contents storage.
Note: Refer to Memory Allocation and Max Memory Usage in the vendor's readme.txt files for more
information.
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Transcript Window Messages
12-7
Transcript Window Messages
When you are debugging a functional issue in simulation, vendor models typically provide much more
detailed checks and feedback regarding the interface and their operational requirements than the Altera
generic model.
In general, you should use a vendor-supplied model whenever one is available. Consider using secondsource vendor models in preference to the Altera generic model.
Many issues can be traced to incorrectly configured IP for the specified memory components. Component
data sheets usually contain settings information for several different speed grades of memory. Be aware
data sheet specify parameters in fixed units of time, frequencies, or clock cycles.
The Altera generic memory model always matches the parameters specified in the IP, as it is generated
using the same engine. Because vendor models are independent of the IP generation process, they offer a
more robust IP parameterization check.
During simulation, review the transcript window messages and do not rely on the Simulation Passed
message at the end of simulation. This message only indicates that the example driver successfully wrote
and then read the correct data for a single test cycle.
Even if the interface functionally passes in simulation, the vendor model may report operational
violations in the transcript window. These reported violations often specifically explain why an interface
appears to pass in simulation, but fails in hardware.
Vendor models typically perform checks to ensure that the following types of parameters are correct:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Burst length
Burst order
tMRD
tMOD
tRFC
tREFPDEN
tRP
tRAS
tRC
tACTPDEN
tWR
tWRPDEN
tRTP
tRDPDEN
tINIT
tXPDLL
tCKE
tRRD
tCCD
tWTR
tXPR
PRECHARGE
CAS length
Drive strength
AL
tDQS
CAS_WL
Debugging Memory IP
Send Feedback
Altera Corporation
12-8
Passing Simulation
•
•
•
•
•
•
EMI_DG
2014.12.15
Refresh
Initialization
tIH
tIS
tDH
tDS
If a vendor model can verify all these parameters are compatible with your chosen component values and
transactions, it provides a specific insight into hardware interface failures.
Passing Simulation
Passing simulation means that the interface calibrates and successfully completes a single test complete
cycle without asserting pass not fail (pnf).
It does not take into account any warning messages that you may receive during simulation. If you are
debugging an interface issue, review and, if necessary, correct any warning messages from the transcript
window before continuing.
Modifying the Example Driver to Replicate the Failure
Often during debugging, you may discover that the example driver design works successfully, but that
your custom logic is observing data errors.
This information indicates that the issue is either one of the following:
• Related to the way that the local interface transactions are occurring. Altera recommends you probe
and compare using the SignalTap™ II analyzer.
• Related to the types or format of transactions on the external memory interface. Altera recommends
you modify the example design to replicate the issue.
Typical issues on the local interface side include:
• Incorrect local address to memory address translation causing the word order to be different than
expected. Refer to Burst Definition in your memory vendor data sheet.
• Incorrect timing on the local interface. When your design requests a transaction, the local side must be
ready to service that transaction as soon as it is accepted without any pause.
®
• For more information, refer to the Avalon Interface Specification .
The default example driver only performs a limited set of transaction types, consequently potential bus
contention or preamble and postamble issues can often be masked in its default operation. For successful
debugging, isolate the custom logic transaction types that are causing the read and write failures and
modify the example driver to demonstrate the same issue. Then, you can try to replicate the failure in RTL
simulation with the modified driver.
An issue that you can replicate in RTL simulation indicates a potential bug in the IP. You should recheck
the IP parameters. An issue that you can not replicate in RTL simulation indicates a timing issue on the
PCB. You can try to replicate the issue on an Altera development platform to rule out a board issue.
Note: Ensure that all PCB timing, loading, skew, and deration information is correctly defined in the
Quartus II software, as the timing report is inaccurate if this initial data is not correct.
Functional simulation allows you to identify any issues with the configuration of either the Altera
memory controller and or PHY. You can then easily check the operation against both the memory vendor
data sheet and the respective JEDEC specification. After you resolve functional issues, you can start
testing hardware.
For more information about simulation, refer to the Simulating Memory IP chapter.
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Timing Issue Characteristics
12-9
Related Information
• Avalon Interface Specification
• Simulating Memory IP on page 10-1
Timing Issue Characteristics
The Altera PHY and controller combinations autogenerate timing constraint files to ensure that the PHY
and external interface are fully constrained and that timing is analyzed during compilation. However,
timing issues can still occur. This topic discusses how to identify and resolve any timing issues that you
may encounter.
Timing issues typically fall into two distinct categories:
• FPGA core timing reported issues
• External memory interface timing issues in a specific mode of operation or on a specific PCB
TimeQuest reports timing issues in two categories: core to core and core to IOE transfers. These timing
issues include the PHY and PHY reset sections in the TimeQuest Report DDR subsection of timing
analysis. External memory interface timing issues are specifically reported in the TimeQuest Report DDR
subsection, excluding the PHY and PHY reset. The Report DDR PHY and PHY reset sections only
include the PHY, and specifically exclude the controller, core, PHY-to-controller and local interface.
Quartus II timing issues should always be evaluated and corrected before proceeding to any hardware
testing.
PCB timing issues are usually Quartus II timing issues, which are not reported in the Quartus II software,
if incorrect or insufficient PCB topology and layout information is not supplied. PCB timing issues are
typically characterized by calibration failure, or failures during user mode when the hardware is heated or
cooled. Further PCB timing issues are typically hidden if the interface frequency is lowered.
Evaluating FPGA Timing Issues
Usually, you should not encounter timing issues with Altera-provided IP unless your design exceeds
Altera's published performance range or you are using a device for which the Quartus II software offers
only preliminary timing model support. Nevertheless, timing issues can occur in the following
circumstances:
• The .sdc files are incorrectly added to the Quartus II project
• Quartus II analysis and synthesis settings are not correct
• Quartus II Fitter settings are not correct
For all of these issues, refer to the correct user guide for more information about recommended settings
and follow these steps:
1. Ensure that the IP generated .sdc files are listed in the Quartus II TimeQuest Timing Analyzer files to
include in the project window.
2. Ensure that Analysis and Synthesis Settings are set to Optimization Technique Speed .
3. Ensure that Fitter Settings are set to Fitter Effort Standard Fit .
4. Use TimeQuest Report Ignored Constraints, to ensure that .sdc files are successfully applied.
5. Use TimeQuest Report Unconstrained Paths, to ensure that all critical paths are correctly
constrained.
Debugging Memory IP
Send Feedback
Altera Corporation
12-10
EMI_DG
2014.12.15
Evaluating External Memory Interface Timing Issues
More complex timing problems can occur if any of the following conditions are true:
• The design includes multiple PHY or core projects
• Devices where the resources are heavily used
• The design includes wide, distributed, maximum performance interfaces in large die sizes
Any of the above conditions can lead to suboptimal placement results when the PHY or controller are
distributed around the FPGA. To evaluate such issues, simplify the design to just the autogenerated
example top-level file and determine if the core meets timing and you see a working interface. Failure
implies that a more fundamental timing issue exists. If the standalone design passes core timing, evaluate
how this placement and fit is different than your complete design.
Use LogicLock regions, or design partitions to better define the placement of your memory controllers.
When you have your interface standalone placement, repeat for additional interfaces, combine, and finally
add the rest of your design.
Additionally, use fitter seeds and increase the placement and router effort multiplier.
Evaluating External Memory Interface Timing Issues
External memory interface timing issues usually relate to the FPGA input and output characteristics, PCB
timing, and the memory component characteristics.
The FPGA input and output characteristics are usually fixed values, because the IOE structure of the
devices is fixed. Optimal PLL characteristics and clock routing characteristics do have an effect. Assuming
the IP is correctly constrained with autogenerated assignments, and you follow implementation rules, the
design should reach the stated performance figures.
Memory component characteristics are fixed for any given component or DIMM. Consider using faster
components or DIMMs in marginal cases when PCB skew may be suboptimal, or your design includes
multiple ranks when deration may cause read capture or write timing challenges. Using faster memory
components often reduces the memory data output skew and uncertainty easing read capture, and
lowering the memory’s input setup and hold requirement, which eases write timing.
Increased PCB skew reduces margins on address, command, read capture and write timing. If you are
narrowly failing timing on these paths, consider reducing the board skew (if possible), or using faster
memory. Address and command timing typically requires you to manually balance the reported setup and
hold values with the dedicated address and command phase in the IP.
Refer to the respective IP user guide for more information.
Multiple-slot multiple-rank UDIMM interfaces can place considerable loading on the FPGA driver.
Typically a quad rank interface can have thirty-six loads. In multiple-rank configurations, Altera's stated
maximum data rates are not likely to be achievable because of loading deration. Consider using different
topologies, for example registered DIMMs, so that the loading is reduced.
Deration because of increased loading, or suboptimal layout may result in a lower than desired operating
frequency meeting timing. You should close timing in the Quartus II software using your expected
loading and layout rules before committing to PCB fabrication.
Ensure that any design with an Altera PHY is correctly constrained and meets timing in the Quartus II
software. You must address any constraint or timing failures before testing hardware.
For more information about timing constraints, refer to the Analyzing Timing of Memory IP chapter.
Related Information
Analyzing Timing of Memory IP on page 11-1
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Verifying Memory IP Using the SignalTap II Logic Analyzer
12-11
Verifying Memory IP Using the SignalTap II Logic Analyzer
The SignalTap II logic analyzer shows read and write activity in the system.
For more information about using the SignalTap II logic analyzer, refer to the Design Debugging Using the
SignalTap II Embedded Logic Analyzer chapter in volume 3 of the Quartus II Software Handbook
To add the SignalTap II logic analyzer, follow these steps:
1. On the Tools menu click SignalTap II Logic Analyzer .
2. In the Signal Configuration window next to the Clock box, click … (Browse Node Finder).
3. Type the memory interface system clock (typically * phy_clk) in the Named box, for Filter select
SignalTap II: presynthesis and click List.
4. Select the memory interface system clock (<variation_name>_example_top|<variation_name>
:<variation_name>_inst|<variation_name>_controller_phy:<variation_name>_controller_phy_inst|phy_clk|phy_
clk) in Nodes Found and click > to add the signal to Selected Nodes.
5. Click OK.
6. Under Signal Configuration, specify the following settings:
• For Sample depth, select 512
• For RAM type, select Auto
• For Trigger flow control, select Sequential
• For Trigger position, select Center trigger position
• ForTrigger conditions , select 1
7. On the Edit menu, click Add Nodes.
8. Search for specific nodes by typing *local* in the Named box, for Filter select SignalTap II:
presynthesis and click List.
9. Select the following nodes in Nodes Found and click > to add to Selected Nodes:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
local_address
local_rdata
local_rdata_valid
local_read_req
local_ready
local_wdata
local_write_req
pnf
pnf_per_byte
test_complete (trigger)
ctl_cal_success
ctl_cal_fail
ctl_wlat
ctl_rlat
Note: Do not add any memory interface signals to the SignalTap II logic analyzer. The load on these
signals increases and adversely affects the timing analysis.
10.Click OK.
11.To reduce the SignalTap II logic size, turn off Trigger Enable on the following bus signals:
Debugging Memory IP
Send Feedback
Altera Corporation
12-12
EMI_DG
2014.12.15
Signals to Monitor with the SignalTap II Logic Analyzer
• local_address
• local_rdata
• local_wdata
• pnf_per_byte
• ctl_wlat
• ctl_rlat
12.Right-click Trigger Conditions for the test_complete signal and select Rising Edge.
13.On the File menu, click Save, to save the SignalTap II . stp file to your project.
Note: If you see the message Do you want to enable SignalTap II file “stp1.stp” for the current
project, click Yes.
14.After you add signals to the SignalTap II logic analyzer, recompile your design by clicking Start
Compilation on the Processing menu.
15.Following compilation, verify that TimeQuest timing analysis passes successfully. In addition to this
FPGA timing analysis, check your PCB or system SDRAM timing. To run timing analysis, run the *_
phy_report_timing.tcl script.
a. On the Tools menu, click Tcl Scripts.
b. Select <variation_name>_phy_report_timing.tcl and click Run.
16.Connect the development board to your computer.
17.On the Tools menu, click SignalTap II Logic Analyzer.
18.Add the correct <project_name>.sof file to the SOF Manager:
a. Click ... to open the Select Program Files dialog box.
b. Select <your_project_name>.sof.
c. Click Open.
d. To download the file, click the Program Device button.
19.When the example design including SignalTap II successfully downloads to your development board,
click Run Analysis to run once, or click Autorun Analysis to run continuously.
Related Information
Design Debugging Using the SignalTap II Logic Analyzer
Signals to Monitor with the SignalTap II Logic Analyzer
This topic lists the memory controller signals you should consider analyzing for different memory
interfaces. This list is not exhaustive, but is a starting point.
For a description of each signal, refer to Volume 3: Reference Material of the External Memory Interface
Handbook.
Monitor the following signals for UniPHY designs:
•
•
•
•
•
•
•
•
•
•
Altera Corporation
avl_addr
avl_rdata
avl_rdata_valid
avl_read_req
avl_ready
avl_wdata
avl_write_req
fail
pass
afi_cal_fail
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Hardware Debugging Guidelines
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
12-13
afi_cal_success
test_complete
be_reg (QDRII only)
pnf_per_bit
rdata_reg
rdata_valid_reg
data_out
data_in
written_data_fifo|data_out
usequencer|state *
usequencer|phy_seq_rdata_valid
usequencer|phy_seq_read_fifo_q
usequencer|phy_read_increment_vfifo *
usequencer|phy_read_latency_counter
uread_datapath|afi_rdata_en
uread_datapath|afi_rdata_valid
uread_datapath|ddio_phy_dq
qvld_wr_address *
qvld_rd_address *
Related Information
Volume 3: Reference Material
Hardware Debugging Guidelines
Before debugging your design, confirm that it follows the Altera recommended design flow. Refer to the
Design Flow chapter in volume 1 of the External Memory Interface Handbook.
Always keep a record of tests, to avoid repeating the same tests later. To start debugging the design,
perform the following initial steps.
Related Information
Recommended Design Flow
Create a Simplified Design that Demonstrates the Same Issue
To help debugging create a simple design that replicates the issue.
A simple design should compile quickly and be easy to understand. Altera's external memory interface IP
generates an example top-level file that is ideal for debugging. The example top-level file uses all the same
parameters, pin-outs, and so on.
Measure Power Distribution Network
Measure voltages of the various power supplies on their hardware development platform over a suitable
time base and with a suitable trigger.
Ensure that you use an appropriate probe and grounding scheme. In addition, take the measurements
directly on the pins or vias of the devices in question, and with the hardware operational.
Debugging Memory IP
Send Feedback
Altera Corporation
12-14
EMI_DG
2014.12.15
Measure Signal Integrity and Setup and Hold Margin
Measure Signal Integrity and Setup and Hold Margin
Measure the signals on the PCB. When measuring any signal, consider the edge rate of the signal, not just
its frequency. Modern FPGA devices have very fast edge rates, therefore you must use a suitable oscillo‐
scope, probe, and grounding scheme when you measure the signals.
You can take measurements to capture the setup and hold time of key signal classes with respect to their
clock or strobe. Ensure that the measured setup and hold margin is at least better than that reported in the
Quartus II software. A worse margin indicates a timing discrepancy somewhere in the project; however,
this issue may not be the cause of your problem.
Vary Voltage
Vary the voltage of your system, if you suspect a marginality issue.
Increasing the voltage usually causes devices to operate faster and also usually provides increased noise
margin.
Use Freezer Spray and Heat Gun
If you have an intermittent marginal issue, apply cold or heat to the interface to stress the components.
Cooling ICs causes them to run faster, which makes timing easier. Conversely, heating ICs causes them to
run slower, which makes timing more difficult.
If cooling or heating corrects the problem, it is probably a timing issue.
Operate at a Lower Speed
Test the interface at a lower speed. If the interface works at a lower speed, the interface is correctly pinned
out and functional.
If the interface fails at a lower speed, determine if the test is valid. Many high-speed memory components
have a minimal operating frequency, or require subtly different configurations when operating at a lower
speeds.
For example, DDR, DDR2, or DDR3 SDRAM typically requires modification to the following parameters
if you want to operate the interface at lower speeds:
• tMRD
• tWTR
• CAS latency and CAS write latency
Determine Whether the Issue Exists in Previous Versions of Software
Hardware that works before an update to either the Quartus II software or the memory IP indicates that
the development platform is not the issue.
However, the previous generation IP may be less susceptible to a PCB issue, masking the issue.
Determine Whether the Issue Exists in the Current Version of Software
Designs are often tested using previous generations of Altera software or IP.
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Try A Different PCB
12-15
Projects may not be upgraded for various reasons:
• Multiple engineers are on the same project. To ensure compatibility, a common release of Altera
software is used by all engineers for the duration of the product development. The design may be
several releases behind the current Quartus II software version.
• Many companies delay before adopting a new release of software so that they can first monitor
Internet forums to get a feel for how successful other users say the software is.
• Many companies never use the latest version of any software, preferring to wait until the first service
pack is released that fixes the primary issues.
• Some users may only have a license for the older version of the software and can only use that version
until their company makes the financial decision to upgrade.
• The local interface specification from Altera IP to the customer's logic sometimes changes from
software release to software release. If you have already spent resources designing interface logic, you
may be reluctant to repeat this exercise. If a block of code is already signed off, you may be reluctant to
modify it to upgrade to newer IP from Altera..
In all of the above scenarios, you must determine if the issue still exists in the latest version of the Altera
software. Bug fixes and enhancements are added to the Altera IP every release. Depending on the nature
of the bug or enhancement, it may not always be clearly documented in the release notes.
Finally, if the latest version of the software resolves the issue, it may be easier to debug the version of
software that you are using.
Try A Different PCB
If you are using the same Altera IP on several different hardware platforms, determine whether the
problem occurs on all platforms or just on one.
Multiple instances of the same PCB, or multiple instances of the same interface, on physically different
hardware platforms may exhibit different behavior. You can determine if the configuration is fundamen‐
tally not working, or if some form of marginality is involved in the issue.
Issues are often reported on the alpha build of a development platform. These are produced in very
limited numbers and often have received limited bare-board testing, or functional testing. These early
boards are often more unreliable than production quality PCBs.
Additionally, if the IP is from a previous project to help save development resources, determine whether
the specific IP configuration works on a previous platform.
Try Other Configurations
Designs are often quite large, using multiple blocks of IP in many different combinations. Determine
whether any other configurations work correctly on the development platform.
The full project may have multiple external memory controllers in the same device, or may have configu‐
rations where only half the memory width or frequency is required. Find out what does and does not
work to help the debugging of the issue.
Debugging Checklist
The following checklist is a good starting point when debugging an external memory interface.
Debugging Memory IP
Send Feedback
Altera Corporation
12-16
EMI_DG
2014.12.15
Catagorizing Hardware Issues
Table 12-1: CheckItem
Check
Item
Try a different fit.
Check IP parameters at the operating frequency (tMRD, tWTR for example).
Ensure you have constrained your design with proper timing deration and have closed
timing.
Simulate the design. If it fails in simulation, it will fail in hardware.
Analyze timing.
Place and assign RUP and RDN (OCT).
Measure the power distribution network (PDN).
Measure signal integrity.
Measure setup and hold timing.
Measure FPGA voltages.
Vary voltages.
Heat and cool the PCB.
Operate at a lower or higher frequency.
Check board timing and trace Information.
Check LVDS and clock sources, I/O voltages and termination.
Check PLL clock source, specification, and jitter.
Ensure the correct number of PLL phase steps take place during calibration. If the number
stated in the IP does not match the number, you may have manually altered the PLL.
Retarget to a smaller interface width or a single bank.
Catagorizing Hardware Issues
The following topics divide issues into categories. By determining which category (or categories) an issue
belongs in, you may be able to better focus on the cause of the issue.
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Signal Integrity Issues
12-17
Hardware issues fall into three categories:
• Signal integrity issues
• Hardware and calibration issues
• Intermittent issues
Signal Integrity Issues
Many design issues, including some at the protocol layer, can be traced back to signal integrity problems.
You should check circuit board construction, power systems, command, and data signaling to determine
if they meet specifications.
If infrequent, random errors exist in the memory subsystem, product reliability suffers. Check the bare
circuit board or PCB design file. Circuit board errors can cause poor signal integrity, signal loss, signal
timing skew, and trace impedance mismatches. Differential traces with unbalanced lengths or signals that
are routed too closely together can cause crosstalk.
Characteristics of Signal Integrity Issues
Signal integrity problems often appear when the performance of the hardware design is marginal.
The design may not always initialize and calibrate correctly, or may exhibit occasional bit errors in user
mode. Severe signal integrity issues can result in total failure of an interface at certain data rates, and
sporadic component failure because of electrical stress. PCB component variance and signal integrity
issues often show up as failures on one PCB, but not on another identical board. Timing issues can have a
similar characteristic. Multiple calibration windows or significant differences in the calibration results
from one calibration to another can also indicate signal integrity issues.
Evaluating SignaI Integrity Issues
Signal integrity problems can only really be evaluated in two ways:
• direct measurement using suitable test equipment like an oscilloscope and probe
• simulation using a tool like HyperLynx or Allegro PCB SI
Compare signals to the respective electrical specification. You should look for overshoot and undershoot,
non-monotonicity, eye height and width, and crosstalk.
Skew
Ensure that all clocked signals, commands, addresses, and control signals arrive at the memory inputs at
the same time.
Trace length variations cause data valid window variations between the signals, reducing margin. For
example, DDR2-800 at 400 MHz has a data valid window that is smaller than 1,250 ps. Trace length skew
or crosstalk can reduce this data valid window further, making it difficult to design a reliably operating
memory interface. Ensure that the skew figure previously entered into the Altera IP matches that actually
achieved on the PCB, otherwise Quartus II timing analysis of the interface is accurate.
Crosstalk
Crosstalk is best evaluated early in the memory design phase.
Check the clock-to-data strobes, because they are bidirectional. Measure the crosstalk at both ends of the
line. Check the data strobes to clock, because the clocks are unidirectional, these only need checking at the
memory end of the line.
Debugging Memory IP
Send Feedback
Altera Corporation
12-18
EMI_DG
2014.12.15
Power System
Power System
Some memory interfaces draw current in spikes from their power delivery system as SDRAMs are based
on capacitive memory cells.
Rows are read and refreshed one at a time, which causes dynamic currents that can stress any power
distribution network (PDN). The various power rails should be checked either at or as close as possible to
the SDRAM power pins. Ideally, you should use a real-time oscilloscope set to fast glitch triggering to
check the power rails.
Clock Signals
The clock signal quality is important for any external memory system.
Measurements include frequency, digital core design (DCD), high width, low width, amplitude, jitter, rise,
and fall times.
Read Data Valid Window and Eye Diagram
The memory generates the read signals. Take measurements at the FPGA end of the line.
To ease read diagram capture, modify the example driver to mask writes or modify the PHY to include a
signal that you can trigger on when performing reads.
Write Data Valid Window and Eye Diagram
The FPGA generates the write signals. Take measurements at the memory device end of the line.
To ease write diagram capture, modify the example driver to mask reads or modify the PHY export a
signal that is asserted when performing writes.
OCT and ODT Usage
Modern external memory interface designs typically use OCT for the FPGA end of the line, and ODT for
the memory component end of the line. If either the OCT or ODT are incorrectly configured or enabled,
signal integrity problems occur.
If the design uses OCT, RUP or RDN pins must be placed correctly for the OCT to work. If you do not
place these pins, the Quartus II software allocates them automatically with the following warning:
Warning: No exact pin location assignment(s) for 2 pins of 110 total pins
Info: Pin termination_blk0~_rup_pad not assigned to an exact location on the device
Info: Pin termination_blk0~_rdn_pad not assigned to an exact location on the device
If you see these warnings, the RUP and RDN pins may have been allocated to a pin that does not have the
required external resistor present on the board. This allocation renders the OCT circuit faulty, resulting in
unreliable UniPHY calibration and or interface behavior. The pins with the required external resistor
must be specified in the Quartus II software.
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Hardware and Calibration Issues
12-19
For the FPGA, ensure that you perform the following:
• Specify the RUP and RDN pins in either the projects HDL port list, or in the assignment editor
(termination_blk0~_rup_pad/ termination_blk0~_rdn_pad).
• Connect the RUP and RDN pins to the correct resistors and pull-up and pull-down voltage in the
schematic or PCB.
• Contain the RUP and RDN pins within a bank of the device that is operating at the same VCCIO voltage
as the interface that is terminated.
• Check that only the expected number of RUP and RDN pins exists in the project pin-out file. Look for
Info: Created on-chip termination messages at the fitter stage for any calibration blocks not
expected in your design.
• Review the Fitter Pin-Out file for RUP and RDN pins to ensure that they are on the correct pins, and
that only the correct number of calibration blocks exists in your design.
• Check in the fitter report that the input, output, and bidirectional signals with calibrated OCT all have
the termination control block applicable to the associated RUP and RDN pins.
For the memory components, ensure that you perform the following:
• Connect the required resistor to the correct pin on each and every component, and ensure that it is
pulled to the correct voltage.
• Place the required resistor close to the memory component.
• Correctly configure the IP to enable the desired termination at initialization time.
• Check that the speed grade of memory component supports the selected ODT setting.
• Check that the second source part that may have been fitted to the PCB, supports the same ODT
settings as the original
Hardware and Calibration Issues
Hardware and calibration issues have the following definitions:
• Calibration issues result in calibration failure, which usually causes the ctl_cal_fail signal to be
asserted.
• Hardware issues result in read and write failures, which usually causes the pass not fail (pnf) signal to
be asserted.
Note: Ensure that functional, timing, and signal integrity issues are not the direct cause of your hardware
issue, as functional, timing or signal integrity issues are usually the cause of any hardware issue.
Evaluating Hardware and Calibration Issues
Use the following methods to evaluate hardware and calibration issues:
• Evaluate hardware issues using the SignalTap II logic analyzer to monitor the local side read and write
interface with the pass or fail or error signals as triggers
• Evaluate calibration issues using the SignalTap II logic analyzer to monitor the various calibration,
configuration with the pass or fail or error signals as triggers, but also use the debug toolkit and system
consoles when available
• For more information about debug toolkit and the type of signals for debugging external memory
interfaces, refer to the External Memory Interface Debug Toolkit chapter in volume 3 of the External
Memory Interface Handbook.
Consider adding core noise to your design to aggravate margin timing and signal integrity issues. Steadily
increasing the stress on the external memory interface is an ideal way to assess and understand the cause
of any previously intermittent failures that you may observe in your system. Using the SignalTap II probe
tool can provide insights into the source or cause of operational failure in the system.
Debugging Memory IP
Send Feedback
Altera Corporation
12-20
Write Timing Margin
EMI_DG
2014.12.15
Steadily increasing stress on the external memory interface allows you to assess and understand the
impact that such factors have on the amount of timing margin and resynchronization window. Take
measurements with and without the additional stress factor to allow evaluation of the overall effect.
Steadily increase the stress on the interface in the following order:
1. Increase the interface utilization by modifying the example driver to focus on the types of transactions
that exhibit the issue.
2. Increase the SNN or aggressiveness of the data pattern by modifying the example driver to output in
synchronization PRBS data patterns, or hammer patterns.
3. Increase the stress on the PDN by adding more and more core noise to your system. Try sweeping the
fundamental frequency of the core noise to help identify resonances in your power system.
Related Information
External Memory Interface Debug Toolkit
Write Timing Margin
Determine the write timing margin by phase sweeping the write clock from the PLL.
Use sources and probes to dynamically control the PLL phase offset control, to increase and decrease the
write clock phase adjustment so that the write window size may be ascertained.
Remember that when sweeping PLL clock phases, the following two factors may cause operational failure:
• The available write margin.
• The PLL phase in a multi-clock system.
The following code achieves this adjustment. You should use sources and probes to modify the respective
output of the PLL. Ensure that the example driver is writing and reading from the memory while
observing the pnf_per_byte signals to see when write failures occur:
/////////////////
wire [7:0] Probe_sig;
wire [5:0] Source_sig;
PhaseCount PhaseCounter (
.resetn (1'b1),
.clock (pll_ref_clk),
.step (Source_sig[5]),
.updown (Source_sig[4]),
.offset (Probe_sig)
);
CheckoutPandS freq_PandS (
.probe (Probe_sig),
.source (Source_sig)
);
ddr2_dimm_phy_alt_mem_phy_pll_siii pll (
.inclk0 (pll_ref_clk),
.areset (pll_reset),
.c0 (phy_clk_1x), // hR
.c1 (mem_clk_2x), // FR
.c2 (aux_clk), // FR
.c3 (write_clk_2x), // FR
.c4 (resync_clk_2x), // FR
.c5 (measure_clk_1x), // hR
.c6 (ac_clk_1x), // hR
.phasecounterselect (Source_sig[3:0]),
.phasestep (Source_sig[5]),
.phaseupdown (Source_sig[4]),
.scanclk (scan_clk),
.locked (pll_locked_src),
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Read Timing Margin
12-21
.phasedone (pll_phase_done)
);
Read Timing Margin
Assess the read timing margin by using sources and probes to manually control the DLL phase offset
feature.
Open the autogenerated DLL using ALT_DLL and add the additionally required offset control ports. This
action allows control and observation of the following signals:
dll_delayctrlout[5:0], // Phase output control from DLL to DQS pins (Gray Coded)
dll_offset_ctrl_a_addnsub, // Input add or subtract the phase offset value
dll_offset_ctrl_a_offset[5:0], // User Input controlled DLL offset value (Gray
Coded)
dll_aload, // User Input DLL load command
dll_dqsupdate, // DLL Output update required signal.
In examples where the applied offset applied results in the maximum or minimum
dll_delayctrlout[5:0] setting without reaching the end of the read capture window, regenerate the
DLL in the next available phase setting, so that the full capture window is assessed.
Modify the example driver to constantly perform reads (mask writes). Observe the pnf_per_byte signals
while the DLL capture phase is manually modified to see when failures begin, which indicates the edge of
the window.
A resynchronization timing failure can indicate failure at that capture phase, and not a capture failure.
You should recalibrate the PHY with the calculated phase offset to ensure that you are using the true readcapture margin.
Address and Command Timing Margin
You set the address and command clock phase directly in the IP. Assuming you enter the correct board
trace model information into the Quartus II software, the timing analysis should be correct.
If you want to evaluate the address and command timing margin, use the same process as in “Write
Timing Margin”, only phase step the address and command PLL output (c6 ac_clk_1x). You can achieve
this effect using the debug toolkit or system console.
Refer to the External Memory Interface Debug Toolkit chapter in volume 3 of the External Memory
Interface Handbook.
Related Information
• Write Timing Margin on page 12-20
• External Memory Interface Debug Toolkit
• External Memory Interface Debug Toolkit
Resynchronization Timing Margin
Observe the size and margins available for resynchronization using the debug toolkit or system console.
Refer to External Memory Interface Debug Toolkit chapter in volume 3 of the External Memory Interface
Handbook.
Additionally for PHY configurations that use a dedicated PLL clock phase (as opposed to a resynchroniza‐
tion FIFO buffer), use the same process as described in “Write Timing Margin”, to dynamically sweep
resynchronization margin (c4 resynch_clk_2x).
Debugging Memory IP
Send Feedback
Altera Corporation
12-22
EMI_DG
2014.12.15
Postamble Timing Issues and Margin
Related Information
• Write Timing Margin on page 12-20
• External Memory Interface Debug Toolkit
Postamble Timing Issues and Margin
The postamble timing is set by the PHY during calibration.
You can diagnose postamble issues by viewing the pnf_per_byte signal from the example driver.
Postamble timing issues mean only read data is corrupted during the last beat of any read request.
Intermittent Issue Evaluation
Intermittent issues are typically the hardest type of issue to debug—they appear randomly and are hard to
replicate.
Errors that occur during run-time indicate a data-related issue, which you can identify by the following
actions:
•
•
•
•
Add the SignalTap II logic analyzer and trigger on the post-trigger pnf
Use a stress pattern of data or transactions, to increase the probability of the issue
Heat up or cool down the system
Run the system at a slightly faster frequency
If adding the SignalTap II logic analyzer or modifying the project causes the issue to go away, the issue is
likely to be placement or timing related.
Errors that occur at start-up indicate that the issue is related to calibration, which you can identify by the
following actions:
• Modify the design to continually calibrate and reset in a loop until the error is observed
• Where possible, evaluate the calibration margin either from the debug toolkit or system console.
Note: Refer to the External Memory Interface Debug Toolkit chapter in volume 3 of the External
Memory Interface Handbook.
• Capture the calibration error stage or error code, and use this information with whatever specifically
occurs at that stage of calibration to assist with your debugging of the issue.
Related Information
External Memory Interface Debug Toolkit
EMIF Debug Toolkit Overview and Usage Flow
The EMIF Debug Toolkit is a Tcl-based interface that runs on your PC and communicates via a JTAG
connection to enable you to debug your external memory interface on the circuit board, retrieve
calibration status, and perform margining activities.
The toolkit consists of the following parts:
• DDR2 and DDR3 SDRAM Controllers
• Avalon Memory-Mapped (Avalon-MM) slave interface
• JTAG Avalon master
The EMIF toolkit allows you to display information about your external memory interface and generate
calibration and margining reports. The toolkit can aid in diagnosing the type of failure that may be
Altera Corporation
Debugging Memory IP
Send Feedback
EMI_DG
2014.12.15
Document Revision History
12-23
occurring in your external memory interface, and help identify areas of reduced margin that might be
potential failure points.
The general toolkit usage flow is as follows:
1. (Optional) Generate your IP core with the CSR port enabled and with the CSR communication
interface type properly set.
2. Recompile the design.
3. Connect your PC's download cable (for example, ByteBlaster II download cable) to the JTAG port on
the development board.
4. Program the device.
5. Specify project settings using the EMIF Debug Toolkit.
6. Generate calibration report and interpret calibration results using the EMIF Debug Toolkit.
Note: 1. For more information about the EMIF Debug Toolkit, refer to the External Memory Interface
Debug Toolkit chapter in volume 3 of the External Memory Interface Handbook.
2. The EMIF Debug Toolkit does not support MAX 10 devices.
Related Information
External Memory Interface Debug Toolkit
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
Maintenance release.
December
2013
2013.12.16
• Removed references to ALTMEMPHY.
• Removed local_wdata_req from step 9 of Verifying Memory IP Using
SignalTap II Logic Analyzer.
November
2012
4.2
Changed chapter number from 11 to 12.
June 2012
4.1
Added Feedback icon.
November
2011
4.0
Added Debug Toolkit section.
June 2011
3.0
Removed leveling information from ALTMEMPHY Calibration Stages
and UniPHY Calibration Stages chapter.
December
2010
2.1
• Added new chapter: UniPHY Calibration Stages.
• Added new chapter: DDR2 and DDR3 SDRAM Controllers with
UniPHY EMIF Toolkit.
July 2010
2.0
Updated for 10.0 release.
January 2010
1.2
Corrected typos.
Debugging Memory IP
Send Feedback
Altera Corporation
12-24
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
December
2009
1.1
Added Debug Toolkit for DDR2 and DDR3 SDRAM High-Performance
Controllers chapter and ALTMEMPHY Calibration Stages chapter.
November
2009
1.0
Initial release.
Altera Corporation
Debugging Memory IP
Send Feedback
Optimizing the Controller
13
2014.12.15
EMI_DG
Subscribe
Send Feedback
It is important that you understand how to increase the efficiency and bandwidth of the memory
controller when you design any external memory interface.
The following topics discuss factors that affect controller efficiency and ways to increase the efficiency of
the controller.
Controller Efficiency
Controller efficiency varies depending on data transaction. The best way to determine the efficiency of the
controller is to simulate the memory controller for your specific design.
Controller efficiency is expressed as:
Efficiency = number of active cycles of data transfer/total number of cycles
The total number of cycles includes the number of cycles required to issue commands or other requests.
Note: You calculate the number of active cycles of data transfer in terms of local clock cycles. For
example, if the number of active cycles of data transfer is 2 memory clock cycles, you convert that
to the local clock cycle which is 1.
The following cases are based on a DDR2 SDRAM high-performance controller design targeting a
®
Stratix IV device that has a CAS latency of 3, and burst length of 4 on the memory side (2 cycles of data
transfer), with accessed bank and row in the memory device already open. The Stratix IV device has a
command latency of 9 cycles in half-rate mode. The local_ready signal is high.
• Case 1: The controller performs individual reads.
Efficiency = 1/(1 + CAS + command latency) = 1/(1+1.5+9) = 1/11.5 = 8.6%
• Case 2: The controller performs 4 back to back reads.
In this case, the number of data transfer active cycles is 8. The CAS latency is only counted once
because the data coming back after the first read is continuous. Only the CAS latency for the first read
has an impact on efficiency. The command latency is also counted once because the back to back read
commands use the same bank and row.
Efficiency = 4/(4 + CAS + command latency) = 4/(4+1.5+9) = 1/14.5 = 27.5%
Factors Affecting Efficiency
The two main factors that affect controller efficiency are the interface standard specified by the memory
vendor, and the way that you transfer data.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
13-2
EMI_DG
2014.12.15
Interface Standard
The following sections discuss these two factors in detail.
Interface Standard
Complying with certain interface standard specifications affects controller efficiency.
When interfacing the memory with the DDR2 or DDR3 SDRAM controllers, you must follow certain
timing specifications and perform the following bank management operations:
• Activate
Before you issue any read (RD) or write (WR) commands to a bank within a DDR2 SDRAM device,
you must open a row in that bank using the activate (ACT) command. After you open a row, you can
issue a read or write command to that row based on the tRCD specification. Reading or writing to a
closed row has negative impact on the efficiency as the controller has to first activate that row and then
wait until tRCD time to perform a read or write.
• Precharge
To open a different row in the same bank, you must issue a precharge (PCH) command. The
precharge command deactivates the open row in a particular bank or the open row in all banks.
Switching a row has a negative impact on the efficiency as you must first precharge the open row, then
activate the next row and wait tRCD time to perform any read or write operation to the row.
• Device CAS latency
The higher the CAS latency, the less efficient an individual access. The memory device has its own read
latency, which is about 12 ns to 20 ns regardless of the actual frequency of the operation. The higher
the operating frequency, the longer the CAS latency is in number of cycles.
• Refresh
A refresh, in terms of cycles, consists of the precharge command and the waiting period for the auto
refresh. Based on the memory data sheet, these components require the following values:
• tRP = 12 ns, 3 clock cycles for a 200-MHz operation (5 ns period for 200 MHz)
• tRFC = 75 ns, 15 clock cycles for a 200-MHz operation.
Based on this calculation, a refresh pauses read or write operations for 18 clock cycles. So, at 200 MHz,
you lose 1.15% (18 x 5 ns/7.8 us) of the total efficiency.
Bank Management Efficiency
The following figures show examples of how the bank management operations affect controller efficiency.
The first figure shows a read operation in which you have to change a row in a bank. This figure shows
how CAS latency and precharge and activate commands affect efficiency.
The following figure illustrates a read-after-write operation. The controller changes the row address after
the write-to-read from a different row.
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
Bank Management Efficiency
13-3
Figure 13-1: Read Operation—Changing A Row in A Bank
(1)
(1)
(1)
(2)
(2)
(3)
(4)(5)
The following sequence of events describes the above figure:
1. The local_read_req signal goes high, and when the local_ready signal goes high, the controller
accepts the read request along with the address.
2. After the memory receives the last write data, the row changes for read. Now you require a precharge
command to close the row opened for write. The controller waits for tWR time (3 memory clock cycles)
to give the precharge command after the memory receives the last write data.
3. After the controller issues the precharge command, it must wait for tRP time to issue an activate
command to open a row.
4. After the controller gives the activate command to activate the row, it needs to wait tRCD time to issue a
read command.
5. After the memory receives the read command, it takes the memory some time to provide the data on
the pin. This time is known as CAS latency, which is 3 memory clock cycles in this case.
For this particular case, you need approximately 17 local clock cycles to issue a read command to the
memory. Because the row in the bank changes, the read operation takes a longer time, as the controller
has to issue the precharge and activate commands first. You do not have to take into account tWTR for this
case because the precharge and activate operations already exceeded tWTR time.
The following figure shows the case where you use the same the row and bank address when the
controller switches from write to read. In this case, the read command latency is reduced.
Optimizing the Controller
Send Feedback
Altera Corporation
13-4
EMI_DG
2014.12.15
Data Transfer
Figure 13-2: Changing From Write to Read—Same Row and Bank Address
(1)
(2)
(4) (3)
The following sequence of events describes the above figure:
1. The local_read_req signal goes high and the local_ready signal is high already. The controller
accepts the read request along with the address.
2. When switching from write to read, the controller has to wait tWTR time before it gives a read
command to the memory.
3. The SDRAM device receives the read command.
4. After the SDRAM device receives the read command, it takes some time to give the data on the pin.
This time is called CAS latency, which is 3 memory clock cycles in this case.
For the case illustrated in the second figure above, you need approximately 11 local clock cycles to issue a
read command to the memory. Because the row in the bank remains the same, the controller does not
have to issue the precharge and activate commands, which speeds up the read operation and in turn
results in a better efficiency compared to the case in the first figure above.
Similarly, if you do not switch between read and write often, the efficiency of your controller improves
significantly.
Data Transfer
The following methods of data transfer reduce the efficiency of your controller:
• Performing individual read or write accesses is less efficient.
• Switching between read and write operation has a negative impact on the efficiency of the controller.
• Performing read or write operations from different rows within a bank or in a different bank—if the
bank and a row you are accessing is not already open—also affects the efficiency of your controller.
The following figure shows an example of changing the row in the same bank.
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
Ways to Improve Efficiency
13-5
Figure 13-3: Changing Row in the Same Bank
(1)
(2)
The following sequence of events describes the above figure:
1. You have to wait tWR time before giving the precharge command
2. You then wait tRP time to give the activate command.
Ways to Improve Efficiency
To improve the efficiency of your controller, you can use the following tools and methods:
•
•
•
•
•
•
•
•
•
•
DDR2 SDRAM Controller
Auto-Precharge Commands
Additive Latency
Bank Interleaving
Command Queue Look-Ahead Depth
Additive Latency and Bank Interleaving
User-Controlled Refresh
Frequency of Operation
Burst Length
Series of Reads or Writes
The following sections discuss these methods in detail.
DDR2 SDRAM Controller
The DDR2 SDRAM controller maintains up to eight open banks; one row in each bank is open at a time.
Maintaining more banks at one time helps avoid bank management commands. Ensure that you do not
change a row in a bank frequently, because changing the row in a bank causes the bank to close and
reopen to open another row in that bank.
Optimizing the Controller
Send Feedback
Altera Corporation
13-6
EMI_DG
2014.12.15
Auto-Precharge Commands
Auto-Precharge Commands
The auto-precharge read and write commands allow you to indicate to the memory device that a given
read or write command is the last access to the currently opened row.
The memory device automatically closes or auto-precharges the page that is currently being accessed, so
that the next access to the same bank is faster. The Auto-Precharge command is useful when you want to
perform fast random memory accesses.
The Timer Bank Pool (TBP) block supports the dynamic page policy, where depending on user input on
local autoprecharge input would keep a page open or close. In a closed-page policy, a page is always closed
after it is accessed with auto-precharge command. When the data pattern consists of repeated reads or
writes to addresses not within the same page, the optimal system achieves the maximum efficiency
allowed by continuous page miss limited access. Efficiency losses are limited to those associated with
activating and refreshing. An efficiency of 10-20% should be expected for this closed-page policy.
In an open-page policy, the page remains open after it is accessed for incoming commands. When the
data pattern consists of repeated reads or writes to sequential addresses within the same page, the optimal
system can achieve 100% efficiency for page-open transactions (ignoring the effects of periodic refreshes,
which typically consume around 2-3% of total efficiency), with minimum latency for highest priority
single transactions.
If you turn on Enable Auto-Precharge Control, you can instruct the controller to issue an autoprecharge
read or write command. The next time you access that bank, the access will be faster because the
controller does not have to precharge the bank before activating the row that you want to access.
The controller-derived autoprecharge logic evaluates the pending commands in the command buffer and
determines the most efficient autoprecharge operation to perform. The autoprecharge logic can reorder
commands if necessary. When all TBP are occupied due to tracking an open page, TBP uses a scheme
called on-demand flush, where it stops tracking a page to create space for an incoming command.
The following figure compares auto-precharge with and without look-ahead support.
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
Auto-Precharge Commands
13-7
Figure 13-4: Comparison With and Without Look-ahead Auto-Precharge
Without using the look-ahead auto-precharge feature, the controller must precharge to close and then
open the row before the write or read burst for every row change. When using the look-ahead precharge
feature, the controller decides whether to do auto-precharge read/write by evaluating the incoming
command; subsequent reads or writes to same bank/different row will require only an activate command.
As shown in the preceding figure, the controller performs an auto-precharge for the write command to
bank 0 at cycle 1. The controller detects that the next write at cycle 13 is to a different row in bank 0, and
hence saves 2 data cycles.
The following efficiency results apply to the above figure:
Table 13-1: Comparative Efficiencies With and Without Look-Ahead Auto-Precharge Feature
Without Look-ahead Autoprecharge
With Look-ahead Auto-precharge
Active cycles of data transfer
16
16
Total number of cycles
19
17
Approximate efficiency
84%
94%
The look-ahead auto-precharge used increases efficiency by approximately 10%.
The following figure shows how you can improve controller efficiency using the auto-precharge
command.
Optimizing the Controller
Send Feedback
Altera Corporation
13-8
EMI_DG
2014.12.15
Additive Latency
Figure 13-5: Improving Efficiency Using Auto-Precharge Command
(1)
(2)
The following sequence of events describes the above figure:
1. The controller accepts a read request from the local side as soon as the local_ready signal goes high.
2. The controller gives the activate command and then gives the read command. The read command
latency is approximately 14 clock cycles for this case as compared to the similar case with no auto
precharge which had approximately 17 clock cycles of latency (described in the "data Transfer" topic).
When using the auto-precharge option, note the following guidelines:
• Use the auto-precharge command if you know the controller is issuing the next read or write to a
particular bank and a different row.
• Auto-precharge does not improve efficiency if you auto-precharge a row and immediately reopen it.
Additive Latency
Additive latency increases the efficiency of the command and data bus for sustainable bandwidths.
You may issue the commands externally but the device holds the commands internally for the duration of
additive latency before executing, to improve the system scheduling. The delay helps to avoid collision on
the command bus and gaps in data input or output bursts. Additive latency allows the controller to issue
the row and column address commands—activate, and read or write—in consecutive clock cycles, so that
the controller need not hold the column address for several (tRCD) cycles. This gap between the activate
and the read or write command can cause bubbles in the data stream.
The following figure shows an example of additive latency.
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
Bank Interleaving
13-9
Figure 13-6: Additive Latency—Read
[1]
[2]
T0
T1
T2
T3
T4
T5
T6
T7
T8
ACT n
RD n
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CK#
CK
Command
DQS/DQS#
tRCD (MIN)
n
DQ
AL = 2
n+1 n+2 n+3
CL = 3
RL = 5 (1)
The following sequence of events describes the above figure:
1. The controller issues a read or write command before the tRCD (MIN) requirement— additive latency
less than or equal to tRCD (MIN).
2. The controller holds the read or write command for the time defined by additive latency before issuing
it internally to the SDRAM device.
Read latency = additive latency + CAS latency
Write latency = additive latency + CAS latency – tCK
Bank Interleaving
You can use bank interleaving to sustain bus efficiency when the controller misses a page, and that page is
in a different bank.
Note: Page size refers to the minimum number of column locations on any row that you access with a
single activate command. For example: For a 512Mb x8 DDR3 SDRAM with 1024 column
locations (column address A[9:0]), page size = 1024 columns x 8 = 8192 bits = 8192/8 bytes = 1024
bytes (1 KB)
Without interleaving, the controller sends the address to the SDRAM device, receives the data requested,
and then waits for the SDRAM device to precharge and reactivate before initiating the next data transac‐
tion, thus wasting several clock cycles.
Interleaving allows banks of the SDRAM device to alternate their background operations and access
cycles. One bank undergoes its precharge/activate cycle while another is being accessed. By alternating
banks, the controller improves its performance by masking the precharge/activate time of each bank. If
there are four banks in the system, the controller can ideally send one data request to each of the banks in
consecutive clock cycles.
Optimizing the Controller
Send Feedback
Altera Corporation
13-10
EMI_DG
2014.12.15
Bank Interleaving
For example, in the first clock cycle, the CPU sends an address to Bank 0, and then sends the next address
to Bank 1 in the second clock cycle, before sending the third and fourth addresses to Banks 2 and 3 in the
third and fourth clock cycles respectively. The sequence is as follows:
1.
2.
3.
4.
5.
Controller sends address 0 to Bank 0.
Controller sends address 1 to Bank 1 and receives data 0 from Bank 0.
Controller sends address 2 to Bank 2 and receives data 1 from Bank 1.
Controller sends address 3 to Bank 3 and receives data 2 from Bank 2.
Controller receives data 3 from Bank 3.
The following figure shows how you can use interleaving to increase bandwidth.
Figure 13-7: Using Interleaving to Increase Bandwidth
Access Pattern Without Interleaving
CPU
Memory
D1 available
Start Access for D1
Start Access for D2
Access Pattern With 4-way Interleaving
CPU
Memory
Bank 0
Memory
Bank 1
Memory
Bank 2
Memory
Bank 3
Access Bank 0
Access Bank 1
Access Bank 2
Access Bank 3
Access Bank 0 (again)
The Altera controller supports three interleaving options:
Chip-Bank-Row-Col – This is a noninterleaved option. Select this option to improve efficiency with
random traffic
Chip-Row-Bank-Col – This option uses bank interleaving without chip select interleaving. Select this
option to improve efficiency with sequential traffic, by spreading smaller data structures across all banks
in a chip.
Row-Chip-Bank-Col - This option uses bank interleaving with chip select interleaving. Select this option
to improve efficiency with sequential traffic and multiple chip selects. This option allows smaller data
structures to spread across multiple banks and chips.
Bank interleaving is a fixed pattern of data transactions, enabling best-case bandwidth and latency, and
allowing for sufficient interleaved transactions between opening banks to completely hide tRC. An optimal
system can achieve 100% efficiency for bank interleave transactions with 8 banks. A system with less than
8 banks is unlikely to achieve 100%.
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
Command Queue Look-Ahead Depth
13-11
Command Queue Look-Ahead Depth
The command queue look-ahead depth value determines the number of read or write requests that the
look-ahead bank management logic examines. The command queue look-ahead depth value also
determines how many open pages the High-Performance Controller II (HPC II) can track.
For example, if you set the command queue look-ahead depth value to 4, the HPC II controller can track 4
open pages. In a 4-bank interleaving case, HPCII will receive repeated commands with addresses of bank
A, bank B, bank C, and bank D. To receive the next set of commands, the controller issues a precharge
command to exit the current page and then issues an activate command to track the new incoming page,
leading to a drop in efficiency.
Figure 13-8: Simulation with Command Queue Look-ahead Depth of 4
With the command queue look-ahead depth set to 8, the controller can track 8 open pages and overall
efficiency is much improved relative to a command queue look-ahead value of 4.
Figure 13-9: Simulation with Command Queue Look-ahead Depth of 8
There is a trade-off between efficiency and resource usage. Higher command queue look-ahead values are
likely to increase bank management efficiency, but at the cost of higher resource usage. Smaller command
queue look-ahead values may be less efficient, but also consume fewer resources. Also, a command queue
look-ahead value greater than 4 may cause timing violations for interfaces approaching their maximum
frequency.
Note: If you set Command Queue Look-ahead depth to a value greater than 4, you may not be able to run
the interface at maximum frequency.
To achieve an optimized balance of controller efficiency versus resource usage and frequency, you must
understand your traffic patterns. You should simulate your design with a variety of controller settings to
observe the results of different settings.
Optimizing the Controller
Send Feedback
Altera Corporation
13-12
EMI_DG
2014.12.15
Additive Latency and Bank Interleaving
Note: User-selectable Command Queue Look-ahead depth is available only when using the soft memory
controller. For the hard memory controller, the Command Queue Look-ahead depth value is hardcoded to 8.
Additive Latency and Bank Interleaving
Using additive latency together with bank interleaving increases the bandwidth of the controller.
The following figure shows an example of bank interleaving in a read operation without additive latency.
The example uses DDR2 SDRAM bank interleave reads with CAS latency of 4, and burst length of 4.
Figure 13-10: Bank Interleaving—Without Additive Latency
[1]
CK#
[3]
T1
T0
T2
T3
T4
[2]
[4]
T5
T6
[5]
T7
T8
T9
T10
T11
T12
T13
T14
CK
Command
Address
ACT
ACT
READ
ACT
READ
READ
Bank x
Row n
Bank y
Row n
Bank x
Col n
Bank z
Row n
Bank y
Col n
Bank z
Col n
A10
DQS
DQ
The following sequence of events describes the above figure:
1.
2.
3.
4.
The controller issues an activate command to open the bank, which activates bank x and the row in it.
After tRCD time, the controller issues a read with auto-precharge command to the specified bank.
Bank y receives an activate command after tRRD time.
The controller cannot issue an activate command to bank z at its optimal location because it must wait
for bank x to receive the read with auto-precharge command, thus delaying the activate command for
one clock cycle.
5. The delay in activate command causes a gap in the output data from the DDR2 SDRAM device.
Note: If you use additive latency of 1, the latency affects only read commands and not the timing for
write commands.
The following figure shows an example of bank interleaving in a read operation with additive latency. The
example uses DDR2 SDRAM bank interleave reads with additive latency of 3, CAS latency of 4, and burst
length of 4. In this configuration, the controller issues back-to-back activate and read with autoprecharge commands.
Figure 13-11: Bank Interleaving—With Additive Latency
[1]
CK#
[2]
T0
T1
ACT
READ
[3]
T2
T3
T4
T5
ACT
READ
ACT
READ
Bank z
Row n
Bank z
Col n
T6
[4]
T7
T8
T9
T10
[5]
T11
T12
T13
T14
CK
Command
Address
Bank x
Row n
Bank x
Col n
Bank y
Row n
Bank y
Col n
A10
DQS
DQ
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
User-Controlled Refresh
13-13
The following sequence of events describes the above figure:
1. The controller issues an activate command to bank x.
2. The controller issues a read with auto precharge command to bank x right after the activate command,
before waiting for the tRCD time.
3. The controller executes the read with auto-precharge command tRCD time later on the rising edge T4.
4. 4 cycles of CAS latency later, the SDRAM device issues the data on the data bus.
5. For burst length of 4, you need 2 cycles for data transfer. With 2 clocks of giving activate and read with
auto-precharge commands, you get a continuous flow of output data.
Compare the efficiency results in the two preceding figures:
• DDR2 SDRAM bank interleave reads with no additive latency, CAS latency of 4, and burst length of 4
(first figure),
Number of active cycles of data transfer = 6.
Total number of cycles = 15
Efficiency = 40%
• DDR2 SDRAM bank interleave reads with additive latency of 3, CAS latency of 4, and burst length of 4
(second figure),
Number of active cycles of data transfer = 6.
Total number of cycles = 14
Efficiency = approximately 43%
The interleaving reads used with additive latency increases efficiency by approximately 3%.
Note: Additive latency improves the efficiency of back-to-back interleaved reads or writes, but not
individual random reads or writes.
User-Controlled Refresh
The requirement to periodically refresh memory contents is normally handled by the memory controller;
however, the User Controlled Refresh option allows you to determine when memory refresh occurs.
With specific knowledge of traffic patterns, you can time the refresh operations so that they do not
interrupt read or write operations, thus improving efficiency.
Note: If you enable the auto-precharge control, you must ensure that the average periodic refresh
requirement is met, because the controller does not issue any refreshes until you instruct it to.
Frequency of Operation
Certain frequencies of operation give you the best possible latency based on the memory parameters. The
memory parameters you specify through the parameter editor are converted to clock cycles and rounded
up.
If you are using a memory device that has tRCD = 20 ns and running the interface at 100 MHz, you get the
following results:
• For full-rate implementation (tCk = 10 ns):
tRCD convert to clock cycle = 20/10 = 2.
• For half rate implementation (tCk = 20 ns):
tRCD convert to clock cycle = 20/20 = 1
Optimizing the Controller
Send Feedback
Altera Corporation
13-14
EMI_DG
2014.12.15
Burst Length
This frequency and parameter combination is not easy to find because there are many memory
parameters and frequencies for the memory device and the controller to run. Memory device parameters
are optimal for the speed at which the device is designed to run, so you should run the device at that
speed.
In most cases, the frequency and parameter combination is not optimal. If you are using a memory device
that has tRCD = 20 ns and running the interface at 133 MHz, you get the following results:
• For full-rate implementation (tCk = 7.5 ns):
tRCD convert to clock cycle = 20/7.5 = 2.66, rounded up to 3 clock cycles or 22.5 ns.
• For half rate implementation (tCk = 15 ns):
tRCD convert to clock cycle = 20/15 = 1.33, rounded up to 2 clock cycles or 30 ns.
There is no latency difference for this frequency and parameter combination.
Burst Length
Burst length affects the efficiency of the controller. A burst length of 8 provides more cycles of data
transfer, compared to a burst length of 4.
For a half-rate design that has a command latency of 9 half-rate clock cycles, and a CAS latency of 3
memory clock cycles or 1.5 half rate local clock cycles, the efficiency is 9% for burst length of 4, and 16%
for burst length of 8.
• Burst length of 4 (2 memory clock cycles of data transfer or 1 half-rate local clock cycle)
Efficiency = number of active cycles of data transfer/total number of cycles
Efficiency = 1/(1 + CAS + command latency) = 1/(1 + 1.5 + 9) = 1/11.5 = 8.6% or approximately 9%
• Burst length of 8 (4 memory clock cycles of data transfer or 2 half-rate local clock cycles)
Efficiency = number of active cycles of data transfer/total number of cycles
Efficiency = 2/(2 + CAS + command latency) = 2/(2 + 1.5 + 9) = 2/12.5 = 16%
Series of Reads or Writes
Performing a series of reads or writes from the same bank and row increases controller efficiency.
The case shown in the second figure in the "Bank Management Efficiency" topic demonstrates that a read
performed from the same row takes only 14.5 clock cycles to transfer data, making the controller 27%
efficient.
Do not perform random reads or random writes. When you perform reads and writes to random
locations, the operations require row and bank changes. To change banks, the controller must precharge
the previous bank and activate the row in the new bank. Even if you change the row in the same bank, the
controller has to close the bank (precharge) and reopen it again just to open a new row (activate). Because
of the precharge and activate commands, efficiency can decrease by as much as 3–15%, as the controller
needs more time to issue a read or write.
If you must perform a random read or write, use additive latency and bank interleaving to increase
efficiency.
Controller efficiency depends on the method of data transfer between the memory device and the FPGA,
the memory standards specified by the memory device vendor, and the type of memory controller.
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
Data Reordering
13-15
Data Reordering
Data reordering and command reordering can both contribute towards achieving controller efficiency.
The Data Reordering feature allows the single-port memory controller to change the order of read and
write commands to achieve highest efficiency. You can enable data reordering by turning on Enable
Reordering on the Controller Settings tab of the parameter editor.
In the soft memory controller, inter-bank data reordering serves to minimize bus turnaround time by
optimizing the ordering of read and write commands going to different banks; commands going to the
same bank address are not reordered.
Figure 13-12: Data Reordering for Minimum Bus Turnaround
In the hard memory controller, inter-row data reordering serves to minimize tRC by reordering
commands going to different bank and row addresses; command going to the same bank and row address
are not reordered. Inter-row data reordering inherits the minimum bus turnaround time benefit from
inter-bank data reordering.
Figure 13-13: Data Reordering for Minimum tRC
Starvation Control
The controller implements a starvation counter to ensure that lower-priority requests are not forgotten as
higher-priority requests are reordered for efficiency.
In starvation control, a counter is incremented for every command served. You can set a starvation limit,
to ensure that a waiting command is served immediately upon the starvation counter reaching the
specified limit.
For example, if you set a starvation limit of 10, a lower-priority command will be treated as high priority
and served immediately, after ten other commands are served before it.
Optimizing the Controller
Send Feedback
Altera Corporation
13-16
EMI_DG
2014.12.15
Command Reordering
Command Reordering
Data reordering and command reordering can both contribute towards achieving controller efficiency.
DDR protocols are naturally inefficient, because commands are fetched and processed sequentially. The
DDRx command and DQ bus are not fully utilized as few potential cycles are wasted and degrading the
efficiency
The command reordering feature, or look-ahead bank management feature, allows the controller to issue
bank management commands early based on incoming patterns, so that when the command reaches the
memory interface, the desired page in memory is already open.
The command cycles during the tRCD period are idle and the bank-management commands are issued to
next access banks. When the controller is serving the next command, the bank is already precharged. The
command queue look-ahead depth is configurable from 1-16, to specify how many read or write requests
the look-ahead bank management logic examines. With the look-ahead command queue, if consecutive
write or read requests are to a sequential address with same row, same bank, and column incremental by
1, the controller merges the write or read requests at the memory transaction into a single burst.
Figure 13-14: Comparison With and Without Look-Ahead Bank Mangement Feature
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
Bandwidth
13-17
Compare the following efficiency results for the above figure:
Table 13-2: Efficiency Results for Above Figure
Without Look-ahead Bank
Management
With Look-ahead Bank Management
Active cycles of data transfer
12
12
Total number of cycles
20
16
Approximate efficiency
60%
75%
In the above table, the use of look-ahead bank management increases efficiency by 15%. The bank lookahead pattern verifies that the system is able to completely hide the bank precharge and activation for
specific sequences in which the minimum number of page-open transactions are placed between transac‐
tions to closed pages to allow bank look-ahead to occur just in time for the closed pages. An optimal
system would completely hide bank activation and precharge performance penalties for the bank lookahead traffic pattern and achieve 100% efficiency, ignoring refresh.
Bandwidth
Bandwidth depends on the efficiency of the memory controller controlling the data transfer to and from
the memory device.
You can express bandwidth as follows:
Bandwidth = data width (bits) × data transfer rate (1/s) × efficiency
Data rate transfer (1/s) = 2 × frequency of operation (4 × for QDR SRAM interfaces)
The following example shows the bandwidth calculation for a 16-bit interface that has 70% efficiency and
runs at 200 MHz frequency:
Bandwidth = 16 bits × 2 clock edges × 200 MHz × 70% = 4.48 Gbps.
DRAM typically has an efficiency of around 70%, but when you use the Altera memory controller
efficiency can vary from 10 to 92%.
®
In QDR II+ or QDR II SRAM the IP implements two separate unidirectional write and read data buses, so
the data transfer rate is four times the clock rate. The data transfer rate for a 400-MHz interface is 1, 600
Mbps. The efficiency is the percentage of time the data bus is transferring data. It is dependent on the type
of memory. For example, in a QDR II+ or QDR II SRAM interface with separate write and read ports, the
efficiency is 100% when there is an equal number of read and write operations on these memory
interfaces.
For information on best-case and worst-case efficiency scenarios, refer to the white paper, The Efficiency
of the DDR & DDR2 SDRAM Controller Compiler.
Related Information
The Efficiency of the DDR & DDR2 SDRAM Controller Compiler
Optimizing the Controller
Send Feedback
Altera Corporation
13-18
EMI_DG
2014.12.15
Efficiency Monitor
Efficiency Monitor
The Efficiency Monitor and Protocol Checker measures traffic efficiency on the Avalon interface between
the traffic generator and the controller, and checks that the Avalon protocol is not violated.
The Protocol Checker monitors the controller’s Avalon slave interface for any illegal commands presented
to it by any master; it does not monitor the legality of the controller’s Avalon outputs.
Figure 13-15: Efficiency Monitor and Protocol Checker Statistics
Note: To enable efficiency measurements to be performed on the controller Avalon interface through
UniPHY External Memory Interface Toolkit, you need to check on Enable the Efficiency Monitor
and Protocol Checker on the Controller Avalon Interface.
Note: The efficiency monitor does not take refreshes into account.
The Efficiency Monitor counts the number of cycles of command transfers and wait times for the
controller interface and provides an Avalon slave port to allow access to this data. The efficiency monitor
has an internal 32-bit counter for accessing transactions; its status can be any of the following:
•
•
•
•
Not Running
Not Running: Waiting for pattern start
Running
Not Running: Counter Saturation
For example, once the counter saturates the efficiency monitor stops because it can no longer track
transactions. In the summary panel, this appears as Not Running: Counter Saturation.
The debug toolkit summarizes efficiency monitor statistics as follows:
Efficiency Monitor Cycle Count – counts cycles from first command/start until 232 or a stop request
Transfer Count – counts any data transfer cycle, read or write
Write Count – counts how many writes requested, including those during a burst
Read Count – counts how many reads requested (just commands)
Read Burst counter – counts how many reads requested (total burst requests)
Non-Transfer Cycle Waitrequest Count – counts Non Transfer Cycles due to slave wait request high.
A Non-Transfer Cycle is a cycle during which no read data is received and no write data is accepted on
the Avalon interface.
• Non-Transfer Cycle No readdatavalid Count – counts Non Transfer Cycles due to slave not having
read data
•
•
•
•
•
•
Altera Corporation
Optimizing the Controller
Send Feedback
EMI_DG
2014.12.15
Document Revision History
13-19
• Non-Transfer Cycle Master Write Idle Count – counts Non Transfer Cycles due master not issuing
command or pause in write burst
• Non-Transfer Cycle Master Idle Count – counts Non Transfer Cycles due master not issuing
command anytime
• System Efficiency – The percentage of all Avalon-MM cycles where the interface is transferring data.
Refreshes and idle time are not taken into consideration when calculating efficiency.
• System Efficiency (During user access) – Tracks the efficiency when transactions are occurring,
which is a reflection on waitrequest. It is defined as: Transfer Count/(Efficiency Monitor Cycle Count Non-Transfer Cycle Master Idle Count)
• Minimum Read Latency – The lowest of all read latencies, which is measured by time between a read
command is being accepted by the Controller till the first beat of read data is presented to the driver.
• Maximum Read Latency – The highest of all read latencies, which is measured by time between a read
command is being accepted by the Controller till the first beat of read data is presented to the driver.
• Average Read Latency – The average of all read latencies, which is measured by time between a read
command is being accepted by the Controller till the first beat of read data is presented to the driver.
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
Removed occurrence of MegaWizard Plug-In Manager.
December
2013
2013.12.16
• Removed references to ALTMEMPHY.
• Changed chapter number from 14 to 13.
November
2012
3.1
Changed chapter number from 13 to 14.
June 2012
3.0
•
•
•
•
•
•
November
2011
2.0
Reorganized optimizing the controller information into an individual
chapter.
June 2011
1.0
Initial release.
Optimizing the Controller
Send Feedback
Expanded Auto-Precharge Commands section.
Expanded Bank Interleaving section.
Added Command Queue Look-Ahead Depth section.
Added Reordering section.
Added Efficiency Monitor section.
Added Feedback icon.
Altera Corporation
PHY Considerations
14
2014.12.15
EMI_DG
Send Feedback
Subscribe
The performance of your external memory interface is affected by several factors, including the data rate
at which core logic and the memory interface operate, the PHY block in use, the sequencer in use, shared
resources, and pin placement.
The following topics describe design considerations that affect the external memory interface perform‐
ance and the device resource usage for UniPHY-based designs.
Core Logic and User Interface Data Rate
The clocking operation in the PHY consists of the following two domains:
• PHY-memory domain—the PHY interfaces with the external memory device and is always at full-rate.
• PHY-AFI domain—the PHY interfaces with the memory controller and can either be at full, half or
quarter rate of the memory clock depending on your choice of controller and PHY.
For the memory controller to operate at full, half and quarter data rate, the UniPHY IP supports full, half
®
and quarter data rate. The data rate defines the ratio between the frequency of the Altera PHY Interface
(AFI) clock and the frequency of the memory device clock.
the following table compares the clock cycles, data bus width and address/command bus width between
the full, half, and quarter-rate designs.
Table 14-1: Ratio between Clock Cycles, Data Bus Width, and Address/Command Bus Width
Bus Width
Controller Clock
Cycles
Data Rate
AFI Data
AFI Address/Command
Full
1
2
1
Half
2
4
2
Quarter
4
8
4
In general, full-rate designs require smaller data and address/command bus width. However, because the
core logic runs at a high frequency, full rate designs might have difficulty in closing timing. Consequently,
for high frequency memory interface designs, Altera recommends that you use half-rate or quarter-rate
UniPHY IP and controllers.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
14-2
EMI_DG
2014.12.15
Hard and Soft Memory PHY
DDR3 SDRAM interfaces can run at much higher frequencies than DDR, DDR2 SDRAM, QDRII, QDRII
+ SRAM, and RLDRAM II interfaces. For this reason, Altera High-Performance Controller II and
UniPHY IPs do not support full rate designs using the DDR3 SDRAM interface. However, the DDR3 hard
®
controller in Arria V devices supports only full rate. Quarter-rate design support is for DDR3 SDRAM
interfaces targeting frequencies higher than 667 MHz.
Although it is easier to close timing for half-rate and quarter-rate designs due to the lower frequency
required on the core logic, full-rate interfaces offer better efficiency for low burst-length designs. This is
because of 1T addressing mode where the address and command signals are asserted for one memory
clock cycle. Typically half-rate and quarter-rate designs operate in 2T and 4T mode, respectively, in which
the address and command signals in 2T and 4T mode must be asserted for two and four memory clock
cycles, respectively. To improve efficiency, the controller can operate in Quasi-1T half-rate and Quasi-2T
quarter-rate modes. In Quasi-1T half-rate mode, two commands are issued to the memory on two
memory clock cycles. In Quasi-2T quarter-rate mode, two commands are issued to the memory on four
memory clock cycles. The controller is constrained to issue a row command on the first clock phase and a
column command on the second clock phase, or vice versa. Row commands include activate and
precharge commands; column commands include read and write commands.
Hard and Soft Memory PHY
The Arria V and Cyclone V device families support hard and soft memory interfaces. Hard memory
interfaces use the hard memory controllers and hard memory PHY blocks in the devices.
®
The hard memory PHY is instantiated together with the hard memory controller. In addition to the PHY
data path that uses the hard IP blocks in the devices (similar to how the soft PHY is implemented for
device families supported by UniPHY), the hard memory PHY also uses the dedicated hardware
circuitries in the devices for certain component managers in the sequencer, including the read write (RW)
and PHY managers.
In soft memory PHY, the UniPHY sequencer implements the Nios II processor and all the component
managers in the core logic. The hard memory PHY uses dedicated hard IP blocks in the Arria V and
Cyclone V devices to implement the RW and PHY managers to save LE resources, and to allow better
performance and lower latency.
®
Each Arria V and Cyclone V device has a fixed number of hard PHYs. Dedicated I/O pins with specific
functions for data, strobe, address, command, control, and clock must be used together with each hard
PHY.
For the list of hard PHY dedicated pins, refer to the device pin-out files for your target device on the PinOut Files for Altera Devices page of the Altera website.
The soft memory PHY gives you the flexibility to choose the pins to be used for the memory interface.
Soft memory PHY also supports wider interfaces than hard memory PHY.
Related Information
Pin-Out Files for Altera Devices
Sequencer
The UniPHY IP soft memory PHY supports the following two types of sequencer used for QDRII and
QDRII+ SRAM, and RLDRAM II calibration:
• RTL-based sequencer
• Nios II-based sequencer
Altera Corporation
PHY Considerations
Send Feedback
EMI_DG
2014.12.15
PLL, DLL and OCT Resource Sharing
14-3
The RTL-based sequencer performs FIFO calibration that includes adjusting the valid-prediction FIFO
(VFIFO) and latency FIFO (LFIFO) length. In addition to the FIFO calibration, the Nios II-based
sequencer also performs I/O calibration that includes adjusting delay chains and phase settings to centeralign the data pins with respect to the strobes that sample them. I/O calibration is required for memory
interfaces running at higher frequencies to increase read and write margins.
Because the RTL-based sequencer performs a relatively simpler calibration process, it does not require a
Nios II processor. For this reason, utilization of resources such as LEs and RAMs is lower than with the
Nios II-based sequencer.
For more information about the RTL-based sequencer and Nios II-based sequencer, refer to the
Functional Description—UniPHY chapter in volume 3 of the External Memory Interface Handbook .
For more information about the calibration process, refer to the “UniPHY Calibration Stages” section in
the Functional Description—UniPHY chapter of the External Memory Interface Handbook.
Related Information
Functional Description - UniPHY
PLL, DLL and OCT Resource Sharing
By default, each external memory interface in a device needs one PLL, one DLL, and one OCT control
block. The number of PLL, DLL and OCT resources in a device is fixed; however, these resources can be
shared by two or more memory interfaces when certain criteria are met. This method allows more
memory interfaces to fit into a device and allows the remaining resources to be used for other purposes.
By sharing PLLs, fewer PLLs are used, and the number of clock networks and clock input pins required is
also reduced. To share PLLs, the memory interfaces must meet the following criteria:
•
•
•
•
•
Run the same memory protocol (for example, DDR3 SDRAM)
Run at the same frequency
The controllers or PHYs run at the same rate (for example, half rate)
Use the same phase requirements (for example, additional core-to-periphery clock phase of 90°)
The memory interfaces are located on the same side of the device, or adjacent sides of the device if the
PLL is able to drive both sides.
Altera devices have up to four DLLs available to perform phase shift on the DQS signal for capturing the
read data. The DLLs are located at the device corners and some of the DLLs can access two adjacent sides
of the device. To share DLLs, the memory interfaces must meet the following criteria:
• Run at the same frequency
• The memory interfaces are located on the same side of the device, or adjacent sides of the device
accessible by the DLL.
Memory interface pins with OCT calibration require the OCT control block to calibrate the OCT
resistance value. Depending on the device family, the OCT control block uses either the RUP and RDN, or
RZQ pins for OCT calibration. Each OCT control block can only be shared by pins powered by the same
VCCIO level. Sharing of the OCT control block by interfaces operating at the same VCCIO level allows
other OCT control blocks in the device to support other VCCIO levels. The unused RUP/RDN or RZQ
pins can also be used for other purposes. For example, the RUP/RDN pins can be used as DQ or DQS
pins. To share an OCT control block, the memory interfaces must operate at the same VCCIO level.
For more information about the resources required for memory interfaces in various device families, refer
to the Planning Pin and FPGA Resources chapter.
PHY Considerations
Send Feedback
Altera Corporation
14-4
EMI_DG
2014.12.15
Pin Placement Consideration
For more information about how to share PLL, DLL and OCT control blocks, refer to the Functional
Description—UniPHY chapter in volume 3 of the External Memory Interface Handbook .
For more information about the DLL, refer to the external memory interface chapters in the respective
device handbooks.
For more information about the OCT control block, refer to the I/O features chapters in the respective
device handbooks.
Related Information
• Functional Description - UniPHY
• Planning Pin and FPGA Resources on page 3-1
Pin Placement Consideration
The Stratix V, Arria V, and Cyclone V device families use the PHY clock (PHYCLK) networks to clock
the external memory interface pins for better performance.
®
Each PHYCLK network is driven by a PLL. In Cyclone V and Stratix V devices, the PHYCLK network
spans across two I/O banks on the same side of the device. For Arria V devices, each PHYCLK network
spans across one I/O bank. All pins for a memory interface must be placed on the same side of the device.
For more information about pin placement guidelines related to the PHYCLK network, refer to the
External Memory Interfaces in Stratix V Devices chapter in volume 2 of the Stratix V Device Handbook,
External Memory Interfaces in Arria V Devices chapter in volume 2 of the Arria V Device Handbook, or
the External Memory Interfaces in Cyclone V Devices chapter in volume 2 of the Cyclone V Device
Handbook.
Certain device families do not use the PHYCLK network to allow greater flexibility in pin placement.
These device families support the following interface types:
• Wraparound interfaces, in which data pins from a memory interface are placed on two adjacent sides
of a device.
• Split interfaces, in which data pins are place on two opposite I/O banks.
The x36 emulated mode is supported in certain device families that do not use the PHY clock network for
QDRII and QDRII+ SRAM x36 interfaces. In x36 emulated mode, two x18 DQS groups or four x9 DQS
groups can be combined to form a 36-bit wide write data bus. Also, two x18 DQS groups can be combined
to form a 36-bit wide read data bus. This method allows a device to support x36 QDRII and QDRII+
SRAM interfaces even if the device does hot have the required number of x36 DQS groups.
Some device families might support wraparound or x36 emulated mode interfaces at slightly lower
frequencies.
For information about the devices that support wraparound and x36 emulated mode interfaces, and the
supported frequency for your design, refer to the External Memory Interface Spec Estimator page on the
Altera website
For more information about x36 emulated mode support for QDRII and QDRII+ SRAM interfaces, refer
to the Planning Pin and FPGA Resources chapter.
Related Information
• Planning Pin and FPGA Resources on page 3-1
• External Memory Interfaces in Stratix V Devices
• External Memory Interfaces in Arria V Devices
Altera Corporation
PHY Considerations
Send Feedback
EMI_DG
2014.12.15
Document Revision History
14-5
• External Memory Interfaces in Cyclone V Devices
• External Memory Interface Spec Estimator
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
Maintenance release.
December
2013
2013.12.16
Changed chapter number from 15 to 14.
November
2012
3.1
Changed chapter number from 14 to 15.
June 2012
3.0
Added Feedback icon.
November
2011
1.0
Initial release.
PHY Considerations
Send Feedback
Altera Corporation
Power Estimation Methods for External
Memory Interfaces
15
2014.12.15
EMI_DG
Send Feedback
Subscribe
The following table lists the Altera -supported power estimation methods for external memory interfaces.
®
Table 15-1: Power Estimation Methods for External Memory Interfaces
Method
Early power
estimator (EPE)
Vector Source
UniPHY Support
Not applicable
v
Vector-less
Not applicable
PowerPlay power
analysis (PPPA)
v
Vector-based
PPPA
RTL simulation
v
Zero-delay
simulation
v
(2)
Timing simulation
Accuracy
Estimation Time
Lowest
Fastest
Highest
Slowest
(1)
(2)
Notes to Table:
1. To decrease the estimation time, you can skip power estimation during calibration. Power consump‐
tion during calibration is typically equivalent to power consumption during user mode.
2. Power analysis using timing simulation vectors is not supported.
When using Altera IP, you can use the zero-delay simulation method to analyze the power required for
the external memory interface. Zero-delay simulation is as accurate as timing simulation for 95% designs
(designs with no glitching). For a design with glitching, power may be under estimated.
For more information about zero-delay simulation, refer to the Power Estimation and Analysis section in
®
the Quartus II Handbook.
© 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are
trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance
of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any
products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information,
product, or service described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device
specifications before relying on any published information and before placing orders for products or services.
www.altera.com
101 Innovation Drive, San Jose, CA 95134
ISO
9001:2008
Registered
15-2
EMI_DG
2014.12.15
Performing Vector-Based Power Analysis with the PowerPlay Power Analyzer
Note: The size of the vector file (. vcd) generated by zero-delay simulation of an Altera DDR3 SDRAM
High-Performance Controller example design is 400 GB. The . vcd includes calibration and user
mode activities. When vector generation of calibration phase is skipped, the vector size decreases to
1 GB.
Related Information
Quartus II Handbook
Performing Vector-Based Power Analysis with the PowerPlay Power
Analyzer
To perform vector-based power analysis with the PowerPlay Power Analyzer using zero-delay simulation,
follow these steps:
1. Compile your design in the Quartus II software to generate a Netlist <project_name>. vo file for your
design.
Note:
2. The <project_name>.vo is generated in the last stage of a compile EDA Netlist Writer.
3. Open the <project_name>.vo file in a text editor.
4. In the <project_name>.vo file, locate the include statement for <project_name>.sdo, and comment-out
that include statement. Save the <project_name>.vo file.
5. Create a simulation script containing device model files and libraries and design specific files:
• Netlist file for the design, <project_name>.vo
• RTL or netlist file for the memory device
• Testbench RTL file
6. Compile all the files.
7. Invoke the simulator with commands to generate . vcd files.
8. Generate .vcd files for the parts of the design that contribute the most to power dissipation.
9. Run simulation.
10.Use the generated .vcd files in the PowerPlay Power Analyzer as the signal activity input file.
11.Run the PowerPlay Power Analyzer.
Note: For more information about estimating power, refer to the Power Estimation and Analysis section
in the Quartus II Handbook.
Related Information
Quartus II Handbook
Document Revision History
Date
Version
Changes
December
2014
2014.12.15
Maintenance release.
August 2014
2014.08.15
Maintenance release.
Altera Corporation
Power Estimation Methods for External Memory Interfaces
Send Feedback
EMI_DG
2014.12.15
Document Revision History
Date
Version
Changes
December
2013
2013.12.16
November
2012
2.2
Changed chapter number from 15 to 16.
June 2012
2.1
Added Feedback icon.
November
2011
2.0
Reorganized power estimation methods section into an individual
chapter.
April 2010
1.0
Initial release.
• Removed references to ALTMEMPHY.
• Changed chapter number from 16 to 15.
Power Estimation Methods for External Memory Interfaces
Send Feedback
15-3
Altera Corporation
External Memory Interface Handbook
Volume 3: Reference Material
Last updated for Altera Complete Design Suite: 14.1
EMI_RM
Subscribe
2014.12.15
Send Feedback
101 Innovation Drive
San Jose, CA 95134
www.altera.com
TOC-2
External Memory Interface Handbook Volume 3: Reference Material
Contents
Functional Description—UniPHY......................................................................1-1
I/O Pads.........................................................................................................................................................1-2
Reset and Clock Generation....................................................................................................................... 1-3
Dedicated Clock Networks......................................................................................................................... 1-3
Address and Command Datapath............................................................................................................. 1-4
Write Datapath.............................................................................................................................................1-5
Leveling Circuitry............................................................................................................................ 1-5
Read Datapath.............................................................................................................................................. 1-7
Sequencer...................................................................................................................................................... 1-8
Nios II-Based Sequencer................................................................................................................. 1-9
RTL-based Sequencer....................................................................................................................1-13
Shadow Registers........................................................................................................................................1-15
Shadow Registers Operation........................................................................................................ 1-17
UniPHY Interfaces.....................................................................................................................................1-17
The DLL and PLL Sharing Interface........................................................................................... 1-18
The OCT Sharing Interface.......................................................................................................... 1-19
UniPHY Signals..........................................................................................................................................1-21
PHY-to-Controller Interfaces.................................................................................................................. 1-25
Using a Custom Controller...................................................................................................................... 1-30
AFI 4.0 Specification..................................................................................................................................1-31
Bus Width and AFI Ratio............................................................................................................. 1-32
AFI Parameters...............................................................................................................................1-32
AFI Signals...................................................................................................................................... 1-34
Register Maps............................................................................................................................................. 1-41
UniPHY Register Map...................................................................................................................1-42
Controller Register Map............................................................................................................... 1-45
Ping Pong PHY.......................................................................................................................................... 1-46
Ping Pong PHY Feature Description.......................................................................................... 1-46
Ping Pong PHY Architecture....................................................................................................... 1-47
Ping Pong PHY Operation........................................................................................................... 1-49
Efficiency Monitor and Protocol Checker..............................................................................................1-50
Efficiency Monitor......................................................................................................................... 1-50
Protocol Checker............................................................................................................................1-50
Read Latency Counter................................................................................................................... 1-50
Using the Efficiency Monitor and Protocol Checker................................................................1-50
Avalon CSR Slave and JTAG Memory Map...............................................................................1-51
UniPHY Calibration Stages......................................................................................................................1-53
Calibration Overview.................................................................................................................... 1-54
Calibration Stages.......................................................................................................................... 1-54
Memory Initialization................................................................................................................... 1-55
Stage 1: Read Calibration Part One—DQS Enable Calibration and DQ/DQS Centering...1-55
Stage 2: Write Calibration Part One............................................................................................1-59
Altera Corporation
External Memory Interface Handbook Volume 3: Reference Material
TOC-3
Stage 3: Write Calibration Part Two—DQ/DQS Centering.................................................... 1-61
Stage 4: Read Calibration Part Two—Read Latency Minimization........................................1-61
Calibration Signals.........................................................................................................................1-61
Calibration Time............................................................................................................................1-61
Document Revision History.....................................................................................................................1-62
Functional Description—Arria 10 EMIF............................................................2-1
Supported Memory Protocols.................................................................................................................... 2-2
Key Differences Compared to UniPHY IP and Previous Device Families.......................................... 2-2
Migrating from Previous Device Families................................................................................................2-2
Arria 10 EMIF Architecture: Introduction...............................................................................................2-3
Arria 10 EMIF Architecture: I/O Subsystem............................................................................... 2-4
Arria 10 EMIF Architecture: I/O Column....................................................................................2-4
Arria 10 EMIF Architecture: I/O AUX......................................................................................... 2-5
Arria 10 EMIF Architecture: I/O Bank......................................................................................... 2-5
Arria 10 EMIF Architecture: I/O Lane..........................................................................................2-8
Arria 10 EMIF Architecture: Input DQS Clock Tree............................................................... 2-11
Arria 10 EMIF Architecture: PHY Clock Tree.......................................................................... 2-12
Arria 10 EMIF Architecture: PLL Reference Clock Networks................................................ 2-12
Arria 10 EMIF Architecture: Clock Phase Alignment..............................................................2-13
Hardware Resource Sharing Among Multiple EMIFs..........................................................................2-14
I/O Aux Sharing............................................................................................................................. 2-15
I/O Bank Sharing........................................................................................................................... 2-15
PLL Reference Clock Sharing.......................................................................................................2-16
Core Clock Network Sharing....................................................................................................... 2-17
RZQ Pin Sharing............................................................................................................................ 2-17
Arria 10 EMIF IP Component................................................................................................................. 2-17
Instantiating Your Arria 10 EMIF IP in a Qsys Project............................................................2-18
File Sets............................................................................................................................................ 2-21
Customized readme.txt File..........................................................................................................2-22
Clock Domains...............................................................................................................................2-22
ECC in Arria 10 EMIF IP..............................................................................................................2-23
Examples of External Memory Interface Implementations for DDR4.............................................. 2-24
Arria 10 EMIF Sequencer......................................................................................................................... 2-29
Arria 10 EMIF Calibration....................................................................................................................... 2-30
Calibration Stages ......................................................................................................................... 2-30
Calibration Stages Descriptions................................................................................................... 2-31
Calibration Algorithms................................................................................................................. 2-32
Calibration Flowchart................................................................................................................... 2-34
Hard Memory Controller Rate Conversion Feature.............................................................................2-34
Compiling Arria 10 EMIF IP with the Quartus II Software................................................................ 2-35
Instantiating the Arria 10 EMIF IP............................................................................................. 2-35
Setting I/O Assignments in Arria 10 EMIF IP...........................................................................2-35
Debugging Arria 10 EMIF IP................................................................................................................... 2-35
External Memory Interface Debug Toolkit................................................................................2-36
On-Chip Debug for Arria 10........................................................................................................2-36
Configuring Your EMIF IP for Use with the Debug Toolkit...................................................2-36
Arria 10 EMIF Debugging Examples.......................................................................................... 2-37
Altera Corporation
TOC-4
External Memory Interface Handbook Volume 3: Reference Material
Arria 10 EMIF for Hard Processor Subsystem...................................................................................... 2-39
Restrictions on I/O Bank Usage for Arria 10 EMIF IP with HPS........................................... 2-40
Arria 10 EMIF Ping Pong PHY................................................................................................................2-42
Ping Pong PHY Feature Description.......................................................................................... 2-42
Ping Pong PHY Architecture....................................................................................................... 2-44
Ping Pong PHY Limitations......................................................................................................... 2-45
Ping Pong PHY Calibration......................................................................................................... 2-47
Using the Ping Pong PHY............................................................................................................ 2-47
Ping Pong PHY Simulation Example Design............................................................................ 2-47
AFI 4.0 Specification..................................................................................................................................2-48
Bus Width and AFI Ratio............................................................................................................. 2-48
AFI Parameters...............................................................................................................................2-48
AFI Signals...................................................................................................................................... 2-50
Memory Mapped Register (MMR) Tables............................................................................................. 2-57
ctrlcfg0: Controller Configuration.............................................................................................. 2-59
ctrlcfg1: Controller Configuration.............................................................................................. 2-61
ctrlcfg2: Controller Configuration.............................................................................................. 2-63
ctrlcfg3: Controller Configuration.............................................................................................. 2-64
ctrlcfg4: Controller Configuration.............................................................................................. 2-65
ctrlcfg5: Controller Configuration.......