PCIE3.0简介及信号和协议测试方法安捷伦科技(中国)有限公司:李凯一、前言PCIExpress(简称PCIE)总线是PCI总线的串行版本,其采用多对高速串行的差分信号进行高速传输,每对差分线上的信号速率可以是1代的2.5Gbps、2代的5Gbps以及现在正逐渐开始应用的3代8Gbps。PCIE标准是由PCI-SIG组织制定,自从推出以来,1代和2代标准已经在PC和Server上逐渐普及,用于支持高速显卡以及其它接口卡对于高速数据传输的要求。出于支持更高总线数据吞吐率的目的,PCI-SIG组织在2010年制定了PCIE3.0,即PCIE3代的规范。目前,PCIE3.0已经开始出现在一些高端的Server上,而在普通PC上的应用也是指日可待。那么PCIE3.0总线究竟有什么特点?对于其测试有什么特殊的地方呢?我们这里就来探讨一下。二、PCIE3.0简介1、信号速率的变化首先我们看一下制定PCIE3代规范的目的,其目的主要是要在现有的FR4板材和接插件的基础上提供比PCIE2代高一倍的有效数据传输速率,同时保持和原有1代、2代设备的兼容。别看这是个简单的目的,但实现起来可不容易。我们知道,PCIE2代在每对差分线上的数据传输速率是5Gbps,相对于1代提高了1倍;而3代要相对于2代把速率也提高一倍,理所当然的是把数据传输速率提高到10Gbps。但是就是这个10Gbps把PCI-SIG给难住了,因为PC和Server上出于成本的考虑,普遍使用便宜的FR4的PCB板材以及廉价的接插件,无论采用什么技术都很难保证10Gbps的信号还能在原来的信号路径上可靠地传输很远的距离(典型距离是15~30cm)。因此PCI-SIG最终决定把PCIE3代的数据传输速率定在8Gbps。但是8Gbps比着2代的5Gbps并没有高一倍,所以PCI-SIG决定在3代标准中把在1代和2代中使用的8b/10b编码去掉。我们知道,在PCIE1代和2代中为了保证数据的传输密度、直流平衡以及内嵌时钟的目的,每8bit数据会编码成10bit数据传输。因此,5Gbps的实际有效数据传输速率是5Gbps×8b/10b=4Gbps。这样,如果在PCIE3代中不使用8b/10b编码,其有效数据传输速率就能比着2代的4Gbps提高1倍。但是这样问题又来了,数据如果不经编码传输很难保证数据传输密度和直流平衡,接收端的时钟恢复电路也很容易失锁,于是PCIE3代里面采用了扰码的方法,即数据传输前先和一个多项式进行异或,这样传输链路上的数据就看起来比较有随机性,到了接收端再用相同的多项式把数据恢复出来。通过上述方法,PCIE3代可以用8Gbps的传输速率实现比2代的5Gbps高1倍的数据传输速率。2、发送端的变化但是问题远没有结束,即使数据速率只有8Gbps,要在原有的廉价PCB和接插件上实现可靠传输也还要解决一些新的问题。其中最大的问题是信号的损耗,FR4板材对信号高频成分有很大衰减,而信号速率越高,其高频成分越多,所以衰减也就更厉害。下图是不同速率的信号经过10英寸的FR4板材的PCB传输以后信号的眼图,我们可以看到8Gbps的信号在接收端基本上看不到眼图了,更不要说进行有效的数据接收。为了解决这个问题,在PCIE的1代和2代中使用了去加重(De-emphasis)技术,即信号的发射端(TX)在发送信号时对跳变bit(代表信号中的高频成分)加大幅度发送,这样可以部分补偿一下传输线路对高频成分的衰减,从而得到比较好的眼图。PCIE1代中采用了-3.5db的去加重,PCIE2代中采用了-3.5db和-6db的去加重,而对于3代来说,由于信号速率更高,需要采用更加复杂的2阶去加重技术。即除了跳变bit增大幅度发送(De-emphasis)以外,在跳变bit的前1个bit也要增大幅度发送,这个增大的幅度通常叫做Preshoot。为了应对复杂的链路环境,PCIE3代中规定了共11种不同的Preshoot和De-emphasis的组合(Preset),实际应用中Tx和Rx端可以在LinkTraining阶段协商出一个最优的Preset值。3、接收端的变化那做了这些工作就够了吗?经过实验发现,仅仅在发送端对信号高频进行补偿还是不够,如是PCIE3代标准中又规定在接收端(RX端)还要对信号做均衡(Equalization)。所谓均衡,就是在RX端的接收芯片内部增加一个均衡电路,这个均衡电路可以抬高接收到的信号中的高频分量,从而对线路的损耗进行进一步的补偿。均衡电路的实现难度较大,以前主要用在通信设备的背板或长电缆传输的场合,现在也逐渐开始在计算机领域应用,比如USB3.0中也采用了均衡技术。下图是PCIE3.0里对均衡器的频响特性的要求。我们可以看到均衡器的强弱也有很多档可选,在LinkTraining阶段TX和RX端会协商出一个最佳的组合。我们看到,经过种种努力,PCIE3.0总算初步实现了其初衷,即在现有的FR4板材和接插件的基础上提供比PCIE2代高一倍的有效数据传输速率。但我们同时也看到,PCIE3代的芯片会变得更加复杂,系统设计的难度也也更大。如何保证PCIE3代总线工作的可靠性和很好的兼容性,就成为设计和测试人员面临的严峻挑战。三、PCIE3.0的测试首先要说明的一点是,由于PCIE3代目前只颁布了Base的规范(即芯片规范),但CEM规范(即主板和插卡的规范)和测试规范还没有正式发布,所以下面介绍的方法是基于目前的通用做法,以后随着规范的正式发布,具体测试方法可能还有变化。1、发送端的信号质量测试对于发送端的测试,主要是用宽带示波器捕获其发出的信号并验证其信号质量满足规范要求。按照目前Base规范中的要求,PCIE3.0的测试需要至少12GHz带宽的示波器,并配合上相应的测试夹具和测试软件。由于PCIE3代的信号经过传输以后信号幅度都已经衰减得很小(典型值是100mV左右),为了保证足够的测量精度,除了示波器的带宽要足够以外,还需要示波器有很低的底噪声才能保证测量的准确性和测量重复性。Agilent公司的90000X系列示波器除了能够提供最高到32GHz的硬件带宽以外,还具有业内最低的底噪声指标以及高达2G的存储深度,可以充分满足PCIE3代测试的要求,下面是Agilent的90000X示波器的一些主要指标。测试中首先使用PCI-SIG提供的PCIE3的夹具把被测信号引出(PCIE3代的夹具和PCIE2代一样分为CBB板和CLB板,CBB板用于插卡的测试,CLB板用于主板的测试),然后通过测试夹具上的切换开关控制DUT输出PCIE3代的一致性测试码型。需要注意的一点是由于PCIE3代信号如前所述共有11种Preset值,测试过程中应明确当前测试的是哪一种Preset值,做信号质量测试常用的有Preset7、Preset8、Preset1、Preset0。下图是PCIE3代的CBB板及一致性测试码型。另外,PCIE3代测试很重要的一点是要做信号的的Embed,Embed即是在测试过程中加入芯片封装对信号的影响,这个芯片封装的模型是PCI-SIG以S参数文件的形式提供的,测试过程中需要示波器能把这个S参数文件的影响加到被测波形上。同时,测试过程中示波器是用2个通道分别连接信号的正负端,要得到最后的差分波形需要示波器对2个通道的波形做相减运算。如果波形相减和S参数嵌入的工作都由示波器软件计算,会大大影响测试速度。Agilent公司的90000A/90000X示波器内部都有硬件的通道相减及S参数运算功能,可以大大提高测试的速度和效率。对测试数据做分析得方法有2种:一种是使用PCI-SIG提供的Sigtest软件做手动分析,一种是使用Agilent公司提供的N5393CPCIE3.0自动一致性测试。Sigtest软件是的算法由PCI-SIG提供,但是需要用户手动捕获数据进行后分析。Sigtest可以进行信号的眼图、模板、抖动的测试。下图是用Sigtest的测试结果。由于Sigtest需要用户手动捕获数据,对于不熟练的测试人员容易可能由于设置不对造成测试结果的不一致,而且其测试项目有限,没有覆盖全部的信号要求。所以针对PCIE3的测试Agilent还提供了N5393C的自动化测试软件。这个软件以图形化的界面指导用户完成设置、连接和测试过程,除了提供Swing、Preset、CommonMode等更多测试项目以外,还可以自动进行示波器测量参数设置以及自动生成报告,提高了测试的效率和可重复性。除此以外,这个软件在测试过程中还会对被测件发出的码型和速率进行检查,以确认测试使用的是规范要求的正确码型。下图是N5393C软件的设置和生成的测试报告。以下是PCIE3.0信号测试推荐使用的仪器:DSA91304A/DSAX91604A高带宽实时示波器:用于高速PCIE3.0的信号测试N5393CPCIE3测试软件:快速进行PCIE3.0的信号一致性测试N5465A去嵌入软件:用于封装和链路参数的嵌入和去嵌入CLB3/CBB3PCIE3.0测试夹具:用于连接被测设备,从PCI-SIG购买其它:SMP-SMA电缆、SMP负载等2、接收端的接收容限测试在PCIE1.0和2.0的时代,接收端测试不是必须的,通常只要保证发送端的信号质量基本就能保证系统的正常工作。但是对于PCIE3.0来说,由于速率更高,发送端发出的信号经过长线传输后信号质量总是不会太好,所以接收端使用了复杂的均衡技术来提升接收端的接收能力。由于接收端更加复杂而且其均衡的有效性会显著影响链路传输的可靠性,因此在PCIE3.0时代,接收端的测试变成了必测的项目。所谓接收端测试,就是要验证接收端对于恶劣信号的容忍能力。这就涉及到2个问题,一个是这个恶劣信号怎么定义,另一个是怎么判断被测系统能够容忍这样的恶劣信号。首先来看一下这个恶劣信号的定义,这不是一个随便的差信号就可以,这个信号的恶劣程度有精确定义才能保证测量的重复性。这个恶劣信号通常叫做StressEye,即压力眼图,实际上是借鉴了10G以太网的叫法。这个StressEye实际上是用高性能的误码仪先产生一个纯净的带预加重和Preshoot的8Gbps的信号,然后在这个信号上叠加上精确控制的随机抖动(RJ)、周期抖动(SJ)、差模和共模噪声以及码间干扰(ISI)。为了确定每个成分的大小都符合规范的要求,所以测试之前需要先用示波器对测试信号进行校准,确定产生的是规范要求的StressEye。下图产生StressEye和信号校准的一个原理图。另一个问题是如何判断被测系统能够容忍这样的恶劣信号。这就需要被测系统工作在环回模式,即把其从RX端收到的数据再通过TX端发送出来送回误码仪,误码仪通过比较误码来判断数据是否被正确接收,测试中要求误码率小于1E-12。下图是用Agilent的高性能串行误码仪N4903B和N4916B预加重模块进行PCIE3.0接收测试一个示意图。实际测试中根据实际情况还需要增加一些耦合器、转接头、测试电缆等。这个测试对于激励源也即码型发生器的要求很高。首先其要能产生高质量的PCIE3.0的8Gbps的数据流,其固有抖动要非常小才不会影响正常的抖动容限测试;其次其要能在数据流上调制上幅度、频率精确可控的抖动分量并能够进行误码检测。Agilent的N4903B是高性能的串行误码仪,其单路可以产生12.5Gbps的高速数据流,信号20%~80%上升时间20ps,固有抖动只有9ps(p-p),信号的幅度在50mV~1.8V范围内连续可调,同时其内部集成时钟恢复电路,信号接收灵敏度小至50mV,非常适合PCIE3.0接收测试这种速率高同时对信号质量又有很好要求的场合。N4903B还可以通过后续升级支持最高28.4Gbps的高速串行数据,可以充分兼顾未来更高速率的应用。除此以外,PCIE3.0的接收测试还需要产生带Preshoot和De-emphasis的信号,这实际上是一个2阶的De-emphasis。Agilent的N4916B是高性能的De-emphasis模块,其可以产生