DDR4电路及眼图分析讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DDR4电路及眼图分析讲解
一、存储分类
按在计算机系统中的作用不同,存储器主要分为主存储器、辅助存储器、缓冲存储器。

主存储器(简称主存):的主要特点是它可以和CPU直接交换信息。

辅助存储器(简称辅存):是主存储器的后援存储器,用来存放当前暂时不用的程序和数据,它不能与CPU直接交换信息。

两者相比,主存速度快、容量小、每位价格高;
辅存速度慢、容量大、每位价格低。

缓冲存储器(简称缓存):用在两个速度不同的部件之中,例如,CPU与主存之间可设置一个快速缓存,起到缓冲作用。

其分类如下:
二、DDR分类
SDRAM(Synchronous Dynamic Random Access Memory):为同步动态随机存取内存,是有一个同步接口的动态随机存取内存(DRAM)。

其分类如下:
DDR SDRAM(Double Data Rate SDRAM):
为双信道同步动态随机存取内存,是新一代的SDRAM技术。

别于SDR(Single Data Rate)单一周期内只能读写1次,DDR的双倍数据传输率指的就是单一周期内可读取或写入2次。

在核心频率不变的情况下,传输效率为SDR SDRAM的2倍。

允许在时钟脉冲的上升沿和下降沿传输数据。

DDR内存Prefetch(数据读预取)为2bit。

DDR2 SDRAM(Double Data Rate Two SDRAM):
为双信道两次同步动态随机存取内存。

它与上一代DDR内存技术标准最大的不同就是,虽然同是采用了在时钟的上升/下降沿同时进行数据传输的基本方式,但DDR2内存却
拥有两倍以上一代DDR内存预读取能力(即:4bit数据读预取)。

换句话说,DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。

在同等核心频率下,DDR2的实际工作频率是DDR的两倍。

这得益于DDR2内存拥有两倍于标准DDR内存的4BIT预读取能力。

DDR3 SDRAM(Double Data Rate Three SDRAM):
为双信道三次同步动态随机存取内存。

DDR3内存Prefetch提升至8 bit,即每次会存取
8 bits为一组的数据。

DDR3 的规格要求将电压控制在1.5V,较DDR2的1.8V更为省
电。

DDR3也新增ASR(Automatic Self-Refresh)、SRT(Self-Refresh Temperature)等两种功能,让内存在休眠时也能够随着温度变化去控制对内存颗粒的充电频率,以确保系统数据的完整性。

吸取了DDR2的教训,在控制成本的基础上减小了能耗和发热量,由于能耗降低,DDR3可实现更高的工作频率,在一定程度弥补了延迟时间较长的缺点。

DDR4 SDRAM(Double Data Rate Fourth SDRAM):
DDR4相比DDR3最大的区别有三点,16bit预取机制(DDR3为8bit),同样核心频率下理论速度是DDR3的两倍;更可靠的传输规范,数据可靠性进一步提升;工作电压降为1.2V,更节能。

三、DDR4分析讲解
1.DDR4与DDR3 的区别
DDR4将内存下部设计为中间稍微突出,边缘变矮的形状,在中央的高点和两端的低点以平滑曲线过渡,这样的设计可以保证金手指和内存插槽有足够的接触面从而确保内存稳定。

DDR4内存的金手指设计也有明显变化,金手指中间的防呆缺口也比DDR3更加靠近中央。

2.POD 和SSTL的比较
POD作为DDR4新的驱动标准,最大的区别在于接收端的终端电压等于VDDQ,
而DDR3所采用的SSTL接收端的终端电压为VDDQ/2。

这样做可以降低寄生引脚电容和I/O终端功耗,并且即使在VDD电压降低的情况
下也能稳定工作。

