力科的DDR-Debug Toolkit是一个针对DDR信号测试和调试的通用工具,通过这个工具我们可以简单地对DDR信号进行信号质量测试与评估,本文主要讲解如何使用DDR-Debug Toolkit对DDR4信号进行测试,因为DDR的测试原理和方法都比较相近,所以里面大部分的知识点对于其他的DDR信号也适用。
文中提到“DDR4”说明仅对于DDR4适用,如果提到的是“DDR”说明对所有DDR信号都适用。
测试需求:
测量DDR4信号有如下需求:
一台13GHz及以上带宽示波器,满足要求的有带宽在13GHz以上的WaveMaster 8ZI以及LabMaster10ZI示波器。
3个以上13GHz带宽的差分探头,满足要求的是LeCroy的WaveLink+D1330+焊接探头前端,探头及前端颜色为蓝绿色
DDR4 Debug Toolkit 软件选件,在Support->About菜单下查看仪器是否包含这个选件。
3个以上L2.92A-PLINK适配器(仅用于LabMaster,WaveMaster不需要)
测试准备
在测试之前,首先需要对通道进行校正
示波器在连接探头之后,会出现通道基线不在0V的情况,如下图所示的C3,我们需要选择C3通道,点击“D1330”按钮,进入探头设置界面。
点击“AutoZero”按钮,这时候基线会消失,示波器右下方会出现“Auto Zero”或者“Cablibration”之类的字样,估计耗时10秒左右
校准完之后,基线恢复正常,并且处于0电平位置
测试之前需要保证各个通道的基线处于0V状态
DDR测试也需要保证各个探头之间没有Skew,不同种类的探头的电延时也不相同,会产生Skew,如果有Skew需要对探头的延时进行校准,由于DDR4测试能够使用到的探头只有D1330这一种,同种探头的延时可以忽略不计,所以在做DDR4测试的时候一般不太需要做探头的De-Skew。
校正通道之后,将探头连接到被测件上
如下图所示,将差分探头连接到被测设备上,C1接CLK,C2接DQS,C3接DQ,CLK和DQS都是差分信号,直接使用探头的正负两端连接信号的正负两端,DQ信号是单端信号,C3正端接DQ,负端在DQ附近找一个GND。
有的芯片有多组CLK,DQS以及DQ 信号,需要连接同一组信号。例如DQS0对应的DQ0~DQ7,DQS1对应到DQ8~DQ15,在连接C3如果连接的是DQ0,则C2应该连接到DQS0。
现在很多DDR RAM都是使用BGA封装,走线也有很多不是在表层,这种情况下建议使用RAM下面加入一个Interposer,将信号引出来,方便测试。
采集信号
做好测试准备之后,可以开始采集信号了,采集信号的时候需要注意以下几点:
在采集波形的时候尽量让波形占据仪器量程的75%以上
CLK和DQS是差分信号,信号幅值一般是在2.4V左右的,可以将C1和C2垂直Scale设置为300~500mV/div,垂直Offset设置在0V
DQ是单端信垂直Scale号,信号的幅值在1.2V左右,可以将C3设置为150~250mV/div,垂直Offset设置为-600~-800mV
在测试的时候可以将C2(DQS)作为触发源,触发电平为0V,或者使用C3(DQ)作为触发源,触发电平设置为0.6~0.8V
测试的时候最好让被测设备有大量的读写数据
下图是捕获到的DDR4的信号,有些时候焊接容易将探头的正负两端焊反,我们可以根据信号的情况来做一些判断。
所有DDR的信号符合以下的特点,如果量测到的信号有差别请看一下探头正负极是否接反了,另外需要注意的是测试点需要选取在要在距离芯片走线长度相同的位置,对于一般的FR4 PCB板来说,信号在板内的速率大概在5inch/ns左右,焊接点每10个mil的偏差会导致2ps的信号Skew,如果需要以过孔作为焊接点时一定需要注意。
CLK信号和DQS信号相位相同
在RAM附近测量,读信号幅值比写信号高
在CPU附近测量,读信号幅值比写信号低
读信号,DQS和DQ信号是边沿对齐
写信号,DQS和DQ信号是中心对齐
读信号,DQS前导信号是向下的
写信号,DQS前导信号是向上的
按照上述的规则,我们可以看出下图中捕获的是一个DDR4的读信号,而且CLK信号的极性是反向的,我们需要选择C1,在右下角勾选Invert选项,对CLK信号进行反向。在测试点偏差太大的情况下,我们也可以通过Deskew来调节通道的延时,保证软件能够进行正常的读写分离,但是这个时候测量到的tDH/tDS等时序参数是没有参考价值的,主要用来测电平。
DDR分析的时候需要有足量的读写信号,在测试DDR4的时候,建议使用40GS/s的采样率捕获4Mpts的波形,如果读写信号不是很充足的情况下,建议反复使用“Single”,直到捕获到合适的信号。
捕获到信号之后,建议先测一下CLK的频率,时钟频率×2就是DDR的速率,下图所示的是一个DDR4-1600信号
测量分析
选择Analysis→DDR Debug,进入DDR Debug设置菜单,DDR-Debug共有6页菜单,其中第1页是对通道和测测试信号的基本配置,第2页是眼图测试设置,第3页是抖动测试设置,第4页是DDR相关的参数测量的设置,第5页是定量分析的设置,第6页是Vref电平的配置。下面分别介绍DDR-Debug中各个选项的功能。
在“Protocol”处选则协议类型,在“Speed Grade”处选择信号速率,默认设置是“DDR4”和“1600”,如果被测信号正好是DDR4-1600的话,请将“Speed Grade”先改成其他值,再设置成1600,否则无法进行读写分离;如果不是标准速率,也可以选择“Custom”,在“Cumstom Speed”中输入DDR的信号速率。
右侧是对连接方式的定义,我们在一开始建议C1-CLK,C2-DQS,C3-DQ就是按照这个默认设置,如果连接方式不同我们也可以按照自己的连接方式来设置,信号的来源可以是通道、缩放、存储的波形以及经过运算的波形。
在DDR的测试中,主要包括时序和电平,时序中比较重要的是DQS-DQ以及CLK-DSQ这两组,其中DQS-DQ尤为重要,所以我们一般以DQ的读写信号作为第一个眼图,以DQS作为第二个眼图,以DQS作为参考,如果要测CLK-DQS这组信号的话,以DQS作为一个眼图,CLK作为第二个眼图,CLK作为参考。
DDR4在测试的时候需要设置Vref等电平,一般可以使用“Auto Calc Vref”来自动计算,也可以手动输入,具体的值在第6页“Custom Threshold”中设置。
勾选“Enable Eye Meas.”、“Show Eye”和“Show 2nd Eye”显示眼图,如下图所示,绿色的就是我们选择的第一个眼图,黄色的是我们选择的第二个眼图,如果需要显示眼图模板,选择“Show Mask”。
DDR Debug能够同时进行4组测试,一般我们使用两组,一组用于读,一组用于写,选择Copy按钮可以复制设置。
将View2的"Analysis Type"设置成“DQ-Read”,如下图所示,View1测的是写信号,View2测的是读信号。
勾选“Enable Jitter Meas.”显示抖动测试结果,可以看一下信号的抖动情况,需要注意的是,必须要有足够多的读写波形才能进行抖动测试
DDR Debug Toolkit能同时测量12组测试数据
支持共15种测量参数类型
DDR4-Debug有些测量参数可以指定信号来源,如VL、VH等和电平相关的参数,可以CLK、DQS或者是DQ,有些参数信号来源是固定的,如tDS,这个参数是DQ相对DQS的Setup time,来源是固定的DQ和DQS。
测量可以显示参数的最大值、最小值、平均值以及数目。
在Measurement Zoom区域选择“Enable”可以对具体测试项的具体的测试信号进行放大
如图中View1是指的我们前面所说的写信号,如要对读信号放大可以选择View2;Measure选7是指的对第7个测试项放大,对应我们下图所示的tDH;“Zoom to”可以选择Max、Min、First和Last,分别找到当前测试项所对应的波形位置,如下图所示的例子,tDH最大值所对应在第7906个测量波形
有时候在测DDR的时候会有一些不可抗拒因素产生的干扰,例如在SRAM附近测到的读信号或多或少会有反射,这个基本上很难消除,读信号眼图如下。
下图中黄圈所在的位置很有可能就是信号反射造成的结果,眼图中间的横线就是类似这样的反射会造成的。
如果我们勾选了“include only first 8 bit”之后,眼图质量有所好转,至少横在正中间的那个信号已经不在了。
"选择 Ignore first 3bit"之后,眼图质量以及很不错了,这时候我们再去测量信号的时序,如tDS、tDH,就不会受到反射信号的干扰了。
当然,测量DDR的时候,最好是找到合适的测试点(靠近SRAM测试写,靠近主控测试读),这样一般就不会出现反射的情况,这时候也用不到这个功能,如果实在是信号中有比较多的反射的话,就使用这个设置来滤除一些“差”的干扰信号吧。
测试点选取原则
最后再讲一下DDR测试点选取的一般原则,即:测读信号尽量靠近CPU,测量写信号尽量靠近RAM。
一方面,考虑到走线对信号的衰减,我们一般希望在靠近芯片的接收侧对信号进行量测,这样,我们“看”到的信号和芯片“看”到的信号会更加接近。
另一方面,这样也会减小反射。
探头的接入或多或少会导致接入点的阻抗产生变化,原本100Ω左右的差分对走线在探头连接处变成其他的值(例如50Ω),这样信号会在这个点产生反射。
一般DDR的接收端阻抗的连续性没有发送端好,所以信号在接收端也会产生反射。如果信号前进过程中两个反射点离得比较远,距离(单位为inch)>信号的上升时间(单位为ns),会对信号产生比较明显的影响,如果量测到的信号在上升沿有回沟或者在信号高低电平中间有凹陷,这些都是多次反射造成的。建议探头的连接点在DDR信号的接收端,能减少这样多次反射带来的影响。
SI-list【中国】微信群
限硬件高速设计,先加群主,需注明单位
SI-list【中国】公众号
信号完整性与电源完整性研究
关于DesignCon
SI-list【中国】微信群及公众号,专注于高速链路设计、信号完整性/电源完整性仿真、测试及验证相关技术交流,经验分享,由迪赛康科技(深圳)有限公司承建及管理。业务联络请扫描如下二维码。
▼点这,详细了解DesignCon
领取专属 10元无门槛券
私享最新 技术干货