DDR4技术有什么特点?如何采用ANSYS进行DDR4仿真?

描述

采用ANSYS进行DDR4仿真

目录

前言... 1

1、DDR4介绍... 2

1.1、DDR4与DDR3不同之处... 2

1.2、POD 和SSTL的比较... 2

1.3、ODT控制... 4

1.4、DDR4高速讯号传输技术... 5

2、DDR4 Simulation Challenges. 7

2.1、使用IBIS 5.0 power aware nodel7

2.2、使用Statistical-based analysis. 8

2.3、Random bit pattern with DBI coding. 8

2.4、Unit Interval(UI)单位时间间隔... 9

3、DDR4 3200 Simulation. 9

3.1、no on-die de-cap. 12

3.2、on-die de-cap at TX. 13

3.3、on-die de-cap at TX and Rx. 17

3.4、TransientEYE vs. QuickEYE. 18

3.5、PRBS vs. DBI patterns. 19

4、Compliance Test21

4.1、[Circuit] [Tool Kits] [Virtual Compliance for DDR4]21

4.2、Presetting dialog for assigning net mapping. 21

4.3、Net Classification for net type, group and IO power22

4.4、DDR settings. 22

4.5、Report Options. 24

4.6、Self-Delay. 24

4.7、Switch to different tabs and press [Run][Run All tables] to get other reported parameters.26

4.8、Sing-off report28

5、问题与讨论Q&A.. 29

参考... 33

前言

DDR4作为目前最新一代的量产SDRAM记忆体,其高速低功耗特性满足了众多消费者的需求。但是另一方面,对于硬件设计人员来讲,DDR4的高速率非常容易引起SI问题,一旦出现DDR4 Margin测试Fail之类的问题,会让很多设计者感到头疼,Debug过程非常困难。

本文介绍了DDR4技术的特点,并简单介绍了ANSYS工具用来仿真DDR4的过程。文章中主要介绍的对象为DDR4 3200MHz内存,因为硬件极客对DDR4性能的不断深挖,目前已经有接近5000MHz的量产内存,比如芝奇推出的TridentZ系列速度最快可达到4700MHz,并且还在不断提高。

本文参考***一个论坛,笔者在学习的过程中,在原作的基础上进行整理,并且参考镁光和DesignCon论坛诸多经典文章,总结出了个随笔,后来发现文章过于冗长,故又删减了一半多带给大家。因笔者水平有限,错误之处在所难免,希望各位读者批评指正!

1、DDR4介绍

1.1、DDR4与DDR3不同之处

相对于DDR3, DDR4首先在外表上就有一些变化,比如DDR4将内存下部设计为中间稍微突出,边缘变矮的形状,在中央的高点和两端的低点以平滑曲线过渡,这样的设计可以保证金手指和内存插槽有足够的接触面从而确保内存稳定,另外,DDR4内存的金手指设计也有明显变化,金手指中间的防呆缺口也比DDR3更加靠近中央。当然,DDR4最重要的使命还是提高频率和带宽,总体来说,DDR4具有更高的性能,更好的稳定性和更低的功耗,那么从SI的角度出发,主要有下面几点, 下面章节对主要的几个不同点进行说明。

Items           spec DDR3 DDR4
Voltage(VDD/VDDQ/VDP) 1.5 1.2
Rate(Mbps)     Data 1600 3200
Vref External(VDD/2) Internal(Training)
Data IO SSTL POD
Bus Inversion(DBI)  Data No Supported

 

表1DDR3和DDR4差异

1.2、POD 和SSTL的比较

POD作为DDR4新的驱动标准,最大的区别在于接收端的终端电压等于VDDQ,而DDR3所采用的SSTL接收端的终端电压为VDDQ/2。这样做可以降低寄生引脚电容和I/O终端功耗,并且即使在VDD电压降低的情况下也能稳定工作。其等效电路如图1(DDR4), 图2(DDR3)。                           

ANSYS

