新闻中心

EEPW首页>测试测量>设计应用> 简化FPGA测试和调试

简化FPGA测试和调试

—— Simplify FPGA Test and Debugging
作者:泰克公司 时间:2007-04-11 来源:电子产品世界 收藏

引言

本文引用地址://m.amcfsurvey.com/article/47820.htm

  随着的设计速度、尺寸和复杂度明显增长,使得整个设计流程中的验证和调试成为当前系统的关键部分。获得内部信号有限、FPGA封装和印刷电路板(PCB)电气噪声,这一切使得设计调试和检验变成设计周期中最困难的流程。另一方面,几乎当前所有的像CPU、DSP、ASIC等高速芯片的总线,除了提供高速并行总线接口外,正迅速的向高速串行接口的方向发展,FPGA也不例外,每一条物理链路的速度从600Mbps到高达10Gbps,高速IO的和验证更成为传统专注于FPGA内部逻辑设计的设计人员面临的巨大挑战。这些挑战使设计人员非常容易会把绝大部分设计周期时间放在调试和检验设计上。

  为帮助您完成设计调试和检验流程,它需要使用新的调试和工具,帮助调试设计,同时支持在FPGA上全速运行;高速信号完整性工具和方法也越来越多的在FPGA中体现出来。

  本文根据当前FPGA的设计人员面临的挑战分为2个部分,第一部分重点介绍在调试FPGA系统时遇到的问题及有助于提高调试效率的技术;第二部分针对复杂FPGA中内嵌的高速IO的信号完整性测试和分析,提供了最新的方法和工具。

FPGA设计流程概述

  在FPGA系统设计完成前,有两个不同的阶段:设计阶段,调试和检验阶段(参见图1)。设计阶段的主要任务是输入、仿真和实现。调试和检验阶段的主要任务是检验设计,校正发现的任何错误。

图1 FPGA设计流程图

设计阶段

  在这一阶段不仅要设计,而且要使用仿真工具开始调试。实践证明,正确使用仿真为找到和校正设计错误提供了一条有效的途径。但是,不应依赖仿真作为调试FPGA设计的唯一工具,有许多问题仅仅通过仿真无能为力。

  此外,还需要提前考虑调试和检验阶段,规划怎样在线快速调试FPGA,这可以定义整体调试方法,帮助识别要求的任何测试工具,确定选择的调试方法对电路板设计带来的影响。针对可能选用的FPGA存在的高速总线,除了考虑逻辑时序的测试和验证外,应该充分考虑后面可能面临的信号完整性测试和分析难题。

调试和检验阶段

  在调试阶段,必需找到仿真没有找到的棘手问题。怎样以省时省力的方式完成这一工作是一个挑战。

FPGA调试方法

  在设计阶段需要作出的关键选择是使用哪种FPGA调试方法。在理想情况下,希望有一种方法可以移植到所有FPGA设计中,能够洞察FPGA内部运行和系统运行过程,为确定和分析棘手的问题提供相应的处理能力。基本在线FPGA调试方法有两种:使用嵌入式逻辑分析仪以及使用外部逻辑分析仪。选择使用哪种方法取决于项目的调试需求。

嵌入式逻辑分析仪内核

  主要FPGA厂商针对器件的在线调试都提供了嵌入式逻辑分析仪内核,如Altera的SignaiTap II和Xilinx的ChipScope ILA。这些知识产权模块插入FPGA设计中,同时提供触发功能和存储功能。它们使用FPGA逻辑资源实现触发电路,使用FPGA存储模块实现存储功能。它们使用JTAG配置内核操作。并用来把捕获的数据传送到PC上进行查看。由于嵌入式逻辑分析仪使用内部FPGA资源,因此其通常用于大型FPGA电这些大型FPGA可以更好地消化插入内核带来的开销。一般来说,用户希望内核占用的FPGA逻辑资源不超过可用资源的5%。与任何调试方法一样,还要知道这种方法存在的部分矛盾。

