当你利用示波器观测波形时,阿拉斯加的鳕鱼正跃出水面;当你debug电路时,南太平洋的海鸥正掠过海岸;当你测试眼图模板时,地球的极圈夜空正五彩斑斓。
总有一些波形会有畸变,总有一些电路会有bug,总有一些眼图会压模板。高速信号的质量,需要测试眼图模板;那些电路中看不到的bug,都终将在眼图模板中得到体现。
如何评定高速串行系统的性能?在高速串行系统中,主要通过眼图测试。眼图是把连续的比特流按照某一特定的时钟,分割为单独的比特,而后叠加而形成的图形,类似一个张开的眼睛,故得名眼图(Eye-diagram)。眼图是高速串行信号的宏观信号质量的整体体现,在眼图中可以直接反映出串行信号的幅度、抖动特性等。
评估一个眼图的好和坏,通常利用一些常见的指标来衡量,比如眼高,眼宽,抖动,占空比等。为了简单而又直观地判断眼图的指标是否符合规范的要求,将规范指标的要求编写成一个眼图模板,然后利用示波器来调用这个模板,这样就可以直观看到眼图是否有碰到模板。如果眼图没有碰到模板区域,表示眼图符合规范要求,结果是Pass;同样如果有碰到模板区域,结果是Fail,需要工程师对电路进行整改,改进信号质量到Pass。
眼图模板测试是一种评估高速串行信号质量的手段。示波器的抖动眼图分析软件都内置了业界主流高速串行信号的眼图模板,例如PCIE、USB、SATA、SAS、DisplayPort、HDMI、Ethernet、Fibre Channel等。但是有些情况可能无法直接套用示波器内置的标准模板,例如被测信号是新出标准定义的,或者实际测试点和标准要求的测试点不一致等情况,这就需要示波器调用自定义的眼图模板完成测试。
眼图模板有绝对模板和相对模板,电信号的眼图测试一般使用绝对模板,光信号的眼图测试一般使用相对模板。今天将介绍电信号的眼图模板测试,即自定义绝对模板的编写和调用。
眼图模板的Segment解读
眼图模板一般由上、中、下三部分组成,我们把最上边的称为Segment1,简称SEG1,一般为长方形;中间部分的称为Segment2,简称SEG2,一般为菱形或六边形;最下边的称为Segment3,简称SEG3,一般是长方形。
眼图模板的坐标解读
SEG1,SEG2,SEG3分别代表模板从上到下的三块阴影区域,即使有时候不需要SEG1和SEG3,也要定义SEG1和SEG3,否则会影响模板缩放,SEG1和SEG3的v1=v2,v3=v4,t1=t4,t2=t3,t1=-t2。如果SEG2是菱形的话,v1=v3,v2=-v4,t2=t4,t1=-t3。
各拐角在模板中按逆时针顺序分布,各SEG的t1,v1为左下角的坐标,t为水平坐标,v为垂直坐标。
眼图模板根据芯片电气特性规格定义的,下面是某个高速串行信号标准的眼图模板定义规范指标,通过模板规范指标,可以推导出了眼图模板的t和y的参数,用记事本编辑,然后存为.msk模板文件,最后利用DPOJET导入使用。
打开txt文本文件
假如被测信号的速率是3.125Gbps,一个UI就是3.125Gbps的倒数,即1UI=320ps,码型是NRZ。BITR为信号速率3.125e9;WID为BITR倒数320e-12;打开一个空白txt文本文件,然后再空白输入如下:
:MASK:USER:WID 320e-12;
:MASK:USER:BITR 3.125e9;
:MASK:USER:SERIALTRIG NRZ;
编写Segment1的坐标
根据上面的眼图模板规范指标,注意:规范模板左边是0UI,最右边是1UI,中间是0.5UI;但编写模板时是左边是-0.5UI,最右边是0.5UI,中间是0。所以SEG1的t1,v1,t2,v2,t3,v3,t4,v4计算如下:
t1=-0.5UI=-0.5*320e-12=-160e-12;
v1=600mV=600e-3;
t2=0.5UI=0.5*320e-12=160e-12;
v2=600mV=600e-3;
t3=0.5UI=0.5*320e-12=160e-12;
v3=(600+200)mV=800e-3;
t4=-0.5UI=-0.5*320e-12=-160e-12;
v4=(600+200)mV=800e-3;
得到Segment1模板如下:
:MASK:USER:SEG1:POINTS -160e-12,600e-3,160e-12,600e-3,160e-12,800e-3,-160e-12,800e-3;
编写Segment2的坐标
根据上面的眼图模板规范指标,SEG2是六边形,推导六个坐标t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6计算如下:
t1=-(0.5-0.15)UI=-0.35*320e-12=-112e-12;
v1=0mV=0;
t2=-(0.5-0.4)UI=-0.1*320e-12=-32e-12;
v2=-400mV=-400e-3;
t3=(0.5-0.4)UI=0.1*320e-12=32e-12;
v3=-400mV=-400e-3;
t4=(0.5-0.15)UI=0.35*320e-12=112e-12;
v4=0mV=0;
t5=(0.5-0.4)UI=0.1*320e-12=32e-12;
v5=400mV=400e-3;
t6=-(0.5-0.4)UI=-0.1*320e-12=-32e-12;
v6=400mV=400e-3;
得到SEG2的模板如下:
:MASK:USER:SEG2:POINTS -112e-12,0,-32e-12,-400e-3,32e-12,-400e-3,112e-12,0,32e-12,400e-3,-32e-12,400e-3;
编写Segment3的坐标
根据上面的眼图模板定义规格,SEG3是长方形,要推导出四个坐标,SEG3的t1,v1,t2,v2,t3,v3,t4,v4计算如下:
t1=-0.5UI=-0.5*320e-12=-160e-12;
v1=-(600+200)mV=-800e-3;
t2=0.5UI=0.5*320e-12=160e-12;
v2=-(600+200)mV=-800e-3;
t3=0.5UI=0.5*320e-12=160e-12;
v3=-600mV=-600e-3;
t4=-0.5UI=-0.5*320e-12=-160e-12;
v4=-600mV=-600e-3;
得到Segment2模板如下:
:MASK:USER:SEG3:POINTS -160e-12,-800e-3,160e-12,-800e-3,160e-12,-600e-3,-160e-12,-600e-3;
编写模板名称
编写自定义眼图模板名称如下:
:MASK:AUTOSET:STANDARD SRIO_3.125G_Tx_Mask;
模板文件内容
最终模板文件内容见下图。
把txt文件后缀名改为msk
保存文件,然后把文件的后缀名改为msk,见下图。
如何加载自定义眼图模板
加载自定义眼图模板步骤
Step1: 点击analyze→Jitter and Eye Analysis→One Touch jitter进行抖动眼图测试,示波器会自动进行抖动眼图分析,见下图。
Step2: 点击Plot→Clear All,见下图。
Step3: 点击Select→Eye→Mask Hits见下图。
Step4: 点击Configure→Mask Hits→Bits Config→All Bits→Absolute→Browse,见下图。
Step5: 打开模板文件,见下图。
Step6: 点击Recalc进行眼图模板分析,见下图。
Step7: 点击Result→Mask Hits查看违规Segment,见下图。
Step8: 点击Report→Save As 生成报告,见下图。
眼图模板Pass/Fail
模板通常限定了信号不合格区域,如果眼图与模板相交违规,眼图软件会标注不合格区域,该部分波形迹线将显示为白色。见下图。此外示波器将计算违规hits数量,并标出是哪个Segment违规。