在比单端I/O高两个量级的线速率下,开发环境中所使用的实验和测试设备也必须跟上才行。不幸的是,针对高速串行I/O系统而设计的设备非常昂贵,通常需要占用计划预算的大部分。
那么我们是否因为高速实验和测试设备难以获得就停止追求串行I/O所提供的好处呢?在本文中,我们给出了一种解决方案,可以消除高速串行技术方面的进入壁垒,从而使得更多人可以更容易地使用串行技术。同时也可以将昂贵的实验设备解放出来,分配给更多项目使用。该方案基于赛灵思 Virtex-II Pro X器件,因为它包含的RocketIO X千兆位速率收发器(MGT)支持10 Gbps线速率。
这一解决方案包括一个连接到灵活的片上逻辑分析仪内核模块的位错率(BER)测试模块,这二个模块均在FPGA上实现。当配合ChipScope Pro软件工具时,这二个模块能够完成以前需要成本为5万美元的高速BER测试仪和逻辑分析仪才能完成的诊断和调试功能。
RocketIO设计流程简介
设计一个RocketIO系统需要对系统的数字和模拟部分进行仿真,图1示出了典型的MGT设计流程。
为保证实现一个可靠的链路,对模拟系统进行SPICE仿真是必须的。精确的仿真必须包括发送器和接收器之间所有的物理连接,对每一过孔、连线、连接器和传输媒介都要采用准确的模型。
同时,还必须与用户逻辑同时仿真MGT功能;赛灵思为这一目的提供了MGT SmartModels。有了仿真结果,然后就可设计和构造用于进一步测试的原型板。正是在硬件测试、调试和开发的这一阶段,本文所介绍的完整低成本调试解决方案的好处才能够充分体现出来。
设计调试所面临的挑战
图2所示的RocketIO MGT功能模块框图分为两层。物理介质连接(PMA)层的功能以数字方式实现,而物理编码子层(PCS)则主要是模拟的。
对于串行链路的分析也分成同样的两个方面:模拟和数字部分。如何定位数字逻辑错误是大家都比较熟悉的,因为数字域的现象容易复制和隔离。将逻辑分析仪捕获的数据与仿真所期待的数据相比较就可以发现并确定硬件中的确定性错误。
对于模拟部分的问题,分析则要困难得多,特别是当错误的发生频率很低且随机时。由于错误的随机性质,每次测试的结果都在变化。然而,经过足够数量的重复试验,就有可能可靠地重复出这些错误。这就是BER测试的目的,而BER也为衡量链路性能提供了一个有用的指标。ALT="图1:RocketlO MGT功能模块框图。">
为什么采用BER指标?
BER等于位错数量除以所传输的总位数所得到的数值。为测量BER,通过串行链路发送测试数据模式,然后在接收器端与原始模式进行比较。由于错误发生的模型是一个随机过程,因此为了使计算出的BER数值统计上有意义,就必须发送足够数量的数据位。赛灵思应用指南XAPP661详细讨论了BER测量的计算置信度和精度。
尽管影响链路性能的因素有许多,但衡量链路可靠性的最终指标就是BER。这些影响因素包括信号走线设计、时钟质量、电源完整性,以及由于制造公差而引起的阻抗不匹配。BER数值从系统的角度涵盖了所有这些因素,因此链路任何部分(或相关子系统)中的任何异常都会导致BER指标高于期待值。
BER测量的一个假设是传输位错的分布是符合高斯分布的。应当通过检查数据流中的错误分布来测试这一点。猝发性错误则不是随机的。如果是这样,就应当检查是否与某些噪声源有关,或者检查数据模式本身。
为简化MGT设计,赛灵思在RocketIO用户指南中提供了全面的推荐使用电源和振荡器列表。如果严格遵循这些建议,那么由于电源导致BER过高的可能性就几乎可以排除。同样,采用推荐的振荡器可以保证时钟质量。到目前为止,信号完整性问题的大部分都可归因于未采用推荐的电源和振荡器配置。
BER测试还验证了SPICE仿真的物理连接是否提供了器件所能达到的所有性能。在电源和时钟质量没有问题的情况下,测量和仿真结果间的任何差别都可追踪到仿真模型和PCB制造工艺的准确性。为区别这两者,应当利用高速走线的时域反射法(TDR)来检查PCB走线的阻抗与PCB技术参数之间的变化。
确定导致BER比较差的主要原因并不那么容易,因为多种因素相互作用影响测量结果。然而,通过比较每次改变前后的BER,可以观察到某个因素的逐步改变是如何影响链路性能的。这对于通过链路影响因素的变化进行假设分析(what-if)测试非常有用。例如,利用这种方法可以了解PCB、电源、时钟源、连接器和电缆等对链路性能的影响。举例来说,在尽量降低成本的过程中,可以比较每个部件的变化如何影响BER来确定成本和性能之间的折衷点。
XBERT-“软”BER测试仪
图4中所示的XBERT模块可测量BER,赛灵思 XAPP661中对这一参考设计进行了详细描述。它使用一个MGT发送数据模式发生器生成的串行数据,同时接收端的模式跟踪器和比较逻辑则负责检测位错。
进入模块的控制信号用来切换复位信号和选择不同的伪随机位序列(PRBS)及时钟模式,同时模块的输出则提供BER计算统计结果。
在活动MGT附近利用一个闲置MGT提供一个仿真噪声源,这对于分析邻近MGT的干扰非常有用。通常,这种活动噪声是通过电源或其它设计不好的走线耦合到其它MGT中的。
测试模式的设计必须合适才能充分准确地仿真实际应用中可能遇到与数据模式相关的位错情况。XBERT中使用的模式是国际电信联盟(ITU)在SONET及10 GE等标准中所推荐使用的测试模式。
通过在每种测试复杂度下运行很短的一段时间,可以快速获得有关链路性能的粗略估计。随着链路可靠性的提高,测试的数据模式应当更为复杂,测试运行时间也应当更长。
单单XBERT本身并不能完全替代专业测试设备。例如,对于某些标准还需要抖动容限测试,但XBERT无法完成。但它可以完成许多BERT测试设备能够完成的耗时且需要较多资源的测试。XBERT使得专业实验设备可解放出来用于其它测试。
解决方案简介
在Virtex-II Pro器件中实现的XBERT和ChipScope软件与图3所示的框图类似。在这种特殊的测试设置中,数据从远端环回,从而在同一试验装置中可以完成链路两个方向的测试。同样,也可以在远端使用另一个XBERT来独立地测试每个链路。
XBERT的输入连接至ChipScope虚拟I/O或者连接到用户逻辑。XBERT输出(如帧错误计数和位错计数)被ChipScope集成逻辑分析仪(ILA)内核读取,做为触发条件。
两者结合起来可提供数据分析仪所提供的强大分析功能。可通过位错触发或组合条件触发来隔离特定类型的错误。同时,还可以采用接收到的数据来检查错误附近的数据模式。
这样可以为确定位错的根本原因提供有用的线索,特别是当错误与数据模式相关时。例如,如果直流平衡被破坏,那么位错可能会在很长的数据长度后才出现。
ChipScope Pro工具不需要增加额外的硬件就可在FPGA内实现一个逻辑分析仪。这样一个实时调试解决方案允许您在设计运行时查找信号状态。利用ChipScope Pro软件,可以同时测试的端口数量比目前任何其它逻辑分析仪设备所能测试的都要多。
每片FPGA需要一个ChipScope ICON内核来通过JTAG连接到主PC。ICON内核支持多达15个ILA、ILA/ATC、IBA/OPB、IBA/PLB和VIO内核。每个ILA内核可测量的最大信号数量仅受可用逻辑资源数量的限制,最多可有16个触发端口,每个最大宽度为256位。
ChipScope Pro分析仪GUI都有一个方便的波形显示器,可将采样数据按通常HDL仿真器的形式组织显示。您可象通常的仿真过程一样观察MGT数据和状态信号,因此可加快验证过程。
典型调试流程
让我们来考虑这样一种情况,需要调试一块新的原型板,而用户逻辑报告有位错发生。
ChipScope软件可用来监测设计中的任何总线或信号。通过控制设计体系中ChipScope的探测位置,在不同检查点对比硬件采集数据和仿真结果,就可以缩小问题的范围。当从可能原因中排除数字逻辑部分的问题以后,就可以开始调试模拟部分了。
下面是使用这一解决方案时的一些调试步骤:1)按照赛灵思的建议检查所选的电源和振荡器。2)利用ChipScope软件,在所有用户逻辑之前检查接收到的直接来自MGT输出的数据和状态信号。如果这些都没有问题,那么就是用户逻辑出了问题。3)利用并行和串行环回模式检查收发器设置并验证MGT工作是否正确。 4)利用ChipScope软件按下面的顺序检查每一MGT功能相关的状态信号:时钟和数据恢复、命令对齐、8b/10b、时钟校正、通道捆绑、循环冗余校验。
在PCB走线上运行BER测试,看看在目标线速率下物理链路本身工作是否可靠。如果在最容易的测试模式下没有检测到错误,尝试逐渐增加测试模式的复杂性。
利用XBERT和ChipScope软件做为数据分析仪,检查位错的分布,并且核实这些错误是否与任何噪声源相关。
更快完成调试
ChipScope工具可加快调试过程。当使用ChipScope软件时,改变触发信号或数据信号源时并不需要修改HDL代码或重新综合,因此可快速将探测点改变到同一时钟域中的任何信号。为使改变生效,只需要重新运行综合后物理实现即可,从而使得设计物理实现反复所需要的时间大大缩短。
ChipScope内核可通过内核插入工具GUI快速方便地移除和插入。同时,放置信号探头的速度也比传输逻辑分析仪快得多,特别是对于宽信号总线。
XBERT和ChipScope结构构成的解决方案与用户逻辑、软件和系统级控制的工具是独立的。在测试BER之前,只需要利用包含XBERT和ChipScope软件的位流映像简单地配置一下FPGA就可以了。可以修改同一映象来适配到不同的器件,并可容易地重利用同一设计和技巧。
拥挤的电路板和远程控制
随着FPGA器件密度的提高,众多的引脚使得连接测试探头成为一项挑战。考虑目前通用的总线宽度,需要大量的外部测试点,这需要占用大量引脚,从而极大地减少了剩余I/O的数量。
对于电路板空间紧张的应用,这些测试点连接器所消耗的空间是非常可惜的。而要在有限的空间里完成布线使问题进一步复杂化。
ChipScope软件与主PC之间仅需要一个四脚的JTAG连接,因此可以解决这一问题。因为原来生产中进行边界扫描测试也需要这一连接,因此大多数情况下ChipScope工具并不需要增加任何额外引脚。
这一解决方案的另一优点是,在由于电路板空间限制而无法安装按钮或DIP开关时,ChipScope虚拟I/O还可用来切换MCT端口和其它控制信号。此外,在环境测试中,还可以代替手工控制,从而可通过任何网络进行完全控制。
如果所选用的器件利用率太高,以致没有留给ChipScope软件的空间,那么在开发过程中可选择外形和引脚兼容的更大规模的器件。通过在生产时切换回更小的器件,就可以保证低成本。
当不使用ChipScope软件和XBERT时,就不再需要引脚兼容的更大规模器件所提供的更多逻辑资源了。当需要时,这些资源可用来增加新的功能或者满足设计修改的需要。这样就避免了电路板重新设计的需要,因为电路板上的位置可适合多种密度的FPGA哗啦。
即使没有引脚兼容的器件可供选择,仍然可以采用分而治之的策略,一次只调试部分用户逻辑,留下足够的资源来实现ChipScope和XBERT。
结论
赛灵思 XBERT和ChipScope组合构成的解决方案不需要使用昂贵的实验设备(如逻辑分析仪和BERT测试仪)就可以快速完成MGT系统的分析测试、调试和开发。这大大降低了串行系统开发的总成本,从而允许更多的设计可从千兆位速率串行技术中获益。
作者:Joel Tan
应用工程师
赛灵思公司