针脚与内部资源

  嵌入逻辑分析仪内核不使用额外的测试针脚,因为它通过现有的JTAG针脚访问内核。这意昧着即使设计受到FPGA针脚限制,您可以使用这种方法。矛盾在于,它使用的内部FPGA逻辑资源和存储模块可以用来实现设计。此外,由于使用片内内存存储捕获的数据,因此内存深度一般相对较浅。

探测与运行模式

  嵌入式逻辑分析仪核心的探测非常简单。它使用现有的JTAG针脚,因此不必担心怎样把外部逻辑分析仪连接到系统上。矛盾在于,尽管嵌入式逻辑分析仪可以查看FPGA操作,但没有一种方式把这些信息与电路板级或系统级信息时间关联起来。而把FPGA内部的信号与FPGA外部的信号关联起来对解决最棘手的调试挑战至关重要。在分析方法上,嵌入式逻辑分析仪只能进行状态分析。

成本与灵活性

  大多数FPGA厂商提供了嵌入式逻辑分析仪内核,而其价格要低于全功能外部逻辑分析仪。虽然用户希望更多的功能,但嵌入式逻辑分析仪内核的功能无论从通用性,分析方式,触发能力,还是从存储和分析能力都弱于全功能外部逻辑分析仪,而用户通常需要这些功能,来捕获和分析棘手的调试挑战。例如,嵌入式逻辑分析仪只能在状态模式下操作,它们捕获与FPGA设计中已有的指定时钟同步的数据,因此不能提供精确的信号定时关系

外部逻辑分析仪

  由于嵌入式逻辑分析仪方法存在的部分限制,许多FPGA设计人员已经采用外部逻辑分析仪方法,来利用FPGA的灵活性和外部逻辖分析仪的处理能力,如泰克TLA系到逻辑分析仪。

  在这种方法中,感兴趣的内部信号路由到FPGA没有使用的针脚上,然后连接到逻辑分析仪上,这种方法提供了非常深的内存,适合调试那种出现故障和实际导致该故障的原因在时间上相距很远的问题;对于需要采集大量数据进行后期分析的设计人员也非常必要。另外它还可以把内部FPGA信号与电路系统中的其它活动时间关联起来。

  与嵌入式逻辑分析仪方法一样,也需要考虑许多矛盾。

针脚与内部资源

  外部逻辑分析仪方法采用非常少的逻辑资源,不使用FPGA内存资源。它释放了这些资源,来实现所需功能。现在的矛盾在于,必需增加专用于调试的部分针脚数量,而很明显,设计要使用这些针脚。

探测与工作模式

  外部逻辑分析仪探测要比嵌入式逻辑分析仪方法要求的探测复杂一些。必需确定怎样使用逻辑分析仪探头探测FPGA内部信号,而不能使用电路板上已有的JTAG连接器。最简便的方式是在电路板中增加一个测试连接器,这可以简便地把FPGA信号与系统中的其它信号关联起来。{{分页}}

成本与灵活性

  尽管外部逻辑分析仪的购买价格确实要高于嵌入式逻辑分析仪,但使用外部逻辑分析仪可以解决更加广泛的问题。逻辑分析仪不仅可以用于FPGA调试,还可以用来解决其他数字设计挑战,它被公认为进行通用数字系统硬件调试的最佳工具。外部逻辑分析仪能够实现更加灵活的采集模式和触发功能。通过外部逻辑分析仪,可以设置最多16个不同的触发状态(每一个状态含高16个条件判断分支),每一个通道提供256M的内存,并且可以在定时分析模式下以高达125ps的分辨率(8GHz采样)捕获数据。

选择合适的FPGA调试方法

  这两种方法都可以使用,采用哪种方法要视具体情况而定。挑战在于确定哪种方法更适合您的设计,用户可以问自己下面的问题:

