通用处理器的测试压缩结构设计方法研究毕业论文.doc_第1页
通用处理器的测试压缩结构设计方法研究毕业论文.doc_第2页
通用处理器的测试压缩结构设计方法研究毕业论文.doc_第3页
通用处理器的测试压缩结构设计方法研究毕业论文.doc_第4页
通用处理器的测试压缩结构设计方法研究毕业论文.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

西安理工大学本科生毕业设计(论文) 通用处理器的测试压缩结构设计方法研究毕业论文第一章 研究背景及意义1.1课题研究背景随着集成电路工艺进入深亚微米阶段,集成电路的设计规模越来越大,电路的频率也越来越高,使得芯片测试变得越来越困难,同时测试成本也不断提高,根据2003年的ITRS的预测,在2014年集成电路的测试成本将和制造成本相同,因此如何降低测试成本成为最关心的问题。扫描设计已经成为商业界普遍采用的可测试性设计方法,它与ATPG相结合,可以确保高质量的测试结果。然而,随着电路规模的增大、触发器个数的增多,如果要实现高覆盖率的测试,扫描测试的数据将急剧增加,从而依赖于自动测试仪(ATE)的测试带来一些问题:(1)庞大的测试数据量一方面对ATE的存储容量提出了更高的要求,另一方面也意味着较长的测试时间;(2)尽管扫描向量的测试时间可以通过设计大量的扫描链来减少,但由于受实际芯片管脚数和ATE测试通道数的限制,可以有ATE直接驱动的内部扫描链的条数是有限的,使得设计的扫描链过长,增加了测试时间。上述种种,都会带来测试成本的增加。测试压缩技术是解决上述问题的有效方法,它在保证测试质量的前提下,能有效地减少测试数据量和测试时间,因此有着巨大的理论价值和现实意义,广受学术界和工业界的关注。1.2课题研究意义数字集成电路测试的主要思想是:给被测电路施加测试激励,然后在电路的输出端口捕获输出响应,把这些输出响应和通过模拟得到的无故障的期望响应比较,如果输出响应和无故障的期望响应不同则表示电路存在故障。在实际的测试过程中,输入激励和无故障的期望响应都存储在ATE上,通过ATE向被测电路施加激励和捕获响应,然后让ATE比较输出响应和无故障的期望响应,最后ATE输出一个信号表示该被测芯片是否有故障。在集成电路测试的时候,一般会采用两种不同类型的测试:功能测试和结构性测试。功能测试主要是让待测电路运行在功能模式下,其主要目的是为了验证实际芯片和需求是否符合,功能测试也能检测到很多不同类型的故障,但是功能测试存在着向量产生困难、故障覆盖率低、不便于故障诊断等特点。结构性测试的主要目的是为了检测电路中存在的固定性故障(Stuck-at Fault)、时延故障(Delay Fault)、桥接故障(Bridge Fault)等故障,其主要优点是故障覆盖率高、测试向量产生容易-易于对存在故障的电路进行诊断。在实际的测试过程中,既包含功能测试又有结构性测试,功能测试不但用于验证芯片的功能,同时也作为提高故障覆盖率的一种补充手段,因为有部分故障在功能测试中更容易被检测到,结构性测试作为检测芯片故障的主要手段和方法。 第二章 课题研究内容的发展前沿随着超大规模集成电路技术的不断发展,作为技术前沿的处理器的设计变得愈加复杂,时钟频率、片内多线程等性能指标不断提高。处理器设计正面临着高可靠性、高质量、低成本以及更短的产品上市时间等日益严峻的挑战,测试也变得越来越困难,测试成本在整个芯片开发成本中所占有的比例也在与日俱增。在测试一个复杂系统时,通常需要考虑以下三个问题:(1)测试能否确保检测所有的故障;(2)测试的产生时间是否在整个芯片的开发过程中是经济的;(3)测试的执行时间是否在整个芯片的开发过程中是经济的。 解决上述问题的积极办法是可测试性设计(DFT),指在集成电路的设计阶段就考虑以后测试的需要,将可测试性设计作为逻辑设计的一部分加以设计和优化,为今后能够进行高效率的测试提供方便。通常借助于EDA技术,可以实现可测试性设计的自动化,提高电路开发的工作效率,并获得高质量的测试向量,从而提高测试质量、降低测试成本。本章首先介绍数字集成电路测试的一些基本概念,然后介绍扫描设计技术,最后介绍测试压缩技术的研究现状。2.1数字集成电路测试原理芯片测试伴随在芯片的整个设计、制造流程中,图2.1是实际的芯片的设计、制造以及测试的流程图。我们可以看到,测试在“自顶向下”的各个环节中都有涉及,其与设计紧密集合。首先确定设计需求和测试需求,在这里的测试需求主要包括要测试的故障以及要测试的内容;在书写测试规范阶段,主要的工作就是制定测试的各种规范,如故障覆盖率的要求等;在测试开发阶段,主要的工作是针对待测电路进行DFT设计,例如向待测电路插入边界扫描、扫描链、针对存储器加入MBIST等,然后进行测试向量生成同时评估测试向量的故障覆盖率,进行向量仿真等,芯片的测试工作主要集中在这个阶段;当圆片生产出来后进行圆片测试(Wafer Test),在封装后进行封装测试。确定设计和测试需求书写设计和测试规范设计测试开发加工制造生产测试好的芯片失效分析验证测试设计验证审查审查用户图2.1芯片设计制造流程集成电路测试的目的是为了排除存在制造缺陷的芯片。芯片的缺陷包括工艺缺陷、材料缺陷、时间相关的缺陷和封装缺陷等,而故障就是这些缺陷的抽象表现形式。最常用的一种类型的缺陷可以抽象为信号状态被锁定在逻辑0或者逻辑1上,称为固定型故障(Stuck-at Fault);对于采用深亚微米制造工艺的芯片,其高质量的测试还必须结合多种故障模型,如通路时延故障(Path Delay Fault)、跳变故障(Transition Fault)和IDDQ故障等。故障模拟是测试及可测试性设计的基础。而故障模拟能够在注入故障的情况下模拟电路的响应,主要用于测试评估及测试产生,是验证测试质量的重要手段。数字逻辑电路的故障模拟涉及故障取样、故障模拟算法、故障覆盖率统计等内容,它也是可测试性设计中必不可少的步骤之一。2.2扫描设计技术简述集成电路的设计和测试技术是集成电路的主要核心技术,而可测试性设计技术是这两大核心技术的复合技术或边缘技术。可测试性设计通过在芯片原始设计中插入各种用于提高芯片可测试性的硬件逻辑,从而使芯片变得容易测试,大幅度地节省芯片的测试成本,其目的就是为了确保芯片在生产制造之后,通过测试的产品都能够正确无误地工作。相比功能测试,利用可测试性设计进行测试是一种更具成本效益的测试方法。DFT设计对电路的修改必须以不改变原始设计的功能为前提,但是由于需要在原始设计中增加必要的硬件逻辑,因此不可避免地会在一定程度上影响系统的面积、性能、功耗等。因此我们应当合理地选择一个折衷的方案,使得在获得良好的可测试性的同时将DFT设计所带来的负面影响降低到最小。 DFT方法主要可分成两大类:一类是专项设计(Ad-Hoc Design),它依赖于设计者的经验,“因地制宜”地采取一些简单易行的措施来提高电路的可测试性;另一类是结构化设计(Structured Design),它从可测试性的观点对电路的结构提出一定的设计规则,使得电路可以依照某种传统的、预定义的过程进行测试。由于专向设计方法主要依赖于设计者的经验,因此在自动化程度、对大型电路的可应用性等方面都不如结构化方法。扫描设计是一种主要的结构化方法。如果在时序电路中不采取任何DFT技术,通过在电路的输入端施加激励,经过若干个始终周期后在电路的输出端捕获测试响应,这样会导致大量的测试向量、较长的测试时间和较低的故障覆盖率。为了解决这个问题,1965年IBM的设计人员在IBM/360系统中新增加了扫描设计:新增加了一种被称为移位的模式,在该模式下,所有的触发器被替换成扫描触发器并被连接成若干个扫描链,每个扫描链的输入/输出连接到电路的输入/输出上,于是就可以通过扫描链把触发器的状态移入,这样就可以控制电路中所有触发器的值,如果要观察所有触发器的状态,则通过扫描链把触发器的状态移出,如图2.2所示。在这种设计中,电路的可控制性和可观测性得到很大的提高。现在扫描触发器的设计方案有:Muxed DFF、Level Sensitive Scan Design(LSSD)、Clocked- Scan,在处理器中大多采用前两种方法8。D触发器D触发器D触发器组合电路输出扫描触发器扫描触发器扫描触发器组合电路输入输出扫描输入扫描输出图2.2 (a) 插入扫描链以前图2.12(b) 插入扫描链以后表示扫描链在采用了扫描设计后,也会引入一些开销:插入扫描链后的芯片会带来额外的面积开销,如果选择的扫描触发器是Muxed DFF,在触发器的数据输入端口增加一个MUX逻辑单元的时延,从而影响到芯片的性能,如果选择的扫描触发器是LSSD,则还需要在后端设计中处理两个测试时钟的时钟树。由于前面提到的面积和时延开销,导致很多芯片中并不是将全部的触发器替换成扫描触发器并连接到扫描链上,称这种扫描设计为部分扫描设计,否则称为全扫描设计。全扫描设计的优点在于可以利用组合ATPG算法,产生高效的测试向量,达到很高的故障覆盖率,从而大大减少对功能测试向量的依赖,并且有利于故障分析,为芯片调试提供良好的可观察性。在实际的DFT设计中,很多芯片采用全扫描设计,例如AMD-K6和Power PC系列大多数都采用全扫描设计。如果出于对性能的考虑,要求关键路径上的触发器不被替换成扫描单元,那么可以采用部分扫描设计。部分扫描设计相对灵活得多,不仅节省面积开销,而且能减少对电路性能的影响,其代价是对时序电路的测试产生困难,故障覆盖率可能会有一定程度的下降。随着人们对芯片性能的要求不断提高,不少芯片开始采用部分扫描设计,例如AMD-K7、UltraSparc I/II、Alpha 21364和Intel的PX等芯片中都采用了部分扫描设计。这种一维的扫描链结构在现在集成电路测试中得到了广泛的应用,但是这种一维扫描链结构存在较长测试数据移入和移出时间的问题,同时因为这种扫描结构在移位过程中寄存器翻转多会导致功耗过大等问题,人们提出了一些二维扫描结构,例如扫描树、扫描森林和随机访问扫描结构。时序电路可以模型化为一个组合网络和一组带记忆的元件(触发器)。内部扫描设计就是把这些记忆元件修改为扫描触发器,并连接成为扫描链(相当于可以移位的寄存器)。扫描链的输入在芯片管脚可控,其输出在管脚可观测,从而达到对记忆元件的取值进行控制和观测的目的。主要有三种扫描设计的方法:Muxed DFF,Level Sensitive Scan Design(LSSD),Clocked- Scan1。在CPU中大多用前两种扫描方法。考虑到芯片面积及性能的约束,根据记忆单元是否被全部地替换成扫描触发器,扫描设计有“全扫描”和“部分扫描”之分。全扫描设计的优点在于可以高效地利用自动测试向量产生(Automatic Test Pattern Generation,ATPG)算法,采用组合电路模型,产生高效的测试向量,对门级固定型故障达到很高的故障覆盖率。采用全扫描设计可以大大减少对功能测试的依赖,有利于故障分析,并为芯片调试提供了良好的可观察性。然而,全扫描设计对电路本身有很高的要求,必须遵循很多设计规则。在某些情形下,比如存在很多异步逻辑,全扫描设计则难以实施,此时可以采用部分扫描设计。部分扫描相对灵活得多,不仅节省面积开销,而且可以减小对电路性能的影响。其代价是测试向量产生困难,故障覆盖率可能会有一定程度上的下降。扫描设计在实现过程中有很多需要注意的地方,包括:多时钟域合并、时钟门控、异步逻辑、总线竞争、嵌入式存储器等IP核的处理等。其中大部分都可以通过测试点插入的方法进行处理,但一般还是希望能从上层的设计中加以避免。扫描链的移位如图2.3,触发器F1和F2连在同一条扫描链上,它们对应不同的时钟域CK1、CK2。当扫描链移位时,F1和F2直接串连在一起,假设CK1在CK2之前到达,为了保证在同一个移位周期, F1移位后的新值不影响F2的移位操作,必须满足以下不等式:Tsk Ts (F2)+Tcomb+Tp(F1)(Tcomb为F1和F2之间的组合逻辑的传输时间),那么F2捕获到的值将是F1捕获到的值取反后的值;类似地,如果CK2比CK1先到,并且时钟偏移值比较大,那么F2捕获到的值会影响F3捕获到的值。图2.4多时钟域中的捕获问题10我们所要解决的关键问题是让ATPG产生正确的测试向量,在时序仿真或者ATE测试过程中不会出现扫描链捕获到的响应的实际值与期望值不匹配的现象,可采用的方法有:(1)最保守的方法是在捕获周期,只允许一个时钟域有效,这样,就不会出现一个时钟域的捕获影响另一个时钟域的现象;(2)对不同时钟域进行分析,采用更高效的方法。如果两个时钟域之间不存在任何组合通路,那么它们是彼此独立的,可以视为一个时钟域,在捕获周期它们可以同时有效;如果两个时钟域之间存在组合通路,那么,可以将捕获阶段分成多个周期,每个周期只施加一个捕获时钟,而不是让多个捕获时钟同时有效。以图2.2为例,在捕获阶段,在第一个周期施加CK1,在第二个周期施加CK2,在ATPG算法内部会改变电路结构(实际网表不变),在F1和F3之间增加一条旁路线(图中弧线)。这样,在ATPG看来,F1和F2之间不存在组合通路,但F1仍然作为或门输出的观察点,而F2对应的组合逻辑锥包括或门和非门。通过这种有序地施加多个捕获时钟的方法,可以让ATPG产生正确的测试向量,另外,还可以减少测试向量的个数,Mentor Graphics公司的ATPG工具Fast Scan中的multi clock compression正是采用这种方法来压缩向量的个数。 测试时钟在多时钟域设计中,测试时钟的选取主要有三种方法:(1)只用一个单独的同步时钟,内部时钟(如片上锁相环PLL产生的时钟、门控时钟)被旁路。其优点是在测试模式下只需要一个测试时钟,对应一个管脚开销(如果不复用功能管脚),ATPG运行时间短,测试向量个数少;但缺点是在测试模式下需要为测试时钟布局,保证扫描链移位和捕获的正确操作。另外,在扫描测试的捕获周期,由于所有触发器都捕获电路的响应,因此峰值功耗大。(2)每个时钟域采用一个测试时钟,对内部时钟采用旁路的方法。相比只用一个测试时钟的方法,其优点是无需设计测试时钟树,可以采用不同的ATPG算法,在捕获阶段一个时钟或多个时钟有效,从而减少峰值功耗;但缺点是测试时钟的管脚开销大,当然可以通过复用功能管脚来减少测试管脚开销,只是会损失一部分故障覆盖率,但减少的幅度非常小;另一方面,由于在捕获阶段只有一部分触发器来捕获响应,即用作观察点的触发器比较少,因此,测试向量的个数会比较多,复杂的、用于减少向量个数的ATPG算法则需要更多的运行时间。(3)不旁路内部时钟,那么在测试阶段,必须精确控制内部时钟,以达到测试的目的。2.3现有测试压缩方法简述与分析随着制造工艺的进步,集成电路设计的集成度和复杂度不断提高,测试成本在芯片制造成本中的比重不断增大。庞大的测试数据量和较长的测试时间是导致测试成本迅速增加的重要因素,尤其是在深亚微米工艺下,新的故障类型不断涌现,测试多种故障的需要将进一步引起测试数据量的急剧膨胀,因此,需要寻求合理有效的测试压缩方法,来降低测试成本。扫描设计已经成为业界普遍采用的可测试性设计方法,它与ATPG相结合,可以确保高质量的测试结果。然而,随着电路规模的增大、触发器个数的增多,如果要实现高覆盖率的测试,扫描测试的数据量将急剧增加,从而给依赖于ATE的测试带来一些问题:1)庞大的测试数据量一方面对ATE的存储容量提出了更高的要求,另一方面也意味着较长的测试时间;2)尽管扫描向量的测试时间可以通过设计大量的扫描链来减少,但由于实际中芯片管脚数和ATE测试通道数的限制,可以由ATE直接驱动的内部扫描链的条数是有限的,使得设计的扫描链过长,增加了测试时间。上述种种,都会带来测试成本的增加。测试压缩技术是解决上述问题的有效方法,它在保证测试质量的前提下,能有效地减少测试数据量和测试时间,因此有着巨大的理论价值和实践意义,广受学术界和工业界的关注。根据测试数据性质的不同,测试压缩可以分为测试激励压缩和测试响应压缩两个方面。在研究领域,已经提出了多种不同的测试压缩技术,它们的区别主要体现在压缩算法、压缩效果、解压缩电路的实现复杂度几个方面。测试压缩技术是建立在LBIST的基础上的。在LBIST中,通过线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)生成伪随机向量,施加给待测电路。LFSR可以看作是一个解压缩电路,而种子就是压缩后的数据。尽管应用LBIST可以极大地减少测试数据量,但由于LBIST存在故障覆盖率、面积和时延开销等问题,限制了LBIST的广泛应用。测试压缩领域的研究学者们在LBIST研究的基础上,根据新的测试环境的需要,展开了新的研究。所有这些研究使得测试压缩逐渐脱离了LBIST的范畴,发展成为一个独立的研究方向。测试压缩技术的基本原理是将原始测试向量集合压缩成,再利用解压缩电路解码,将压缩后的数据还原成原始测试向量集合,施加给待测电路。为了减少ATE的成本,一般采用片上解压缩电路,牺牲一部分硅片面积来换取测试成本,如图2.5。图2.5 测试激励压缩的典型结构10采用了测试压缩技术之后,一方面,由于提供给解压缩电路的输入是压缩后的测试数据,因此能降低对ATE存储容量的要求;另一方面,由于将解压缩电路的输出连到内部扫描链,内部扫描链的条数不再受到芯片管脚数和ATE测试通道数的限制,因此可以设计大量的扫描链来降低测试时间。这样,通过测试压缩技术有效地降低了测试中与ATE相关的测试成本。测试压缩算法的选择直接决定了压缩的效果和解压缩电路的复杂度,一般需要考虑以下一些要求:(1)压缩算法必须是无损压缩,只有原始测试向量被完全还原,才能保证测试的高覆盖率。(2)获得较高的压缩率,这是每个优秀的压缩算法必须做到的,因为追求高的压缩率是选择使用压缩算法最根本的动机。(3)解码算法简单,更容易用硬件实现。因为解码算法要做成解压缩电路内嵌于芯片之中,如果解码算法很复杂,则对应的解压缩电路也会很复杂,给其实现带来了困难。(4)压缩算法应该具有稳定的压缩率,这一要求是指针对不同电路、不同测试向量集合,所采用的压缩算法必须都能提供比较高的压缩率。通常各种测试压缩技术都利用了测试向量中的不确定位(X位),这些不确定位取值为0或为1,不影响测试向量的故障覆盖率,因而可对其适当赋值以有利于进行测试压缩。X位的产生和ATPG算法有关,在ATPG算法中,由于采用通路敏化,只有那些和敏化通路相关的原始输入才需要赋确定值,其它的原始输入不论如何取值都不影响对当前故障的覆盖,因此为X位。但为了提高每个向量观测故障的能力,减少测试向量的个数,ATPG通常使用静态或动态压缩算法,对X位进行随机填充。因此,ATPG对向量个数的压缩会直接影响X位的个数。一般而言,ATPG的压缩效果越好,X位的个数就越少,那么,测试压缩技术的压缩效果就会越差。可见,测试压缩技术与ATPG的压缩效果是互相影响的,它们之间是一种“此长彼消”的关系。根据是否与ATPG过程相结合,测试压缩方法可以分成两类。一类是传统的做法,将测试压缩和ATPG独立开来,直接对所给的测试向量进行压缩,设计相应的解压缩电路,这种方法只需要保证解压缩电路能解码还原所有的测试向量,不需要干预ATPG过程,也不需要进行故障模拟;另一类方法将测试压缩和ATPG协同起来,在产生测试向量的时候,必须考虑解压缩电路的结构,分析所产生的测试向量能否由解压缩电路产生,即验证测试向量的可解码性。如果不可解,则舍弃这样的向量。相比第一类方法,第二类方法由于将测试压缩和ATPG结合在一起,X位能得到更有效的利用,因此,测试数据量能得到更好的压缩,但缺点是需要进行ATPG和故障模拟,这是比较费时的,另外,由于需要了解待测电路的结构信息,因此只能应用于软核。而第一类方法由于不需要知道电路的细节,因此对于各类IP核(包括硬核)的测试数据压缩都是非常适用的。基于线性扩展的压缩技术这一类方法的解码过程是通过线性扩展(逻辑关系中只包含异或)完成的,下面介绍几种典型的方法。(I.) 基于线性有限状态机的方法LFSR是一类典型的线性有限状态机。基于LFSR的压缩方法属于LBIST研究的拓展,它利用LFSR将种子解码成扫描测试向量,对ATE来说只用保存种子,因此能大大减少测试数据量。种子的计算是根据测试向量中确定位的值通过线性方程组来求解。因为LFSR所产生序列的线性相关性比较小,所以它在测试压缩领域得到了广泛的应用。48提出用虚拟扫描链的方法,将内部扫描单元划分成N条扫描链,将种子移进LFSR,通过LFSR的扩展给其中N1条扫描链赋值,剩余的一条扫描链的测试向量由ATE直接提供。Mentor Graphics公司已经将基于LFSR解压缩的技术集成到商业工具TestKompress中,它的解压缩电路采用了称为Ring产生器的有限状态机,它是由多个LFSR首尾连接在一起构成的环路。压缩后的数据通过环路中的多个注入点装载到Ring产生器中,Ring产生器再将这些数据解码为原始向量,提供给内部扫描链14。(II.) 基于广播的方法基于广播(Broadcast)的压缩方法在硬件实现上一般都采用共享外部扫描输入的结构。这种思想最早源于将相同的测试向量广播给不同子电路的测试方法,以解决多个电路并行测试的问题。图2.6中的电路包含了两个子电路CUT(1)和CUT(2),如果在满足故障覆盖率的要求下,这两个子电路能完全共享同一组向量,我们就可以将它们对应的输入连在一起。如图2.6所示,在采用了共享结构的扫描设计中,测试CUT(1)和CUT(2)只需要4个输入来移入向量;如果不使用共享结构,则需要7个输入来移入向量。在此基础上,提出Illinois扫描结构的概念,采用两种模式进行测试,如图2.6所示。在广播模式下,将扫描单元连成多条扫描链,用同一个外部扫描输入管脚来驱动。由于扫描输入管脚的共享,使得相同的逻辑值移进不同的扫描链,因此在ATPG过程中必须引进相应的约束,结果将导致一些原本可测的故障在广播模式下变得不可测。对于这些不可测的故障,可以使用不带约束的ATPG生成测试向量,将所有扫描链连成一条扫描链,在串行模式下移进这些向量再进行测试。由于广播模式可以有效地降低测试数据量和测试时间,所以采用Illinois扫描结构可以取得一定的压缩效果,此外,它最明显的好处在于硬件开销小,除了传统扫描结构必需的开销之外,只需要增加少量的MUX逻辑和控制逻辑,而这些逻辑的面积开销相对整个芯片来说非常小。分段4分段3分段2分段1扫描输出扫描输入扫描链扫描输出扫描输入图2. 6多个电路的并行测试 图2.7 Illinois扫描结构13随后,又出现了很多Illinois扫描结构的改进方法,主要思想都是通过减少串行模式下测试向量的个数来降低测试数据量和测试时间,主要有以下几种改进方法:采用多个扫描输入共享的扫描结构,对扫描链进行分组,每个分组中的扫描链用同一个外部扫描输入管脚驱动,如图2.8所示。这种多分组的机制,与只采用一个分组的方法相比,减小了对扫描链逻辑值的约束,因此能减少广播模式下没有观测到的故障数。由于每个分组都要为之存储测试数据,因此,并不是分组越多,测试数据量越少。采用何种分组方式能取得最佳的压缩效果,是多分组Illinois扫描结构的一个关键问题。扫描链N扫描链(m-1)N/M+2扫描链(m-1)N/M+1扫描链N/M扫描链2扫描链1图2.8多分组Illinois扫描结构8(III.) 基于异或门网络的方法这种方法采用异或门(XOR)网络来实现解压缩电路。XOR网络是一个线性扩散网络,少量输入经过XOR网络扩散后形成大量输出来驱动内部扫描链,也就是说,每条内部扫描链的输入都是来自于若干个外部扫描输入经过异或运算后的值。基于非线性扩展的压缩技术在基于线性扩展的压缩技术中,基于共享外部扫描输入的广播结构是一种最简单的线性关系, 而基于LFSR的压缩方法和XOR网络的方法都是用线性异或网络来实现解压缩电路,只是电路性质不同,一个是时序电路,一个是组合电路。实际上,还可以利用异或门以外的一些组合逻辑门来实现解压缩电路,通过非线性的逻辑扩展,将少量输入扩展成大量输出,提供给内部扫描链。在Adaptive Scan中,测试激励的解压缩采用可配置的MUX网络的方法,其基本原理和Illinois广播式结构相同,区别在于可以在移位的时候配置那些扫描链共享同一个输入;测试响应的压缩采用XOR网络的方法,2.4小结 DFT技术已经成为处理器设计中一个重要的组成部分, 必须在设计的早期从芯片级对测试进行规划、确定测试策略和设计方法。本章首先介绍了数字电路测试的基本原理,然后介绍了扫描设计DFT技术。全扫描设计的优点在于可以高效地利用自动测试向量产生(Automatic Test Pattern Generation,ATPG)算法,采用组合电路模型,产生高效的测试向量,对门级固定型故障达到很高的故障覆盖率。采用全扫描设计可以大大减少对功能测试的依赖,有利于故障分析,并为芯片调试提供了良好的可观察性。然而,全扫描设计对电路本身有很高的要求,必须遵循很多设计规则。扫描设计DFT技术在目前主流的处理器芯片中都获得了广泛的应用。另外本章还综述了测试压缩的基本原理和一些方法,包括基于已有编码方法的压缩技术、基于线性扩展的压缩技术和基于非线性扩展的压缩技术。46 西安理工大学本科生毕业设计(论文) 第三章 一款高性能通用处理器芯片的扫描压缩结构设计随着芯片复杂度和工艺水平的提高,DFT技术已经成为保证芯片质量、降低测试成本的关键技术,进行DFT设计已成为当今处理器开发过程中不可或缺的重要环节。针对一款高性能通用处理器芯片设计,我们提供了全扫描设计的DFT解决方案。本章首先在3.1节中给出这款通用处理器的基本情况,3.2节给出芯片DFT设计的总体框架结构,然后在后面的小节中对这种DFT技术进行详细介绍。3.1 Godson-D 处理器概述Godson-D 处理器是一个64 位的、顺序双发射、支持X86 指令集的单核芯片。其内部结构如图3.1 所示。其中复杂功能单元CFU 实现了32 条复杂指令,由于这些指令出现的概率非常小,所以用复杂功能单元对性能不会有太大的影响。处理器芯片采用 13 级流水线的顺序双发射结构,其中取指和译码阶段各占了三级流水。一级指令缓存和数据缓存的大小均为32KB,采用8 路组相连的结构;二级缓存大小为512KB,采用8 路组相连结构。执行部件中对于出现概率比较高的指令都有两份运算单元,地址计算逻辑也有两个。图3.1 Godson-D 处理器结构图3.2压缩扫描设计的总体架构通常,DFT设计的流程是:首先在数字系统设计的较高层次,DFT设计者需要运用高层次的可测试性度量方法分析电路的可测试性问题,以对芯片的设计做相应的修改,并且使设计的硬件描述语言的代码风格符合扫描设计规则,然后在RTL级完成BIST的设计,接着,在逻辑综合之后设计者进行扫描链的插入。根据需要,设计者可以在适当的时候增加边界扫描功能(RTL级或者逻辑综合之后)。在后端的布局布线阶段,也要考虑扫描链的重新规划问题。最后,由设计者提供高质量的测试向量集合。考虑到LBIST在实际工程应用上的难点(包括故障覆盖率、面积和性能开销等),我们在实际的DFT设计中并没有采用LBIST,对芯片逻辑部分的测试仍然依赖于传统的ATE。总体架构如图3.2,我所做的工作在阴影部分,以下的小结将具体介绍。图3.2压缩扫描设计的总体架构3.3设计的具体实现方案在该处理器中,我们采用了Synopsis公司的DFT Compiler进行扫描链的插入以及各种DFT规则的检查。在扫描链的插入中,我们采用最基本的MUX扫描触发器来替换原来设计中的触发器,如3.3所示。扫描触发器由一个D触发器和一个多路选择器MUX组成。当SE=1时,触发器输入数据为上一个扫描触发器的输出端,从而完成测试时的串行移位功能;当SE=0时,触发器的输入数据为正常功能状态的输入,从而完成芯片正常功能。在设计扫描链时,同一条扫描链上的扫描触发器属于同一个时钟域,这样就可以避免因为时钟域混插而导致移位时时钟无法对齐的情况。功能通路扫描使能0CLKQD1扫描通路图3.3 扫描触发器的基本原理扫描设计已经成为业界普遍采用的可测试性设计方法,它与ATPG相结合,可以确保高质量的测试结果。然而,随着电路规模的增大、触发器个数的增多,如果要实现高覆盖率的测试,扫描测试的数据量将急剧增加,从而给依赖于ATE的测试带来一些问题:1)庞大的测试数据量一方面对ATE的存储容量提出了更高的要求,另一方面也意味着较长的测试时间;2)尽管扫描向量的测试时间可以通过设计大量的扫描链来减少,但由于实际中芯片管脚数和ATE测试通道数的限制,可以由ATE直接驱动的内部扫描链的条数是有限的,使得设计的扫描链过长,增加了测试时间。上述种种,都会带来测试成本的增加。为了减少测试成本,各种测试压缩的方法被广泛的应用到VLSI测试中。在本次设计中,调研了synopsys工具中集成的测试压缩工具adaptive scan。在Adaptive Scan中,测试激励的解压缩采用可配置的MUX网络的方法,其基本原理和Illinois广播式结构相同,区别在于可以在移位的时候配置那些扫描链共享同一个输入;测试响应的压缩采用XOR网络的方法,其原理如图3.4所示。在实际的工程中,可以配置输入端口数量、扫描链的长度、扫描链的数量等。 1 1 10 0 01 0 11011111111000000000000 0 00 0 01 0 1扫描输入扫描输出测试激励解压缩:MUX网络测试响应压缩:异或门网络 图3.4Adaptive Scan压缩原理实验过程:为了获得较高的故障覆盖率,我们采用了全扫描的设计方案,电路中共46137个触发器,我们将其中除了两个因需要必须为常数以外的全部单元替换成可扫描单元,扫描比例为100%。输入文件:电路RTL代码及电路网表开发环境:Synopsys DFT-MAX (内含Adaptive Scan), TMAX 0509功能:提供行测试模式和单核测试模式,并提供压缩模式的测试和非压缩模式的测试。由于该阶段的设计输入是已经替换成扫描触发器的网表文件,所以不需要设定时钟的相关信息(周期、延迟、偏斜等),而只需要从输入的设计中识别出相关的扫描时钟信号、扫描使能信号等并将一些信号的值在测试模式下约束成常数,如表3.1所示。 表3.1测试模式下信号的设置命令参数含义set_dft_signal-view existing_dft -type ScanClock-port clock指定端口信号clock作为测试的时钟信号set_dft_signal-view spec-type ScanEnable-port scanmode指定端口信号scanmode作为扫描触发器的扫描使能信号set_dft_signal-view existing_dft-type Constant-port reset -active_state 0指定在测试模式下需要保持为常数的信号,如reset, bypass, testmode_ 以及这些信号的有效值set_dft_signal-view spec-type ScanDataIn-port tile_si9:0指明每种测试模式下使用的扫描输入端口;在Internal_scan和ScanCompression两种模式下扫描输入端口都是tile_si9:0;set_dft_signal-view spec-type ScanDataOut-port tile_so9:0指明每种测试模式下使用的扫描输出端口;在Internal_scan和ScanCompression两种模式下扫描输出端口都是tile_so9:0;其中-view spec和-view existing_dft命令的区别是:existing_dft表示该信号在电路中已经连接好了,在insert_dft的过程中不需要对该信号进行任何操作;spec表示该信号并未进行连接或者需要重新进行连接,在insert_dft阶段需要先对该信号断开已有的连接方式,然后重新按照设定的要求进行连接。一般而言,触发器的时钟端口在设计输入阶段已经是正确连接好了的,所以这里设定为existing_dft;而触发器的扫描使能端口在scan_ready综合之后是常数0,所以在insert_dft阶段要将所有的触发器的扫描使能信号连接到顶层的scanmode端口上。识别出相应的扫描信号之后就需要配置在每种模式下扫描链的条数以及最大扫描链的长度,同时设定插入流水线(pipeline)寄存器的级数并指明pipeline寄存器的触发时钟,如表3.2所示。 表3.2两种模式下相关参数的设置命令参数含义set_scan_configuration-chain_count 10-test_mode Internal_scan设定Internal_scan模式下扫描链的条数是10条set_scan_configuration-chain_length 380-test_mode ScanCompression设定ScanCompression模式下扫描链的长度是380set_scan_compression_configuration-base_mode Internal_scan-test_mode ScanCompression设定ScanCompression模式是以Internal_scan模式为基础的set_pipeline_scan_data_configuration-head_pipeline_stage 1 -head_pipeline_clock clock设定在输入端口与解压器、压缩器与输出端口之间都增加一级pipeline触发器,并指定由时钟clock控制在扫描输入引脚和解压缩器以及压缩器和扫描输出引脚之间插入pipeline寄存器可以有效的缓解在输入输出引脚和第一个所连的内部的扫描触发器之间的时序问题;另外压缩逻辑是由XOR网络组成,这样会在扫描输出引脚处造成大量的翻转,容易引起引脚处高频振荡的问题。配置完扫描结构之后就需要执行设计规则检查和扫描插入的步骤了,相应的命令及其含义如表3.3所示。 表3.3测试规则检查以及插入选项命令含义create_test_protocol为设计创建测试协议,只有先创建了测试协议才能进行后面的测试协议规则检查dft_drc扫描插入前进行设计规则检查,主要检查以下四类问题:建模问题、拓扑问题、协议推断的结果问题和协议仿真阶段的问题preview_dft扫描预览,检查扫描规范的一致性,完善扫描规范并生成扫描链的结构报告insert_dft以预览的扫描链结构为目标,在综合过程中对三态总线添加使之无效或有效的逻辑,给双端口定向,将扫描寄存器连接成扫描链并优化逻辑,减少约束违例情况dft_drccoverage_estimate针对插入扫描结构之后的逻辑进行测试规则检查,并大致的估计所能达到的故障覆盖率扫描插入如果没有出现错误就可以保存设计结果了,包括报告出各种模式下扫描链的连接顺序以及网表文件和测试协议文件,如表3.4所示。表3.4保存设计结果命令参数含义current_test_modeInternal_scan/ScanCompression指定当前测试模式分别为这两种模式report_scan_path-view existing cell all根据上一步指定的当前的测试模式,报告出在这种测试模式下扫描链的连接顺序write_test_protocol-test_mode Internal_scan/ScanCompression输出每种测试模式下的测试协议文件,用于ATPG的过程中进行测试协议规则检查write -format verilog-hier -o输出层次化的插入扫描链后的网表文件,该文件作为后面ATPG过程的输入文件ungroup -all flattenwrite -format verilog-hier -o输出扁平化的网表文件,该文件中已经将层次化的设计全部打平 3.4测试压缩结构结果与分析 表3.5 实验结果Module名称实验结果触发器个数 扫描管脚数Internal模式扫描链长度Scan Compression模式扫描链长度压缩率godsont_tile_module4613720461438012.2 如表3.5所示,本次设计总共设计了20个扫描管脚,其中10个用于扫描输入,10个用于扫描输出。在Internal模式下有10条扫描链,其中最长的扫描链含有4614个扫描单元,最短的扫描链含有4613个扫描单元。扫描设计必须增加一个测试输入管脚scan mode用于扫描使能。扫描设计的面积开销低于整个芯片面积的2%。设定ScanCompression模式下扫描链的长度是380,此时共有122条短扫描链,压缩率达到12.2倍。3.5小结本章在上一章的基础上,介绍了带有Adaptive Scan压缩结构的内部扫描可测试性设计技术在一款高性能通用处理器芯片中的应用。本次设计对逻辑电路部分采用全扫描设计。将触发器替换成MUX扫描单元,并采用广播式扫描结构,用同一个外部扫描输入驱动不同的扫描链,以降低扫描所需的复用管脚数,另一方面也在一定程度上降低了测试数据量。在全扫描设计的基础上,设计了adaptive scan 压缩结构,压缩率高达12.2倍。第四章 测试向量生成与评估4.1故障模型芯片在制造过程中须经历多次物理和化学变化,部分芯片会有缺陷导致无法正常工作。这些物理上的缺陷可以通过分析其对芯片逻辑的影响来检测。但是具体电路中的一般有多种类型的物理缺陷,不便于算法生成,研究人员提出了故障模型的概念。故障模型能反映大部分实际缺陷,基于不同的故障模型可以设计不同的测试算法。故障模型与电路模型有关,不同的电路层次有不同的故障模型,如行为级故障模型、门级故障模型、开关级故障模型等。不同的故障模型在应用时其测试效率和测试效果是不同的,但是迄今为止没有适用于任何电路层次的故障模型。相比较而言,开关级故障模型与实际物理缺陷更相近,覆盖的故障类型更多,但是应用其产生测试向量也更加复杂,计算量巨大;行为级故障型生成测试向量的工作复杂度低,但是其抽象层次高,不能很好的覆盖实际的物理缺陷。门级故障模型能够很好的反映电路实际,同时其计算复杂度适中,在测试工作中应用广泛。例如,在一个电路中,某一根信号线由于缺陷和电源线短路,这将导致该信号值固定为1,或者该信号线和地线短路,该信号值将固定为0.这两种缺陷导致的故障就是测试中最常用的固定型故障(Stuck_at Fault),电路中的某一根信号固定为1或者固定为0。固定型故障模型可以覆盖很多制造中出现的物理缺陷。在固定型故障模型的基础上可以方便地设计测试算法,例如上述的固定型故障,可以通过给信号线不同的值进行检测。在实际电路测试中,为了简化处理过程,假设在某一时刻电路中只有一个固定型故障,这就是单固定型故障(Single Stuck_at Fault)模型,相对应的,多固定型故障模型是单固定型故障模型的一个扩展,它假设在某一时刻电路中可以有多个固定型故障存在。除了固定型故障,在门级故障模型中,还有短路故障模型、开路故障模型、桥接故障模型、串扰故障模型等,它们分别代表了一类物理缺陷,各种故障模型所代表的物理缺陷间也可能有交集。研究表明,针对单固定型故障模型得到的测试向量,不仅对单固定型故障和多固定型故障有很高的覆盖率,对于其他类型的故障例如桥接故障,也有很高的覆盖率,在实际应用中可以有效地检测芯片中的物理缺陷。1999年国际半导体技术路线图资料显示,单固定型故障模型可以覆盖CMOS电路中70%的制造故障。因此单固定型故障模型在测试中应用广泛,一直是研究热点。4.2固定型故障测试向量生成测试向量自

温馨提示

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

评论

0/150

提交评论