其等效电路图:
POD ((Pseudo Open Drain)
SSTL(Stub Series Terminated Logic)
当DRAM在低电平的状态时,SSTL和POD都有电流流动
DDR4及DDR3电流方向
而当DRAM为高电平的状态时,SSTL继续有电流流动,而POD由于两端电压相等,所以没有电流流动。

这也是DDR4更省电的原因
DDR4电流方向
DDR3电流方向
3.数据总线倒置(DBI)
根据POD的特性,当数据为高电平时,没有电流流动,所以降低DDR4功耗的一个方法就是让高电平尽可能多,这就是DBI技术的核心。

举例来说,如果在一组8-bit的信号中,有至少5-bit是低电平的话,那么对所有的信号进行反转,就有至少5-bit信号是高电平了。

DBI信号变为低表示所有信号已经翻转过(DBI信号为高表示原数据没有翻转)。

这种情况下,一组9根信号(8个DQ信号和1个DBI信号)中,至少有五个状态为高,从而有效降低功耗。

4.ODT控制
为了提升信号质量, 从DDR2开始将DQ, DM, DQS/DQS#的Termination电阻内置
到Controller和DRAM中, 称之为ODT (On Die Termination)。

Clock和
ADD/CMD/CTRL信号仍需要使用外接的Termination电阻。

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

DDR4的ODT有四种模式:
Data termination disable,RTT_NOM,RTT_WR, 和RTT_PARK。

Controller可以通过读写命令以及ODT Pin来控制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给出的MRC Code中已经给出了最优化的ODT的值,理论上用户可以通过仿真等方法来得到其他ODT值并在BIOS中修改,但是由此带来的所有问题将有设计厂商来承担。

下面表格是Intel提供的优化方案。

DQ Write ODT Table for 3DPC
DQ Read ODT Table for 3DPC
5.参考电压Vref
DDR信号一般通过比较输入信号和另外一个参考信号(Vref)来决定信号为高或者
低,然而在DDR4中,一个Vref却不见了。

在DDR4的设计中,VREFCA和DDR3
相同,使用外置的分压电阻或者电源控制芯片来产生,然而VREFDQ在设计中却没
有了,改为由芯片内部产生,这样既节省了设计费用,也增加了Routing空间。

DDR3设计:
DDR4设计:
DRAM内部VREFDQ通过寄存器(MR6)来调节,主要参数有Voltage range, step size,
VREF step time, VREF full step time ,如下表所示。

参考电压:
每次开机的时候,DRAM Controller都会通过一系列的校准来调整DRMA端输入数据信号的VREFDQ,优化Timing和电压的Margin,也就是说,VREFDQ 不仅仅取决于VDD, 而且和传输线特性,接收端芯片特性都会有关系,所以每次Power Up 的时候,VREFDQ的值都可能会有差异。

因为Vref的不同,Vih/Vil都会有差异,可以通过调整ODT来看Vref的区别,用一个仿真的例子来说明。

对于DDR3,调整ODT波形会上下同步浮动,而调整DDR4 OOT的时候,波形只有一边移动。

仿真拓扑:
DDR3仿真结果:
DDR4仿真结果:
6.DDR4的Layout Routing
在所有的Layout走线中,DDR无需质疑是最复杂的,不仅要考虑阻抗匹配,还要考虑长度匹配,而且数量众多的数据、地址线,不得不考虑串扰的影响。

DDR4数据速率提高以后,这些方面的影响变得更为严重,尤其是现在很多设计为了节省成本,PCB尺寸和层数都要求尽可能的变小,这样对阻抗和串扰的要求就变的更有挑战性,一般SI工程师和Layout工程师都会想各种办法来满足这些需求,很多时候也不得不妥协折衷,比如在做叠层设计的时候尽量让线宽变小,在BGA Breakout区域采用更细的线,等等。

但这些方法只能对设计做微小的调整,其实很难从根本上解决问题。

最近Intel研究发现的一种新方法很有意思,可以在一定程度上很好的平衡阻抗(线宽)和串扰(线间距)。

先来看一个实际的Layout例子,两根红线之间的走线采用锯齿形状。

没错,这就是Intel新研究出来的新方法,官方名称为“Tabbed Routing”。

DDR4 Tabbed Routing
Tabbed Routing主要的方法是在空间比较紧张的区域(一般为BGA区域和DIMM 插槽区域),减小线宽,而增加凸起的小块(Tab)
Tab routing方法
这种方法可以增加两根线之间的互容特性而保持其电感特性几乎不变,而增加的电
容可以有效控制每一层的的阻抗,减小外层的远端串扰。

仿真结果如下图所示。

HFSS仿真结果
四、DDR4仿真及眼图分析
1.Pre-Simulation with HyperLynx
如果Controller和DRAM都有IBIS模型,可以用HyperLynx对DDR4进行很方便
的Simulation, 仿真方法和其他DDR相同,通过Pre-Simulation, 可以对整个系统
的拓扑以及一些细节进行确定,比如Impedance(由Stackup以及线宽和线间距来
确定),ODT值的选择,T型结构中Stub长度的控制,ADD/CMD/CTRL终端电阻的
取值大小等等。

1)ADD/CMD/CTRL终端电阻取值
假设ADD电路如下,工作在2400MTs(Add/CMD为1.2Gbps),发送端为U16,
采用Fly-By结构到五组DRAM芯片,每组DRAM采用T结构(实际Layout
中,Top面一个DRAM芯片,Bottom面一个DRAM芯片),T型长度的Stub 为77mil, 终端电阻为32欧姆,终端电压为0.6V。

ADD仿真拓扑图:
由仿真结果可以看出来,T型结构两端因为完全对称,所以波形几乎一样,为了方便观察,只看其中一个波形,离Controller由近及远,DRAM分别为U5, U4, U3, U2, U1, 其眼图分别如下:
可以看出来,距离Controller越近的芯片,其波形越“乱”,但是上升沿却很快,而距离终端电阻越近的芯片,其波形越好,但是上升沿却变慢。

那么如何才能得到最优化的波形呢,下面通过扫描终端电阻的值看看是否会提高信号质量,通过HyperLynx的Sweep功能,设置终端电阻阻值为27,33,39,45四个阻值。