预计有哪些问题?

  如果您认为问题仅限于FPGA内部的功能性问题,那么使用嵌入式逻辑分析仪可以提供要求的所有调试功能。但是,如果预计有更多的调试问题。要求检验定时余量、把内部FPGA活动与电路板上的其它活动关联起来、或要求更强大的触发功能,那么使用外部逻辑分析仪更适合满足调试需求。

  当FPGA芯片针脚存在超过200M的高速总线,例如集成内存控制器的DDRI、DDRII内存总线,以及集成高SerDes的高速串行IO总线,信号完整性测试是保证设计成功的基础。在本文的后半部分会介绍主流的测试工具和方法。

除状态数据外,是否需要考察快速定时信息?

  外部逻辑分析仪允许以高达125ps的分辨率(8GS/s采样)查看FPGA信号详细的定时关系,这有助于检验设计中实际发生的事件,检验设计的定时余量。嵌入式逻辑分析仪只能捕获与FPGA中已有的指定时钟同步的数据。

  需要捕获多深的数据?外部逻辑分析仪提供的采集内存更深。一般在嵌入式逻辑分析仪中,最大取样深度设为128Kb,这一数字受到器件限制。

  而在外部逻辑分析仪中,可以捕获最多256Mb样点。这有助于查看和分析更多的问题及潜在原因,从而缩短调试时间。

设计中更多地受限于针脚还是受限于资源?

  使用嵌入式逻辑分析仪不要求任何额外的输出针脚,但必须使用内部FPGA资源,实现逻辑分析仪功能。使用外部逻辑分析仪要求使用额外的输出针脚,但使用内部FPGA资源的需求达到最小(或消除了这种需求)。

FPGAView FPGA调试

  FPGAView概述

  外部逻辑分析仪方法有效利用FPGA的处理能力,并根据需要重新对设备配置,把感兴趣的内部信号路由到通常很少的针脚上。这是一种非常有用的方法,但它也有一定的局限性:

  * 用户每次需要查看一套不同的内部信号时,都必需改变设计(在RTL级或使用FPGA编辑器工具),把希望的信号组路由到调试针脚上。这不仅耗费时间,而且如果要求重新汇编设计,那么还会改变设计的定时,可能会隐藏需要解决的问题;

  * 当更改FPGA内部测试信号时,在外部逻辑分析仪上的被测信号名称需要手工进行更新;

  * 一般来说,调试针脚数量很少,内部信号与调试针脚之间1:1的关系限制着设计查看能力和洞察力。

  为克服这些局限性,出现了一种新的FPGA调试方法,它不仅提供了外部逻辑分析仪方法的所有优势,还消除了主要局限性。FPGAView软件在与泰克TLA系列逻辑分析仪配套使用时,为调试FPGA和周边硬件电路提供了一个完整的解决方案(参见图2)。

图2 典型的FPGAView实现方案

  这种组合可以:

  * 时间关联的查看FPGA内部活动和外部活动;

  * 迅速改变FPGA内部探点,而无需重新汇编设计;

  * 每个针脚监测多个内部信号;

  * 在TLA逻辑分析仪上自动更新切换的内部信号名称。

  此外,FPGAView可以在一台设备中处理多个测试内核(适合监测不同的时钟域),并可以在一个JTAG链上处理多台FPGA设备。

快速使用FPGAView

  可以通过下面几个简单的步骤使用FPGAView:

  第1步,在设计中配置和插入相应的测试内核(Configure and Insert);

  第2步,加载测试内核信息(Load);

  第3步,建立FPGA针脚与TLA逻辑分析仪通道的对应关系(Mapping);

  第4步,进行(Run)。

  第一步是配置测试内核,把它插入到FPGA设计中。例如,在使用ALtera设备时,可以使用Altera的逻辑分析仪接口编辑器,创建最
  适合自己需求的测试核(参见图3)。

