(计算机应用技术专业论文)iddt动态电流测试方法研究.pdf_第1页
(计算机应用技术专业论文)iddt动态电流测试方法研究.pdf_第2页
(计算机应用技术专业论文)iddt动态电流测试方法研究.pdf_第3页
(计算机应用技术专业论文)iddt动态电流测试方法研究.pdf_第4页
(计算机应用技术专业论文)iddt动态电流测试方法研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)iddt动态电流测试方法研究.pdf.pdf 免费下载

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

文档简介

塑壹盔兰塑主兰些堕壅! 纽! 垫查皇亟翌彗查姿堕墨 摘要 数字电雾斋测试楚集成电路设计与生产过程中的一个霪妥环节。数字电路测试 的研究工僚对于保证集成电路产品的质羹具有耋要的实际应用价值a 传统的纂予电雁测试的测试方法已得到了广泛的应用。但这些方法仍然无法 有效的检测某些故障。作为这些方法的一个补充,电流测试方法能够提高故障的 覆盏率,提高产品的可靠性。动态电流提供了一个观测电路内部开关性能的新的 窗翻,动态电流测试方法为进一步提高故障覆盖率提供了可能。 本文通过s p i c e 实验研究数字电路动态电流的特性,分析了数字电路的动态 电流与电路逻辑状态转变之间的关系。根据实验结果,本文提出一种根据c m o s 电路中加权逻辑跳变数来估计整个电路平均动态电流大小的方法。该方法在电路 逻辑跳变与电路动态电流之间建立了种简单直观的关系使得动态电流测试产 生能够在逻辑级上得以实现。 在此基础上,本文对一种基于布尔过程的动态电流测试方法进褥改进,用波 形模拟器程序实现了该方法。并且针对一个实际电路中的部分故障用该方法产生 了测试向量对。对于这些测试向量对,邋过s p i c e 软传模拟y 赦障电路茉吁无数 障电路农测试向量慰馋用下的动态电泼。模拟结果表瞍,故障电路秘天故障电路 的动态电淀产生了一定螅蓑别,邋过比较嚣孝躲平均动态电渡,这些测试囱量;c 砉 能有效的检测莱些披障。实验结果验证了本文中动态电漉测试产生方法憝霹行性 鞠有效 生。 关键谒:电旋测试;动态亳流;波形模拟;s p i c e 模攒 塑堕查堂塑主兰些堡苎! 纽垫查皇堕型苎查垦里墨一 a b s t r a c t t e s t i n go fd i g i t a l c i r c u i t si sa ni m p o r t a n tp a r to ft h ep r o d u c t i o n o fi c s t h e r e s e a r c ha b o u tt h et e s t i n go fd i g i t a lc i r c u i t si so fg r e a tp r a c t i c a lv a l u ef o rt h eq u a l i t y o fi cp r o d u c t s t r a d i t i o n a lt e s t i n gm e t h o d sb a s e do nv o l t a g et e s t i n gh a v eb e e nw i d e l yu s e di n p r a c t i c e b u tt h e r ea r es t i l ls o m ed e f e c t si nc i r c u i t st h a tc a nn o tb ed e t e c t e db yt h o s e t r a d i t i o n a lt e s t i n gm e t h o d s a sa ne n h a n c e m e n to ft h e s em e t h o d s ,c u r r e n tt e s t i n gc a n i n c r e a s et h ef a u l tc o v e r a g ea n dm a k eh i g h e rt h er e l i a b i l i t yo f i c s t h ed y n a m i cp o w e r s u p p l yc u r r e n t ( 厶d 力i san e w w i n d o wt h r o u g hw h i c hw ec a no b s e r v et h es w i t c h i n g a c t i v i t i e si nd i g i t a lc i r c u i t s i d d tt e s t i n gm e t h o d sm a k ep o s s i b l ef u r t h e ri n c r e a s i n gt h e f a u l tc o v e r a g e b ye x p l o r i n gt h ec h a r a c t e r so fd y n a m i cp o w e rs u p p l yc u r r e n t so fd i g i t a l c i r c u i t s u s i n gs p i c e ,t h i sp a p e ra n a l y z e d t h er e l a t i o nb e t w e e n j d 9 t a n dt h e s w i t c h i n g a c t i v i t i e sw h e nac i r c u i t c h a n g e s f r o mo n e l o g i c a l s t a t et oa n o t h e r b a s e do n e x p e r i m e n t a lr e s u l t s ,t h i sp a p e rc a m eu p w i t ham e t h o dt oe s t i m a t et h ea v e r a g e d y n a m i cp o w e rs u p p l yc u r r e n tb yc o u n t i n gt h ew e i g h t i n gl o g i c a l t r a n s i t i o n si nt h e c i r c u i t i nt h i sw a y ,a s i m p l e a n dd i r e c tr e l a t i o nw a sb u i l d u pb e t w e e nl o g i c a l t r a n s i t i o n sa n dd y n a m i cc u r r e n t ,w h i c hm a k e sp o s s i b l ei d d tt e s t i n gp a t t e r ng e n e r a t i o n o nl o g i c a ll e v e l t h i sp a p e rm a d es o m ei m p r o v e m e n to nab o o l e a np r o c e s sb a s e d i d d tt e s t i n g m e t h o d ,a n di m p l e m e n t e di tu s i n gaw a v e f o r ms i m u l a t o r f o rs o m ef a u l t si nac i r c u i t , t e s t i n gp a i r s w a sg e n e r a t e d u s i n gt h i s m e t h o d s p i c ee x p e r i m e n t sw e r ed o n et o s i m u l a t et h ed y n a m i cc u r r e n t so fb o t ht h ef a u l tc i r c u i t sa n df a u l tf r e ec i r c u i t su n d e r t h ef u n c t i o no ft e s t i n g p a i r s t h e s i m u l a t i o nr e s u l t ss h o w e dt h a tt h e r ea r es o m e d i f f e r e n c e sb e t w e e nt h ew a v e f o r m so fc u r r e n t s b yc o m p a r i n gt h ea v e r a g ed y n a m i c c u r r e n t s ,t h e s et e s tp a i r sc a nd e t e c ts o m ef a u l t s a l lt h e s ep r o v e dt h ev a l i d a t i o na n d f e a s i b i l i t yo f t h i si d d tt e s t i n gm e t h o db a s e do nb o o l e a n p r o c e s st h e o r y k e y w o r d s :c u r r e n t t e s t i n g ;厶d r :w a v e f o r ms i m u l a t o r ;s p i c es i m u l a t i o n 2 塑堂盔堂塑主肇些熊苎! 生盟垫查照堕塑蔓查婆塑塞 第一耄绪论 随着数字集成电路技术的广泛应用,人们对数字电路产品可靠性的要求逐步 提高。集成电路技术本身的发展,也使其产品规模、复杂程度快速地增长。这些 都对数字集成电路的测试工作提出了新的要求。测试成为集成电路设计生产过稷 中一个重要环节。测试方法、理论的研究,对于提高集成电路产品的质量具有十 分重要的实际意义。 1 数字电路测试技术发展概况 数字电路测试包括逻辑馕测试和电气参数测试薅个方颇。多年来,数字电践 测试的研究主耍袋中于对基于电压测量的逻辑馕测试方法的磷究。电压测试瞧饯 点是测试速度快,识别0 、1 的精度要求不毫。基于电压测量盼逻辑馑测试方法 理_ 沦方恧的硬究已经提成熟,并且基经在工业爨褥到了广泛应月。 1 9 6 6 笨,r o t h 提出了著名的d 簿法f ”,并扶璎论土涯硬了d 算法鸵援确链。 此压,国际上又先最提感7 基予毒尔代数瓣农尔菠分筹法1 2 1 、甏淘遥路判定的 p o d e m 算法f 3 l 以及甏肉褒出的f a n 算法 “。我国学者魏遴致教授提蹬静多精出 分支计算滟主逶鼹敏纯方法戳及图论法在安际应溺串迄体现密了较大的优越径 强l 。晷荡科技大学警芷德教援箍滋酌g f 二篷算法l “,简纯了溺试产生算法的程 _ 葶实臻,摇商了算法豹效率。中科院阂虚骅教授提出的布尔过程论翻的研究和应 箱氇为电路溯试理论的发展罐出了新的愆想。这些研究工作使得逻辑值测试方法 豹埋论研究不新完善,实践缩采也更加令入满意疆1 。 但是,由于生产过程中所导致的电路缺陷多种多样,纂于电遥测量的逻辑测 试往j 圭不能充分有效的检溯所有的故障f “。对于某赡类型的故障,如开路故障、 桥接故障、延时故障等1 ,些传统的基于逻辑值的测试方法就显得无能为力 了。 8 0 年代初,人们提出了用测薰c m o s 电路静态电流( 厶。) 的方法来检测c m o s 电路。”。据有关资料报道,对于已通过电压测试的c m o s 电路芯片,仍有约 1 一3 0 ,u u 。- ”片被如册测试方法检测为不合格。实验也袭明j :。偏大的芯片即使 功能正常,其可靠性也比较低。所以锄。测试方法对于保证电路芯片具有考较 高的可靠性有羹要意义。经过近2 0 余年的研究和实践,。测试方法日越成熟, 也逐渐为工业界所认可,并且褥到了广泛的应用【1 3 , 1 4 1 5 1 。但是,静态电流测试耀 6 塑堂查堂墅圭兰些堕苎i 垒匹垫查皇塑型苎l 堂塑一 比基予逻辑值的电压测试方法丽言,其缺点是测试速度慢、对电流识别精度要求 高、对测试仪器的要求商。 当电路内部产生跳变时,电路中会产生较大的动态电流。近年来研究工作者 开始研究是否可以用测量动态电流( 如。,) 的方法来检测c m o s 电路中的故障 【1 6 1 7 , 1 8 ) 。 。,瞬间动态电流是对电路状态转换过程中,电路内部信号电压切换频繁禚 度的畿接表现,动态电流测试方法被认为可以用来检测到一螳如。测试方法和 其他方法所不能梭测的故障,从而能够提商测试的故障覆盖率。目前动态电流测 试的研究包括电流波形分析、功耗、信号处理等几个方颇 1 9 , 2 0 , 2 1 , 2 2 , 2 3 l 。动态电流 测试的研究仍处谯初期阶段。 1 2 电流测试技术发展概况 电漉测试技术f 2 4 l 魄提出不是要取代传统的蒸于逛嚣熬逻辑筐溅试方法。疆究 电滚测试技术约爨瓣是为了弥於电魇测试静不足, 睾为电压测试方法静补充,遴 步提寒数蹿覆羲率,缳涯集成电路产鼯矗孽鸾哥靠牲。 1 2 1 基本褥c 念 对如图1 1 所示的一个c m o s 电路,它所消怒的电源电流记为,竣入向量, 输出向量。,。电路的个或几个输入发嫩跳变时,姆引起电路内部的诲多最 3 s u 终 一赫2 攀 3 s u 确讲 一0 2 v 1 ? # 睡 j 八 f l 矿vj 鹜1 1c m o s 瞧路及魄垂轻亳流波形 体管状态改变,嚣由等遗变为截止或亩截止变为导通,黼交在电路中被传播。我 昌b 塑煎盔堂塑主芝些兰苎! 纽! 垫查曳堕羔彗互整堑塑一 们称这一进稷为过渡过耩。在这一过渡过耩中,由于p m o s 和n m o s 开关速度 差而形成的瞬间短路以及负载电容的瞬间充电效应,使得电源电流脉冲较大。这 一过程中的平均电源电流称为动态电流( ,) 。过渡过程结束之后,电路中各 点的状态趋予稳定,只剩下p m o s 管和n m o s 管的漏电流。这时的电源电流称 为静态电流( 厶d o ) 。 1 2 2 静态电流测试 c m o s 电路的静态电流通常非常小,在2 5 c 温度下的典型馕为l 5 0 0 u a 。 而当嗽路中某个门的栅极氧化层短路或者菜联个点短路时,可能引起整个电路 如。急剧增大。因此测量b 就可以检测这些缺陷 为了检测c m o s 电路中的慕一个故障,岛。测试向量要奁该故障条传下划造 一条或多条由到。的低电阻通路,使缮故障电路魏无披嚎电路的岛凇产 生较大的蓑别。这相当予传统测试产生方法中麴故障激活翔控剃。虫于电流测试 对电溅的双测并不在原始竣文螺,岛。测试产生不器要像传统豹魄压测试方法黔 样把故障效应传攒到擐始辕爨端。由于这一点,电漉测试方法对予菜擅奄疆测试 方法无法蠢效检测懿赦障有对有骜意想不到煞作用。 除了嚣定爨教障之终,奄路蕊片靛缺陷还哥戬锸象为拼接放簿、汗路故簿、 延封鼓障等。传绞静电蓬溅试方法主要怒锌对黼定獾敖障,对于菜些其穗的类型 的数簿始桥接放障、延时故障等就难戳有效遗检测出辩乏。研究表明岛。d 测试方 法能够检溺部分c m o s 电路中菜釜逻辑值为1 和0 的点之间的桥接故障以及两 点滴疆一定电阻稀接的敲障。诧外,研究表明,大部分的c m o s 电路中的缺陷 会芍 起时滞故障而不会後电路完全必效,在大多数情况下会使如d d 增大。比如 m o t o r o l a 的研究发现,在2 5 6 ks r a m 中金属桥接短路可以使数据通路的时滞增 加蓟3 n s ,如。增加2 3 倍。对于开路故障而言,传统的电压测试方法的作用也 是有限的。而厶。测试方法却可以有效的检测传输门的开路故障。这些都表明, ,d 。测试方法作为传统电压测试方法的有效补充,确实能够提高故障覆盖率。 经过近2 0 年的研究和实践,厶。测试已广为工业界所接受,而且得到了广泛 的应用,由学术研究惑到了实际皮用的阶段。 1 。2 3 动态电流渊试 1 9 9 3 年,獒国4 b 卡罗来纳州吏大学的研究考开始是实验戆穷法研究,测试 塑塞查兰堡主兰些堡苎! 墨坚垫变旦堡翌苎查鲨堡塑 方法的可行性f m 。他们设计并生产了两个芯片,一个用f c m o s 逻辑,另一个用 预先充电型逻辑结构,都采用m o s i s 2 微米c m o s 工艺生产,每一个芯片包含 2 4 个半加器。其中一个无故障,其他分别制造了短路,栅氧化层短路或开路故 障。短路故障是在两个或多个点之间人为制造一个带电阻的连接通路。而栅极氧 化层短路则在栅和衬底之间形成一条带电阻的通路,这个电阻值分几级,在 0 1 2 0 k q 之间。对所有半加器分别供电,用t e k t r o n i x1 1 4 0 2 数字示波器( 1 2 g h z ) 观测1 k q 上的电压降来分别监视其电流波形。实验结果表明,对于这些故障, 把故障晶体管孤立起来观测其易。,响应,半加器的动态或静态电源电流都有很大 变化,大部分一个是0 ,一个是几百微安脉冲。此外,他们制造了一个m c n c - 9 0 的基准电路e m 8 2 a ,该电路包含9 个非门,7 个2 输入与非门,1 0 个3 输入与非 门,2 个4 输入与非门,1 个6 输入与非门和1 个7 输入与非门。他们将电路分 为1 0 块,对每块分别供电,分别观测厶。,。实验结果表明,电路中一个信号跳 变,就会引起电源电流的一个尖脉冲,故障电路的,d 。,和无故障电路的,d 。,可以 有非常显著的差别。这说明厶。,测试方法在原理上是可行。 目前动态电流测试研究多为对动态电流测试概念、原理、可行性等方面的分 析研究。j fp l u s q u e l l l i c ,d mc h i a r u l l i 提出了一种动态电流信号分析技术( t s a ) i ,该技术能够模拟某节点处电流消耗与电压的波形。s t s u 、r z m a k k i 和 t n a g l e 等人分析了故障所引起的电流波形的变化,提出了优化可测试性的策略 1 1 6 j 7 。有研究者通过分析电源电流波形,比较故障电路和无故障电路电流波形来 检测故障1 2 2 , 2 5 】。此外,也有人分别从时域和频域分析动态电流信号,利用信号处 理技术通过对功耗等的检测来检测故障 1 9 , 2 0 , 2 3 , 2 6 , 2 7 i 。 动态电流反映了电路状态转换过程中电路的行为,因而动态电流测试必须保 证在测试向量的作用下电路的状态会发生一系列的改变。并且由于故障的原因, 测试向量对使得无故障电路在相应故障位置产生一个( 或多个) 跳变而故障电路 则不( 或少) 产生跳变或者与此相反。因此,动态电流测试方法对故障的控制与 激活相比传统测试产生方法而言更为复杂。此外,电路状态转换过程中电流的变 化也很难与电路的逻辑功能联系起来。这些都使得动态电流测试产生方法的研究 成为目前测试研究工作者面临的一个挑战。 我国学者阂应骅首先提出了一种基于布尔过程的厶。,测试产生方法1 2 5 2 9 1 。信 号在电路中传播的过程中由于受到逻辑门延时效应的影响,可能会产生多个冒 险,使得电路中的跳变数增加。布尔过程理论可以计算电路中各点的正常跳变以 及冒险引起的跳变。利用布尔过程的一种b d d 实现方法b p b d d ,可以计算出 9 塑壹查兰堡主望些笙壅! 垒堕垫查皇垫塑! 堡堡塞一 电路在输入向量对作用下的所有跳变数。该方法的一个优点是便于故障注入。使 用b p b d d 能方便的注入固定型故障、桥接故障、时滞故障,以及与输入有关的 故障等多种能用布尔多项式表示的故障。其对于i s c a s 8 9 基准电路$ 2 0 8 的理 论计算结果表明该电路中1 0 的开路故障能够使故障电路和无故障电路的,产 生2 5 倍以上的变化。而这些故障通常是不能用电压测试或,d d 。测试测出来的。 同时,阂应骅教授指出了目前动态电流测试领域正待研究的问题1 2 ”。一个是, 目前国外的许多研究只考虑电路在测试向量作用下稳态的跳变数,而没有考虑由 于逻辑门延迟不同所导致的冒险现象可能使得电路中的跳变数大大增加。另一个 是如何使得电路如。,的差别最大化。这是一个计算复杂度非常高的问题,也是如。, 测试产生中一个最为关键的问题。 动态电流测试方法,作为传统测试方法的一个补充,正逐步得到研究领域和 工业领域的关注。动态电流测试方法的研究,对于保证集成电路产品的高可靠性 具有潜在的积极的意义。我们相信,随着研究工作的成熟和完善,动态电流测试 方法在不久的将来也会像静态电流测试方法一样逐步被工业界所采用。 1 3 本文的研究内容 目前,我系以邝继顺副教授为主,在中科院计算所闵应骅研究员的指导下, 从事有关动态电流测试方法与理论的研究。研究工作刚刚起步,有大量的基础工 作要做。 本文从一个基于布尔过程论的波形模拟器入手,通过完善其功能,提高其模 拟速度和准确程度,得到了一个可以用于动态电流测试产生的有力的波形分析工 具。 另一方面,本文利用s p i c e 模拟软件,从各类基本逻辑门入手,分析逻辑跳 变与动态电流的关系。在此基础上研究在测试向量对作用下c m o s 电路动态电 流与c m o s 电路状态转换过程中逻辑跳变的关系,试图找到一个联系逻辑跳变 与动态电流的桥梁。 利用研究结果结合波形模拟器程序,在闵应骅教授提出的基于布尔过程的j 。, 测试产生方法的基础上,本文对原有方法进行修改完善,实现了该动态电流测试 产生方法。 本文针对i s c a s 8 9 基准电路s 2 0 8 ,设计了完整的s p i c e 模拟实验。先用动 态电流测试产生方法对不同类型故障进行测试产生。将所得到的测试向量加入实 际电路,然后用s p i c e 模拟实验来验证这些测试向量能否有效的检测这些故障。 l o 、 本文所做工作是动态电流测试研究中较为基础的一部分,主要是针对动态电 流测试方法的可行性和有效性进行分析研究。其中的一些研究得到了一些比较好 的结果,为今后我们对动态电流测试方法的进一步研究起到了一定的铺垫作用。 塑塑奎堂堡圭望些兰奎! 生堕塑查皇亟塑蔓查鲨里墨一 第二章基于布尔过程的波形模拟器 基于布尔过程的波形模拟器m 川以布尔过程为理论基础,充分考虑了集成电 路中信号传播的并发特性,是高精度、快速、门级、数量化的波形模拟器。它能 精确反映波形的逻辑值以及跳变发生的时刻,可以根据来自生产工艺的模型设定 各类逻辑门的延时值,过滤波形传播中的窄脉冲,保证了模拟结果与实际电路的 一致性。 2 1 布尔过程论 布尔过程论把数字集成电路的逻辑性质与定时特性结合起来,用解析的方法 描述数字集成电路| 3 23 3 , 3 4 1 ,引入了通路敏化与时滞的新概念 3 5 1 ,并给出了通路敏 化的充分必要条件。布尔过程的符号表示b p b d d 及t b d d 为该理论的应用提供 了有利的工具,在求最长可敏化通路、求c m o s 电路的电源消耗上界及动态电 流测试方法方面得到了应用3 6 , 3 7 1 。 以下是与波形模拟器有关的布尔过程的理论: 定义1 在集合b = o ,1 ) 上,定义了运算:口v b = m a x a ,6 ) ,a a b = m i n a , 6 ) ,万= l 一日可证明, 是一个布尔代数。布尔过程是自变量为 ,的布尔代数簇 x if n ,其中t c ( 一c o ,+ o 。) 。 定义2 实值函数。猁称为一个波形,如果v f ,。猁 0 ,1 ) ,m 砂是最多具有 可数多个不连续点o 。 , f : s 。并且称o 一1 的转换为波形的上 升沿,而1 0 的转换为下降沿。 定义3 实值函数u 。,如果当r 0 ,甜。= o ,当r 0 ,u 。= 1 ,。o 称 为基本波形,可简记为口。它表示只在t = o 时有一个上升沿的波形。类似的, 可以用u ,0。p r ,表示只在,= r 有一个上升沿的波形。同时只在t = r 有 一个下降沿的波形可以表示为l 一。,;而在,= r 时刻上升、脉冲宽度为j 的正 脉冲可表示为。,俐- 甜,+ s 。而相应的负脉冲可表示为1 。,俐+ “,+ 。 定理1 设彳,b ,c 是波形,则r a i n ( 4 ,b ) 刊b ,m a x ( 彳,丑) = 一+ b - - a b ,u ,= 。;其中善和j ,是实数,+ ,一,指实数运算,式中的可 以省略。 i 一1 定理2 任何波形z “) 都可以表示为它的范式:z = c + ( - d h ( 一1 ) 吼其 中c 0 ,1 ) ,满足定义2 。 定义4 波形删的时滞r 运算定义为x ,= x ( t r j 。显然,x ,倒是将删 延迟r 时刻的波形。而且对任何实数,和j ,有五俐= x ( t - d ,丑似5 墨。p - s ) 。 定理3 设a ,b 是波形,a n d ,o r ,n o t ,分别表示时滞为r 1 0 的基本 门,则a n d ,= 4 ,b 。,o r ,利,+ b ,一彳,b ,n o t ,= 1 - - a ,。例如假设有一个 与门的两个输入端为口,b ,其中口= 。,6 = 1 一u 。门延迟为2 ,则输出端y = ( q b ) 2 = a 2 b 2 = 。7 ( 1 一| 2 ) = 。7 一“7 ( 0 1 2 = 7 一q 1 2 。 2 2 基于布尔过程的波形模拟器 2 2 1 波形表示 n 对于任意的波形,x = c + ( 一1 ) ”1 ( 一1 ) ”1 ,其中c ( o ,1 ) 。在波形模拟器 i 中表示为 c ) u f ,fi = 1 ,2 ,) 。例如,波形甜,。一u 被表示为 0 ,1 0 ,1 5 ) , 说明波形在1 0 时刻之前值为0 ,在1 0 时刻产生一个由0 到l 的正跳变,在1 5 时刻有一个从1 到0 的负跳变,并且一赢维持到结束。 2 2 2 波形模拟的主要算法 2 2 2 1 波形模拟程序基本算法 数字电路模拟算法主要有分级编译模拟阳、事件驱动模拟m 、以及分级 事件驱动编译模拟等h o ” 。 分级编译模拟的主要思想是根据电路结构模块将电路描述翻译成机器指令, 用与、或、非指令模拟逻辑门的与、或、非逻辑运算。编译模拟的速度快,可实 现并行模拟。缺点是难以处理门延时,难处理电路中的反馈回路,运行时间复杂 度与电路中逻辑门数目成正比,算法效率较低。 事件驱动模拟方法是将状态发生改变的逻辑门的输出所连接的逻辑门列入事 件队列中,按时间顺序依次对事件队列中的逻辑门进行模拟。它只对电路中状态 发生变化的逻辑门进行模拟,时间复杂度与电路中事件数目成正比,算法效率较 高。但该方法的事件调度程序开销较大。 分级事件驱动编译模拟具有分级编译算法和事件驱动算法的优点,但仍然不 塑堕查堂堡圭望兰竺堡苎1 6 坚垫查皇堕塑堕查鲨堡墨一 能真实的反映电路中的定时关系。 基于布尔过程的波形模拟器以波形为单位进行串行顺序模拟。布尔过程理论 的应用使得波形模拟器能够真实的反映电路的定时特性与逻辑特性其算法流程 图如下图2 1 所示: 图2 ,1 波形模拟器算法流程图 塑塑查堂堡主兰些堡苎! 生篮垫查皇鎏翌苎查鲨要塞一 2 2 2 2 逻辑门的模拟 逻辑门的模拟就是在给定的输入和状态下,计算逻辑门的输出和( 或) 下一个 状态。这一过程称为元件计算m l 。元件计算有子程序法、输入计数法、真值表 法和速查表法。 子程序计算法是对每种元件设计独立的子程序。元件参数表中包括输入和输 出信号名字。根据这些信息子程序计算元件新的输出值。通常子程序由计算机的 布尔指令组成或用某种高级语言的布尔算子写成。其优点是可以较容易的实现并 行模拟。其不足是子程序处理一个元件的时间通常随输入数线性增加,调用子程 序也要一定的代价。 真值表法采用输入状态向量作为访问逻辑门的输出值表的地址。通过比较所 取出的表值和当前逻辑值,以确定一个事件是否发生。 速查表法是真值表法的一种推广。速查表可能非常大,但用来处理元件的输 入事件时效率较高。 输入计数计算法是一种快速简单的元件模拟方法。对于大多数的普通的逻辑 门( 如与门、或门、与非门、或非门) ,计算输入信号中为0 或1 的数目就能确 定输出。以一个与门为例,统计某时刻其所有输入中逻辑值为1 的输入的数目, 若该数目小于该与门输入引脚的数目,则在该时刻此与门的输出逻辑值为0 ,只 有当该数目和与门输入引脚数目相等时,即所有输入部为1 时,该门的输出值才 为】。输入计数计算法简单、快速,适合对一定规模的数字电路进行快速的逻辑 模拟。 波形模拟器程序目的是对数字电路的逻辑值进行快速有效的模拟,为了便于 程序实现,采用的是最后一种输入计数的方法对各类逻辑门的逻辑值进行模拟。 2 3 对波形模拟器的修改 已有的波形模拟器程序是一个专门模拟无故障数字电路在一组输入信号作用 下电路中所有节点输出波形的程序。其功能仍有一定的局限性。波形模拟器不能 对故障电路进行模拟,因此要利用已有的波形模拟器实现动态电流测试向量的产 生。必须对原有波形模拟器程序做出适当的改进。 2 3 1 故障模拟 生产过程所导致的电路芯片缺陷多种多样,这些缺陷可以抽象为以下几种类 型:固定型故障、桥接故障、开路故障、时滞故障等。我们目前主要考虑的是固 塑塞盔兰堡主堡些望奎! 生篮垫查皇堡型兰互鎏堕壅一 定故障,开路故障和时滞故障等几种类型,而且只考虑单故障模型。 2 3 1 1 固定型故障 对固定型故障的故障模拟在波形模拟器中可以很方便的实现。波形模拟器为 电路中的每一个节点分配一定存储单元存储每个点的波形。模拟指定位置的单固 定故障时,只需将对应节点波形指定为故障值( 0 或1 ) 的波形就可以了。 2 3 1 2 开路故障 开路故障的故障行为比固定型故障要复杂一些。以一个二输入c m o s 与非门 为例,其内部结构如图2 2 所示: b a + v d d l - - a b 图2 2 c m o s 与非门电路图 这样的一个与非门中包括两个串联的n 沟道m o s 管和两个并联的p 沟道 m o s 管。每一个输入端连到一个n 沟道和个p 沟道m o s 管的栅极。当输入 端a 、b 中只要有一个为低电平时,就会使与它相连的n m o s 管截止,与它相 连的p m o s 管导通,输出端为高电平;仅当a 、b 全为高电平时,才会使两个 串联的n m o s 管都导通,使两个并联的p m o s 管都截止,输出端为低电平。因 此,这种电路具有与非的逻辑功能,l = a b 。其真值表如表2 1 所示。 表2 1 两输入与非门真值表 ab 输出 ll0 1ol ol 1 oo1 1 6 塑塑查兰璧圭兰些笙奎! 垒堕垫查皇亟型基查茎堡塞一 如果c m o s 逻辑门内部的一个m o s 管发生开路故障,对于整个门来说,将 表现为什么故障呢? 通过分析得知,逻辑门内部的单故障是不一定等效于逻辑门 的单故障。以c m o s 与非门为例: b a + v d d i 严a b 图2 3c m o s 与非门开路故障电路图 当图2 3 中划“x ”的一条管脚发生开路故障时,如果a 、b 都是高电平,则 n 1 、n 2 导通,p 1 、p 2 截止,p 1 的开路故障不影响输出,结果输出低电平。如 果,接着a 的输入变为低电平,则应该使n 1 截止,p 1 导通,而由于p 1 管的开 路故障,p 1 仍然相当于是截止,于是, p l 、p 2 、n 1 、n 2 都处于截止状态,此 时,输出端将仍然保持低电平。但这时并不是输出端的固定为0 故障。如果接着 b 的输入降为低电平,则p 2 导通,n 1 、n 2 截止,输出为高电平。 对其他的管脚进行同样的分析可以得到类似的结果,表2 2 中给出了当a 、 b 取所有可能值时,如果某一m o s 管开路时得到的输出。 表2 2 两输入与非门开路故障表 ab 输出 p 1 开路p 2 开路n 1 开路n 2 开路 llo0 不变不变 1o1 不变 11 ol 不变 1l1 o01ll1 从表2 2 可以发现:故障电路在一定输入下,电路输出仍然保持上一次的状 1 7 塑妻查堂堡主望些丝苎:垒旺垫查皇亟翌苎查鎏塑! l 态,即变成一个具有存储特性的电路单元。因此上述c m o s 逻辑门的内部管脚 开路故障是一种存储型故障,或时序型故障。 要能够测试这些存储型故障,就要使得故障发生时的逻辑输出值与无故障时 的逻辑输出值不一样。从表2 2 可以看出,对于一个2 输入的与非门而言,当有 一个m o s 管发生开路故障时,对于其所有可能输入组合只有一种输入可能激活 故障,使故障逻辑门的输出保持原有输出。要使得这个故障可测,同时必须使得 这个故障输出与无故障时的输出不同。比较表2 1 和表2 2 ,可以看出,必要条 件是:被测逻辑门的前后两次输出不同,即输出发生一次跳变。对于图2 ,2 中的 与非门而言,可以得到测试每个m o s 管开路故障的测试向量对如表2 - 3 所示。 表2 32 输入与非门开路故障测试向量表 故障类型测试向量对无故障输出故障输出 p 1 开路“一o lo 一10 一o p 2 开路1 1 1 0o 一10 0 n 1 开路0 x 一1 1 i o1 1 n 2 开路x o 一1 1l o1 1 类似的我们可以推导出激活个输入的各类基本逻辑门各个开路故障的测试 向量。 表2 4 n 输入与非门( 户i ) 开路故障测试向量表 i 故障类型测试向量对无故障输出故障输出 ip i 开路1 11 1 0 。1 1o 一1o o in j 开路x o x 一1 11 一o1 1 表2 5 输入或非门( 净1 - ) 开路故障测试向量表 i 故障类型测试向量对无故障输出 故障输出 ip f 开路 x 1 i x q 00 一lo 一0 in i 开路o o 0 0 1 0 0l 一0 1 一l 表2 6 非门开路故障测试向量表 i 故障类型测试向量对 无故障输出故障输出 ip 开路1 一o o 一10 一o n 开路0 一l l 一01 一l l g 塑壹查堂堡主兰些堡苎! 垒篮塑查皇堕型苎查鲨里塞一 或门和与门分别可以看成是一个n 输入的或非门和与非门串接一个反n s g i t 成。我们将与非门和或非门中的m o s 管标记为1 n ,反向器中的m o s 管标为 + l 。根据以上分析我们也可以推导出其各种开路故障的测试f e l t 。 表2 7 输入与门( i = 1 + 1 ) 开路故障测试向量表 故障类型测试向量对无故障输出故障输出 p f 开路1 。1 1 1 0 1 1 1 01 l n i 开路x 0 - x 一1 1o 一1 0 - 0 p 开路 ”0 肛1 1o 一1o o n 。开路 1 一l j ,0 ”z1 0l 1 表2 8n 输入或门( i = l | v ) 开路故障测试向量表 故障类型测试向量对无故障输出故障输出 p f 开路x 1 x 0 0l o1 一l n i 开路0 o 一0 0 1 0 00 10 一o p + 开路 0 0 z 一l - xo 一1o 一0 n 开路 x 1 x + q 01 01 - 1 其中,对于与非门中n m o s 管开路故障和或非门p m o s 管的开路故障可以 合并为一个故障。 通过以上分析,我们可以清楚的了解到在什么样的情况下各类逻辑门中的开 路故障才有可能被激活,而且也可以知道存在开路故障时逻辑门在各种输入组合 下的逻辑值。因此在波形模拟器中,我们只需要对逻辑门前后两个输入信号进行 分析比较,与查表法类似,通过检查逻辑门两个连续的输入,就可以计算出故障 逻辑门的输出结果,从而实现对存在开路故障的电路进行波形模拟。 2 3 1 3 延时故障 考虑元件延时引起的故障时,为了简化问题,我们只考虑由单个逻辑门输出 延时引起的故障。因此,在对这类故障进行模拟时,先模拟出逻辑门正常的输出 波形,然后将该波形平移一个延时故障值,将所得到的新的波形作为故障逻辑门 的输出波形。 2 3 2 波形模拟器程序的修改 我们得到的波形模拟器程序主要功能是单纯模拟电路在一组给定输入下的波 形a 将波形模拟器程序应用到动态电流测试,这当中主要有以下几个问题需要改 1 9 塑壹盔兰堡主兰些望兰! 尘! 垫查皇亟型兰查堡堑塞一 进:对惯性延时现象的模拟;波形模拟器的内存分配使用:跳变数目统计分析功 能的完善。 2 3 2 1 惯性延时的模拟 传输延时是指信号通过元件或导线传播时引起的延迟。电路中的元件转换工 作状态需要消耗一定的能量,信号的能量是其幅度和时间宽度的函数。如果信号 宽度太小,这个信号可能无法使元件完成状态的转换。为了使电路的元件发生状 态的转换,输入信号的变化必须要维持的最小的持续时间周期称为元件的惯性延 时1 4 3 l 。信号在电路中沿不同路径传播,由于不同器件的传输延时的不同,就有 可能产生静态或动态的冒险。由于电路中元件的惯性延时作用,如果冒险两个跳 变的时间间隔较短,则这个冒险可能将不会通过这个逻辑门。 以一个两输入的与门为例,一个输入波形为。,另一个为1 - 。,假设该与 门的传输延时为2 ,惯性延时为2 。 二:,_ 一f - - 毋兰_ 图2 4 与门惯性延时示意图 可以知道输出波形是( 口6 ( 1 - 7 ) 2 = 8 ( 1 一u9 ) = 。8 - s “9 = 。8 一口9 。但是由 于该脉冲宽度为1 小于该与门的惯性延时值2 ,因此实际的输出波形中没有了这 个脉冲。 在波形模拟器程序中,对每个逻辑门的模拟过程是:先不考虑逻辑门的传输 延时和惯性延时,根据输入波形的跳变时刻,计算出输出波形:然后将该输出波 形沿时间轴平移一个延时量,即逻辑门的传输延时,得到一个计算传输延时后的 波形;得到此波形后,再逐个检测该波形中的连续两个跳变,如果其时间间隔小 于逻辑门惯性延时,则将这个窄脉冲删除,如果大于逻辑门惯性延时,则将此窄 脉冲保留下来,允许其在电路中继续传播。 各种类型逻辑门的惯性延时值有所不同,可以由用户根据实际参数设定各种 类型逻辑门的惯性延时值。 2 3 2 2 波形模拟器程序内存分配使用的改进 波形模拟器程序本来的目的是运用布尔过程论实现对电路在输入波形作用下 塑塑查兰堡主兰些堡壅j ! 蝉垫查皇至塑苎互鲨堕壅一 跳变情况的模拟。如果要把波形模拟运用到动态电流测试向量产生中则需要对电 路进行反复模拟,这样的话就使得运算规模大大增加,同时也使得程序对于内存 空间的需求大大增加。因此,必须对波形模拟器程序中内存的分配使用进行一定 的调整。 在原波形模拟器程序中为电路中的每一节点分配了一个数组,根据2 2 1 中 的方法记录波形。程序从输入文件中读入输入信号,对于电路中的扇出点、原始 输出点程序直接将其地址空间赋以指向其前驱点的地址空间的指针。而程序对电 路中逻辑门的处理较为复杂。以一个2 输入的与门为例,首先计算两个输入信号 中有多少个跳变数并求和。这个数目就是该与门输出波形中可能有的最多的跳变 数目。根据这个数目为该与门分配波形存储空间。实际上输出波形中可能并不会 有这么多的跳变,但是为了保证不会溢出至少要分配这么多的内存空间给这个门 的输出节点。在原波形模拟器程序中是以检查给一个节点所赋存储空间是否为空 判断该节点是否模拟完。在一次波形模拟完成以后就把给所有节点所分配的内存 空间统用;f r e e 函数释放掉。在新一轮模拟过程中再重新给所有节点分配内存 空间。当进行波形模拟次数不是很多时,这样做是可行的。 当需要反复进行多次模拟时,这样的内存使用方式会消耗很大的系统资源, 使程序效率非常低,甚至产生溢出错误。波形模拟器程序使用c 语言,在w i n d o w s 9 x n t 下运行。操作系统为程序分配了一部分存储空间用来临时存储程序运行过 程中定义类型和大小的数据,这一部分存储空间称为堆( h e a p ) 。程序可以从堆 中请求分配可用空间,使用完后释放这些空间。而f r e e 函数释放掉块内存空 间后,系统通过拼接堆中未被使用的内存空间,把这部分内存空间返回给操作系 统后程序就不能再使用这部分内存了,剩下的没有返还给操作系统内存则保留在 缓冲池中供下一次分配使用。如果反复调用m a l l o c 函数和f r e e 函数,就会消耗 大量的内存空间,同时使得程序运行速度下降,最终出现溢出。 为了避免这个问题,我们应当尽量减少重复调用m a l l o c 函数和f r e e 函数。我 们在程序运行之初,为每个节点都分配一定数目的内存空间。原波形模拟器是以 判断一个节点的内存空间为空来判断该节点是否完成模拟,因此修改后为了实现 同样的功能,我们为每个节点分配一个标志位标记录其模拟状态。这样做增加的 内存代价与电路中节点数目成正比,是一个很小的值。每次模拟时,仅当节点输 出波形需要分配的空间数目大于程序给该节点已分配存储空间数目时,程序才会 调用r e a l l o e 函数重新给节点分配存储空间。一次波形模拟结束后,不是释放这 些空间,而是对标志位进行修改,再做新的波形模拟。如果在最初分配给每个节 2 1 塑壹查兰堡圭兰些堕塞! 鱼垫查皇堕塑盟鲨塑壅 点的内存空间足够大,且每组输入信号中跳变数目规模接近时,模拟电路中节点 时需要调用r c a l l o c 函数的可能性就大大降低,程序基本上在一块固定的内存空 间中反复进行模拟,程序对内存的消耗大大降低,同时运行速度也有了保证a 我们最初给每个节点分配了1 0 0 个单位的存储空间,这样就可以记录每个节 点跳变数目不超过1 0 0 个的波形。仅在一对测试向量作用下,而且当电路级数不 是太大的时,电路中的点输出波形跳变数超过该值的概率是比较小的,如果调变 数确实超过了这个值需要重新分配时,我们采取的策略不是仅根据需要分配空 间,而是在所需数目的基础上多分配一定值( 我们选用了1 0 0 ) ,这样该节点已 分配了超过2 0 0 个单位的空间,下次再模拟该点波形时只有估计输出跳变数目超 过这个数时才需要调用r e a i i o c 函数,这个可能性就更低了。 采用这种动态灵活的内存分配

温馨提示

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

评论

0/150

提交评论