- UID
- 826333
|
目前,集成电路的设计周期要求更短,但是规模却更大,结构更复杂,提高芯片的测试覆盖率成为人们关注的焦点之一,本文介绍的缓冲器插入工具可以通过基于RTL的SSAF分级技术有效地提高测试覆盖率。 Eric Hoang Jamie Fontenot Kuang Hsien Chen 设计制造经理 摩托罗拉高级设计工具系统部 利用设计综合进一步缩短设计周期是电子行业赖以生存的基本手段,因此,所有的设计必须符合一定的自动测试生成(ATG)设计约束条件,以便利用ATG工具取得更高的测试覆盖率。然而,在设计综合过程中,约束条件规定:利用ATG工具无法测试大量的数字逻辑电路,怎么办?如何在规定的设计时间内提高测试覆盖率? 本文描述一种商用工具,在RTL设计过程中,它能够测量当前的测试覆盖率,确定模式增强的低测试覆盖率模块。该工具向RTL设计中插入零延时的缓冲器之后,RTL设计就可以进行故障分级。具备门级单个附着故障(SSAF)分级信息的相关测试结果,可以反映RTL设计阶段故障分析的优点。
传统的故障分级方法 当前,设计周期越来越短,门级测试分级非常困难。电路密度持续增加,以摩托罗拉最新的嵌入式处理器MPC555为例,它包含:Power PC核、448K字节闪存、32K字节SRAM和15个附加模块。在这样的设计中,测试结果必须与设计周期缩短的趋势相适应,测试分级必须在设计早期完成。 测试分级是对设计逻辑仿真环境提出的进一步要求,在该仿真环境中,要采用功能验证模式对模型进行逻辑仿真。另外,故障仿真需要有效的检测器的输出选通时序信息。最小的工具需求包括:兼容逻辑的有效性、故障仿真器以及具有恰当内存以便处理设计网表SSAF分级的工作站,如果不具备这样的条件,测试将很难进行下去。 对综合过程生成的逻辑进行故障分析很困难。由于逻辑简化、电路优化以及电路图综合工具对门级元件布局和布线方法的影响,要跟踪门级逻辑的功能相当复杂。 综合设计和测试分级流程 测试分级流程由故障仿真和故障分析两个阶段组成(如图1所示)。在故障仿真阶段,通过故障仿真工具获得的初始故障列表要与所有用于生产的模式一起进行故障仿真。未检测到的故障列表将在故障分析阶段用于编写附加测试模式,并用于识别和删除冗余逻辑或不可测逻辑。 要用故障分析来识别待写的附加向量,首先要进行全局分析以确定低覆盖率的分层模块。未测试功能和不可测试逻辑模块可通过分析低覆盖率部分来确定,然后分析相关的故障集(多例程、并行位等)。
一旦生成了附加模式,逻辑上不可测故障(LUD)就可从这些区域删除,接着要重新计算故障覆盖率。如果故障覆盖率仍然太低,单一故障只能采用其它测试模式单独处理。如果要满足特定的设计时间要求,则可能要增加成本。 RTL分级的一种方法 如前所述,只有在门级网表生成以后,才能进行故障仿真和附加模式的生成。目前,网表生成后直接进入设计阶段,因而在掩模之前,就可能没有足够的时间按期实现完整的故障仿真和附加模式生成。 在RTL级对插入的缓冲器故障进行故障分级,可以一边产生功能模式一边开始故障分级,不必等待门级网表的生成。功能验证的测试覆盖率是掩膜的重要指标,当技术指标解释方法提供模式生成时,可由功能验证的测试覆盖率了解整个测试覆盖的质量,从测试分级中获得的测试覆盖和故障分析信息,可进一步改进测试模式。在形成门级网表之前,若时间容许的话,上述信息还能改善特定区域的可测试性。
缓冲器插入是RTL分级过程中最关键的方法,这种方法的核心在于,通过在模型中恰当的位置增加零延时的缓冲器,可以修改原始的RTL模型。增加的缓冲器在RTL模型中处于可变及可执行的状态,附着故障注入到这些插入缓冲器的输入端仿真RTL可变附着故障。缓冲器插入全部完成后,任何能够处理混合门和RTL的商业故障分级工具都能进行标准的单个附着故障分级,并生成故障覆盖报告。 我们建议的RTL分级流程,能通过TurboFCE工具插入RTL缓冲器来实现。Verifault工具能实现故障分级,如图2所示。所要求的输入包括Verilog RTL模型、功能或附加测试模式。输出包括故障分级报告、未检测的故障列表和有助于低故障覆盖分析的混合RTL模型。建立在RTL分级流程中的主要测试区域包括增强的测试模式和增强的RTL模型可测试特性。 测试模式的增强过程通过低故障覆盖模块的故障分析触发来实现。模式增强可通过修改现有的测试模式或编写新的附加模式来实现。要增强RTL模型,必须在设计初期,通过并行开发模型和测试向量来实现。 RTL故障分级的优点 虽然测试分级的功能与门级分级相似,但是在RTL分级所花费的时间更少,其抽象的级别高于门级抽象,总的故障数和未检测到的故障成比例地减少,相应地减少了所需的设计资源。同时,利用该方法完成故障分析的速度快于利用综合门级网表进行的门级故障分析。
我们测试的MPC555包括6个模块:总线接口、计数器、闪存外围电路、闪存控制电路和64输入队列A/D转换器,这些部件常用于模块化设计环境。对不同的模块,现有的测试模式有4到27个。待设计模块的规模从0.2MB(MPC590 CNTC模块)到0.6MB(Flash控制器模块)不等,每个RTL模组采用插入缓冲器模式实现,不同的缓冲器插入模式产生相应的测试用Verilog RTL模组。缓冲器插入设计模组必须经过故障仿真,然后与门级故障仿真结果进行比较。 未检测故障的分析 对缓冲器插入RTL模型的未检测故障列表的分析,要跟门级故障分析同时进行。伴随单个故障的群(cluster)故障也同样存在于RTL模型之中。 与门级一样,充满未检测故障的RTL控制信号路径表现出未经测试的功能特性。在利用所有的测试模式进行故障仿真之后,分析存在未检测节点的原因,可以找到编写附加测试模式的根据,该根据可能是:模式验证方法中缺少某些基本功能特性,或者未检测的故障表现出的模糊边界条件。与门级故障分析处理过程相似,无用或冗余的不可测试节点在完成识别之前,将仍然保持未检测故障的特性。
相关结果的评估 测试数据表明,插入缓冲器的RTL模型与门级模型相比,故障覆盖率差距在0.6%到13%之间,工具增强之后,差距减少了。良好的RTL模型拓扑使它的插入缓冲器分级与门级节点故障分级相似。优质RTL模型拓扑能使插入缓冲器的分级达到门级输入故障的分级水平。正如我们期待的那样,特定设计模组的优质和劣质模型的故障总和通常小于门级故障的总和。 研究发现,优质模型的故障数量大约为门级故障的1/4到1/2,劣质模型的故障数量大约为门级故障的1/3到2/3,这个结论有助于优化缓冲器插入的过程,以提高RTL与门级故障列表之间的相关性。优化的结果将提高对低覆盖率模块的验证准确性,同时改善对全局覆盖率的评估。 工具的局限性和折衷方案 如上文所述,在故障插入工具使用中存在故障分级的局限性。添加缓冲器可能会改变原始RTL模型的功能特性,因为寄存器传输逻辑比门级逻辑的抽象层次高,基于RTL的故障分级方法会引起精度损失。如果需要100%门级SSAF覆盖分级,测试工具需要更加易于识别的附加测试模式、冗余和不可测试逻辑,但是不能完全替代门级故障分析。要完成包括RTL附加模式在内的所有模型的门级故障仿真,需要对剩余的未检测故障列表进行处理,这个过程通常与门级测试分级有关。 在生成门级网表之前,RTL分级有助于提高门级测试覆盖率,而设计初期的RTL故障分级能够支持附加测试向量的生成,进而在掩膜之前获得特定SSAF的覆盖率。在后续的开发过程中,还要持续改进设计验证、可测性设计和制造测试的开发,新的工具和技巧已经在开发之中。
目前,市场上出现了几种RTL代码覆盖工具。通常,这些工具可以检查测试过程中没有经过处理的可执行的描述、分支条件、表达式和顺序模块中可能的路径。代码的转换信息可通过特定的工具取得,虽然测试工具本身并不提供直接的可测试性分析信息,也不能确保完整的功能测试,但某些工具已经用于测量和增强RTL代码的覆盖率。 显然,有必要采用有效的RTL可测试性分析工具,这样的工具将有助于识别行为结构的可控制性或可观察性,也可以在设计初期改善设计的可测试性,减小测试的复杂性,从而通过结构和/或功能测试达到更好的故障覆盖率。 RTL SSAF分级 在继续复用功能测试组件满足制造过程测试需求的同时,我们还要达到现实功能验证的目标。在掩膜之前,门级单个附着故障测试分级已经实现了最小85%的测试覆盖率,显示了良好的功能覆盖。由于研究过程取得了满意的相关结果,缓冲器插入RTL分级可以作为门级分级的替代方法,从而实现预掩膜输入要求的测试覆盖率目标。为了将环境和仿真工具对相关性的影响减低到最小程度,门级仿真过程中普遍使用的故障仿真器和选通时序将继续沿用。 RTL覆盖率的增长很可能改善门级故障覆盖率。在设计初期进行RTL分级,有助于识别冗余逻辑的验证,并方便进行设计修正以便增强可测试性和附加测试模式的生成,从而改善门级测试覆盖率。 结论 目前,设计周期更短、规模更大、结构更复杂的设计项目为门级设计分级技术的发展创造了条件。缓冲器插入工具使基于RTL的SSAF分级技术有可能替代门级分级技术。TurboFCE工具可以满足这方面的需求。 |
|