基于fpga硬件结构的时钟网络遍历测试方法

文档序号:8301231阅读:397来源:国知局
基于fpga硬件结构的时钟网络遍历测试方法
【技术领域】
[0001]本发明属于集成电路技术领域,具体涉及一种FPGA (现场可编程门阵列)中时钟网络的遍历测试方法。
【背景技术】
[0002]FPGA作为一种半定制的集成电路,既解决了专用集成电路设计周期长,制造成本高和生产工艺复杂的不足,又避免了原有可编程逻辑器件门电路数量有限和工作频率较低的缺点。FPGA可以通过硬件描述语言Verilog HDL或VHDL对其编程,用户使用硬件描述语言设计电路,再通过相应的FPGA开发软件编译生成位流文件下载到FPGA芯片中,从而将FPGA芯片快速配置成所设计的电路。
[0003]随着FPGA芯片规模和应用领域的不断扩大,对FPGA的内部资源的遍历测试逐步变得更加困难。首先,FPGA作为一种通用的硬件平台,需要设计者对其编程配置才能实现具体的功能。例如一种基于SRAM的FPGA芯片,片内所有的逻辑资源和开关都可以通过位流文件对其编程控制。通常地,FPGA的配置方式都在十亿数量级左右,并且具体的用户配置方式在测试时也是未知的[1]。所以,对FPGA的测试也必须是通用的,与具体应用无关的;其次,即使是同一个系列的FPGA产品,硬件厂商为了针对不同的应用需求,通常会推出不同型号和规模芯片,所以对FPGA遍历则测试需要和FPGA阵列的大小无关;再次,由于FPGA产品更新周期很短,所以对于FPGA的遍历测试方法必须具有可重复利用的特性;最后,FPGA的遍历测试必须覆盖到FPGA内部的所有逻辑资源。
[0004]通常情况下,在测试中对FPGA芯片施加激励和读取响应的时间是很短,主要的时间则耗费在对FPGA的编程下载上,对于不同阵列规模的芯片,这一时间可以达到数秒到数分钟。所以,衡量一种测试方法优劣的标准就包括了故障覆盖率和测试所需时间,也就是测试中所用到的配置数目。
[0005]时钟信号是时序逻辑的基础,它决定了逻辑单元中的状态何时更新。在绝大多数的应用场合中,FPGA都被用来实现时序逻辑功能。无论FPGA中其他逻辑电路优化得有多好,如果时钟网络不能提供正确的时钟信号,那么这些逻辑电路的性能和功能都会受到非常严重的影响,所以对于FPGA中时钟信号的遍历测试就显得尤为重要。FPGA时钟网络测试的主要目标是检测出FPGA芯片中的时钟网络部分在制造过程中是否存在由于工艺的问题而导致的错误。
[0006]现有测试方法的基本思想是在FPGA中配置出一条路径,然后使这条路径能够覆盖到尽可能多的资源。在这条路径的一端施加测试激励,在路径另一端读取响应。若响应与预期一致,则测试通过,否则测试失败。这一方法的明显缺点就是由于FPGA的1 (输入输出)端口相对于芯片内部资源来说要稀少的多,所以不得不使用更多的测试配置数目以达到较高的故障覆盖率,这无疑就会大大增加测试时间和测试成本。为了能够减少测试时钟网络所需要的配置数目,同时保持较高的故障覆盖率。必须有一种通用的,与芯片阵列规模无关的,全面可行,可移植的时钟网络测试方案。
[0007]参考文献:
[1]TahooriM B, Mitra S.Automatic configurat1n generat1n for FPGAinterconnect testing[C]//2013 IEEE 31st VLSI Test Symposium (VTS).1EEEComputer Society, 2003: 134-134.[2]LamoureuxJ, Wilton S J E.FPGA clock network architecture: flexibilityvs.area and power[C]//Proceedings of the 2006 ACM/SIGDA 14th internat1nalsymposium on Field programmable gate arrays.ACM, 2006: 101-108。

【发明内容】