Sweep设置图:
U5(距离Controller最近)的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆:
U4的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆:
U3的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆:
U2的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆:
U1的眼图如下,依次对应终端电阻阻值为27,33,39,45欧姆:
从上面的波形可以看出来,对应每一个DRAM的第三张波形都是最好的,也就是说对应39欧姆的终端电阻可以得到最优化的波形。

2)DATA信号Stub的长度
一般DDR4的设计中,Data信号都采用Pin to Pin的设计方式,但在某些设计中,由于PCB 空间限制或者控制器限制,也有需要采用一拖二的设计(T型结构),
DDR4 T型结构图:
DDR4菊花链结构:
如果采用T型拓扑结构,可以最大可能的节约PCB空间,但是如果DIMM0或者DIMM1只插一根的时候,另一边会有较长的Stub出现,对信号质量会有影响。

如果采用菊花链结构,在只插DIMM0的情况下,同样会有Stub影响。

而且这种拓扑结构需要DIMM0和DIMM1之间的信号线之间满足长度匹配,在DIMM0和DIMM1比较靠近的情况下,绕线会有一定难度。

而如果增加DIMM0和DIMM1的距离,其Stub会变得更长,信号质量没有办法得到控制。

从信号完整性方面考虑,两种方案均会存在Stub的影响,但是从Layout的角度来看,方案一有一定便利性,而且其Stub可以控制在500mil以内。

当然,这种设计是以牺牲信号Margin 作为代价的,信号速率会收到一定影响,例如实测时T型拓扑只插一根内存的时候,信号速率最大只能跑到1866Mb/s.
从仿真的角度出发,这种仿真需要考虑的因素很多,控制器模型,PCB模型,Connector模型,以及最后的内存条模型,而通常情况下,Connector模型和内存条模型很难拿到,而且有时候就算拿到,也是不同类型的模型,整体Channel仿真需要更多时间和精力来完成。

如果时间有限,需要对设计做快速评估,用HyperLynx做快速仿真也是可以参考的,在下面的例子中,假设一个Conntorller需要驱动两根DIMM或者两颗内存颗粒,系统工作在2400Mb/s, TL2和TL3的长度可以用来大概评估PCB Stub长度加上Connector长度加上内存条长度。

从这个简单的仿真可以看出来,Stub对于信号质量的影响还是很明显的,特别对于一根内存槽悬空的状态下,上面的例子中,Stub达到1000 mil的时候,在只插一根内存的情况下,眼图已经非常糟糕,所以在实际设计中,需要在设计成本和信号速率之间进行均衡,取舍。

数据仿真拓扑图:
在Stub长度为500mil的时候,两根内存都插和只插一根的眼图如下:
在Stub长度为1000mil的时候,两根内存都插和只插一根的眼图如下:
在用Intel的芯片作为DDR Controller做设计的时候,Intel所提供的SI Model可以提供一个比较完整的仿真,Intel所提供的Simulation Deck中,包含了DDR连接器,DIMM模型,如果能找到和实际项目匹配的模型,可以替换Deck中的模型,如果找不到模型,直接用Deck 中所提供的模型也是非常有参考意义的。

五、Intel SISTAI仿真举例
Intel所提供的Memory Bit Error Rate Executable (MBERE) tool集成在其Intel SISTAI(Signal Integrity Support Tools for Advanced Interfaces)网站系统上面,SISTAI可以进行PCIE,SATA, USB,QPI等等高速信号的仿真,DDR4仿真模块为MBER, 其基本思想是先基于Hspice产生一个Step Response, 然后把仿真结果.TR0文件放进SISTAI系统进行计算,产生Worse Case的眼图,大致仿真流程如下:
1.DDR通道建模
Intel的仿真基于10根线模型,八根DQ线加上两根DQS线,可以用Intel提供的
Causal-W Element Tool来产生W Element models, 也可以用ADS,Hspice等工具对传输线建模,对于Post-Layout来说,可以使用PowerSI, Siwave等软件提取DDR 通道的S参数。

注意这里的DQ和DQS的顺序必须和Intel提供的顺序相同。

DDR数据线建模:
2.Hspice仿真
Intel仿真模型还是比较详细,提供了各种模型以及各种不同情况下的Simulation Deck, 在实际仿真的时候,需要用实际设计的模型替换Deck中的参数,以S参数为例,假设提取了整个DDR通道的S参数,那么需要在pcakage的参数之后加入PCB通道模型,如下图第二个红框所示,之前的一些参数,可以删除或者加上*号来Block掉。

Intel仿真模型:
Hspice编辑实例:
Hspice仿真得到Step Response, 结果如下:
3.SISTAI仿真
得到Tr0文件后,需要把Tro放到SISTAI系统中进行计算,操作流程如下:
点击Success可以得到仿真结果,比较遗憾的是,SISTAI只能看到眼宽,眼高等仿真数据,并不提供眼图的显示。

SISTAI仿真结果:
Intel的文件中也提供了Spec可以对仿真结果进行对比判断
DQ Write Eye Target Minimums:
DQ Read Eye Target Minimums。

相关文档
最新文档