图1 POD ((Pseudo Open Drain)

ANSYS

图2 SSTL(Stub SeriesTerminatedLogic)

可以看出,当DRAM在低电平的状态时,SSTL和POD都有电流流动

ANSYS

图3 DDR4

ANSYS

图4 DDR3

而当DRAM为高电平的状态时,SSTL继续有电流流动,而POD由于两端电压相等,所以没有电流流动。这也是DDR4更省电的原因。

ANSYS

图5 DDR4

图6 DDR3

对于DDR4的IO来说,drive high时几乎不耗电(下图右的红色虚线是电流路径),这就是为何采用DBI+POD机制具有优势的原因[3]p.15,[9]p.80。

ANSYS

图7 DDR3和DDR4驱动机制

DDR4虽然drive high时候不耗电,但是在drive low的时候会消耗相比于SSTL两倍的电。所以,胜点的关键在于较少输出0的数量。如果将要输出的数据bus上0比1多,DDR4会将数据翻转以达到降低功耗的目的。

1.3、ODT控制

为了提升信号质量, 从DDR2开始将DQ, DM, DQS/DQS#的Termination电阻内置到Controller和DRAM中, 称之为ODT (OnDieTermination)。Clock和ADD/CMD/CTRL信号仍需要使用外接的Termination电阻。

ANSYS

图8On Die Termination

在DRAM中,On-Die Termination的等效电阻值通过Mode Register (MR)来设置,ODT的精度通过参考电阻RZQ来控制,DDR4的ODT支持240, 120, 80, 60, 48, 40, 34 欧姆。

和DDR3不同的是,DDR4的ODT有四种模式:Data termination disable, RTT_NOM,RTT_WR, 和RTT_PARK。Controller可以通过读写命令以及ODTPin来控制RTT状态,RTT_PARK是DDR4新加入的选项,它一般用在多Rank的DDR配置中,比如一个系统中有Rank0,Rank1以及Rank2, 当控制器向Rank0写数据时,Rank1和Rank2在同一时间内可以为高阻抗(Hi-Z)或比较弱的终端(240,120,80,etc.), RTT_Park就提供了一种更加灵活的终端方式,让Rank1和Rank2不用一直是高阻模式,从而可以让DRAM工作在更高的频率上。

一般来说,在Controller中可以通过BIOS调整寄存器来调节ODT的值,但是部分Controller厂商并不推荐这样做,以Intel为例,Intel给出的MRCCode中已经给出了最优化的ODT的值,理论上用户可以通过仿真等方法来得到其他ODT值并在BIOS中修改,但是由此带来的所有问题将有设计厂商来承担。下面表格是Intel提供的优化方案。

ANSYS

表2DQ Write ODT Table for 3DPC

ANSYS

表3DQ Read ODT Table for 3DPC

1.4、DDR4高速讯号传输技术

众所周知,DDR信号一般通过比较输入信号和另外一个参考信号(Vref)来决定信号为高或者低,然而在DDR4中,一个Vref却不见了,先来看看下面两种设计,可以看出来,在DDR4的设计中,VREFCA和DDR3相同,使用外置的分压电阻或者电源控制芯片来产生,然而VREFDQ在设计中却没有了,改为由芯片内部产生,这样既节省了设计费用,也增加了Routing空间。

ANSYS

图9DDR3设计

ANSYS

图10 DDR4设计

DDR3采用SSTL,Vref=VDDQ/2;DDR4采用PODL,Vref是不固定的,会随VDDQ的AC变动而变动Vref=((2Rs+Rt)/(Rs+Rt))*VDDQ/2 [9]p.18/25/27。

ANSYS

图11SSTL和PODL技术区别

因为Vref的不同,Vih/Vil都会有差异,可以通过调整ODT来看Vref的区别,用一个仿真的例子来说明。对于DDR3,调整ODT波形会上下同步浮动,而调整DDR4 OOT的时候,波形只有一边移动。

图12DDR3仿真结果

图13DDR4仿真结果

ANSYS

DDR4增加了DBI(Data BusInversion)、CRC(Cyclic Redundancy Check)、CA parity等功能,让DDR4记忆体在更快速更省电的同时亦能改善资料传输及储存的可靠性。[2],[9]p.20,[14]p.6

2、DDR4Simulation Challenges

2.1、使用IBIS5.0 power aware nodel

镁光的文件【23】说明提供IBIS 5.0 power aware model,供做DDR4 PI以及SS0模拟,这些模型内含【Composite Current】Data,可以让模拟更准确。镁光是业界做IBIS model做的非常好的典范,也感谢其在官网大方分享DDR4 IBISSPICE model。

注意不要抓到没有【CompositeCurrent】Data的旧model,那就不是IBIS 5.0 power aware model

镁光还提供on-die die-capmodel.ckt(VDDQ-VSSQ),供IBIS模拟时外挂,并且在文件中强调模拟必须考虑这些部分才能跟HSPICE model一样准确。而这one-die de-cap从文件的示意图来看【23】p.6,只挂在TX端。

ANSYS

图15DDR4拓扑

2.2、使用Statistical-basedanalysis【13】【18】

DDR4要求BER=1e-16下的规格,通过使用IBIS power aware model与Statistical-basedanalysis,可以有效的评估DDR4设计优劣。

2.3、Random bit pattern with DBI coding【3】p.6

DBI是DDR4一个非常关键的省电技术,直接会影响暂态电流与眼图的模拟结果,这需要整个byte(8 bits)一起考虑。目前的方法先把整组random bit pattern整理过,再喂给circuit simulation。

图16DBI技术

注意:要模拟DDR4通道内,所有的DQ/DQS/Addr/Cmd同时动作时的SI与PI(SSO/SSN),最好的做法是用IBIS 5.0 power aware model与Transientanalysis。QuickEYE虽然可以看眼图,并且得到与Transientanalysis极为相似的结果,但无法做SI+PI分析,原因是QuickEYE是单独激发每个EYESource得到step response,不是同时激发,也就是无法考虑SSN效应。

2.4、Unit Interval(UI)单位时间间隔

UI是做眼图分析十分重要的一个参数,在理解单位时间间隔的基础后,方可以容易的定义与眼图的时间轴上的失真相关的术语。例如:在描述规范标准和数据表中的抖动特性时,通常使用术语“UI”。

如图所示,不论数据速率如何,“单位时间间隔”被定义为归一化的数据位宽度。由于单位时间间隔基本上与比特数相同,1个数据位的宽度为1个单位时间间隔。水平时间轴可以以1秒或单位时间间隔为单位来表示。例如:我们需要仿真的对象为DDR4 3200Mbps,在3200Mbps的数据流中,1个单位时间间隔为1/3.2e9=312.5ps。

ANSYS

图17 仿真单位时间间隔

3、DDR43200 Simulation

使用镁光DDR4 MT40A512M16JY-075E(IBIS 5.0 power aware model),配合Siwave 2017.2内的Siwizard功能自动在Designer内产生电路,自动连接Siwave内的DDR4真是DIMMmodel,做DDR4 3200的模拟分析。

ANSYS

图18PCB导入siwave

在导入DDR4的PCB文件后,按照Siwave Workflow Wizard完成PCB文件的设置,然后选择Simulation菜单下的Siwizard,添加需要仿真的DQ/RDQ单端走线和DQS/RDQS差分走线,这几组走线共同组成了内存U1的数据DQ/DQS信号线。

ANSYS

图19 左侧内存颗粒的DQ/DQS走线示意

ANSYS

图20 Siwizard设置向导

将J1设置为Driver,U1设置为Receiver,IBIS component选择我们需要仿真的MT40A512M16JY,IBIS Model选择对应的DQ/DQS,使仿真电路工作在3200Mhz频率下。

VRM参数中设置驱动电压为1.2V,寄生电感67.5nH,并联阻抗30mΩ,输出电感4nH,输出电阻1mΩ。

ANSYS

图21 Siwizard设置向导

下图所有的电路连接(DQsingle-end, DQS differential pair),以及上图在Siwave中做pin group与下方的port,不管是signal nets for SI或P/G nets for PI,所有连接与设定工作都是自动完成。PCB与电路范例

ANSYS

图22circuit中生成的电路拓扑

整个过程从Siwave窗口开始全部自动完成,因为我们需要查看VRM电流纹波情况,所以需要手动终止,在VRM网络上手动添加Current probe,设置完成后再Circuit工程树中,手动开始analyze。

ANSYS

图23VRM上添加电流probe

3.1、no on-die de-cap

下图是DDR4 3200MHz DQ【0:7】and DQS pair(allwith DOT48),可以清楚的看到有开启ODT时,DQ眼图中间交叉点位置上移,但讯号高准位维持在1.2V,DQS差分信号的眼图交叉点则是维持在0V。DQS的jitter比DQ小是因为灌clock pattern,其它DQ则灌PRBS patter。

ANSYS

图24 noon-die de-cap下的DQ/DQS眼图和VRM电压纹波(SSN)

3.2、on-die de-cap at TX

如果在Tx端VRM加on-die de-cap 10nF,会看到Tx端SS0 of P/G明显变好,而这10nF是参考镁光的IBIS/SPICE quality report的说明(484pF DO pin)。为了对比,这里先将on-die de-cap设置为开路,手动添加10nF替代导入的模型。

ANSYS

图25 镁光datasheet中关于VDDQ/VSSQ Decoupling Capacitance取值的描述

ANSYS

图26 采用10nF取代on-die de-cap模型 

ANSYS

ANSYS

图27VRM接10nF电容后的DQ/DQS眼图和电压纹波

作为对比,取消添加的10nF电容,将on-die de-cap模型设置为工作模式。可以看到结果与手动采用10nF电容时相同。

原文作者在其帖子中提到,挂镁光提供的de-capmodel时并没有效果。个人猜测可能是其在导入或者仿真过程中出现错误造成的。

ANSYS

图28 采用on-die de-cap取代10nF模型

ANSYS

ANSYS

图29 VRM外接on-die de-cap下的DQ/DQS眼图和电压纹波

3.3、on-die de-cap at TX and Rx

此例就算Tx与Rx端都挂on-die de-cap,P/G上的SSN确实有明显改善,但眼图的p-p jitter却没有太大差异,主因是此处的jitter是ISI与DDI引起,与bit pattern和crosstalk比较有关,PI的影响是其次。

ANSYS

图30 Tx与Rx端都挂10nF电容

ANSYS

ANSYS

图31 Tx与Rx端都挂10nF电容下的DQ/DQS眼图和电压纹波

3.4、TransientEYE vs. QuickEYE

从下图可以看出TransientEYE比起QuickEYE眼图,在high level的轨迹略粗一些,这就是SSN贡献的效应,QuickEYE是看不出来的。

注:QuickEYE结果来自eyeprobe

3.4.1、no on-die de-cap

ANSYS

图32 TransientEYEvs. QuickEYE

3.4.2、on-die de-cap atTx and Rx

ANSYS

图33 TransientEYEvs. QuickEYE

3.5、PRBS vs. DBI patterns

3.5.1、Compare SSN:Rx端的SSN明显变小

前面介绍了DBI技术,DBI技术的核心在于让DDR4的高电平尽可能多,当8组DQ信号中低电平占据多数时,DBI将会对所有信号进行翻转。Circuit中无法自动识别DDR4中的信号逻辑,所以需要手动进行仿真设置,将Driver端的Eyesource删除,将IBIS模型中的Bitpattern改写为手动调用外部数据。下表为所有传输数据,可以看到DBI_0~DBI_7共8组DQ信号的高电平数量始终≥4,包含了所有可能的组合模式。

DBI_0 0 0 0 1 1 0 0 0 0 1 1 1 0 1 1 1
DBI_1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1
DBI_2 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0 1
DBI_3 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0
DBI_4 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 1
DBI_5 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0
DBI_6 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1
DBI_7 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1

 

表4DBI信号bit数值

ANSYS

图34 手动模式下调用表4数值

ANSYS

ANSYS

图35DBI技术前后电压纹波对比(后面为DBI开启)

3.5.2、Compare currentconsumption:current reduction 50%,amazing!!

ANSYS

图36DBI技术下VRM电流值对比

4、Compliance Test

4.1、[Circuit] [Tool Kits] [Virtual Compliance for DDR4]

Virtual Compliance for DDR4是新的功能项目,DDR4Compliance Test是旧的,建议转到新的toolkit使用。下面在Tx和Rx加电容的前提下进行VirtualCompliance for DDR4的仿真。

ANSYS

图37 Virtual Compliancefor DDR4

4.2、Presetting dialog forassigning net mapping

ANSYS

图38 VirtualCompliance for DDR4设置向导

注意:Net的In-Out的对应连接要正确,软件会计算self-delay(timing delay)。如果您不需要report self-delay,可以只指定output nets。

4.3、Net Classification for nettype, group and IO power

ANSYS

图39 VirtualCompliance for DDR4设置向导

注意:For GDDR5, it supports to use samestrobe pair in different Byte-lane group.

IO power、Net Types与NetGroups都要设定,step5.5中的【Generate】才能跑下去。当在设置DQS差分信号时,一定要按照circuit原理图中的N/P分配原则,否则后续将无法进行。

4.4、DDR settings

这里速率选择3200MHz,红线中参数为JESD79-4 内存标准中的规定。

ANSYS

图40 VirtualCompliance for DDR4设置向导

注意:本文3.1显示DQ与DQS差0.5UI,所以上图【TimingOPtion】/【Data Timing】必须选择【Write】mode,这样4.7内【Eyediagram Timing】才可以正确的显示pass/fail

4.5、Report Options

ANSYS

图41 VirtualCompliance for DDR4设置向导

4.6、Self-Delay

ANSYS

图42 Self-Delayresult

1. Press [Run] to get the reportedparameters

2. Double-click the reported parameters[Min Delay] of DQ0 to open [Waveform Viewer]

图43Waveform Viewer

3. Measuring function

图44 Measuringfunction

4.7、Switch to different tabs and press [Run][Run All tables] to getother reported parameters.

在【Timing EyeDiagram】页面下,使用者通过输入【VdiVW Total】与【TdiVW Total】来决定Eye Mask的高与宽,软件会帮你算出眼图的参数与是否有碰到Eye Mask(Rx Mask Check)。

目前只支持方形的Eye mask forchecking passfail, it is defined in JEDEC DDR4.

ANSYS

ANSYS

图45 TimingEyeDiagram

For DDR4 compliance,这里算出的眼高(Eye High)与眼宽(Eye Width),是在BER=1e-16下得到的值

图46 眼高和眼宽参数

4.8、Sing-off report

ANSYS可以自动生成仿真报告,通过Sign-offReport选项可以获得。

ANSYS

ANSYS

图47 Sing-offreport

5、问题与讨论Q&A

5.1、单端或差分高速信号设计,其优劣分别为何?

Ans:[9]p.24中对其中的差异进行了解释,分别对信号的抖动,串扰噪声等进行对比。

ANSYS

图48single and differential difference

5.2、为何市面上目前看不到采用点对点传输架构的DDR4

Ans:我想所需的PCB绕线空间太多,可支持的总DIMM插槽较少,应该是目前较少人在DDR4使用点对点传输架构的主因吧!比方一颗有6个DDR4 channel的CPU,如果使用点对点架构的DDR接法,最多就是接6排DDR4插槽,但如果采用2spc架构,则最多可接12排DDR4插槽。

5.3、QuickEYE与VerifyEYE真的比Transient EYE快么?

Ans:这个答案很直觉的一位是“yes”,但实际上与模拟条件有关。

如果只跑一个net(e.g.DQ0),且跑ANSYSbit time,那肯定QuickEYE与VerifyEYE比TransientEYE快许多

如果跑八个net(e.g.DQ0~7),且只跑PRBS13 bit time,那TransientEYE比Quick EYE与Verify EYE快。关键在于Quick EYE与Verify EYE是by net trigger,模拟的net数越多,模拟时间乘倍数增加。

5.4、DDR4 Virtual compliance test是如何以transientanalysis结果得到BER=1e-16下的眼高与眼宽?

Ans:是透过transient analysis数据统计推估出来,并不是真的跑Verify EYE。所以transient analysis模拟时间长度会影响step 4.7的眼高与眼宽。

5.4.1、测试Transient EYE跑

图49 三个不同数据量下的眼图结果

为何alwaysMinEyeHeight>EyeHeight,MinEyeWidth>EyeWidth?

这是使用者最长问的问题,答案在help文档里,EyeHeight与EyeWidth是以分布中心点考虑三倍标准差(3),是含有统计概念在里面的。

EyeHeight = [(EyeLevelOne - 3s1) - (EyeLevelZero + 3s0 )] where s1and s0 are the standard deviations of the vertical histograms used to determineEyeLevelZero and EyeLevelOne.

EyeWidth = [( t2 - 3s) - (t1 + 3s)] where s is the standarddeviation of the horizontal histograms used to determine eye-crossing points.

MinEyeWidth is the minimum horizontal opening at the eye-crossingamplitude, typically at the center of the eye. Unlike statistical eye width, ifdifferent traces exist for different unit intervals, then MinEyeWidthrepresents the minimum width of all the traces.

MinEyeHeight is the minimum vertical opening at the eye-measurementpoint, typically at the center of the eye. Unlike statistical eye height, ifdifferent traces exist for different unit intervals, then MinEyeHeightrepresents the minimum height of all the traces.

图50 mineye width的描述

5.4.2、当暂态分析的时间太短,可能会得到BER=1e-16下交叉的眼图参数(眼宽较小、眼高较低)。

这背后的物理意义是:暂态分析时间长度较少时(模拟的Bit pattern数目较少时),眼图偏离中间分布较远的少数几次bit pattern在统计上的占比会升高,导致推估至BER=1e-16下的眼高与眼宽较差。

下图分别演示不同的暂态分析时间40ns/160ns/640ns下,从DDR4 Virtual compliancetest得到BER=1e-16下的Eye Width。

暂态分析时间40ns,BER=1e16下的Rx端眼宽UI*0.703443=312.5ps*0.703443=219.8ps

图5140ns下的Rx端眼宽

暂态分析时间160ns,BER=1e-16下的Rx端眼宽UI*0.724729=312.5ps*0.724729=226.48ps

图52160ns下的Rx端眼宽

暂态分析时间640ns,BER=1e-16下的Rx端眼宽UI*0.756475=312.5ps*0.756475=236.40ps

图53640ns下的Rx端眼宽

从以上测试数据可以看出,这种透过暂态分析结果,经统计推算出在BER=1e-16下EYE parameter的技术是非常有效的,然而其参数值会略受暂态分析时间长度的影响。跑bit(312.5ps*=640ns)时间长度,比跑bit(312.5ps*=160ns)时间长度的结果好。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分