[0008]本发明的目的在于基于FPGA的硬件结构,提出一种配置次数少、可移植性好、对片内时钟网络进行遍历测试的方法。
[0009]一种典型的FPGA结构图如图1所示,其中每个Tile代表一个单元逻辑电路块,整个FPGA芯片就是由这样的一个个单元逻辑电路块组成的阵列。Tile之间的资源为布线通道,可以将不同的Tile连接起来。一种典型的Tile结构图如图2所示,每个Tile内部包含了一个基本的逻辑电路单元(Basic Logic Element)和一个与之相连的互联模块(Interconnect),这个基本的电路逻辑单元可以是CLB (可编程逻辑单元),BRAM (块RAM),DSP (数字信号处理器)或者其他的硬件电路。时钟信号就是通过片内的时钟网络传递到每个Tile的时钟输入端(图中的GCLK0~GCLK7),再通过Tile内部的连接作为基本逻辑电路的时钟信号。
[0010]一种典型的FPGA片内时钟网络结构如图3所示。芯片中的时钟网络主要包括竖直方向的全局时钟线,芯片内部资源从上往下被分为若干个时钟域,全局时钟线竖直地跨过这些时钟域。每个时钟域可以从全局时钟线中任意选择时钟信号来驱动该时钟域中的所有资源。时钟网络的驱动源位于正中央,整个时钟线以树状的形式向左右两侧发散开来,形成遍布整个芯片的时钟网络,这种时钟网络结构也称H型结构。时钟网络的遍历测试就要保证这所有的全局时钟线上的时钟信号能被准确地送到芯片中的每一个角落,从而保证FPGA的时钟在任何用户配置下都能正常工作。为了验证全局时钟信号确实送达到每个逻辑块的GCLK端,我们将每个逻辑块作如下配置:
对片内时钟网络的遍历测试,为了尽可能减少配置数目同时保证较高的故障覆盖率,就需要充分利用FPGA芯片内部丰富的逻辑资源,将待测信号经过一定的运算后再输出到观测端进行测试,这样就可以极大程度地减少测试中对10端口的数目要求。对于CLB逻辑块电路,将其内部的SLICE配置成一种逻辑门的运算形式;对于BRAM逻辑块电路,将其配置成只读的ROM地址查找模式;对于DSP逻辑块电路,将其配置成加法器或者乘法器的工作模式。所有上述的配置模式都是在时钟信号的控制下,用寄存器输出结果。通过片内的互联资源将相邻的逻辑块电路连接起来,即在每一行内,将这些电路用串联的方式连接起来,上级电路的输出信号在时钟的作用下作为下级电路的输入信号;行与行之间的连接方式是:上一行的输出作为下一行的输入,简称为“之”字型连接方式,如图4所示。这样,如果片内每个单元电路的时钟都能正常工作的话,那么最后在输出端就能观测到预期的输出信号;反之,如果任何一个单元电路的时钟出现故障,那么这一级的输出信号就会出错,导致最后在输出端观测到的结果也是错误的,这样就可以测试出片内任何一块的时钟是否存在故障。并且这样的配置方式不存在布线的问题,因为需要考虑的只是Tile和Tile之间的连线关系,这可以很方便地用Tile之间的布线资源实现。至于实现“之”字型所需要的长线,则可以利用行与行之间丰富的长线资源实现。
[0011]相比于传统的测试方法,本发明可以极大地减少测试中对1端口数目的需求,降低对布线条件的要求,极大地减少所需的配置数目,并且易于实现。
[0012]技术效果
本发明能够完成对FPGA内部所有时钟网络的遍历测试,包括每个单元块电路的所有时钟输入端。可测试到的故障类型包括短路、开路、常O和常I等故障。相比于传统的测试方法,本发明可以极大地减少配置次数、降低对于布线的要求,同时显著地减少对1端口的占用,并且能够覆盖到片内所有的逻辑电路的时钟资源,具有很高的故障覆盖率。另外,本发明所用的测试方法与FPGA的阵列规模无关,具有很好的移植性。
【附图说明】
[0013]图1一种典型的FPGA结构。
[0014]图2—种典型的Tile内部结构。
[0015]图3—种典型的FPGA片内时钟网络结构
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1