自动测试样式生成的电路建模方法以及自动测试样式生成电路与流程

文档序号:13933010阅读:479来源:国知局
相关申请本申请要求于2016年8月30日申请的标题为“efficientcell-awarefaultmodelingbyswitch-leveltestgeneration”的号码为62/381,040的美国临时案的优先权,其整体被纳入以作参考。本发明大体关于产生自动测试样式生成(automatictestpatterngeneration)的开关级别(switch-level)电路模型。
背景技术
::半导体芯片可测试来验证它们的操作。半导体芯片的测试必需要一个测试设备采用各信号样式的多种组合。基于现代集成电路的复杂度,需要测试的样式的数量可有成千上万。自动测试样式生成(自动测试样式生成)是指生成测试样式的各种排列(permutations)来彻底测试一芯片。测试样式生成依靠芯片上电路的模型来产生测试不同错误的测试样式。技术实现要素:因此,本发明为解决测试电路的问题,特提供一种新的自动测试样式生成的电路建模方法以及自动测试样式生成电路与非暂态计算机可读存储介质。本发明一方面提供一种自动测试样式生成的电路建模方法,该电路建模方法包含:接收一电路的模拟电路表示;以及通过用开关替换该模拟电路表示的模拟电路元件并将该电路中的错误建模为开关,产生该电路的开关级表示。本发明另一方面提供一种非暂态计算机可读存储介质,其上包含储存的指令,该些指令在由处理器运行时,执行自动测试样式生成的电路建模方法,该电路建模方法包含:接收一电路的模拟电路表示;以及通过用开关替换该模拟电路表示的模拟电路元件并将该电路中的错误建模为开关,产生该电路的开关级表示。本发明又一方面提供一种自动测试样式生成电路,包含:处理器;以及非暂态计算机可读存储介质,其上包含储存的指令,该些指令在由处理器运行时,执行自动测试样式生成的电路建模方法,该电路建模方法包含:接收一电路的模拟电路表示;以及通过用开关替换该模拟电路表示的模拟电路元件并将该电路中的错误建模为开关,产生该电路的开关级表示。本发明的自动测试样式生成的电路建模方法以及自动测试样式生成电路与非暂态计算机可读存储介质能够更高效地生成电路的自动测试样式。本发明的这些及其他的目的对于本领域的技术人员来说,在阅读了下述优选实施例的详细说明以后是很容易理解和明白的,所述优选实施例通过多幅图予以揭示。附图说明图1显示基于模拟电路仿真的产生自动测试样式生成的模型的流程图。图2显示一个改进的方法,其能显著降低或消除模拟电路仿真的需求。图3显示图2的方法可执行方式的范例示意图。图4显示电阻、电容、短路电路错误及断开电路错误的开关模型。图5a及5b显示可用于对4-输入aoi22标准单元的开路错误建模的开关级模型(图5a)以及短路电路错误建模的(图5b)示意图。图5c显示nand2单元的模拟电路表示的示意图。图6显示aoi22cmos单元的通道连接网络。图7显示ccn-断开电路模型。图8显示缺陷阻抗ρ所覆盖的整个范围的ccn-断开的vo(t)波形。图9显示与互连以及ρ组件值相关的电阻网络。图10显示ccn-短路缺陷的测试条件。图11缺陷阻抗ρ所覆盖的整个范围的ccn-短路的vo(t)波形。图12显示图5b中节点c与d之间的aoi22桥接错误#12的测试2-周期变换样式的模拟仿真结果。图13显示计算设备的结构示意图。具体实施方式本说明书及权利要求书使用了某些词语代指特定的组件。本领域的技术人员可理解的是,制造商可能使用不同的名称代指同一组件。本文件不通过名字的差别,而通过功能的差别来区分组件。在以下的说明书和权利要求书中,词语“包括”是开放式的,因此其应理解为“包括,但不限于...”。本申请中描述的技术是关于用来产生测试样式以测试数字电路的错误模型(faultmodels)。发明人发现并认为现有的模型要么无法获取要测试的数字电路的行为,要么因为模型需要大量模拟仿真而需要大量处理能力。“门级(gatelevel)”错误模型已经被用于对逻辑门建模来生成测试样式。可是,随着技术进步且晶体管尺寸继续减小,模拟电路效应变得更显著,并且门级错误模型可能不够应付各种类型的错误。结果,测试样式的生成并非是为了测试这些错误,芯片也可能无法得到充分测试。为了解决这个问题,已经使用模拟电路仿真来用于提供更高的建模准确度。可是,执行模拟电路仿真来对复杂的现代集成电路建模可能会在计算复杂度上有所限制,且需要几周或几月来执行。在一些实施例中,开关级错误模型可在门级错误模型上具有改进的准确度,并且具有针对模拟电路仿真的降低的计算复杂度。数字电路设计者可利用已定义的单元库。一个“单元(cell)”可以是一个基本数字电路建构块,例如一个多工器,逻辑门等等。与每次需要都从零开始设计这些建构块不同,电路设计者可从库内选择恰当特征的合适单元,这些特征可以是例如输出驱动能力,功耗,占用面积,等等。为了恰当地测试数字电路,可在库内为每个单元生成一个错误模型。一个错误模型是单元的表示,并考虑了在单元内多个位置的各种错误的可能性。考虑的错误类型的例子可包含卡在逻辑0或1的输入或输出。例如,如果多工器包含三个输入与一个输出,多工器的门级模型可考虑一个或多个输入或输出卡在逻辑0或1的可能性。基于这样的模型,自动测试样式生成可生成一序列的测试信号来测试是否一个多工器的例子是否有这些错误。可是,需要理解这样的门级模型并没有考虑单元内可能发生的所有错误,特别是当晶体管尺寸越来越小而模拟电路效应越来越显著。因此,需要一个更精准模型。图1显示基于模拟电路仿真的产生自动测试样式生成的模型的流程图。可执行单元布线(celllayout)及抽取(extraction)。基于抽取的布线,可确定寄生(例如寄生电阻,电容及/或电感)。基于寄生,可产生电路表示(circuitrepresentation)。例如,可生成网表(netlist,例如spice网表)。接着电路表示被更新来纳入一或多个要测试的错误。对于每个错误,对输入与模拟输入水平的各种组合运行一个模拟电路仿真来确定该错误对每个组合的效果(例如在模拟电路仿真工具中,例如是hspice)。基于仿真结果,生成一个可用于自动测试样式生成的单元的模型。发明人已经意识并了解到执行模拟电路仿真是一个瓶颈,且需要数周或数月来运行库中所有的单元。“测试平台生成器(testbenchgenerator)”块(block)生成所有可能的输入条件。例如,一个4-输入单元可导致产生32个2-周期样式。一个单元库,具有3种操作条件,200个单元,平均每个单元32样式,每个单元200缺陷,每个缺陷3个参数会导致有11,520,000次spice运行。假如每个spice要2秒,这就需要267.7天来处理库。为了在7天内处理库,需要38个spice许可来在计算工厂(computingfarm)内并行运行38个任务。图2显示一个改进的方法,其能显著降低或消除模拟电路仿真的需求。在步骤s1,可产生一个包含一或多个缺陷的开关级电路表示。开关级电路表示可覆盖多数(如果不能覆盖所有)的缺陷,使得模拟电路仿真的数量得到降低或消除。在步骤s2,开关级电路表示可接着用于自动测试样式生成。在一些实施例中,图2中的方法需要不到图1中的方法的0.25%的计算。图3显示图2的方法可执行方式的范例示意图。在图3的例子中,包含寄生与错误的电路表示转换为开关级电路表示。寄生与错误是以它们的模拟电路表示方法所表示,例如电容及电阻,被转换成具有合适门驱动信号(gatedrivesignals)的开关。例如,如图4所示,电阻可转换为一个nmos开关,其包含施加到栅极上的逻辑1,且电容可转换为一个nmos开关,其包含施加到栅极上的逻辑0。可选的,一个pmos开关也可包含相反的逻辑值施加到栅极来使用。图4显示缺陷可被建模为开关卡在断开或关闭状态。一个短路电路错误可建模为一个nmos开关,其栅极绑定到逻辑1。一个开路电路错误可建模为一个nmos开关,其栅极绑定到逻辑0。可选的,pmos开关也可用反向值施加到栅极。图5a及5b显示可用于对4-输入aoi22标准单元的开路错误建模的开关级模型(图5a)以及短路电路错误建模的(图5b)示意图。需要理解的是,这里描述的技术并不限于这样的一个单元,其也可应用于任何可用单元、单元的部分或单元的组合。图5a显示开路电路错误(例如开关卡在断开)的开关级可被插入的位置来代表单元中的开路电路错误。图5b显示短路电路错误(例如开关卡在闭合)的开关级可插入的位置,来代表单元中的短路电路错误。电路表示的一个例子是网表。网表包含电路的文字表示(textualrepresentation),例如包含的电路组件以及它们的内部连接。网表可由模拟电路仿真工具使用,例如spice,用于执行各种输入参数的仿真。模拟电路表示可以是网表,其描述了例如电容,电阻与晶体管等各电路元件之间的内部连接。在一些实施例中,转换模拟电路表示可包含用前述的开关来替换模拟电路表示中的电容与电阻。如果一个模拟电路表示包含网表,转换网表为开关级表示可通过用开关替换网表的电阻与电容。举例来说,网表中代表电阻与电容的文字可被代表开关的文字所替换,这些开关的输入绑定合适的逻辑水平。在一些实施例中,转换可由包含指令的软件自动执行,这些指令执行时会将网表中代表电阻与电容的文字替换成输入绑定到预定逻辑水平的输入的开关的文字。类似的转换也可对表示为电阻或电容的错误执行。关于将模拟电路表示转换为开关级电路表示的更具体例子会在下面描述。table1表1:nand2单元的spice网表如上所述,网表可代表通过网互相连接端子的电气设备。对于标准数字单元,模拟电路网表可包含晶体管,电阻与电容。晶体管包含3个功能性端子(漏极、栅极与源极)与绑定到供电轨道的第4非功能性端子(bulk)。布线中的连线寄生(wiringparasitics)被抽取为2端子的电阻及电容。每个设备具有额外的参数,这些参数控制它们的电气行为,其用于标准单元的准确模拟电路仿真。图5c显示nand2单元的模拟电路表示的示意图。spice网表重现于表1中。模拟参数在spice网表中不显示,因为它们在创建开关级网表中被忽略。单元具有2个功能性输入{a1,a2}及1个输出{zn},与供电轨道{vdd,vss}。有4个晶体管{m*},其中2个nmos,2个pmos。14个寄生电阻{r*}与12个寄生电容{c*}。每个位于文字网表中的设备端子会由一个网名(netname)所占用。分享同个网名的端子互相连接。排除单元外部的端口{a1,a2,zn,vdd,vss},范例单元中有14个网。spice网表可转换为下面简化的开关级网表。每个晶体管都转换为同样类型的逻辑开关(忽略块端子,bulkterminal)。每个电阻转换为栅极绑定到逻辑1的nmos开关。每个电容转换为栅极绑定到逻辑0的nmos开关。网的映射保持不变且连接到开关级网表中的开关端子。表2显示nand2单元从spice到开关级的网表转换。虽然spice模拟参数被忽略,开关具有的离散导电性以及网具有的离散电容强度值决定标准单元的开关级仿真的数字行为。强度值(strengthvalues)根据设计风格的工作原理来分配。八个强度值就足够捕捉大多数数字设计类型的行为。在由布莱恩特(bryant)定义的开关级代数中,最强的输入强度被分配给供电轨道,而最弱的强度是代数的空(null)元素。对于数字cmos电路,nmos及pmos开关具有同样的导电强度2。电阻与电容开关具有导电强度3(对于缺陷建模)。所有网具有电容强度2,除了单元输出是分配了3。单元输入分配为。八个强度值从最强到最弱排列如下:缺陷的各种类型都与spice中的电气设备相关。一个“卡在断开(stuck-open)”的晶体管无法在正常情况下完全开启。一个“卡在关闭”的晶体管无法在正常情况下完全关闭。一个布线图中的“断开”线段意味着在对应寄生电阻时具有高于一般的阻抗。布线图中两个不同线段间的一个“短路”意味着对应寄生电容的端子间的阻性桥(resistivebridge)。可如下获取等效的开关级缺陷。一个“卡在断开(stuck-open)”晶体管映射为一个没法在漏极与源极之间传导信号的开关。上面这样就代表一个开关的卡在断开的错误。一个“卡在关闭(stuck-closed)”的晶体管映射成一个没法关闭漏极与源极信号传导的开关。上面这样就代表一个开关卡在闭合的错误。一个“断开(open)”的寄生电阻映射到栅极绑定到逻辑-1的对应nmos开关的卡在断开的错误。一个寄生电容的“短路”映射到栅极绑定到逻辑0的对应nmos开关的卡在闭合的错误。请注意,模拟缺陷可具有一定范围的参数值(例如,一个阻性短路缺陷的参数值{1欧姆,1k-欧姆,1m-欧姆})。对应的开关级缺陷并不需要这样的参数值,这是因为它们的目的是要作为开关级测试生成的种子目标(seedobjectivesforswitch-leveltestgeneration,sl-atpg)。请再次参考图2,一旦生成了一个开关级电路模型,可用于自动测试样式的生成。在传统的单元感知错误建模流程(cell-awarefaultmodelingflow)中,施加给单元输入的候选样式是在spice中仿真的(慢速模拟仿真器,slowanalogsimulator),一次是在进入无缺陷情况(defect-freecase)下,另一次是在每个缺陷及相关缺陷参数值。比较没有缺陷(defect-free)与加入缺陷(defect-injected)情况的单元输出响应的差别来确定候选样式是否能探测该缺陷以及相关的参数值,例如是输出卡住(stuck-at)或变换延迟(transitiondelay)错误。确定的一个缺陷探测样式就成为单元感知错误模型的一部分。在缺陷矩阵中,每个条目(entry)都包含单元输入样式,输入错误类型(卡住或变换延迟),以及对应的探测的缺陷。sl-atpg通过针对等效开关级缺陷而直接获取有用的输入样式,而不需要经过传统的“试错(trial-an-error)”的流程。sl-atpg使用熟知及有效的测试技术(例如podem的技术)来指导寻找有用输入样式的搜寻。这些搜寻的流程涉及到使用开关级仿真(强度的量级要比模拟仿真快,ordersofmagnitudefasterthananalogsimulation)来引导如何分配单元输入,就是那个输入应该分配什么逻辑值。如果没有找到有用的输入样式,sl-atpg指定该缺陷为不可探测。使用与设计风格相关的电路性能知识,很多类型的缺陷的输出错误模型可直接推导。在很多情况下,一个高明的选择的缺陷参数值的模拟错误仿真(基于电路理论)可用于确认/生效单元感知错误模型。表2附录本申请描述了一种技术,其能够显著降低现存的昂贵的模拟错误仿真来创建单元感知错误模型。通过开发一般cmos设计的低功耗属性,晶体管级的网表大多数缺陷包含可由两种规范(canonical)的错误类别代表的寄生。使用电路分析,我们显示错误行为完全是可预测的,因为缺陷阻抗值从零到无穷,这样就排除了需要在多个参数值处的电路仿真。这两个规范的错误类别可用卡在断开与卡在闭合错误的晶体管开关来建模。与模拟错误仿真枚举全部的单元输入样式来搜寻缺陷探测条件不同,开关级测试生成可直接获取那些输入条件,因此显著降低了模拟仿真的地位,仅仅是用于探测有效性方面对条件排序(rankingconditions)。第一部分介绍当今的复杂芯片上系统的数字部分大多由使用自动的rtl-to-gds的工具链流程从预定的标准单元中建立得到。每个单元使用多个输出驱动配置所提供的一个逻辑功能。单元功能从简单到复杂且覆盖组合性与顺序性的行为。逻辑合成工具将设计的rtl描述映射为互连的标准单元的网表。额外的工具然后对网表执行进一步优化来达到面积,时间,功率,以及测试目标,同时设计实施被转换为生产的实体的遮罩层(physicalmasklayers)。对于测试来说,扫描(scan)测试设计(design-for-test,dft)方法使能自动测试样式生成(atpg)来针对在单元i/o引脚及互连表上的错误。一般的错误模型包含卡住(stuck-at,saf),变换延迟(transitiondelay,tdf),以及互连桥(interconnectbridges)。致力于达到更高质量,近来引进单元感知测试(cell-awaretesting,cat)来提高标准单元内的发生的缺陷的覆盖率。虽然每个标准单元用晶体管实施,之前的atpg工具只能与该同个单元的一个功能上等效的布尔(boolean)门级表示运行。因此,对于cat,在晶体管级发生的缺陷需要映射到门级。这样的任务被描述为基于技术的cat视觉生成(technology-dependentcatviewgeneration)。在cat视觉生成中,每个缺陷都被注入(injected)进单元的spice网表,且执行模拟仿真来寻找能在一个或多个单元输出上产生saf或tdf效果的所有单元输入条件。输入条件与输出错误效果组(setofinputconditionsandoutputfaulteffects)接着成为所谓的用户定义错误模型(user-definedfaultmodel,udfm),这发到门级atpg来进行全芯片处理。在门级中,udfm通过对额外单元输入引脚引入逻辑约束(logicconstraints)来扩展现有的saf与tdf模型,以更好反应关于晶体管实施的每个内部缺陷如何影响单元外部行为的理解。虽然技术库的cat视觉生成是个一次性的描述工作,其仍涉及大量模拟错误仿真运行,这需要几周来完成;或者需要过多的spice仿真器许可来并行处理,而这会占用可用于其他设计任务的珍贵的计算资源。而且,udfm是一种模拟错误效果的数字抽象,意味着模拟仿真的很多精准细节无法传达,因为让门级atpg工具来完全考虑百万级门的设计尺寸是不实际的。可是,一些模拟信息可对提高生成的样式的有效性有帮助。最后,对于特定类型的缺陷,单独(stand-alone)单元描述可能不准确,因为模拟仿真未能考虑单元个体引脚(cellinstancepins)处的设计内容依赖(designcontextdependency)。最后一点会在后面的第ii-b部分中具体说明。本发明解决了上面提到的cat视觉生成的不足。依靠cmos标准单元设计的两个基本属性,可以看出,晶体管通道连接(channel-connected)的网络可以归类为两个广泛的类别。同一个类别中所有缺陷都具有共同的测试策略,以及可通过在单个电阻的整个值范围内变化电阻参数来使用同一个电路模型描述缺陷行为。而且,在一个极限电阻值的最多一个模拟仿真就足够确定在特定输入条件下缺陷的最大影响。通过比较最大影响,输入条件可以它们的探测有效性(detectioneffectiveness)来排序。这样的排序能够在门级atpg时指导决策。在一些实施例中,使用开关级atpg(sl-atpg)来推导(reason)下面的切换逻辑并快速锁定所有缺陷探测的输入条件。在门级设计中,atpg替换了单独(stand-alone)的试错(trial-and-error)错误仿真,因为atpg算法使用逻辑结构的知识,以高效地搜寻有用的输入样式。类似地,运行在一个晶体管简化的模型上的sl-atpg比模拟错误仿真高效几个数量级,因为模拟错误仿真的检查缺陷探测要进行所有枚举的输入条件以及瞬态分析(transientanalysis)。在搜寻有用的输入条件时,一个类别的缺陷可以用卡在断开/关闭或卡在闭合/开启的开关来表示。在生成cat视觉的整个流程中,sl-atpg可不完全替换模拟错误仿真,但可以接手那些不需要模拟电路级细节的任务。例如,sl-atpg能在因重汇聚扇出(reconvergentfanout)而几乎逻辑上不可能感测缺陷的条件时快速确定(大多数单元输入端口扇出到nmos与pmos晶体管,这些晶体管汇聚到同个通道连接的cmos开关网络)。模拟错误仿真会需要在达到同样结论前尝试所有枚举条件。在这个附录中,我们使用一个16-nmfinfet技术库中的aoi22标准单元来传达主要思想,后续会用从sl-atpg与模拟仿真中获取的试验结果来进一步展现。第二部分介绍了技术并对开关级建模与测试的关键概念做详细说明。第三部分与第四部分分别分析了规范类别(canonicalclasses)的“断开”与“短路”错误,引领能使cat视觉生成的思考更高效。第二部分术语及概念a.通道连接的网络在cmos电路中使用的基本晶体管是三端设备。栅极(g)端控制源极(s)端与漏极(d)端之间的通道流经的电流。逻辑上,晶体管建模为一个理想开关,其中对于nmos(pmos),g=1(0)使能通道内的双向信号流,且g=0(1)截断信号流。后续的讨论在图6中使用aoi22cmos单元的开关级原理。结构上,通道连接网络(channel-connectednetwork,ccn)由开关(从号码1到8)组成,它们由通道及节点(标号为c,d,e,y)连接通道端口s与d。ccn(阴影部分)由电源节点vdd及gnd所包围。通常,电源节点连接很多ccn,但是ccn中的活动并不通过电源节点耦接。ccn开关端是由单向输入(a0,a1,b0,b1)驱动,且它们决定ccn节点的状态。一些ccn节点被分配为输出(y),其一般送g输入给其他ccn。在仿真设计行为时,ccn组成一个自然分区(naturalpartitioning),其中信号通过严格的单向开关g输入从一个ccn流到下一个ccn。在一个ccn中,流经双向通道的信号是由g输入控制,且一个迭代算法用来同时解决多个节点的状态。当一个ccn通过开关g输入送给另一个ccn时,一个关键方面是下游ccn的行为并不影响上游ccn的行为,除非在设计网表中有清楚的反馈信号路径。b.设计上下文依赖(designcontextdependency)图6中的单个ccn例子正好匹配了库单元。但是这也并不总是如此。更大单元可能包含多个ccn,例如一个完全加法单元(full-addercell)。更有趣的是,单个ccn也可覆盖(span)多个库单元。使用cmos传输门实施的传输开关逻辑(pass-switchlogic)的单元中发生该情况。这样的一个单元可具有直接馈入通道端的输入端口。在设计中,这样的单元个体引脚(cellinstancepins)会被其他单元个体引脚驱动。因此,驱动与接收ccn汇聚而形成设计中的一个单独的ccn。设计依赖的ccn的形成对特定缺陷类型的cat视觉生成具有很重要的含义。考虑到portbridge缺陷的情况。在图6中,假设输入端口a1与b0用阻性桥(resistivebridge)缺陷互相短接。在一个单独cat视觉生成中,模拟仿真环境用电压源驱动a1与b0。这非常不准确,因为在设计中a0与b0都是由其他单元个体的输出所驱动。通过该桥,这些驱动的具体个体(instance-specific)的ccn汇聚成一个并需要一起被仿真来确定连接到a1与b0的节点上的正确电压。正确电压然后用于正确仿真缺陷是如何影响接收ccn的行为。开关g-to-s/d桥缺陷也会面临同样问题。如果g用单元的一个输入端口所驱动,桥汇聚了ccn驱动g与包含s-d通道的ccn。设计中的每个缺陷个体会潜在地产生独特的汇聚ccn配置。单独的标准缺陷描述可能无法精准捕捉到该独特的设计上下文依赖行为。严格在同个ccn内部的缺陷具有与ccn输出节点相关的最小或可控的设计上下文依赖。这些可包含:open,bridge,tleak,以及tdrive。本附录的剩余部分会聚焦在这些缺陷类型上。c.开关级模型,错误与atpg从连续域抽象到离散域,开关级模型允许的数字mos电路在晶体管级操作的快速分析,而不需要承受模拟仿真的全部花费。该模型捕捉到一些重要方面,例如双向信号流,相关导电/电容强度,充电存储/分享,以及强健时序行为(robusttimingbehavior)。通过既扩展正式的开关级算法来处理决定选择又改写podematpg的高效分支-及-边界(branch-and-bound)搜寻策略与启发法(heuristics),开发了sl-atpg算法来针对开关卡在断开及卡在闭合的错误。对于卡在断开错误,sl-atpg工具能生成横跨多个时间帧(最大到由用户定义的最大值)的样式,这些样式可以抵抗时序错误(timinghazards)及充电共享的消耗。cat的最新发展又唤起通过更有效测试生成机制来探测单元内部缺陷的兴趣。这些发展的一个共同的策略是使用转换法来将晶体管级转换为门级域并对门级域电路采用布尔算法来进行测试,并保留要测试的缺陷行为的必要方面。可是,这些转换假设cmos实施的完全互补的nmos与pmos的开关网络,这会碰到实际的限制,当单元采用不同的结构,例如是传输开关逻辑(pass-switchlogic)。影响测试品质的更细微的ccn行为也可能在转换中丢失。sl-atpg是一种更普通且可用的替代品,其能处理更广范围的设计情况且具有更高的实施保真度。借助过去三十年来计算能力的指数级增长,sl-atpg能轻松应付库单元或几个汇聚ccn的电路复杂度。虽然原始设计是针对功能性开关,sl-atpg也能对付与无源互连及寄生r/c元件相关的错误。例如,对一个断开的连线建模,用一个虚拟nmos开关替换该连线,nmos开关的通道s/d端子匹配两个连线的端子,且绑定该g端子到逻辑-l(总是导电)。断开的连线就等效于开关的卡在断开错误。类似地,对两个节点间的桥进行建模,插入一个虚拟nmos开关,其通道连接该两个节点且绑定该g端子到逻辑-0(总是断开)。该桥则等效于开关卡在闭合错误。在图5a中,显示aoi22的原理图中在17个可能的ccn连线分段(号码从9到25)处的断开错误(openfaults)。(请注意因为节点的分裂有新的节点标号)。针对存在单个错误假设以及充电共享的优化处理下的上述错误以及8个开关卡在断开错误(stuck-openfaults)(号码从1到8),sl-atpg生成强健的2-周期样式来达到对25个错误的100%覆盖。开关及模型分配离散与排序的电容性强度水平κ3>κ2>κ1,给每个非供电节点。当两个节点储存不同的逻辑值由一个开关连接,具有更高强度的节点会占据主动并把它的值传播给另一节点。在之前sl-atpg试验中,所有非供电节点都被分配κ2。分配κ3给节点y会防止在输入y的充电共享的破坏。为了评估充电共享的最差情形,y被降低到κ2来进行另一轮的sl-atpg运行,其周期数增加为3,来允许内部结点的额外的“非冲突”初始化。结果显示4个错误(位置是9,10,24,25)是不可测试的,11个错误(位置是1,2,7,8,11,13,14,15,20,22,23)需要强健的3-周期样式,10个错误(位置是3,4,5,6,12,16,17,18,19,21)保持在2-周期样式是强健可测试的(robustlytestable)。这些试验展示了sl-atpg的优点是快速评估充电共享的可靠度。在模拟仿真下做同样的事会以一个等于所有可能节点初始化组合的因子来增加运行的数量,这使得该方式无法接受。图5b显示涉及ccn节点组{c,d,e,y}的14个可能的节点对桥接错误(node-pairbridgingfault)位置(号码从9到22)。增加8个开关卡在闭合错误(号码从1到8)会使总数到到22。排序的电容性强度为开关导电强度水平,γ3>γ2>γ1>κ's。串联的开关的路径导电性是整组中最小的导电性,这些开关的位置在供电节点。当两个由不同供电节点值驱动的两条路径汇聚到非供电节点,更高强度路径占据主导,驱动其值到节点上。一般地,nmos与pmos功能年性开关都分配γ2,因为cmos设计通常不依赖导电率。可是一个桥接错误会导致同等强度的vdd与gnd导电路径之间的驱动冲突,后果是在输出y的未知值x(好/错误=0/x或1/x,最好是软探测)。为了生成样式来达到在y的硬探测(好/错误=0/1或1/0),我们进行了两轮sl-atpg运行,第一轮中所有pmos开关被弱化而在第二轮中所有nmos开关被弱化。所有非功能性桥接错误的虚拟开关被分配为γ3来感受它们的影响。在第一轮中,pmos开关(号码1–4)弱化为γ1,16个错误(号码5–8,10,12–22)被探测到。在第二轮中,nmos开关(号码5–8)弱化为γ1,12个错误(号码1–4,9–11,13–15,19–20)被探测到。所有生成的样式都是1-周期且整理过的错误覆盖率是100%,在两轮中都有6个错误(号码10,13,14,15,19,20)能被探测到。因为没有已知布尔基础的方式来测试所有ccn节点间随意的桥接错误(arbitrarybridgingfaults),sl-atpg提供了一种有效实际的解决方案。d.关键cmos设计属性低功耗的数字cmos设计的两个关键属性使能在一个ccn中的缺陷分组为两个规范的类别来做一般处理。属性对于任何实施组合性功能的ccn都是真的。p1-在稳定状态,所有ccn输出总是被从vdd或gnd驱动;从不被两者驱动;从不悬浮(floating)。p2-在稳定状态,在ccn中vdd与gnd之间绝无导通路径。显然,完全互补的nmos与pmos开关网络实施满足这些属性。可是这些属性对于包含使用传输开关逻辑的所有静态cmos设计也为真。下面的部分分析这两个规范化错误类别,两个错误分别被称作“ccn-断开”与“ccn-短路”。第三部分.ccn-断开分析(ccn-openanalysis)在定义好的2-周期方案来测试一个cmos晶体管卡在断开错误中,周期-1绕开(bypasses)错误开关来初始化ccn输出为一个已知值,接着周期-2驱动相反的值到输出上,专门通过卡在断开的开关。错误在周期-2中被探测为saf,因为在错误电路中,输出电容被能被充电或放电,所以保持在初始值。如果在输出的tdf探测被允许,我们就会扩展该方案,对延迟的输出转换时间(delayedoutputtransitiontime)进行检查,就是错误电路中较慢的电容充电/放电速率。因为充电/放电速率与路径的rc时间常数成正比,所有路径上可潜在提升阻抗的缺陷也可被探测到。这些ccn-断开缺陷包含tdrive与open,这些分别与晶体管及互连的寄生电阻物理相关。ccn-断开测试可通过图7中简单的rc电路模型来描述,其显示了ccn-断开电路模型。电路在周期-2中反映测试条件,其中vo(t)是从初始化结束开始时的输出电压。r是充电/放电路径阻抗。c是输出电容。vi是在周期-1的结束时的初始化电压。vf是周期-2的驱动电压。最后,τ控制输出变化的速率。嵌入在r中的是缺陷阻抗(defectresistance)ρ,从最小值(无缺陷)到无穷(完全断开)。通过cmos设计属性p1,有两种可能情况:c1-该缺陷由对输出充电到vdd的路径所感知。因此,2-周期的测试样式必须使vo=01,就是vi=0(gnd)以及vf=1(vdd)。c2-该缺陷由对输出充电到gnd的路径所感知。因此,2-周期测试样式必须使vo=10,就是vi=1(vdd)以及vf=0(gnd)。两个情况的vo(t)的波形图显示在图8中,其中r从最小值到无穷变化展现了不同程度的缺陷影响,从最小的小延迟tdf到最坏的悬浮saf。基于我们的ccn-断开分析,可以得到下面的几个关键点:k1-tdf是所有ccn-断开缺陷的udfm,因为需要转换且悬浮saf只是tdf的一个特殊情况,其中延迟是“永远”。k2-ccn-断开缺陷可用针对代理开关卡在断开错误(proxyswitchstuck-openfaults)的转换样式来探测。k3-不需要模拟仿真,如果k2中的sl-atpg能找到所有强健多周期转换样式(robustmulti-cycletransitionpatterns)。对于关键点k3,模拟仿真可扮演角色来更好地对从sl-atpg获取的样式进行排序。因为缺陷的阻抗实际值并不知道,可以选择一个比较大的ρ值用来仿真每个样式。通过比较延迟大小的影响,样式可进行排序让门级atpg来选择,最好选具有最大影响的以增强测试效果。最后,在ccn-断开电路模型中,输出电容c确实依赖针对个体的外部扇出连接(instance-specificexternalfanoutconnections)的设计上下文。可是,从ccn-断开的分析得到的关键总结并不依赖c的实际值。在ccn-断开类别内,与互连寄生电阻相关的缺陷值得特别关注。在aoi22单元的抽取的spice网表中,互连相关的电容与电阻的号码分别为478与29。所有都是缺陷候选,占据了单元的模拟错误仿真时间的很大部分。考虑到图5a中的互连断开错误(interconnectopenfault)#13。一个可能的2-周期测试样式为a0-a1-b0-b1=10-11-11-00。预期的输出y=01。图9显示与具有ρ组件值(componentvalues)的该互连相关的电阻网络。在周期-2,vdd通过b1:p-通道,ρ网络对y充电:以及a0:p-通道如虚线所指示。关于充电路径,ρ网络阻抗是210ω,其中ρ2与ρ1+ρ3平行得到。当任何一个电阻有一个断开缺陷时,网络的阻抗最多增加到635ω。输出y电容为1e-18法拉第,对充电路径的时间常数τ是一个0.425飞秒的增加。因为有开启的电阻,充电延迟确实增加了,ccn-断开测试的理论仍然有效。但是在模拟错误仿真下,在实际上难以区分的差别会导致错误的测试驳回。错误是因为任何在电阻网络的进口或出口的断开会造成可探测的延迟差别。开启错误#13是一个需要重点探测的“跨线断开(cross-wireopen)”的例子。这个例子要注意的真正问题是使用寄生元件当缺陷候选的风险。假如经常发生的平行电阻结构,会产生许多浪费的模拟仿真。有人会认为减少寄生(将所有电阻短路,将所有电容开路)且使用sl-atpg会导致更高效的样式,而且完成得更快捷。第四部分ccn-短路分析(ccn-shortanalysis)ccn-短路缺陷包含tleak与bridge,它们分别物理上与晶体管与互连的寄生电容相关。对于ccn中桥接两个节点的缺陷,有一个必要的测试条件是两个节点处于相反状态;否则缺陷的存在可能不明显。假定相反的节点状态,缺陷的存在会在vdd与gnd之间创建一个导电路径。沿着由电阻组成的路径,节点会具有分压值。对于ccn输出的缺陷的电压探测,需要从vdd-gnd路径上一节点到那个输出存在一可观测的信号路径。图10中的rc电路模型显示了ccn-短路缺陷测试条件。ru(rd)是节点vr的上拉(下拉)电阻网络,可观测信号路径是从vr穿过ro到输出vo。总的来说,测试条件采用2-周期样式来允许tdf探测。vo(t)是从周期-1开始的输出瞬态(outputtransient)。vi是输出电容c的初始电压。vf是到达周期-2的末尾的稳定状态电压。其值是根据ru与rd的电阻分压关系得到。最后,τ确定输出变化的速率。通过cmos设计属性p2,缺陷无法存在于ro中;否则ru与rd组成一个非错误的vdd到gnd路径。通过cmos设计属性p1,缺陷或存在于ru中或rd中来使能到vdd或gnd的路径,这一般应该是非导电的。需要考虑以下两种情况:c3-rd内的缺陷。2-周期的测试样式必须使vo=01,就是周期-1中的放电输出电容c,使得vi=0(gnd)。在周期-2中,充电c给vdd,同时缺陷产生一个偷偷的放电路径到gnd。c4-ru中的缺陷。2-周期的测试样式必须使vo=10,就是周期-1中的充电输出电容c,使得vi=1(vdd)。在周期-2,放电c给gnd,同时缺陷从vdd产生一个偷偷的充电路径。图11中显示两个情况的vo(t)的波形图,桥接阻抗ρ从无穷(无缺陷)到零(最坏情况),展现了影响的不同程度。基于ccn-短路分析,我们可作出如下的关键点:k4-2-周期tdf是所有ccn-短路缺陷的udfm,这些ccn-短路缺陷覆盖从零开始的ρ的整个范围。1-周期的safudfm的覆盖的ρ范围更小。k5-ccn-短路缺陷可被转换样式所探测,转换样式(transitionpatterns)是针对代理开关卡在闭合错误(proxyswitchstuck-closedfaults)。因为sl-atpg产生这些错误的1-周期样式,需要增加一个前置初始化周期(priorinitializationcycle),来创建一转换样式。强健转换(robusttransition)是不必要的,因为输出在两个周期内都被驱动。k6-只需要一个ρ=0的模拟仿真,来确定safudfm是可能的。对于sa0(sa1),vf必须下落(升起)超过0-阈值(1-阈值)。vf与阈值之间的间隔可以是一个样式排序的数值—越大越好。对于ccn-短路,除了在输出电容c的设计上下文依赖(designcontextdependency),接收门对于在0-与1-的阈值的vf有不同的数字翻译。这仅对于1-周期safudfm是个问题,但是对于2-周期的tdf并不是问题,因为后者,任何要达到预期的1或0的显著的延迟都足够用来错误探测。图12显示图5b中节点c与d之间的aoi22桥接错误#12的测试2-周期变换样式的模拟仿真结果。用三个ρ欧姆值来尝试:无缺陷的12t,4k,与零(最坏情况)。对于4k,vf超过了0.6v的1-阈值,其映射到具有13ps的额外延迟的tdf。对于最坏情形,vf最终达到了0.39v。因此,对任何ρ值,sa0都被取消资格,可是缺陷可仍被探测为tdf。第五部分结论通过电路分析,我们显示了ccn缺陷如何能被sl-atpg轻易描述且探测到,而不需要引入昂贵的模拟错误仿真。为了部署cat视觉生成的sl-atpg,其需要被修改来搜寻所有有用的输入条件,而非普通操作的“在第一次探测到时停止(stoponfirstdetect)”。podem搜寻的早期修整(earlypruning)意味着生成的udfm能包含更多的不需要关心的事项,这会帮助降低门级水平的cat样式数量。最后,更有效的sl-atpg有机会来考虑多个单元-内部缺陷及基于设计上下文的针对个体的cat视觉(instance-specificcatviewsbasedondesigncontext)。其他方面在一些实施例中,这里描述的技术可用一个或多个计算设备来实施。实施例并不限于用任何特定类型的计算设备来操作。图13显示计算设备1000的结构图。计算设备1000可包含一个或多个处理器1001以及一个或多个有形的,非暂态的计算机可读存储介质(例如存储器1003)。存储器1003可在一个有形的、非暂态的计算机可读存储介质中,储存计算机程序指令,当执行这些指令时,实施上述的任何功能。处理器1001可耦接到存储器1003,且可执行任何计算机程序指令来使得功能实现或运行。计算设备1000也可包含网络输入/输出(i/o)界面1005,通过该界面计算设备可与其他计算设备通信(例如通过网络),也可包含一个或多个用户i/o界面1007,通过该界面计算设备可提供输出给用户或从用户接收输入。用户i/o界面可包含其他设备,例如键盘,鼠标,麦克风,显示设备(例如显示器或触控屏),扬声器,摄像头,以及/或各种其他类型的i/o设备。上述的实施例可用各种方式实施。例如,实施例可用硬件,软件或两者组合实施。当用软件实施时,软件码可在任何合适的处理器上运行(例如微处理器)或一组处理器,或者以单个计算设备中提供或以多个离散的多个计算设备中提供。需要理解的是,任何执行上述功能的组件或一组组件可以总体上被认做是一个或多个控制上述功能的控制器。该一个或多个控制器能用各种方式实施,例如是用专门的硬件,或用通用的硬件(例如一或多个处理器),其被用微代码或编程来运行上述的功能。在此方面,需要理解的是此处描述的实施例的一个实施包含至少一个计算机可读存储介质(例如ram,rom,eeprom,闪存,或其他存储技术,cd-rom,dvd或其他光碟存储,磁碟,磁带,磁盘存储或其他磁性存储设备,或其他有形,非暂态的计算机可读存储介质),其用计算机程序编码(即多个可执行指令),使得当在一个或多个处理器上执行时,执行一个或多个实施例的上述功能。计算机可读介质可被运输,使得储存的程序可被载入到任何计算设备中来实施上述的技术的各个方面。另外,应理解所指的计算机程序,当其被运行时,执行上述的任何功能的计算机程序并不限定为在一个主机上运行的应用程序。相反,这里所指的计算机程序及软件是非常宽泛的意思,是指可用来对一个或多个处理器编程来实施上述技术的各个方面的任何类型的计算机代码(例如应用软件,固件,微代码,或计算机指令的其他任何形式)。本发明的各个方面可单独使用,或组合使用或以并未在本发明中实施例一中介绍的各种方式安排,因此也并不限定于本发明中描述的或附图中显示的细节与组件的安排。例如,一个实施例中的各个方面可以任何方式与另一实施例的各方面组合。而且,本发明可实施为一方法,已提供一个方法的实施例。于是,实施例可以用不同于前述的顺序来执行操作,可包含同时执行一些操作,即便在前述的实施例中是顺序的操作。权利要求中使用的顺序性术语例如“第一”,“第二”,“第三”等等,其本身并不代表任何优先级,偏好,或一个权利要求元素高于另一个权利要求元素,或是执行方法的时间上有先后顺序,只是用来区别一个权利要求元素与另一个具有相同名称的权利要求元素(除了序数词)来区别权利要求元素。而且,权利要求中的用语或术语只是为了说明并不作为限定。其中使用的“包含”,“含有”或“具有”,“涉及”等等不同的词语,是用于包含后面的项目及其等同物与其他额外项目。本领域的技术人员将注意到,在获得本发明的指导之后,可对所述装置和方法进行大量的修改和变换。相应地,上述公开内容应该理解为,仅通过所附加的权利要求的界限来限定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1