




已阅读5页,还剩63页未读, 继续免费阅读
(计算机应用技术专业论文)高可靠性微处理器验证技术的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工程大学硕七学位论文 摘要 验证最终设计的正确性,对设计复杂芯片起到了关键性的保证作用。有资 料显示,目前芯片一次投片成功率只有3 5 左右,造成重复投片的主要原因就 是验证不够充分。随着设计规模不断增大,验证的工作量和复杂度以更高速度 增加。根据有关研究数据,目前多数的i c 设计项目中,验证工作占了整个设计 流程约6 0 - - 8 0 左右的时间。设计正确性的验证引起了学术界和工业界的广 泛关注,成为了研究热点。同时如何快速而有效地实现验证平台完成设计验证 也成为当今i c 设计验证领域的重要研究方向之一。 论文针对高可靠性微处理器的特点,提出了多级验证体系对高可靠性微处 理器进行多层次验证;并在测试过程中针对高可靠性要求,提出了进行基于故 障注入的测试;针对高可靠性微处理器的软件模拟验证,设计了一种新的高可 靠性微处理器软件验证平台,并具有较高的可重用性;设计了f p g a 硬件验证平 台,并在f p g a 验证平台上进行了硬件仿真验证,最后还对f p g a 的划分问题进 行了研究,并针对多片f p ( ;a 互连问题提出了芯片引脚多功能复用。 本文的研究对于实现微处理器芯片的全面和高效验证有着十分重要的参 考价值和实用意义。 关键词:软件模拟验证;f p g a ;等价性检验 哈尔滨【= 程大学硕七学位论文 a b s t r a c t v e r i f y i n gt h ec o i t e c u l e s $ o ft h ef i n a ld e s i g ni sc r i t i c a lf o rc o m p l e xc h i pd e s i g n i t sr e p o r t e c lt h a tt h es u e s sr a t ei nc h i pt a p e - o u ti sa b o u t3 5 w h i c hi sm a i n l y c a u s e db yn oc o m p l e t ev e r i f i c a t i o n a st h es c a l eo ft h ed e s i g ni n c r e a s i n g ,t h e w o r k l o a da n dc o m p l e x i t yo f v e r i f i c a t i o na l ee x p a n d i n ge v e l lm o r e q u i c k l y i ti sn o w d e d i c a t e dt ov e r i f i c a t i o nb e t w e 圮n6 0 t o8 0 t i m ea n de f f o r t a n dt h e ei sg r o w i n g p , o n e c ma b o u tv e r i f i c a t i o ni na c a d e m i ca n di n d u s t r y h o wt o i m p l e m e n tt h e v e r i f i c a t i o np l a t f o r mt oa c h i e v et h es u c c 黜o fv e r i f i c a t i o nq u i c k l ya n de f f i c i e n t l yi s o n eo f u h eh o tp o i n t si ni cd e s i g na n dv e r i f i c a t i o nf i e l d s a c c o r d i n g t ot h e r e q u i r e m e n t s o f p r o j e c t a n dt h e c h a r a c t e r i s t i co f m i c r o p r o c e s s o rd e s i g n , t h em u l t i q e v e lv e r i f i c a t i o ns y s t e mh a sb e e na p p l i e dt ot h e v e r i f i c a t i o ns w a t e g yo fh i g ha v a i l a b i l i t ym i c r o p r o c e s s o r c o m b i n e dw i t ha v a i l a b i l i t y c h a r a c t e r i s t i c so fr 8 0 5 1 5m i c r o p r o c e s s o r , w ea l s op r o p o s ef a u l ti n j e e t i o nt e s t i n g d e s i g n t h es o f t w a r es i m u l a t i o n p l a t f o r m f o r r 8 0 5 1 5 ,a n d w 粗黟i t 0 1 1 t h e p l a t f o r m b y s p e c i f i c a ls t r a t e g y t h er e s u l ti n d i c a t e st h a tt h ep l a t f o r mh a sh i g hr e u s e s e tu pt h e f p g av e r i f i c a t i o np l a t f o r mf o rr 8 0 5 1 5m i c r o p r o c e s s o rc o l e ,p r o p o s et h et e c h n i q u e s a n d p l a n f o r t h e m i c r o p r o c e s s o r c o l e ,a n d 谢鸟r 8 0 5 1 50 1 1 t h e f p g a p l a t f o r m t h e f p g a p a r t i t i o n i n ga n dt h ef p g ap i nr e p l i c a t i n go fm u l t i - f p g a sh a v eb e e ns t u d i e d w eh a v ep r o p o s e dv k t u a li ot e c h n i q u ea n df p g a p a r t i t i o n i n gb a s e do ns y s t e m f u n c t i o na n dp i p e l i n es i i u c t u t h er e s e a r c hi nt h i st h e s i sh a ss i g n i f i c a n tv a l u eo fr e f e r e n c ei nt h ee f f e c t i v e v e r i f i c a t i o n o f m i c r o p r o c e s s o r d e s i g r l k e yw o r d s :s o f t w a r es i m u l a t i o nv e r i f i c a t i o n , f p g a , e q u i v a l e n c ec h e c k i n g 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献的引用已在文中指出,并与参考文献相对应。除文中已 注明引用的内容外,本论文不包含任何其他个人或集体已 经公开发表的作品成果。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 日期:硼年月箩日 堕玺堡三里奎兰堡主堂垡堡塞 1 1 课题背景 第1 章绪论 据统计,2 0 0 5 年中国集成电路市场销售额为3 8 0 3 7 亿元,同比增长3 0 8 ,继2 0 0 4 年的高速增长之后,2 0 0 5 年中国集成电路市场依然保持快速发展。 虽然低端芯片占据市场主流的格局并没有改变,但这掩盖不了中国i c 设计业技 术水平正在迅速提高的事实。除了传统的基于逻辑综合的a s i c 设计方法以外, 中国本土i c 设计公司己经开始采用基于i p 集成的平台化s o c 设计方法。近两 年来涌现出了更多的s o c 芯片,如珠海炬力的基于m p 3 应用的s o c 芯片、中科 院计算所的基于中国数字音视频编解码技术标准的凤心一号等等复杂的编解码 芯片以及一系列基于中国自主标准的芯片,且某些芯片已经得到了中国高端系 统制造商的认可。 随着芯片设计时代的到来,中国的i c 产业见证着巨大机遇,但同时也面 临着系统级芯片设计本身所带来的诸如在时序收敛、设计验证、i p 集成、软硬 件协同设计、i p 获取、算法优化、低功耗设计等方面的众多技术问题。一般来 说,a s i c 设计流程需要经过代码设计、逻辑综合、插入测试、布局布线和时钟 树综合等多次处理,而每一步骤都可能引入错误,导致项目失败。随着集成电 路设计自动化程度的提高,集成电路规模不断加大,结构日趋复杂,尤其对于 功能结构复杂的系统芯片设计,如何在设计前期阶段就能消除设计功能的缺陷, 保证一次流片成功率、节约流片成本、加快芯片面市时间,是设计者必需面对 并要妥善解决的关键问题。 验证( v e r i f i c a t i o n ) 就是解决手段之一,它是发现设计缺陷,确保设计成 功的重要措施。来自s y n o p s y s 公司的一项近来的调查表明,当前集成电路一次 流片成功率只有3 5 ,而导致流片高失败率的原因,有7 0 是由于功能错误。 因此,验证就成为集成电路的设计过程中必不可少的一步。 早期的验证是设计工作的附属部分。由于设计规模小,验证的要求也低。 传统动态验证技术是通过仿真向量和基于事件或者基于周期的模拟技术验证设 哈尔滨工程大学硕士学位论文 计功能的正确性,并通过搭建测试平台( t e s t b e n c h ) 验证盯l 级功能,在逻辑综 合后的每一步采用和r t l 级仿真一样或不一样的仿真向量进行门级仿真有时 为验证l a y o u t 后包含时延信息的系统是否能正常工作,还需要在门级数据上反 标延时数据再进行后模拟。 当设计规模越来越大时,r t l 级功能模拟时间还可忍受,但门级模拟已经 成为不可能继续广泛使用的技术了。这个设计流程的瓶颈是由于对设计的完备 验证要求有足够的测试向量造成的。随着设计规模增大,需要的模拟向量也急 剧增加。近十年来,芯片的设计规模增大了1 0 0 倍,模拟向量增加了近1 0 ,0 0 0 倍,1 0 0 x1 0 ,0 0 0 倍的设计规模和模拟向量之积使门级模拟所需的时间变得不 可想象。要找到如此庞大的模拟向量集能够保证验证的完备性也变得不太可能。 高性能微处理器芯片规模与功能上的扩展更是使得其功能正确性的验证 越来越困难,出错的概率也大大增加,有些错误可能引起灾难性的后果,如奔 腾芯片中一个算术设计错误曾使i n t e l 公司损失了5 亿美元。硬件设计不像软 件设计容易挽回错误的损失。因此,验证技术正在逐渐成为研究领域的一个热 点。许多研究机构和公司都在研究如何在设计中采用更先进的自动化验证环境, 从而缩短验证周期,提高验证的可靠性。因此先进验证环境的设计实现是目前 验证技术研究的重点之一 同时,芯片设计对验证技术提出了更高的要求:支持日益增大的设计规模, 能快速完备的完成百万门级的设计验证;准确考虑超深亚微米或更小工艺尺寸 对设计的影响;支持i pc o r e 的使用等等,因此快速、完备、系统的验证体系 是确保芯片及早上市和投片成功的关键。 1 2 国内外研究现状 在a s i c 设计中,就验证的类型而言,一般可以分为形式化验证和非形式 化验证。非形式化的验证方法就是采用模拟验证的方法,而形式化验证是指首 先用一种形式语言描述系统的规范说明,然后通过理论证明或构造算法的方法 来验证系统模型的正确性“1 。 2 哈尔滨t 程大学硕士学位论文 1 2 。1 模拟验证方法 模拟验证是指从电路的描述( 语言描述或图形描述) 提取模型,然后将外部 激励信号或数据施加于此模型,通过观察该模型在外部激励信号作用下的反应 来判断该电路系统是否实现了预期的功能。 模拟验证一般包括软件模拟( s o f t w a r es i m u l a t i o n ) 、硬件仿真( h a r d w a r e e m u l a t i o n ) 以及后期的测试( t e s t i n g ) ( 1 ) 软件模拟验证 软件模拟验证有很多种方法,比较常见的有两种,一种是交互式仿真,一 种是平台式仿真。交互式仿真是设计者提前编写好测试激励文件,在仿真时刻 不断手动修改测试激励向量,然后再通过观看e d a 软件的输出波形来验证r t l 代码的功能,这种做法的优点是设计者可以随时调整自己编写的测试输入向量, 对特定的功能进行仿真、验证,但是会耗费大量时间,这种仿真手段只适合在 r t l 开发调试阶段使用。平台式仿真是使用大量测试工具根据设计者的要求自 动生成测试向量,对整个r t l 代码进行长时间仿真。平台式仿真由计算机根据 设计者的要求完成测试向量的自动生成、比较等工作,可以节约大量时间,另 外,平台式仿真也易于进行记录测试向量和仿真结果。 ( 2 ) 硬件仿真验证 硬件仿真不是靠计算机通过运算来模拟,而是通过相应的硬件实现被仿真 的逻辑结构或实际运行系统功能来进行仿真,因而其速度比计算机软件模拟要 快得多,硬件仿真目前只限于进行功能验证、故障模拟以及部分的时序验证。 硬件仿真是一种不错的加速仿真的途径。但是它的缺点主要是确定设计和硬件 仿真器间的映射关系也要花费大量时间。另外,它与软件模拟一样,只能用典 型的情况对系统进行考察,不可能对大规模的系统进行穷举仿真。 ( 3 ) 测试 测试是保证设计正确性的另一个手段。对硬件系统的测试是在加工后进行 的。但是测试只能证明错误存在而不能证明错误的不存在。对于复杂的系统, 进行穷尽的测试也是不可能的,甚至设计一个有效的测试方案和评价其故障的 覆盖都是相当困难的,现在人们普遍认为利用随机测试也不能对于解决问题有 3 哈尔滨工程大学硕士学位论文 很大的帮助。事实上,有些错误甚至不可能用上述方法发现。问题的实质是由 于目前集成电路的高度复杂性极大损害了模拟时的可控制性和可观察性。 1 2 2 形式化验证方法 形式化验证作为模拟验证方法的补充,日益引起人们的关注。它是用数学 方法表达系统的规范或系统的性质,并且根据数学理论来证明所设计的系统是 否满足系统的规范或所期望的性质,在不能证明所期望的性质时,则可能发现 设计错误。一般说来,形式化验证方法主要可分为模型检验( m o d e lc h e c k i n g ) 、 定理证明( t h e o r e mp r o v i n g ) 和等价性检验( e q u i v a l e n c ec h e c k i n g ) 。 ( 1 ) 模型检验 模型检验是对有限状态系统的一种形式化确认方法。首先对系统建立一个 有限状态模型,然后采用一种形式语言描述系统的规范说明,并构造一种算法 来遍历根据系统规格说明所设计的实现模型,最后确认实现模型是否满足系统 的规范说明“。目前有两种比较实用的模型检验方法:第一种是时序逻辑模型 检验,这种方法是在8 0 年代由c l a r k e 和q u e i l l e 等人提出,在这种方法中, 规范说明被表示为一组时序逻辑公式,验证的系统则被表示为有限状态转移系 统模型,然后构造一个有效的算法来检验给定的有限转移系统是否满足规范说 明的模型;第二种方法是把规范说明表示为一个自动机,被验证系统也被模 型化为一个自动机,然后将被验证系统与规范说明进行比较来确定两者是否一 致。由于状态空间的复杂度会随门数增加呈指数级增长,所以目前的模型检验 系统只能处理最多不超过数千门的小型设计。 ( 2 ) 定理证明 定理证明的原理是:首先定义一种数学逻辑,该逻辑系统实际上是一个形 式化的系统,由一系列公理和推理规则组成,然后用这种数学逻辑分别表示被 验证系统和被期望的特性”。定理证明器的类型很多,既有高度自动化的通用 系统,也有为专用目的设计的具有交互功能的系统。自动化的定理证明系统可 用作通用的搜索程序并且在许多领域都取得了显著的成就;交互式的定理证明 系统则更多地用于数学的系统和形式化处理以及形式方法的机械化。 目前,定理证明的构造仍然需要手工完成,但后续的比较机械的步骤可以 使用定理求证程序来帮助完成。来自德克萨斯大学的l a m b d a 和来自a b s t r a c t 4 哈尔滨工程大学硕士学位论文 h a r d w a r e 的n q t 删就是两个这样的定理求证程序。用手工为一个像处理器这样 复杂的设计构造证明需要巨大的努力,并且所需时间很可能比整个设计周期还 要长。即使有定理求证程序的帮助,定理证明目前也只适用于中小规模的设计 ( 3 ) 等价性检验 等价性检验在这三种形式验证方法中应用得最为广泛,它用数学方法来验 证参考设计与修正设计之间的等价性。等价性检验的基本原理是建立被比较的 两个模型之间的关系。检验的依据是数学的定理和公理以及设计实现所利用的 标准单元库的精确描述“。等价性检验程序自动确定被比较的两个设计的关系, 而不需要用户的输入。因此它的优点是使用简单,且很容易集成到设计流程中。 目前c a d e n c e 公司已经推出了等价性检验工具a f f i r m a 。它把建立被比较的两 个设计之间的关系和等价性证明合并为一个步骤进行它首先假定两个设计的 锁存器和存储器元件是等价的,然后利用随机输入向量对两个设计进行功能模 拟并且根据模拟结果划分锁存器。在没有用户干预的情况下,利用二叉决策图 和可满足性算法,它能够很快地识别两个设计在功能上相对应的节点。当然每 个算法可能把问题分解为若干子问题,并且对于这些子问题采用另外的算法, 利用这些互补的办法可以验证对应结点的等价性。等价性检验可以用来验证不 同r t l 级或门级模型的等价性。但是等价性检验只能适用于同一设计的两个版 本间,并且只能保证设计的相同,而不是行为上的正确。 除了上述形式化验证方法外,还有基于断言的验证方法可以通过在设计描 述中加入断言( a s s e r t i o n ) 来实时监测设计描述是否违反了断言属性,比较常用 的断言描述方法有开放源码的o v l 库、i b m 的s u g a 语言和a c c e ll e r a 的p s l 语 言等,商用工具有o - i nc h e c k 等。也有很多工具基于断言对设计进行静态验证, 这些验证技术都是基于形式化验证方法,主要在设计的逻辑级进行分析,对规 模较大的设计无法进行静态断言检测。还有采用字级a t p g 和模方程组方法进行 静态断言验证,通过产生反例生成模拟矢量的,虽然该方法能处理较大的设计, 但是却需要在不同的求解器间传播约束信息,约束求解性能低。 1 3 问题提出与研究目标 在上述的验证方式中,模拟验证技术已比较成熟并得到了广泛应用,它能 5 哈尔滨工程大学硕士学位论文 通过各种不同操作序列来验证设计是否满足功能要求,因此模拟验证技术是当 前数字系统验证的主要手段。但是它也有一定的局限性,模拟器的功能仅是表 现在某一组外部激励信号作用下该数字系统的行为,至于加什么样的外部激励 信号以及在该外部激励信号作用下系统反应的正确与否,完全由设计者自己决 定,主观性很强。而且模拟验证只能证明错误存在而不能证明错误的不存在, 且对于复杂的系统,进行穷举的模拟验证也是不可能的,甚至设计一个有效的 模拟验证方案和评价其故障的覆盖都是相当困难。因此如何提高模拟与仿真的 效率,提高验证平台的可重用性,进而缩短处理器的设计与实现时间已成为计 算机领域追求的重要目标。 随着计算机技术的发展,近年来出现的硬件仿真设计技术可缩短硬件研制 的时间,给处理器的设计和实现提供了新的手段,同时为处理器后期的模拟验 证也提供了新的方法,使得处理器快速走向市场成为可能。因此本文提出了基 于f p g a 进行硬件仿真验证的方法,在研究和实现微处理器设计的后期,对微处 理器的逻辑和功能的正确性进行全面的系统级硬件仿真验证。 从目前形式验证在验证过程中的使用情况来看,由于形式验证存在状态空 间爆炸性增长的可能,形式验证只适合模块级或中小系统级的验证,而且主要 验证设计的控制部分。当系统变复杂时,验证将占用较多的计算机资源,耗时 增加。因此当系统复杂程度超出状态空间搜索的半径所能覆盖的范围,形式验 证方法无法单独完成验证任务。 而本文所设计的微处理器是高可靠性微处理器,对可靠性要求比较高,而 现有的验证方法绝大多数只适用于验证普通集成电路的设计,所以本文需要设 计一套针对高可靠性微处理器验证的方法。高可靠性微处理器芯片设计可能出 现的问题多种多样,单一的验证方法不能保证设计的正确性。因此本文提出多 级验证体系思想,对高可靠性微处理器在不同阶段进行多层次验证。详细验证 体系如图1 。l 所示。 6 堕签堡三里奎堂堡主堂堡垒苎 图1 1 高可靠性微处理器的多级验证体系 1 4 本文主要研究内容 本课题是结合“高可靠性微处理器的设计”项目而展开的一个课题,承担 的任务就是设计高可靠性微处理器r 8 0 5 1 5 的验证方案。研究目标就是设计一种 高效率和低成本的多级验证体系结构,从而能够在较短的时间内完成对集成电 路的验证工作,并提高芯片设计的投片成功率。在具体的验证设计过程中,提 出了一种软件模拟验证平台,并利用此软件验证平台对r 8 0 5 1 5 进行了软件模拟 验证,结果表明具有很高的可重用性。同时还构建了硬件仿真平台,对硬件仿 真划分问题进行了研究,并提出了芯片引脚多功能复用的方法,然后对r 8 0 5 1 5 进行硬件仿真验证。最后提出了对r 8 0 5 1 5 的形式化验证策略。 第1 章综述了当前集成电路技术的发展和芯片设计的主要验证方法及研究 现状,并提出了多级验证体系结构的方法。最后介绍了论文的总体结构。 第2 章介绍了1 1 8 0 5 1 5 的总体结构及高可靠性加固方法,根据其特点制定 了详细的总体验证策略,并针对高可靠性要求提出了故障注入的验证方法。 7 哈尔滨工程大学硕士学位论文 第3 章阐述了基于软件仿真验证的基本思想和工作流程,在此基础上提出 了自动化功能验证平台的思想,设计了一种软件验证平台,并在此验证平台上 对r 8 0 5 1 5 进行了软件模拟验证,结果表明此验证平台具有很高的重用性。 第4 章研究了硬件验证平台的设计,并在f p g a 验证平台上对高可靠性微 处理器r 8 0 5 1 5 进行了硬件仿真验证,对硬件仿真调试进行了详细的研究。最后 对f p g a 多片划分进行了研究,并针对芯片互连问题提出了芯片引脚多功能复用 的方法。 第5 章研究了形式化验证方法和等价性检验工具。并提出了针对鹧0 5 1 5 的具体等价性检验策略。 本文最后对论文进行了总结,同时指出了微处理器验证方法有待进一步研 究的问题。 堕堡堡三堡奎堂堡主兰垡丝苎 第2 章r 8 0 5 15 体系结构简介及其验证策略 本章主要介绍了r 8 0 5 1 5 的基本体系结构和高可靠性加固方法,然后又介 绍了几种常见的验证路线,并根据高可靠性r 8 0 5 1 5 的体系结构特点制定了验证 策略。最后综述了针对r 8 0 5 1 5 本文所设计的详细验证计划。 2 1r 8 0 5 1 5 2 1 1 概述 r 8 0 5 1 5 是一个快速单片8 位微控制器的内核,和普通8 0 5 1 有相同的指令 集,可以执行所有a s m 5 l 指令。目前有2 5 5 条指令已经明确定义,指令a 5 h 作 为扩展指令,如d e b u g 指令。r 8 0 5 1 5 提供了软件和硬件中断、串口通信接口、 带比较和捕获功能的定时器计数器以及一个看门狗定时器等功能。 2 1 2 性能 r 8 0 5 1 5 体系结构省略了冗余总线状态,在一定程度上实现了指令取指和执 行的并行执行( 在当前指令执行的最后一个机器周期对下一条指令取指) 。大 多数单字节指令的执行只需要一个机器周期。由于一般情况下r 8 0 5 1 5 每个机器 周期使用一个时钟周期,相对于使用相同时钟频率的普通单片机而言,其性能 改进了8 倍( 以眦p s 衡量) 。 传统8 0 5 1 大多数指令的执行需要一到两个机器周期( 除乘除法指令外) 。 另外,传统8 0 5 1 中的每个机器周期两次访问( 程序) 存储器,但是多数情况 下,第二次访问只是虚操作,并且耗费了额外的时钟周期。 9 堕玺蓬三里查兰堡主兰堡丝壅 2 1 3r 8 0 5 1 5 体系结构综述 图2 1r 8 0 5 1 5 系统模块框图 图2 1 显示了r 8 0 5 1 5 的整体系统模块框图以及与外部模块的接口。r 8 0 5 1 5 具体包括下列模块:处理器控制单元、算术逻辑运算单元、乘除法单元、时钟 控制单元、存储器控制单元、r a l i 及s f r 控制单元、功耗管理单元、端口寄存 器单元、定时器o l 单元、定时器2 及捕获比较单元、串口0 接口、串口1 接 口、看门狗定时器、中断处理器、片上调试接口和复位控制单元 1 0 哈尔滨工程大学硕士学位论文 2 1 4 高可靠性r 8 0 5 1 5 空间辐射环境中存在大量的高能质子,当单个粒子撞击到硅片时,将造成 某个区域内电荷聚集在一起,因而可能会引起单粒子翻转( s 叫) 现象,单粒子 翻转通常会导致处理器内部寄存器内容改变或内存位翻转,继而可能计算结果 错误、程序执行序列错误,甚至是系统的崩溃。对于微处理器、微控器、d s p 、 协处理器等复杂电路来讲,最常见的故障也是单粒子翻转效应。无论是在空间 环境中还是在大气环境中,甚至是地面环境中都可能产生单粒子翻转效应。所 以单粒子翻转是目前微处理器可靠性设计中主要考虑的问题。单粒子翻转对电 路造成的影响主要分为以下几种: ( 1 ) 单粒子翻转会造成存储器或寄存器中存储单元内容的误翻转,可能 造成错误的执行结果或是错误的程序执行流。 ( 2 ) 单粒子翻转会造成组合电路中产生毛刺。如果这个毛刺在传播到时 序电路时没有被锁存则不会导致错误,一旦这个毛刺传播到时序电路时恰好被 锁存,则可能会导致错误的结果。 ( 3 ) 单粒子翻转可能造成时钟线上产生毛刺,造成微处理器执行时序的 混乱。 因此要想获得系统的高可靠性,就必须采用相应的保护技术加固所有的存 储单元。由于r 8 0 5 1 5 的各个模块功能和结构的不同,所以要针对各个模块进行 不同方法的加固,本文主要采用了e d a c ( e r r o rd e t e c t i n ga n dc o r r e c t i n g ) 、 t m r ( t h r e em o d u l er e d u n d a n c y ) 和b e r g e r 码等多种加固方式对r 8 0 5 1 5 进行 了加固,有效提高了r 8 0 5 1 5 的可靠性。 2 2 验证策略 2 2 1 业界主要采用的验证路线 芯片验证可以参考的路线有很多,主要有以下几种:自顶向下验证、自底 向上的验证、基于平台的验证和基于系统接口驱动的验证,下面对比较常用的 前两种作一下说明。 l l 哈尔滨工程大学硕士学位论文 ( 1 ) 自顶向下验证 自顶向下的验证如图2 2 所示。验证的起点是设计规格书,从设计的规格 书可以提取出来设计需要验证的所有特性,这些特性的表现形式可以用计算机 语言描述形成可执行的规格,但很多时候则是用自然语言列表出来的。接下来 就是开发验证计划,系统级验证的内容主要包括建立系统级行为模型,并把它 放到系统级的测试环境中进行验证。建立系统级行为模型是指用系统级语言c 或c 什建立设计规格书定义的功能特性模型,系统级的测试环境应该是模块化 的,这样可以很方便地移植到功能验证和网表验证中,对于不同的抽象层次可 根据该层次的具体要求增强相应的测试功能。但是,在采用自顶向下验证策略 的验证过程中,验证工程师会周而复始的发现问题,然后再由设计工程师修改 错误,这通常会导致较差的验证效率。 鼍计竞直 图2 2 自顶向下验证流程 ( 2 ) 自底向上验证 自底向上的验证流程如图2 3 所示。 哈尔滨工程大学硕士学位论文 t 艏 图2 3 自底向上验证流程 0 级测试孤立验证各个元件、功能块或单元。验证思路是对元件穷举测试, 而不是考虑其集成环境。此单元测试中所采用的技术有确定性的仿真、定向随 机仿真、代码静态( 1i n t ) 检查和形式检查等。第0 级测试及其相关的测试平台 可以由i p 供应商提供。 1 级测试由设计工程师负责,进行比较仔细的模块验证,测试的内容包括 直接验证和随机验证。设计工程师提交给验证工程师的设计一方面要通过代码 质量检查,其内容包括没有初始化的变量、综合器不支持的数据类型或行为级 描述、模块例化时端口不匹配等;另一方面要通过测试覆盖率检查,保证测试 覆盖率达到1 0 0 。对于i p 宏模块的1 级测试,测试的环境由i p 提供者给出, 测试的结果可以作为i p 选择的依据。 2 级测试用于验证系统存储器的映射和模块间互连的正确性。测试内容包 括通过片上处理器或片外处理器模型对设计各个模块中寄存器进行读写操作, 对于设计中的每个数据通路,通过外部接口写入激励数据,经过设计中各个模 块问的接口传送,在设计的输出端口采集结果。 3 级测试用于验证整个芯片的系统功能。测试内容包括长时间、大流量、 随机性测试、错误条件测试、边界条件测试等。自底向上验证的最后阶段同样 是网表验证、时序分析和物理验证。 哈尔滨工程大学硕士学位论文 自底向上的验证方法是现在最为流行的,验证过程的收敛性好,验证效益 高。但这一方法的难点在于需要在模块层次开发相应的测试环境和钡9 试激励。 这一问题的解决主要依赖于使用高级的验证语言,使得在模块层次的测试环境 所需要的模块可以很方便地从系统级的测试环境复用。 2 2 2r 8 0 5 1 5 的验证策略 针对1 1 8 0 5 1 5 体系结构的特点,最好的验证策略是采用自底向上的验证路 线,在功能单元集成到系统以前尽可能的验证每一个功能单元。 自底向上的验证方法要求从最基本的子模块验证开始,在子模块级验证彻 底完成的基础上将相关联的子模块构成子系统,进行子系统的验证:各个子系 统验证完以后,就可以将子系统集成到一起进行整个系统的验证 子模块是整个系统的基础,它们的正确性是最终整个设计正确工作的基 础。发现同样一个错误,在子模块级和在子系统级以及整个系统级所需要花费 的时间和精力是有天很大差别的。子模块级的验证更易于发现错误,而且调试 也容易;但是对于子系统级以及系统级的情况就比较困难,对于一个错误需要 不同模块的设计人员共同分析来定位错误出现的地方及原因。另外在予系统级 以及系统级的验证发现并修改错误以后,还要从子模块再重新进行验证,以确 保修改错误不会引入新的错误。如此看来,在系统级和子系统级的验证和调试 花费大量时间和精力。因此对于子模块的验证需要尽可能地彻底、完备,尽可 能在子模块验证阶段发现设计中的错误。子模块的规模比较小,易于进行非常 全面的验证,可以采用的验证方法也相对较多。每次集成都需要验证各个子单 元之间的连接通信协议,比如子系统级的验证就需要验证各个子模块之间的连 接通信是否符合设计要求。尽管设计中有多少错误是不太可能完全确定的,但 是,经验表明相当数量的错误是由于数据序列的传输以及转换造成的,而不是 对数据的本身的处理。这是因为数据操作更为常规而且只是在局部进行,而在 一个复杂的系统中控制和时序取决于操作的并行发生,而且是和其他模块相关 联。当然,除了子单元之间的连接通信需要验证以外还要验证集成以后对外的 功能或者属性的正确性。 所以高可靠性微处理器r 8 0 5 1 5 的各个子模块在集成到一起之前需要对每 个子模块进行充分的验证,确保子模块的功能正确性以及对外属性功能的正确 1 4 哈尔滨工程大学硕士学位论文 性相关子模块集成到一起以后需要确保处理器各个子模块之间的互联通信是 符合设计要求的。在子系统验证完以后就可以将各个子系统集成到一起构成最 终的设计,进行最后的验证,验证的内容和子系统级的验证是非常相似的。 因此,高可靠性微处理器r 8 0 5 1 5 的验证主要分为两个阶段进行。 第一阶段为单元级验证,重点验证所有功能模块的功能是否正确,包括执 行部件及微程序控制器和指令译码器等控制部件。在该级别的验证对于指令和 整个系统不可见,每个功能单元使用独立的测试平台( t e s t b e n c h ) 进行验证,指 令的微程序在该级别无法得到验证 第二阶段为系统级验证,重点验证每条指令是否正确执行,以及检查功能 单元之间的接口是否正确在完成功能单元级验证后,可以认为指令译码器和 微程序控制器能正常工作,可以发出正确的微指令序列,并且执行部件执行正 确,只要保证每条指令的微程序正确并且各单元间的接口正确,就可以保证指 令的正确执行。系统级验证还要检查在边界输入下和异常输入下芯片是否工作 正常。 2 3r 8 0 5 15 的验证计划 验证计划划分了微处理器验证过程中主要验证阶段、验证对象和验证目 标,并且定义了完成这些验证目标所采用的技术路线。在高可靠性微处理器 r 8 0 5 1 5 的多级验证体系流程的各个阶段中,主要都包括验证途径、激励生成、 验证环境的建立、验证执行以及结果检测分析,下面分别叙述 2 3 1 验证途径 从硬件功能验证到系统应用程序验证都包含该阶段,如模块功能、模块间 的接口、整个系统的数据通路等。所以必须针对全部的模块级和系统级验证平 台确定相应的验证途径。 ( 1 ) 黑盒验证 黑盒验证不关心设计内部的实现细节,所有验证的内容都是通过设计对外 接口完成。验证人员不不需要知道设计的内部结构和设计内部的状态。黑盒验 证缺乏可控性和可观察性,它通常很难将电路驱动到预定的状态组合或隔离某 哈尔滨工程大学硕士学位论文 些功能,它难于观察设计各个部分对激励的响应情况,以确定仿真失败时的问 题所在。因此,对于黑盒验证的设计,只能通过特殊引脚或性能寄存器、测试 寄存器等间接控制和观测设计的内部转换。黑盒验证的测试用例独立于设计实 现,有利于设计和验证的分离,让验证人员在不了解设计实现的情况下,从设 计计划出发去检查设计人员的工作,有利于提高验证的可信度。 ( 2 ) 白盒验证 白盒验证要求对所要验证的设计内部结构和实现细节都非常清楚,并可以 进行完全的控制和观测。这种方式的好处是可以迅速建立想要的电路状态,隔 离特定的功能,它能够很容易的观察设计每个部分与其结果的差异这种方式 的缺点在于需要验证人员知道设计实现的细节,比如在什么样的激励条件下, 应该观测到什么样的测试结果。 ( 3 ) 灰盒验证 灰盒验证是在知道设计细节的情况下采用黑盒验证的测试用例。它是黑盒 验证和白盒验证的折中,弥补了黑盒验证的调试效率较低、对设计部分特性验 证不充分的缺点,同时又保留了白盒验证所不具有的良好的可移植性嘲。灰盒 验证和黑盒验证一样只能通过设计对外接口、特殊引脚或性能寄存器、测试寄 存器等输出结果判断设计的正确性。 2 3 2 激励生成 当验证计划给出确切的验证途径后,接下来生成激励并且应用到d u t ( d e s i g nu n d e rt e s t ,待测试设计) 中。从d u t 规范和验证计划得到验证需求, 然后根据这些需求定义激励产生方案。当全部的测试完成后,对设计功能正确 性将有更大的提升。下面是关于激励生成的一些考虑: ( i ) 定向测试 定向测试特别针对特定的一个或者一些功能。定向测试适合对功能较为简 单或者具有专门功能的模块( 例如中断的产生和检测是专门功自勘。在这种方法 中,验证工程师通常知道输入约束条件和目标输出行为并且将它们翻译成仿真 激励。定向测试只能对验证人员所能想到的部分进行测试,需要产生大量的测 试向量才能覆盖尽可能多的各种传输组合。耗费大量的时间和精力,而且很难 达到满意的覆盖率。 1 6 哈尔滨工程大学硕士学位论文 ( 2 ) 随机测试 一个随机验证环境将有助于发现隐藏测试范例和设计错误。在随机验证环 境中,验证环境知道如何应用每一类型的事务并且对这些事务序列进行随机排 列。要使用这种方法,验证工程师必须开发自动仿真激励生成程序和一个自动 结果检测模块。能够命中全部测试范例对于随机验证环境十分重要。然而,d u t 的某些功能可能很难命中以至于可能在有限的仿真时间内都无法测试到“”。大 家一般采用约束随机方式生成激励。在这种方法中,随机验证环境中包括了指 导随机选择出现的各种可能性权值和约束。这种方法可以在随机验证环境中仿 真低概率测试范例和设计错误,同时也必须命中无约束随机环境产生的测试范 例。约束随机验证的方法是改进验证环境自动性的最好方法。 ( 3 ) 故障注入测试 前面的两种测试主要是测试微处理器的基本功能,因为本文所设计的微处 理器是高可靠性微处理器,所以还要独立设计故障注入以测试微处理器的可靠 性和抗干扰能力。由于r 8 0 5 1 5 是高集成度的微处理器,其总线和中央处理器都 集成在一起,在芯片的内部,所以不可能采用总线注入方式。虽然管脚级的电 流注入的方法是可行的,但是不易控制注入的深度,容易造成器件损伤,所以 有较大的局限性,仍然不适合该系统。综合以上特点,本文故障注入采取了中 断控制、软件故障注入法。这种方法由硬件电路进行控制,但主要还是基于软 件故障注入法,用修改存储器寄存器以及程序指针的值来模拟单粒子翻转效应 对存储器的影响;通过修改i 0 端口的特殊功能寄存器的值来模拟单粒子翻转 对输入输出端口的影响,这也基本上包含了向单片机所有管脚进行电流注入所 能模拟的各种故障类型。根据资料显示,最易受影响的单元是c p u 的指针p c 、 特殊功能寄存器s f r ,所以在实验过程中主要是针对这几个寄存器注入故障。 寄存器传输级故障注入主要是利用硬件语言在寄存器、译码器等传输级模 块外围加入翻转、桥接、固定0 、固定1 和高阻等故障。如果该层次上的设计 是用硬件语言表示的,则可以利用文本自动化处理,代替手工加入故障注入模 , 块。本文主要利用随机产生器产生和控制故障的注入,因为精确的控制要消耗 大量的资源,影响原系统的设计。 因为约束随机测试和定向测试各有优点和不足,通常最好的方法是结合起 来使用。高可靠性微处理器r 8 0 5 1 5 的验证中主要使用约束随机测试完成功能测 1 7 哈尔滨工程大学硕士学位论文 试范例和接口测试范例,使用定向测试进行边界条件测试,而使用故障注入测 试主要是验证加固后r 8 0 5 1 5 的可靠性。 2 3 3 验证环境 本文开发了从单元级到系统级的验证环境,这些验证环境的开发通常与 r t l 代码的开发同步进行。 在单元级验证时,本文创建了可重用性的软件模拟验证平台,并首先将其 成功应用于t i m e r 单元的验证中,然后将t i m e r 验证环境作为参考设计、验证 环境框架代码和相关说明文档一起以验证库的形式发布。利用该验证库,验证 人员顺利完成全部功能单元的验证。该部分内容将在第3 章详细阐述。 在系统级验证时,本文主要采用了f p g a 进行硬件系统仿真,该阶段重点 验证指令的微程序的正确性和功能单元间的连接和交互是否正确。该部分内容 将在第4 章详细叙述。 2 3 4 结果检测 本文有三种方法检测结果以确认d u t 的输出是否和所期待的一致: ( 1 ) 波形检测。 ( 2 ) 自动的后处理:保存d u t 仿真期间的输出,待仿真结束后运行脚本 进行处理。 ( 3 ) 通过计算机实现实时在线检测结果。 波形检测仅适合于手工进行的小型模块验证。结果的后处理不需要在仿真 环境中加入非常多的代码,然而,额外的结果保存会影响仿真性能,例如文件 i o 操作会降低仿真速度。实时检测需要额外的开发工作量,但它可以在错误 发生时立刻显示,因此有助于调试。在本文的设计中,主要使用实时检测完成 结果检测。 2 3 5 覆盖率检测 代码覆盖率分析为评估测试范例质量提供了标准并且能确认设计中未测 试部分。这种分析为被评估的每一个属性以百分比形式提供一个覆盖率数据和 哈尔滨工程大学硕士学位论文 一个未被测试或者部分被测试到的设计清单。各种代码覆盖率类型包括:行覆 盖率、分支覆盖率、路径覆盖率、表达式覆盖率、翻转覆盖率、f s m 覆盖率等。 一般仿真工具中都内嵌代码覆盖率分析工具,在仿真中可以很容易取得代 码覆盖率数据。因而代码覆盖率分析具有方便操作、不会增加额外工作量的优 点但是进入系统级验证以后,不但要求测试芯片而且更要将芯片测试完全。 现在的系统不但有数以百计的可能状态并有数以千计可能的状态转换,测试的 完备性成为验证工具的主要焦点。虽然代码覆盖可以给出代码特定行的执行信 息,可是它不能给出任何关于功能的详细信息因此,单独的代码覆盖对于复 杂的模型验证将不再有效。所以本文在r 8 0 5 1 5 的验证流程中引入了功能覆盖率 与代码覆盖率一起作为衡量并且改进验证质量的标准 2 4 本章小结 本章首先对高可靠性微处理器r 8 0 5 1 5 的结构、性能和加固方法进行了总 体描述。然后介绍了几种业界常用的验证策略,并根据r 8 0 5 1 5 的具体结构确定 了详细验证路线,最后又根据r 8 0 5 1 5 高可靠性的特点,提出了包含故障注入的 详细验证计划。 1 9 哈尔滨工程大学硕士学位论文 第3 章软件模拟验证 模拟验证主要有两种,一种是软件模拟验证,是指用e d a 软件模拟真实的 工作环境,给设计的r t l 代码加激励,把仿真结果跟参考模型的结果进行比较 从而在实现成实际电路之前,完成对电路设计的功能测试;另一种是硬件仿真 验证,是把r t l 代码烧录到f p g a 里面,仿真真实流片后的环境进行验证。本章 将重点对软件模拟验证技术进行阐述,硬件仿真验证将在第
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司聚餐自助餐活动方案
- 公司桶装水活动方案
- 公司研讨活动方案
- 公司礼仪礼节活动方案
- 公司活力秀活动方案
- 公司组织趣闻活动方案
- 公司新年节目策划方案
- 公司演唱会年会策划方案
- 公司月会具体活动方案
- 公司新春活动策划方案
- 2025年宪法知识竞赛全套题库及答案(共150题)
- 高空作业佩戴安全带培训
- 2025年春人教版英语七年级下册 Unit 7 A Day to Remember(教学设计)
- 小学信息技术五年级上册第3课《流程图描述算法》教学设计
- 市政工程计量表格样表
- 职业院校教师人工智能素养:内涵流变、框架构建与生成路径
- 封装车间预防错漏混报告
- 2024年教师招聘考试教育综合理论知识复习题库及答案(共600题)
- GB/T 12412-2024牦牛绒
- 专项10:现代文阅读 媒体文阅读(练习)-【中职专用】2025年对口升学语文二轮专项突破(解析版)
- 产品检验知识培训课件
评论
0/150
提交评论