图3 使用(逻辑分析仪节口编辑器)定义和插入内核的实例

  对大多数测试内核,可以指定下述参数:

  Pin Count(针脚数量):表示希望专用于逻辑分析仪接口的针脚数量。

  Bank Count(组数):表示希望映射到每个针脚上的内部信号数量。

  Output/Capture Mode(输出/捕获模式):选择希望执行的采集类型。可以选择Combination/Timing(组合逻辑/定时模式)或Registered/State(寄存器/状态模式)。

  Clock(时钟):如果用户选择了Registered/State(寄存器/状态)的捕获模式,这一选项允许选择测试内核的取样时钟。

  Power-Up State(通电状态):这个参数允许指明指定用于逻辑分析仪接口的针脚的通电状态。

  从FPGAView软件窗口中,可以与JTAG编程电缆建立连接,并且连接到TLA系列逻辑分析仪(TLA逻辑分析仪使用windows平台)或PC工作站上。{{分页}}

  在使用ALTERA FPGA芯片时,按Open(打开)工具条按钮,调出一个文件浏览器,选择Quartus II LAI Editor软件以前生成的逻辑分析仪接口(LAI)文件。这样就加载了与LAI核心有关的所有信息电包括每一组的信号数量、组数和信号名称,另外如果设备中的LAI内核多于一个,那么还包括每个LAI内核的信息。

  下一步是映射FPGA针脚和TLA逻辑分析仪探头之间的物理连接,FPGAView可以自动更新逻辑分析仪上显示的信号名称,与测试内核当前监测的信号相匹配。

  为此,简单地点击Probes(探头)按钮,将出现一个拖放窗口,把测试内核输出信号名称与逻辑分析仪上的相应通道连接起来(参见图4)。对某条目标连接,这个通道分配过程只需一次。

图4 FPGAView迅速简便地映射针脚

  使用Bank(组)列表下拉菜单,选择想要的组。一旦选择了组,FPGAView会通过JTAG接口与FPGA通信并配置测试内核,以便选择希望的组。

  FPGAView还将这些通道名称通过对TLA系列逻辑分析仪的控制进行自动分配,从而可以简便地理解测量结果。为测量不同的一套内部信号,用户只需选择不同的信号组(参见图5)。全功能TLA系列逻辑分析仪会自动把这些FPGA信号与系统中的其它信号关联起来(参见图6)。

图5 选择希望测量的信号组


图6 TLA系列逻辑分析仪自动完成和简化了许多测量

  在TLA逻辑分析仪中,针对设计人员关心的各种时间信息,提供了业内独有的定时参数自动测量功能,通过鼠标简单的拖放操作,能够得到周期,频率,占空比,脉冲宽度,通道一通道延迟,边沿计数,周期计数,违规计数,周期抖动,以及周期间抖动等信息。

高速FPGA的信号完整性测试和分析

  当前流行的FPGA芯片都提供高速总线,例如DDR内存总线,PCI-X总线、SPI总线;针对超高速的数据传输,FPGA通过集成SerDes提供高速串行I0,支持各种诸如PCI-E、GBE、XAUI等高速串行总线协议,为各种不同标准的高速传输提供极大的灵活性。

高速串行总线眼图测试

  对于采用内嵌SERDES电路的FPGA芯片,其高速串行信号进行测试和验证,最基本的工具是通过示波器进行对其眼图测试。因为眼图能够非常直观的反映一条被测信号路径上的整体信号质量问题,包括信号的抖动量大小(眼宽)以及幅度的大小(眼高)等重要信息。图7是一个高速数据信号的眼图形成的过程。

图7 眼图的形成过程

  从眼图的形成过程可以看出,一个NRZ编码的高速数据无论传输何种码流,都可以看一个重复信号,经过一定时间和样本数的累计,它反映整个传输通路上的信号质量。

示波器的带宽要求

  示波器进行高速总线测试啕带宽是对示波器的基本要求。以一个NRZ编码的高速串行总线为例,它理想的波形是一个方波信号,方波信号是由它的基波(正弦波)和奇次谐波(3次,5次,7次)组成。根据信号的传输速率和上升时间时间,选择尽量高带宽和最快上升时间的示波器,这样测试结果保留更多的谐波分量,构建高精度的眼图测试结果。

  示波器带宽反映了对被测信号幅度上的衰减,而示波器上升时间决定了对被测信号上升时间测试的误差。经典的示波器带宽和上升时间的关系为:带宽



关键词:FPGA测量测试

评论


相关推荐

技术专区

关闭