(微电子学与固体电子学专业论文)fpga测试方法研究(1).pdf_第1页
(微电子学与固体电子学专业论文)fpga测试方法研究(1).pdf_第2页
(微电子学与固体电子学专业论文)fpga测试方法研究(1).pdf_第3页
(微电子学与固体电子学专业论文)fpga测试方法研究(1).pdf_第4页
(微电子学与固体电子学专业论文)fpga测试方法研究(1).pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(微电子学与固体电子学专业论文)fpga测试方法研究(1).pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

a b s t r a c t i i l l i i ii ii ill lll l ll ll y 18 117 5 2 f p g at e s ti sad i f f i c u l tu n s o l v e dp r o b l e md u et ot h e c o m p l e x i t yo ff p g as t r u c t u r e t od e s i g nat e s tp r o c e d u r ef o raf p g a c o s tl o n gt i m ea n dm a n ym o n e y a l t h o u g h m a n yr e s e a r c h e rh a v ed o n es om u c hw o r k ,t h ep e r f e c ts o l u t i o ns t i l lh a v e n ta p p e a r e d t h i sp a p e rw o r k so nq u i c k l ya u t o g e n e r a t i o no ff p g at e s t p r o c e d u r e sf o rv a r y f p g a l o g i cs t r u c t u r e s i ta l s ow o r k so nh o wt oa p p l yt h e s ep r o c e d u r e so ni n d u s 时 t e s to ff p g ac h i p t oh a n d l ed i f f e r e n tt y p e so ff p g a ,an e w t e s tm o d e lf o rf p g a l o g i cr e s o u r s e si sp r e s e n t e d b a s e do nt h i sm o d e l ,an e wa l g o r i t h mt oa c h i e v et h et e s t p r o c e d u r ei sp r e s e n t e d t h ep r o c e s si nt h i sa l g o r i t h mi st h es a m ea so t h e rr e s e a r c h e r ,s p r o c e d u r e s ,e x c e p ti ti sa u t o m a t i c t h em a i ni d e ao ft h en e wa l g o r i t h mi sm o r el i k ea g r e e d ya l g o r i t h m ,i tp i c k st h em o s to p t i m i z e ds o l u t i o ni ne v e r yr o u n d a f t e ra p p l yt h e a l g o r i t h mo nc o m m e r c i a lf p g a s ,t h er e s u l t ss h o wt h a ti tc a na c h i e v et e s tp a t t e r nw i t h h i g hf a u l tc o v e r a g ea n ds h o r tt e s tt i m e t op r o v et h et e s tp a t t e r nc a nb eu s e di n i n d u s t r yf p g at e s t ,t h ef d p 10 0 kf p g a c h i p ,w h i c hi sd e s i g n e db yc a dl a b ,f u d a n u n i v e r s i t y , i sc h o s e na sa ne x a m p l e t h ea l g o r i t h mi sa p p l i e do ni to nt h ea g i l e n t 9 3 0 0 0t e s ts y s t e m 第1 章 1 1 1 1 1 1 1 2 1 1 3 1 2 第 第 第 1 3 2 童 2 1 2 2 2 2 1 2 2 2 2 2 3 2 2 4 2 2 5 2 3 2 4 2 4 1 2 4 ,2 2 5 j 罩 3 1 3 2 3 3 3 4 3 5 4 童 4 1 4 2 4 3 4 4 4 5 4 6 第5 章 5 1 5 2 5 3 5 4 5 5 5 5 1 5 5 2 目录 弓i i 言1j 口- i 研究背景1 f p g a 简介1 测试基本概念2 f p g a 故障模型4 工作重点5 论文组织5 f p g a 测试技术综述6 f p g a 测试的分类6 面向生产测试方法7 f p g a 测试特殊目标7 逻辑资源的测试8 迮线资源的测试1l i o 的测试l5 i d d q 测试15 a o t p 测试方法1 6 在线测试方法1 7 逻辑资源1 7 连线资源18 本章总结1 9 f p g a 逻辑资源模璀19 逻辑资源新测试模型19 f p g a 逻辑资源模型总体结构2l 可编程逻辑单元测试模型2 2 实 歹0 2 4 本章小结一2 6 f p g a 逻辑资源测试自动生成算法2 6 f p g a 测试图形自动生成2 6 测试图形自动生成流程2 7 测试算法实现2 8 x i l i n xv i r t e x 逻辑资源的测试3 0 实验结果31 本章小结3 2 f p g a 测试实例f d p l 0 0 k 3 3 研究结果应用于生产实例测试3 3 测试目标芯片简介3 4 测试配置产生3 8 芯片验证3 8 功能测试4 l 测试环境41 测试计划4 2 , 5 5 3 测试流程4 3 5 5 4 测试结果分析4 4 5 5 5 功能测试故障覆盖率4 7 5 6 参数测试5 0 第6 章 总结与展望5l 6 1 工作总结5 2 6 2 今后工作展望j 5 2 参考文献 5 3 致谢 f p g a 测试方法研究 1 1 研究背景 1 1 1f p g a 简介 一3i 言 、,u 现场可编程门阵列( f i e l dp r o g r a m m a b l eg a t ea r r a y s ,f p g a ) 是一种可编程 器件,近几年来应用广泛,发展迅速。它主要包括反熔丝( a n t i f u s e ) 型和s r a m 型两类。s r a m 型具有可反复编程的特点,而反熔丝型只能编程一次。对于s r a m 型f p g a ,它通常由可编程逻辑单元( c o n f i g u r a b l el o g i cb l o c k ,c l b ) 阵列,开 关模块( s w i t c h i n gb l o c k ) ,连接模块( c o n n e c t i n gb l o c k ) ,i ob l o c k ,编程电 路( p r o g r a m m i n gc i r c u i t s ,包括编程用s r a m ) 四大部分组成。可编程逻辑单元 通常由查表模块( l u t ) ,d 触发器和多路开关( m u x ) 组成。连线资源通常由 线段和开关组成。编程用s r a m 通常由存储单元阵列,数据移位寄存器,地址移 位寄存器和控制电路组成。下图是研究文献中普遍采用的f p g a 结构模型: u “u :h m gh k x :k 豳n m 邮吼 图lf p g a 结构模型( 来源:参考文献 2 3 ) 随着f p g a 电路规模的扩大,现在的f p g a 内部结构与上图相比有了一些变 化,如引入内嵌r a m ,内嵌c p u 等,而最近动态可配置的f p g a 结构也己出现, 这些新型f p g a 结构与该模型略有差别。但从测试的角度出发,该模型具有通用 性,多数测试文献引用的是上图的模型,因此在本文中,主要采用这个模型。 1 1 2 测试基本概念 f p g a 测试方法研究 电路测试概念 首先简单介绍一下电路测试方面的基本概念: 数字集成电路的可靠性和质量的衡量称为测试( “t e s t i n g ”) ,测试包括独立 的三个阶段: 1 ) 验证( v e r i f i c a t i o n ) :主要验证设计的正确性,即功能是不是和要设计的目 标符合,标准主要是:l 、实现了设计规格说明( s p e c ) 中要求的所有功能, 2 、没有出现s p e c 禁止的逻辑。 2 ) 测试( t e s t i n g ) :指制造的时候挑选没有缺陷的产品。其基本要求是能在短 的时间里测试大量的芯片,同时保证一定的故障覆盖率。 3 ) 参数测试( p a r a m e t r i ct e s t i n g ) :主要指验证延时,电压,功耗等有没有达到 设计要求。 通常学术界所指的测试是第二阶段,大量测试算法所针对的也是这个过程。 就测试目标来分,测试又可分为三类: 1 ) 故障检测( f a u l td e t e c t i n g ) ,主要检查电路是否有故障,而不关心故障位胃, 故障数量。 2 ) 故障诊断( f a u l td i a g n o s i s ) ,检查故障类型,位置。 3 ) 故障冗余,通过引入冗余的单元,掩盖故障。 在f p g a 测试中,故障检测是基础,多数故障诊断方法是从故障检测方法发 展而来,而故障冗余技术一般为大规模制造时采用。在本文中,主要研究的是针 对第二阶段的故障检测方法。 f p g a 测试与a s i c 测试区别 f p g a 测试与一般电路测试不同。测试的需要解决的问题有两个:1 ) 故障能 否全部检测? 2 ) 检测故障的时间需要多少? 以下分别说明f p g a 测试和a s i c 测试在这两方面的区别。 第一个方面与以下两个问题直接相关:a ) 内部节点的可控性( c o m r o l l a b i l i t y ) , 即电路内部节点可以根据测试的需要置为恰当的逻辑值。b ) 内部节点的可观察 性( o b s e r v a b i l i t y ) ,即如果必要,内部节点的逻辑值可以送到输出端观测。由于 不是所有电路的所有节点都达到这两个要求,在a s i c 测试中存在测试覆盖率的 问题。能有多少比例的内部节点能被控制和观测直接影响到故障检测覆盖率。为 f p g a 测试方法研究 提高覆盖率,很多学者提出了各种方法增强电路节点的可控性和可观察性。但在 f p g a 测试中,由于f p g a 本身可以配置成各种逻辑电路,在某个配置中不能达 到可控和可观察的节点,在另外一些配置中可以达到,所以f p g a 测试的故障覆 盖率能比较容易地达到要求,研究者的重点放在测试时间上。 第二个方面,a s i c 测试的时间主要和测试矢量加的时间相关,但f p g a 中, 在测试前必须对f p g a 进行编程下载,使其实现特定的功能后才能进行测试,而 编程下载的总时间往往很长,一般是加测试矢量总时间的数百倍,f p g a 测试的 关键在于,使用最少的编程下载次数对整个芯片进行充分测试。 f p g a 测试基本概念 由于f p g a 是一种特殊的电路,其测试也与一般电路不同,除了具有电路测 试的一般概念外,测试过程中还需了解以下特殊概念: c l b 可编程逻辑单元( c o n f i g u r a b l el o g i cb l o c k ) 基本输入输出:c l b 电路上能够在编程下载后被用户使用的输入输出端。 编程输入端:从编程单元阵列中引入c l b 的输入端,这部分在编程下载后是固 定的,不能为用户所用。 测试矢量:t v ,t e s tv e c t o r ,为测试电路的故障而在输入端所加的激励。在f p g a 测试中,指在基本输入端上加的激励。 测试矢量集:t s ,为测试某个电路,所需加的测试向量集合。 测试配置:t c ,t e s tc o n f i g u r a t i o n ,测试过程中对f p g a 编程下载实现的电路。 f p g a 在没有编程配置以前是没有功能的,为进行测试,需要先进行编程 配置,使之实现某种电路功能,才能加对应的测试向量集。因此,t c 相当 于测试时f p g a 的编程输入端上加的激励。 冗余配置:如果某个测试配置所能检测到的故障在其他测试配置中都能检测到, 那么这个配置称为冗余配置。 测试配置集:t c ,为测试某种f p g a 结构需要对该f p g a 设计的测试配置集合。 测试图形:t e s tp a t t e m ,为检测故障而设计的一组激励,在f p g a 测试中,包括 测试配置集和集合里的各个测试配置对应的测试矢量集。 测试方案:t p ,t e s tp r o c e d u r e ,测试f p g a 结构的方法,包括步骤和对应各个 步骤的测试图形。例如在参考文献 2 3 】中提出的方案表示如下: f p g a 测试方法研究 t p = t c = t c l ,t c 2 t c i ) t s i - - t s t ,t s 2 t s 。 ,表示第i 个测试配置相应的测试向量集。 测试时间:t t 。t ,测试整个电路所需的时间,在f p g a 测试中,t t e s t = ( t t c i + t t s i ) , 由于t t c i 为f p g a 编程下载时间,每次配置编程时间一样,而且一般为加 对应的测试矢量集的时间的数百倍,因此,t t e s t 丝m * t t c i ,其中m 为测试配 置集中元素的个数。 常数可测试:c t e s t a b l e ,如果某种测试方案测试某种f p g a 结构,t t 。与该结构 c l b 阵列的大小无关,则称这种方案是常数可测试的。 1 1 3f p g a 盘l r a s l t l i t - 型 电路的物理故障是千变万化的,因此为了研究故障对电路或系统的影响,定 位故障的位置,有必要对故障作一些分类,并构造最典型的故障,这个过程叫故 障的模型化。故障模型化是研究测试,评价故障覆盖率的基础,其原则有两个: l ,能准确地反映某一类故障对电路或系统的影响,具有典型性,准确性,全面 性;2 ,尽可能简单,以便作各种运算。然而这两个原则是矛盾的,因此往往要 根据解决的问题不同和研究的侧重面不同,采用不同的模型。f p g a 的不同模块 结构不同,故障造成的影响不同,因此不能采用相同的故障模型。目前的研究文 献中,主要使用如下模型: 逻辑资源: 单固定型故障多固定型故障:s i n g l es t u c k a tm o d e l m u l t i p l es t u c k a tm o d e l , 主要反映电路或系统中某一根信号线上的不可控性。 混合故障模型:h y b r i df a u l tm o d e l ,对电路中大的模块采用功能故障模型,对 小的模块采用固定型故障模型。 连线资源: 连线常开:w i r es t u c k o p e n ,连线资源中某根线开路。 单固定型故障多固定型故障:w i r es t u c k a tf a u l t ,反映连线上信号不可控性。 线桥接:w i r eb r i d g i n g ,两条线短接在一起,包括平行短接和交叉短接。 f p g a 测试方法研究 开关常开:s w i t c hs t u c k - o p e n ,开关断开,原本有可能通过编程相连的两条线 一直不能相连。 开关常闭:s w i t c hs t u c k a t ,开关始终闭合,原本可能通过编程断开的两条线 一直相连。 编程电路: 编程单元固定o l 故障:s t u c k a tf a u l ta tm e m o r yc e l l ,编程点的不可控性。 功能故障:f u n c t i o nf a u l t ,编程电路各个模块上可能出现的功能错误。 编程控制电路上的固定型故障:s t u c kf a u l t si nar ,dr ,a n dad e c o d e r 。 1 2 - t 作重点 本论文所做工作为: 1 ,对目前流行的f p g a 各种测试方法进行了调研,了解f p g a 测试的主要 思想,优化目标,以及与a s i c 测试不同的特点。 2 ,在充分调研的基础上,提出了f p g a 测试自动生成的新思想,为实现这一 新的测试思想,本论文为f p g a 逻辑资源建立了测试模型,并提出了一种测试配 置自动生成算法。并进行了多项学术实验,验证该自动生成方法所产生测试图形 的性能。 3 ,为研究如何将测试方法应用在实际f p g a 芯片测试中,本文还选用复旦大 学自主开发的f p g a 芯片f d p l 0 0 k 为实例,顺利地在安捷伦9 3 0 0 0 测试系统上 进行功能测试和参数性能测试。 1 3 论文组织 本论文结构如下:第二章阐述了目前各种f p g a 测试方法以及它们的特点,说 明t f p g a n u 试的发展和现状。通过研究这些测试技术,得出了随着技术发展, 原有的人工开发测试方案的做法不能适应,急需开发自动测试生成方法的结论。 因此,第三章提出了一个f p g a 逻辑资源测试模型。所提供的学术实验结果,表 f p g a 测试方法研究 明该模型能够描述不同类型的f p g a 逻辑资源,并能适合测试的需要。第四章在 模型的基础上进一步提出了一种测试配置自动生成算法,并提出了生成整个测试 图形的流程。学术实验表明,这个自动生成方法能得到测试时间短而覆盖率高的 测试图形。为了检验该自动方法能够在实际f p g a 芯片的工业测试中应用,第五 章提供t f d p l 0 0 k 实际测试作为实例。第六章是对本论文工作的总结以及未束工 作的展望。 二f p g a 测试技术综述 2 1f p g a 测试的分类 随着f p g a 的发展,f p g a 故障检测的技术也得到了相应发展。f p g a 电路规 模庞大,制造困难,导致成品率低,测试成本很高,所以f p g a 故障检测一直很 受关注。由于f p g a 电路结构复杂,故障类型多,目前还没有一种测试解决方案 能满足所有故障检测要求,多数方案均只针对f p g a 故障检测的某一方面,例如, 就测试目标来分可以分成面向生产测试( m a n u f a c t u r eo r i e n t e dt e s tp r o c e d u r e , m o t p ) 和面向用户测试( a p p l i c a t i o no r i e n t e dt e s tp r o c e d u r e ,a o t p ) 。 面向生产测试m o t p 又称与应用无关的测试,即在交付用户使用之前对芯片 进行测试,目的是不管用户将f p g a 配置成何种电路,均能正确的实现。在这种 测试中,对所有的电路单元都需要进行测试。m o t p 中,按针对的f p g a 不同部 分又可以分为:逻辑资源测试,连线资源测试,i o 测试,编程控制电路测试等 等。而a o t p 是指当用户用f p g a 实现电路之后,只对自己的电路所在部分单元 进行测试。 f p g a 测试中还有特殊的一类方法,是针对一些高要求的系统设计的,即在 线测试方法,它是指f p g a 实现的电路在运行过程中,随时检测f p g a 内部有无 故障。这类方法随着动态可配置f p g a 结构的成熟逐渐受到研究者的关注。 以下2 2 节分类详细说明面向生产测试m o t p ,2 3 节说明面向用户测试 a o t p ,2 4 节简单介绍了在线测试方法,2 5 节总结f p g a 测试的发展方向。 f p g a 测试方法研究 2 2 面向生产测试方法 2 2 1 f p g a 测试特殊目标 由于f p g a 具有特殊的电路结构,f p g a 的测试与a s i c n 试有着截然不同的 测试目标。参考文献【2 2 】讨论了f p g a 的测试的特殊之处: 1 ,f p g a 本身具有很好的可测性。因为f p g a 具有可编程特性,其它电路测试 中非常重要的内部节点可观察性( o b s e r v a b i l i t y ) 年 1 可控性( c o n t r o l l a b i l i t y ) 在测试 中都能够轻易的达到。 2 ,f p g a 结构规则,所以研究者达成共识,认为f p g a 测试应该采用阵列化的 测试方案。 3 ,f p g a 的测试时间不是决定于加测试矢量的总时间,而是决定于对f p g a 进 行编程下载的总时间。编程下载时间往往是, d h n 试矢量时间的数百倍。 这三个特点决定了f p g a 测试的基本思想:利用f p g a 结构的规则性,采用 阵列化测试方案,先选择f p g a 基本单元的几种测试配置( t e s tc o n f i g u r a t i o n ,即 用作测试的应用电路,通过对f p g a 进行编程下载实现功能) ,再将其组合成阵 列,用这些测试配置对f p g a 编程下载,每一次编程下载后加一些测试向量对 f p g a 进行充分的测试。如图2 所示,其中,i 表示可能的故障集合,而f ( c i ,t s ( c i ) ) 代表测试配置c i 和其对应的测试矢量集所能检测的故障子集。 如果测试配置和测试向量选择得当,就能实现用少量的测试时间( 由测试配 置的数目决定) 达到很高的故障覆盖率,如( 1 ) ( 2 ) 所示,其中凡为能检测到的故 障子集: 图2f p g a 测试的基本思想 凡= 1 m 月( c i ,嬲仁i ) ) f p g a 测试方法研究 c o v e r a g e凡o c i m 尺c i ,取c i ) )( 2 ) 从( 2 ) 式可以看出,测试覆盖率随着测试配置的数目增加而增大。而死。,定 义为测试f p g a 所需的时间,包括每个测试配置的编程下载时间和对应加测试矢 量集的时间。每次编程下载的时间i 是固定的,且远大于加测试矢量的时问, 则有: 瓦。t = 1 m ( 巩i + t t s i ) 纷i( 3 ) 根据( 2 ) 和( 3 ) ,当测试配置数量m 增加,故障覆盖率增大,测试时间线性增加。 因为f p g a 自身具有很好的可测性,所以现有的f p g a 测试方法的关键在于如何 以较小m 达到高的故障覆盖率。这种思想在f p g a 各个部分的测试中均有体现, 以下各节将详细说明。 2 2 2 逻辑资源的测试 通常研究者测试逻辑资源的过程如下:由于f p g a 逻辑资源由可编程逻辑单 元( c o n f i g u r a b l el o g i cb l o c k ,c l b ) 阵列构成,首先,用手工优化的方法设计 c l b 中的每一个基本元件的测试配置和测试矢量,得单个c l b 测试图形。例如, x c 4 0 0 0 包括4 输入l u t ,多个m u x ,因此,研究者通常设计出l u t 的两种配 置方法:对l u t 内s r a m 写0 1 0 1 和1 0 1 0 然后根据对应的l u t 完成的逻辑 功能和采用的故障模型,设计出l u t 的四个输入端的测试矢量。按照同样的方 法得到其他电路元件的测试图形,并拼出整个c l b 的测试图形。 然后通过各种方法,将整个f p g a 中的c l b 串成可以并行测试的阵列,每个 c l b 的配置和测试矢量都相同,并且每个c l b 的测试结果能够在输出端表示。 通常使用常数可测试的方案作为阵列组成方案,即组成阵列后,任何规模的阵列 都能采用同样多的测试配置进行测试,这样测试时间与阵列大小无关。 基本上所有逻辑资源测试方法在步骤上都相同。然而从实现方式上,这些方 法又可分成b i s t ( b u i l di ns e l f t e s t ) 和非b i s t 两类。 b i s t 在f p g a 中b i s t 的概念和v l s i 中的概念不同。a s i c 中的b i s t 指的是在 芯片内部增加用于测试的特殊电路,而f p g a 的b i s t 把一个f p g a 编程为三种 f p g a 测试方法研究 电路:被测电路c u t ( c l bu n d e rt e s t ) ,测试图形产生电路t p g ( t e s tp a t t e r n g e n e r a t o r ) ,测试响应检验电路o r a ( r e s p o n s ea n a l y z e r ) 。其中c u t 采用第一步 手工优化的c l b 测试配置模式。而对应的测试矢量不需要外加,可以由t p g 产 生,对c u t 进行完全的测试。为了同时测试多个c l b ,通常将整个f p g a 组成 阵列,如图3 表示一般b i s t 测试f p g a 采用的阵列组成方式。测试结果输出到 o r a 进行分析并输出到i o 。 一些些回鬯里 可:= 一;一;_ 意图 一一一 ,一 工一 邑;t p g 一卜啼c u t 一( 融,呈 一一 一一 下 型 呈l 一一一、 一上 j ;i :俩一i0 3 1 卜一 c u rh 嗍j ;呈j 一一 、 - 一l j 回圈圈回圈 图3f p g a 逻辑资源b i s t 测试 在 1 中详细介绍了这种方法的实现,其特点是利用边界扫描电路实现测试的 可控性和可观察性。 优点: 1 当测试完成,即可将f p g a 按用户的需求编程,不需要任何硬件丌销。 不受i o 口的限制,如果只进行故障检测,则只需要一个输出口。 2 可以改进应用于在线测试。 3 可以和连线资源的b i s t 测试方法联合使用,同时测试连线和c l b 。 通常这种方法需要两个以上的测试阶段,第一个阶段中的t p g 和o r a 在第 二个阶段中配置成c u t ,而原本配置成c u t 的c l b 则配置成t p g 或o r a 。 缺点:这种方法要求内部互连资源很灵活。 爿eb i s t : 1 简单方法 通过编程把每一个可编程逻辑单元( c l b ) 的输入输出和f p g a 的输入输出 单元( i o b ) 连接起来,直接对每个c l b 内的逻辑电路进行测试,不同的c l b 之间没有关联,在i o 上直接加测试矢量和分析结果,直到将所有c l b 都测试 完。缺点:f p g a 的i o 有限,而c l b 太多,每次能测试的c l b 数受i 0 数目 的限制,导致需要很多次编程下载,时间太长。 f p g a 测试方法研究 2 以阵列为基础的方法 编程成一维i l a ( i t e r a t i v el o g i ca r r a y s ) : 如图4 ,该方法通过编程把每一行的c l b 连接起来形成一个一维的阵列,作 为一个整体进行测试。它要求前一个c l b 能够产生后一个c l b 所需的测试向量, 还要求故障单元后的c l b 能把故障信息传到输出单元。优点:只有左右两端的 c l b 与i o b 连接,所有阵列可以并行测试,减少了测试时间。对于布线资源的 要求不高,而且每一行中的单个错误的c l b 能够检测到。缺点:需要仔细考虑 c l b 所实现的电路和c l b 之间的连线选择,和标准的a t p g 工具不能很好的结 合。适用于单c l b 混合故障模型( 假定整个f p g a 只有一个c l b 会产生故障) 。 图4 编程为一维阵列的b i s t 方法 x o r ,a n d o rt r e e : 圈圈圈 图5 与或树( a n d o r t r e e ) 的b i s t 方法 另一类方法是基于与,或,异或阵列的测试方法( a n d o r ,x o rt r e e a p p r o a c h ) 。这两种方法与基于i l a 的方法的不同点是: 一维阵列i l a 是利用c l b 本身来传递故障信息的,如将c l b 一部分编程为 异或逻辑,利用这部分逻辑来检查前后c l b 的输出是否一致。而这类测试方法 则是将相邻的行或列中的c l b 编程为a n d o r ,x o rt r e e 来传递故障信息。 如图5 ,基于a n d o rt r e e 的方法把整行c l b 连起来作为一个整体测试,但 传递错误信息的不是c l b ,而是通过相邻行编程形成的与或门级联电路。每一行 c l b 被配置成被测行,就有相邻两行分别配置成与门和或门。这样两行是用来检 查被测行的。被测行的c l b 的输出被下二行导入到i o 。优点在于:采用多c l b 故障模型,只需考虑对逻辑资源的完全测试而无其它要求。缺点在于:由于使用 两行作为与或门级联电路,因而编程次数多。而基于x o rt r e e 方法类似于基于 a n d o rt r e e 方法,不同在于1 ,用异或门来传送故障信息,2 ,故障模型与 a n d o r t r e e 的不一样。对于x o r t r e e ,当一个以上的c l b 有故障,而且故障 啡 耻 叫 呻 m 曼 曼 加 f p g a 测试方法研究 数是偶数,则在输出端看不见错误信息。而对于a n d o r t r e e ,是多故障模型, 在输出端总能观测到错误信息。 3 改进结构测试逻辑资源 由于f p g a 中s r a m 也是规则的,如果将s r a m 中存储的编程信息一行一行的 移位则原本对应于一块电路上的配置信息移到另一块上,如果在整个f p g a 上划 分几块实现不同的测试配置,通过将s r a m 信息循环移位,则只需要下载一次编 程数据流,就可以使得f p g a 得到完全测试,因此有些研究者试图在f p g a ) - j i j 入一 些硬件电路,实现循环移位以减少编程下载次数。如文献 1 8 】。 其测试步骤如下: 1 、下载f p g a 的编程位流文件。 2 、用其中某一编程为带反馈的移位寄存器,或计数器的r o w 产尘测试配置和测 试向量。 3 、测试完成后将配置信息移位,原来在r o wl 的数据移入r o w2 ,依次类推, 实现不同的编程配置,从而移动被测电路在f p g a 中位置,达到测试不同c l b 的目的。 这种方法的提出者使用c a d 工具对x l i n x4 0 1 3 x x l 进行了仿真,结果是2 4 次移位,总测试时间是1 0 5 毫秒。硬件上实现:在原来采用的s r a m 结构上加一 个传输晶体管,一个多路选择器,一个编程点( c o n f i g u r a t i o nc e l l ) 。这当然会有 硬件开销,在 7 】中对x l i n x 4 0 0 0 系y l j f p g a 评估结果为面积扩大4 1 9 6 1 。 这种想法的主要问题是认为s r a m 是由移位寄存器构成的,如果s r a m 是由 r a m 阵列构成,则很难实现。而且对应的编程电路需要很大调整。 2 2 3 连线资源的测试 连线资源测试研究的文章较多,因为1 ,连线资源可能出现故障的概率比其 他部分要高,它一般占整个芯片面积的5 0 - - 9 0 。2 ,连线资源结构在数据手 册中详细地说明了,与其他部分相比,其结构较明确,研究更方便。3 ,连线测 试灵活度大,优化余地较大,较能体现研究者的创新。 与逻辑资源测试相似,连线测试步骤为:首先设计出若干种有效的测试配置, f p g a 测试方法研究 将连线连接成便于测试的几组线,然后在这些线上加测试矢量。其关键在于以最 少的线段组成方式对连线以及编程开关进行全面的测试。这些方法按照测试向量 的来源可以分为两类:l 、b i s t ( 向量来自f p g a 内部)2 、非b i s t ( 向量来 自外部) 。 b i s t : 连线的b i s t 澳j j 试矛h c l b 的b i s t 测试 是基于同样的原理,需借助c l b 配置成 的测试图形产生器t p g 禾h 结果分析器 o r a 。与其他测试方法相比,b i s t 具有 测试时间短,需要l j o 少的特点,并且能 够与c l b 的b i s t 方法联合使用,同时测 图6 连线资源f l , j b i s t 实现 试整块芯片。由于不需要a t e 的配合,往往成本小。b i s t 还能在在线测试中应用。 但b i s t 也有它的缺点,由于测试矢量是在内部产生,则f p g a 的i o 需要单独测试, 不像传统的测试方法,由于需要通过i o 加测试向量,所以同时知道i o 是否无故 障( 5 】) 。 但在实际测试中,b i s t 还是用的较少,因为需要部分c l b 编程为t p g 和o r a , 这样这部分c l b 周围的连线资源就不能完全的测试,所以必须运用些特殊的方法 如将c l b 轮流配置成t p g ,o r a 等,但这样会使配置( t c ) 变多。 主要方法 9 】:把要测试的布线资源分成两部分,从同一个被配置成t p g 的c l b 那得到相同的测试向量,并在o r a 处比较输出。每一个测试阶段分成5 步:1 ) 下 载位流文件使f p g a 完成t p g ,w u t ,o r a 的配置。2 ) 初始化测试,主要是t p g 回到初始状态,o r a 清零。3 ) t p g 产生测试向量,开始测试。4 ) 测试结束,o r a 分析结果。5 ) 将测试结果输出。 缺点:由于o r a 分析结果的方法是比较两组线段结果是否一致,如果两组线 出现了同样的错误则将不能识别。因此有些文献为了减小混淆故障的概率,将一 组线和其相邻的两组线比较。但理论上这样还是存在不能区分的故障。 为解决这个问题,部分学者提出将o r a 设计成奇偶校验电路的新方法【1 3 】【1 1 】 将f p g a 分成上下两个部分,当上一部分用于测试时,下一部分用于实现b i s t 电 路。然后再相反测试一次。测试时有k 根被测线,另外有一根线带有奇偶值,其 f p g a 测试方法研究 框图大致如图7 。p c g 是k 位的x o r 逻辑,而比较器是x n o r 2 。带有奇偶校验的 那根线由不同的通道引到检测的地方,以免故障同时影响被测线和表示奇偶的 线。t p g 提供2 k 个测试向量,如果某个测试向量中的故障不能检测出,可以在另 外一组中检测出,除非故障影响所有的k + i 位。 ap a r i t y - c h e c k e r ( i m p l e m e n t e db yac l b 、 图7 连线资源的奇偶校验的b i s t 方法( 来源:参考文献【1 1 】) j eb i s t 方法: 经典方- y k : 在 1 4 中r e n o v e l l 等人详细的分析了连线的测试,该文献中对s m 中的 连接点对进行了分类,可以相连的一对p i n 称cp i n ,不能相连的一对p i n 叫 n cp i n 。并将所有故障分成两类:l ,固定连接( p e r m a n e n tc o n n e c t i o n ,p c ) ,2 , 固定断开( p e r m a n e n td i s c o n n e c t i o n ,p d ) 。如果要将两个cp i n 之间的p c 故障 检测出,必须要把这两个p i n 配置成不相连,如果要将两个cp i n 之间的p d 故 障测出,需要将这两个p i n 配置成相连。为了将所有这些p c ,p d 故障检测出, 该文提出了至少需要的三种配置。 n 1n 2 w 1e 1 , w 2 乜 s 1s 2 it 1 i j乙- _l 1,h1f - 一 iilj _ j 一 j 乙一 1r l h1广h iili 眷辞 结纺翊耻帮掷 拓豁翊鼯帮前 毖堋蹲剿 ( a )蚋 r g m e2 t h r e et e s tc o n f i g u r a t i o n sr e q u i r e dt om a k ea l lc o 增删,a u 胎n o n r e d u n d a t :o a h o g o m l t c o 献d i a g o n a l 1 舻1 阻a n dd i a g o n a l z 胪甜 图8 测试连线资源所需最少的三种配置( 来源:参考文献 1 4 1 ) 如图8 ,按这三种方法配置好连线后,相当于构成t b u s ,可以用前人提出的 一 色问题,通过一定的算法,自动得到最少的配置( t c ) 。 圃卜 试线之间的桥 转化为图的着 a ) ac f o s s p o i n lp s b ) m a l r i xr e p r e s e n t a t i o n a d j a c e n c yg r a p ho fac r o s s p o i n tp s 图9c r o s s p o i n tp s 结构及其矩阵表示图1 0 对应的邻接图 ( 米源:参考文献【6 】)( 来源:参考文献【6 】) 图9 是一个c r o s s p o i n tp s 结构得到的矩阵表示和邻接图。图9 的矩阵表示式 中字母b 表示可以相连。将连线中所有的连接结构都用这样的方法表示后,整个 配置问题就转化为着色问题了,每种颜色代表一种配置,不同颜色的点可以同时 测试。因为f p g a 中的点有相关性,如同一c l b 的输入s m 和c b 要有两个点 同时打通,所以贪婪算法不能直接使用,采用的算法是修正的贪婪算法。在文 献 6 1 1 】中,这种方法成功地应用于x l i n x 4 0 0 0 上。 改进结构测试连线资源 这类测试方法的思想是,由于每次变化f p g a 的配置( t c ) 时间很长,这成 为测试时间的瓶颈,所以不如在开关模块中加些组合和时序逻辑,使得只需要下 载一次配置( t c ) ,在完成加测试矢量( t s ) 并对结果进行处理后,由所添加的 逻辑产生下一次配置( t c ) ,并写入s r a m 单元,继续加测试矢量结果处理的过 程,直到完全测试完。 1 7 q b 作者声称所提供的方法能够使连线资源的故障检测 比一般的方法快6 6 ,故障定位快7 2 。具体做法是在每个开关模块中加入带反 馈的移位寄存器,寄存器的数目由开关模块中编程点的数目决定。这些附加的电 路可以视为有限状态机,根据所有需要测试配置中每个编程点应该设置的值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论