DDR4 Simulation Guidelines
DDR4 Simulation Guidelines
DDR4 Simulation Guidelines
Introduction
These guidelines were created for use with the existing Memory Design Guidelines and provide
information on the simulations necessary to create the information needed for those guidelines that are
very important to. This set of guidelines will be created using Arria 10 IBIS models.
http://www.altera.com/literature/hb/external-memory/emi_plan.pdf
The EMIF handbook guidelines were created using useful numbers for spacing of the traces and other
constraints for the system. If a 2D simulator available figures can be created for signal parallelism rules
and length matching. Also duty cycle distortion for clocks and DQS signals can be examined to avoid
timing problems in systems with high data rates.
In the document below the user will be lead through the simulation process using the 2D HyperLynx to
determine the optimum drive and termination levels for the pseudo open drain (POD) DQ/DQS
interface and create informed parallelism constraints for the topology.
Contents
Introduction .................................................................................................................................................. 1
Background Knowledge Source ................................................................................................................ 1
Chapter 1: Background ................................................................................................................................. 5
Properties of DDR4 systems that have an effect on simulation ............................................................... 5
General Simulation Method...................................................................................................................... 5
Topology ................................................................................................................................................... 6
Fly-by with equidistant memories ........................................................................................................ 6
Fly-by with “Ping Pong” configuration .................................................................................................. 6
Pre-Layout Simulations ............................................................................................................................. 7
Chapter 2: Board data and Simulation Models ............................................................................................. 7
Stackup...................................................................................................................................................... 7
Stackup setup in HyperLynx .................................................................................................................. 7
Simulation Models .................................................................................................................................... 8
Altera IBIS models from the website .................................................................................................... 8
Creating the Altera IBIS File from a Quartus Project ............................................................................ 9
Memory Vendor IBIS Files ................................................................................................................... 10
EBD Simulation Files............................................................................................................................ 10
Chapter 3: Setting up HyperLynx ................................................................................................................ 11
Locating Model Directories ..................................................................................................................... 11
Stackup Entry .......................................................................................................................................... 12
Opening a new schematic ....................................................................................................................... 12
Chapter 4: Command/Address Simulation and Analysis ............................................................................ 13
C/A Required simulation sets.................................................................................................................. 13
Basic C/A ISI, channel drive and termination simulation ........................................................................ 13
C/A Drive and Termination ................................................................................................................. 13
New Schematic.................................................................................................................................... 13
Stackup entry ...................................................................................................................................... 13
Creating the topology ......................................................................................................................... 14
Simulation lossy channel setup ........................................................................................................... 20
Nominal single channel ISI simulation run .......................................................................................... 20
Crosstalk Simulation Setup for C/A Channels for Parallelism ................................................................. 25
Crosstalk simulation theory ................................................................................................................ 29
C/A Parallelism Simulation and Analysis ............................................................................................. 30
Chapter 5: Clock Simulation and Analysis ................................................................................................... 36
Basic Clock Schematic ............................................................................................................................. 36
Pre-Layout Clock Simulation ................................................................................................................... 38
Pre layout clock crosstalk ........................................................................................................................ 40
Chapter 6: DQ/DQS Channel Simulation and Analysis ................................................................................ 45
Termination............................................................................................................................................. 46
Initial setup ......................................................................................................................................... 46
Nominal Topology to the Memory Device .......................................................................................... 47
Setting up and analyzing ISI termination simulations for DQ signals ..................................................... 48
Nominal Topology from the Memory Device ..................................................................................... 51
Transmit Eye Mask Opening ............................................................................................................... 53
Receive Eye Mask Opening ................................................................................................................. 54
Crosstalk Constraint Simulations ............................................................................................................ 54
Example of stripline crosstalk simulation for parallelism rules .......................................................... 54
A crosstalk topology ............................................................................................................................ 55
Setting up the simulations .................................................................................................................. 55
Running the Simulations ..................................................................................................................... 56
Analysis of crosstalk for parallelism rules ........................................................................................... 57
DQ/DQS Simulation for ISI and Crosstalk Effects ............................................................................... 58
ISI......................................................................................................................................................... 58
Stackup and Topology Setup in HyperLynx ......................................................................................... 58
Termination variation simulation ....................................................................................................... 58
Channel Simulation for crosstalk effects ............................................................................................ 60
Channel Simulation for SSN effects ........................................................................................................ 61
Chapter 7: Further Investigations ............................................................................................................... 61
Post Layout Simulation ........................................................................................................................... 61
Further Reading ...................................................................................................................................... 61
EMIF Guidelines for Layout and Timing .............................................................................................. 62
Simulating for Timing Closure ................................................................................................................. 62
Check these things .................................................................................................................................. 63
Chapter 1: Background
Table 1
1. The Address, Command and Clock signals all use a threshold of 0.49*VCC. For data rates up to
2133MTs the thresholds are +/-125mv. For 2400MTs the thresholds are +/-100mv.
2. POD12 is the acronym for the Pseudo Open Drain 1.2V interface. This interface is terminated to
VCC(1.2V) to reduce simultaneous signaling noise and reduce the complexity of the system. The
threshold voltage is therefore not 1/2VCC but something much higher. This voltage also
depends on the strength of the driver in the long term so DDR4 memory devices have an
adaptable threshold built in and bus inversion is included to help minimize DC drift in the
system. The DDR4 JEDEC specification for drive strength is 39 Ohms.
3. The specification for DDR4 gives a clock range of 1.25ns maximum to 0.625ns minimum or
800MHz to 1600MHz.
4. The data rate is equal to the clock rate for 1T and half the clock rate for 2T. Using the 2T timing
allows much more time for the signals to stabilize.
Topology
DDR4 was designed to use a Fly-by topology for the Command/Address and Clock system. The DQ/DQS
systems use read and write leveling to provide accurate timing for the exchange of data. The simulation
set necessary for each group is unique.
Mem0 Mem2
Additional sets of Memory
B
Mem1 Mem3
The challenge with the “Ping Pong” arrangement is lower impedance due to the capacitance of closely
associated memory parts and branching of the controlled impedance paths.
Pre-Layout Simulations
Pre-layout simulations provide information on what is needed to create a successful topology. A
schematic is created using symbols for all of components and connections in the desired topology.
Simulations are executed to provide information on the expected channel response and a graphical
display is shown to use in analyzing the signal at the source and destination(s).
Stackup
In pre-layout simulations it is best to use the stackup that will be used for the PCB. Sometimes the final
stackup is not available and one a simulation stackup can be created using the dielectric constant (Er)
and the dielectric loss tangent (tanδ) of what will be the target dielectric. The Er only determines the
propagation delay so whatever its value only changes the timing of the wave. The tanδ is important
because it absorbs the high frequency portions of the waveform. This loss removes harmonics, causing
smoothing of the corners of the waveforms and decreasing the risetime, therefor delaying the time of
flight. A higher loss dielectric can be used to reduce the edge speed of a signal and reduce reflections as
long as it does not interfere with transceiver signals that may accidently be placed on the routing layers
for memory signals.
It is critical that, for microstrip simulations, the characteristics of the soldermask be known. Usually
soldermask materials have a really high tanδ that make life interesting for fast edges.
If you have significant high-speed signal runs on the microstrip layer then be sure to have accurate data
on the soldermask layer.
After the circuit board layout is created, it can be imported into HyperLynx and the stackup will come
with it. It is therefore important to be sure that the stackup for the board has accurate data on the
actual board parameters for Dk and Df. (Er and Tanδ).
Simulation Models
For pre-layout simulations there are two options for obtaining IBIS files for use with HyperLynx. Models
can be obtained from the Altera website or created from a Quartus® II project. Two types of models can
be used, depending on where you are in the design of the FPGA.
The first is a set of IBIS models for all the IO capability available for the FPGA. These models have a
generic set of values for the package RLC values.
The second is a set of IBIS models with models specific to the implementation and accurate RLC values
for each pin. This file is very much smaller than the one you will get from the website.
https://www.altera.com/support/support-resources/download/board-layout-test/ibis/ibs-
ibis_index.html
You will need to place the unzipped data from the file somewhere you can find easily from HyperLynx.
Creating the Altera IBIS File from a Quartus Project
To generate an IBIS file the project is to the point where:
From the Quartus® II project, under the compilation flow, select the “EDA Netlist Writer” section and
double click on “Edit Settings”:
Select the IBIS format, the latest IBIS version, enable the model selector, and the per pin RLC model
The resulting IBIS file, found in the directory for the Quartus project, will contain all of the models
needed for successful pre and post layout simulation.
Stackup Entry
Next, set up the stackup with the materials you will be using. The graphic, above is about the minimum.
The remainder of the pre-layout section of this document will use the above stackup.
You can place IBIS drivers and receivers, transmission lines, terminators and other topology artifacts.
Examples will be shown for each topology as we go.
Chapter 4: Command/Address Simulation and Analysis
The Command/Address (C/A) system for DDR4 memories are SSTL signals. DDR4 differs from previous
DDRx families in one respect, the 2T timing option for the C/A signals. This means that the data rate can
be ½ of the SDR timing, allowing for a fairly long settling time when using this option.
New Schematic
Stackup entry
3. In the schematic, open the stackup and fill it out with the board’s
materials and dimensions. Be sure to use the dielectric tab to update the Loss Tangent. Then
click OK to save it
4. Since there will be more simulations coming up, use Setup -> Stackup -> Export to save the
stackup so you can import it into a new schematic and save having to re-enter stackup data
Add a symbol for each type of component in the topology being simulated
2. Double click on U1 and select the driver for the topology. NOTE: It is a good idea to open up the
IBIS file, arria10.ibs, and read the notes section be familiar with the notation used for driver
capabilities
4. The typical RLC values for all pins in this IBIS file are: 289milliohms, 2.16nH, and 1.43pf.
5. Repeat for U2 with the desired receiver
6. The RLC values for this pin are: 191.0milliohms 1.111nH 0.299pF, these values will be slightly
different from signal to signal
7. Set U1 up as an output
8. Click OK to return to the schematic where more accurate symbols have replaced the originals
9. Next, add transmission lines to the topology for the interconnect by selecting the transmission
line symbol
12. Click on the Values tab then place the trace on the proper layer and adjust the linewidth get the
system near your target impedance
13. On clicking OK the dialog closes and the symbols can be copied and arranged to fill up the
topology, in this case an array of four memory chips. Connection are made by clicking on a
symbol pin and dragging to another pin
14. A termination needs to be added to the topology and wired in
15. Double click on the termination resistor and assign 50 for the value, then go to Setup -> Power
Supplies and change VpullUp to 0.6 to get the termination values correct
16. Double click on each transmission line segment and set the length value in the values tab to
those expected for the topology
Simulation lossy channel setup
DDR4 memory systems operate at high speed and the drivers have fast slew rates. It is important that
pre-layout simulations be ran with realistic material callout and lossy simulation enabled. Be sure that
the Enable Lossy Simulation icon is blue before continuing.
Note that, under “IC modeling” Typical is selected. Altera recommends using this setting.
For a 1066 simulation this works out to using a 533.3333 frequency for the channel.
Then select the eye diagram option and the system should be set up for the simulation.
1. Select the devices you want to see the waveform for from the list. All of the inputs are of
interest just now so select U2 through U5 of the latest waveforms. We also want to see the
waveforms at the die instead of the pin because at these rates there is often a real difference
2. Run the simulation to see how things may look by clicking “Start Simulation” in the upper right
hand corner of the Digital Oscilloscope. Then zoom in on the resulting eye by clicking on the
zoom to extents button on the scope.
There seems to be some sort of problem here and it does not seem to be a reflection from the
end of the chain. The signal at U3 actually rings back to the threshold. Though it settles later
the eye opening will be compromised.
3. The only selections for the driver are 40 Ohms and 60 Ohms. We will now match the impedance
of the transmission lines to 40 Ohms, the termination to 39 Ohms, and see what the waveforms
look like
4. It looks like using A lower board impedance could be really good. There is a push to use lower
impedances for transceiver channels because matching to the BGA, vias and connector cutouts
is much easier when the board impedance is lower. It is a good idea to work with the whole
team when making these decisions.
U4.1706 TL4 R4
U2.1706
TL2 R2
U1.1706
TL1 R1
When the parts have been arrayed and connected the T-lines will be coupled together by doing the
following.
1. Double click on TL4 to open the Edit Transmission Line pop-up and then click on the Stackup
option under Coupled
2. The pop-up will change to the coupled line version. Click OK to start the new coupled region.
3. Next, double click on TL2 and click on the Coupled Stackup button then click OK. Do not select
“(New-Coupling)” as we are adding the transmission line to the existing coupling.
4. Repeat the above sequence, progressing down the array of T-lines to complete the topology.
You will observe dashed lines indicating the coupling between the T-lines.
Design File: Command_Address_prll.ffs <G:\ _ddr4_simulation\ Cmmd_Addr\ >
HyperLynx LineSim v9.2
U4.1706 TL4 R4
U2.1706
TL2 R2
U1.1706
TL1 R1
There is a lot of information about the array in this tab of the pop-up. Observe TL1 is selected and the
position of TL1 is shaded in the physical view.
2. Select the Run Interactive Sweeps… icon or select Simulate SI -> Run Interactive Sweeps
to open the Sweep Manager.
3. Select Coupling regions and then the coupling setup where all the T-lines are
6. Next the separation between the T-lines will need to be swept. Select the first Separation
between… and click Add Range
7. Enter in some spacing values and increment data, then click OK
8. Now select the separation just finished then click Copy Range
9. Then select the next Separation and click on Paste Range as a Lock to connect them together.
10. Repeat for the other separation selections
11. Now everything is set up except for the drivers. Close the Sweep Manager and set the driver for
U1 as Stuck High
12. The other drivers are just left as Output to switch together and provide the highest aggressor
interference
13. Reopen the Sweep Manager and click Run Sweeps. Here we will use the settings from the
termination run and not worry about the frequency of the clock because the slew rate of the
drivers is the determining factor for coupling. Set up the simulation for eye diagram to get some
randomization of the coupling, select the termination resistor of the victim driver for analysis
and click Start Sweeps.
14. After the sweeps finish there should be an output that looks like this.
16. Open the .csv file in a spreadsheet to enable analysis. This will be a huge spreadsheet but there
is room at the top to calculate the crosstalk in db for the data. This is created by taking the
maximum minus the minimum voltage for each column, dividing this by 1.2 and then calculating
20*log() of that value. It is up to the engineer to select the parallelism value for the interface.
Many systems have been created using the value for -20db with good success.
Chapter 5: Clock Simulation and Analysis
Clock simulation is very much like the C/A analysis except it is differential and very sensitive to Duty
Cycle Distortion (DCD). Setting up the simulation is much complicated by the need to start with coupled
differential signals with balanced length and using differential IBIS models. To this point we have the
tools for most of this and the drivers are just named differently as disclosed in the IBIS file header.
Because the 40 Ohm drivers worked well with 40 Ohm transmission lines it will be a good place to start.
To place a differential IBIS part, select the differential driver symbol . Then assign a differential
driver to the symbol. When you add the differential model, the opposite polarity model is assigned to
the other output.
Once you have the Arria 10 model assigned, repeat the process for the memory devices by adding a
differential symbol from the ribbon ( ) and assigning the proper model from the memory IBIS file.
Once you have one instantiated, copy it for the remainder of the memory parts so you do not have to
repeat the assignment.
Place T-lines, adjust their lengths and couple the differential segments according to the board stackup
plan. Be careful to give each segment its own coupling region.
U2 U3 U4 U5
F7 F7 F7 F7
F8 F8 F8 F8
MT40L512M8HX MT40L512M8HX MT40L512M8HX MT40L512M8HX
VpullUp
CK_t CK_t CK_t CK_t
0.6V
Net001 Net001 Net001 Net001
Net002 Net002 Net002 Net002
TL1 TL3 TL5 TL7 TL9 R1
U1
699 40.1 ohms 40.1 ohms 40.1 ohms 40.1 ohms 40.1 ohms 39.0 ohms
312.451 ps 62.490 ps 62.490 ps 62.490 ps 62.490 ps
2.000 in 0.400 in 0.400 in 0.400 in 0.400 in
Coupled Stackup Coupled Stackup Coupled Stackup Coupled Stackup Coupled Stackup
700 Net001 Net001 Net001 Net001 Net001
Arria10 TL2 TL4 TL6 TL8 TL10 R2
dsstl12_rtiop_r40c...
Net001
Net002
40.1 ohms 40.1 ohms 40.1 ohms 40.1 ohms 40.1 ohms 39.0 ohms
312.451 ps 62.490 ps 62.490 ps 62.490 ps 62.490 ps
2.000 in 0.400 in 0.400 in 0.400 in 0.400 in
Coupled Stackup Coupled Stackup Coupled Stackup Coupled Stackup Coupled Stackup
Net002 Net002 Net002 Net002 Net002
3. Run the simulation to see the waveform. If there are not at least 10 cycles of the signal, then
increase the horizontal scale to obtain many cycles so that the DC balance is good. Then reduce
the horizontal scale and use the position bar on the display to scroll to the right end to observe
the waveforms for the clock.
4. There are a couple of things that are of interest in these waveforms. One of them is the
overshoot difference, especially with reference to the signal U2. The other is duty cycle
distortion (DCD). The DDR4 JEDEC specification indicates that DCD is constrained to fairly small
values. Turn off all the waveforms except U2 and analyze the zero crossing time for each half
cycle.
This turns out to be 468.6ps for the positive side and 467.4 for the negative side. This is not a
big difference. The DCD is really low, so we are probably good to go with a 40 Ohm driver, 40
Ohm board impedance and 39 Ohm termination.
5. Other simulations can be created with different impedance driver/board/termination values to
see what happens. This effort is and optional exercise for the designer to see what seems best.
3. Set up the simulation for crosstalk by opening the interactive sweeps window
4. Add ranges for the length and couple separation, use the “Copy Range” and “Paste Range as a
Lock” buttons when doing more than one separation in sync. This limits the number of
simulations that need to be run
5. Click on Run Sweeps and set the oscilloscope up for Standard operation, Global Stimulus,
1066.666MHz Oscillator at 50% duty cycle, then double click on <Insert diff probe>
6. Select the two resistors for the victim channel, in the case of the schematic, above, these are R1
and R2 then click OK
7. The only signal that needs to be selected for the simulation is the one just added, the
differential probe
8. Select Start Sweeps and zoom in on the results, notice that there seems to be very little coupling
when starting with the nominal, 8mils, differential spacing
Termination
The nominal impedance for the DDR4 has been set to 40 Ohms during the C/A simulations. A DQ
topology, below, was created to determine what the optimal impedance would be for the drivers and
receivers.
Initial setup
Create a single ended topology with the same T-line as the CA system with a single ended driver on each
end using the single line model placement on the top ribbon.
Selecting the driver for the Arria 10 is fairly straight forward. Double click on the symbol for U1.1 and
select a POD symbol with 40 ohm drive and termination
and click OK.
The memory device IBIS file was created to use sub-models and selecting them is done using the model
selector. The user should also be familiar with how the IBIS file provider meant for the models to be
used. The Micron models provide drive termination separate from receive termination to keep the
models clean so the simulation requires changing the sub-model and not just changing it from input to
output.
1. Double click on U2 to bring up the Assign Models pop-up then click on Select to bring up the
Select IC Model pop-up
Open up the interactive sweep manager by clicking on the icon - - or using the dropdown:
Simulate SI -> Run Interactive Sweeps
1. FPGA Drive strengths of 34, 40, 48, and 60 Ohms and terminations of 34, 40, 48, and 60 Ohms
were selected for the memories. The impedance of the T-line is still 40. Select Run Sweeps to
get to the Oscilloscope window.
2. Set the simulation up for an eye diagram at 1066.667MHz and select U2 for analysis and click
“Start Sweeps” to get the job done.
3. When the simulation is complete, open the probes pop-up by clicking on the + indicated below
4. You can expand the pop-up width to see the characteristics of the drivers and receivers, and
make changes to the color of each to compare the waveforms
5. The best eye is given when the driver and termination match the T-line impedance
6. If you use imbalanced drivers and terminations to achieve an eye with more vertical height it
will not help in the long run. One must be careful not to introduce excessive overshoot or
deterministic jitter around the crossing point.
Nominal Topology from the Memory Device
Design File: isi_pod.ffs <C:\ _AN_Docs\ DDR4_sim_guide\ >
HyperLynx LineSim v9.2
49.4 ohms
468.677 ps
10AS048E5F29I3S... 3.000 in MT40L512M8HX
pod12_rtpin_g48c Coupled Stackup DQ0
Net001 Net001 Net001
Running a set of sweeps as was done above for the transmit eye the following waveforms were
observed at the die.
The same simulation created with the observation point at the pin of the FPGA looks like this.
This illustrates the apparent RLC interference with the signal when observed with an oscilloscope. This
simulation result should be provided in a signal integrity report for the interface so the engineers in the
lab will not be confused with the measurements they may make.
The best waveform set for the receive system was one that used 34 Ohm for the ODT and OCT values as
seen here.
The training that must take place during initialization for any DDR4 implementation establishes the best
level for the internal threshold voltage for the entire chip. As a result of this training the best possible
eye should resul0t.
There may be more than one layer of stripline traces in the case where a dual stripline stackup is
involved. If the thickness and of the board is not as much an issue as the isolation between signals then
single stripline an excellent solution. In the case of a PCIe form factor board that can only be 0.062”
thick, then dual stripline will be necessary.
This simulation is for a stripline layer. The simulation topology for a microstrip layer is similar.
Design File: pod_couple_4_40_7.ffs <C:\ _AN_Docs\ DDR4_sim_guide\ >
HyperLynx LineSim v9.2
49.3 ohms
468.677 ps
Arria10 3.000 in MT40L512M8HX
pod12_rtnio_g40c... Coupled Stackup DQ0
Net001 Net001 Net001
U2.1344 U7.C2
TL2
49.3 ohms
468.677 ps
Arria10 3.000 in MT40L512M8HX
pod12_rtnio_g48c... Coupled Stackup DQ0
Net002 Net002 Net002
U3.1328 U8.C2
TL3
49.3 ohms
468.677 ps
Arria10 3.000 in MT40L512M8HX
pod12_rtnio_g40c... Coupled Stackup DQ0
Net003 Net003 Net003
U4.1328 U9.C2
TL4
49.3 ohms
468.677 ps
Arria10 3.000 in MT40L512M8HX
pod12_rtnio_g40c... Coupled Stackup DQ0
Net004 Net004 Net004
U5.1328 U10.C2
TL5
49.3 ohms
468.677 ps
Arria10 3.000 in MT40L512M8HX
pod12_rtnio_g40c... Coupled Stackup DQ0
Net005 Net005 Net005
Open up the interactive sweep manager by clicking on the icon - - or using the dropdown:
Simulate SI -> Run Interactive Sweeps
The length of the T-lines from 1 inch to 6 inches in 0.5 inch increments
The spacing between the T-lines from 4mils to 10mils
The simulation was run at 1066.666MHz for this system. The results for a faster or slower clock would
not matter much as the coupling is related to the risetime of the signal and not the repetition rate.
You may need to adjust the sweep parameters to suit the needs of your system.
This looks very messy for a good reason. The beginning spacing of the lines for some cases is very close
and the coupling is fairly high for those cases, also the propagation time for each length is different.
Next, export the waveform to a comma separated variable (.csv) file using the “Save/Load” button.
When the .csv file is opened with a spreadsheet program, formulas can be written to extract the peak to
peak noise contribution for each set of spacing and lengths. The amount of crosstalk that can be
tolerated should be determined by the system architect. The crosstalk will have an effect on the eye
opening so a simulation should be created for the topology under consideration to determine the
sensitivity of the channel. A simulation, below, will show the effects of the crosstalk.
ISI
Inter Symbol Interference (ISI) is the interference between successive signals on a channel. Given a
good driver, a channel with smooth impedance, and a termination that matches the transmission line,
the signal should show no ISI. In the real world there are many things in the channel that are not
matched to the board characteristic impedance. In addition the termination resistor value being off can
cause a huge amount of interference. . For more data on ISI distortion please see the documentation at
http://www.alterawiki.com/wiki/Arria_10_EMIF_Simulation_Guidance
Other topologies can be simulated using these techniques. Please refer to the last section of this
document titled “Further Reading” for references to additional material.
The blue signal is ISI with aggressors quiet, the red signal is with aggressors running for a 3 inch
topology. Aggressors for this are out of phase with the victim.
This plot is the same topology with the memory devices driving the circuit the difference here is the
impedance of the FPGA package.
It is important to use an IBIS model for the FPGA that is generated from a Quartus® II project that is
created for the system. The IBIS model created this way will have correct values for the package
parasitic values.
Further Reading
Altera has a wealth of information on developing and simulating DDR devices. The address and
command signals for DDR4 are similar to those for DDR3 except for the voltage level of the interface.
EMIF Guidelines for Layout and Timing
http://www.altera.com/literature/hb/external-memory/emi_plan.pdf
http://www.alterawiki.com/wiki/Arria_10_EMIF_Simulation_Guidance
http://www.alterawiki.com/wiki/Measuring_Channel_Signal_Integrity
A definitive document on DDR4 voltages and timing is available from Micron Semiconductor.
Understanding the POD training is very valuable to the designer. A full PDF of the datasheet has all the
data in one place. Search on their website for “4Gb_DDR4_SDRAM” for a copy.
Check these things
Trace impedance plays an important role in the signal integrity. Users should perform board level
simulation to determine the best characteristic impedance for their PCB. For example, it is possible that
for multi rank systems 40 ohm would yield better result than the traditional 50 ohm characteristic
impedance.
To minimize PCB layer propagation variance, Altera recommend that you route signals from the same
net group on the same layer.
8. All the address, command and control signals should match up to +/- 20 ps compare to the
mem_clk trace.
o For example if the mem_clk trace delay is 500 ps then the allowed range for any
address/command/control signal is 480 ps to 520 ps.
o For discrete components; make sure above recommendation is met for each component
in the fly-by chain.
o For DIMMs: For single or multiple DIMM configurations make sure this guideline is met
at each DIMM connector.
The timing between the DQS and clock signals on each device calibrates to meet tDQSS.
If you are using a DIMM topology, your delay and skew must take into consideration values for the
actual DIMM.