(通信与信息系统专业论文)芯片验证技术在amba总线模块中的应用.pdf_第1页
(通信与信息系统专业论文)芯片验证技术在amba总线模块中的应用.pdf_第2页
(通信与信息系统专业论文)芯片验证技术在amba总线模块中的应用.pdf_第3页
(通信与信息系统专业论文)芯片验证技术在amba总线模块中的应用.pdf_第4页
(通信与信息系统专业论文)芯片验证技术在amba总线模块中的应用.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(通信与信息系统专业论文)芯片验证技术在amba总线模块中的应用.pdf.pdf 免费下载

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

文档简介

重庆邮电大学硕士论文 摘要 摘要 在集成电路快速发展的趋势下,系统芯片逐渐成为现实。随着系统芯片的设计 规模和复杂度的不断提升,验证已经成为了芯片设计中的瓶颈,大约占整个芯片设 计的7 0 ,甚至更多。因此在降低设计费用的同时,还要尽可能地降低验证的费用。 如何对芯片进行完备的验证,如何快速系统芯片的上市时间已经成为系统芯片验证 的难点和热点。 本文以a m b a 总线为例,进行功能模块的设计,并搭建验证平台对设计好的 r t l 代码进行验证,本文的主要工作和成果如下: l 、论文较为深入地总结芯片设计、验证的发展背景,研究目前芯片验证的技 术和流程,阐述目前验证中存在的问题和挑战; 2 、通过对芯片设计的流程和a m b a 的总线协议的学习,本文使用v e r i l o g 语 言对a m b a 总线模块分块进行设计; 3 、论文对目前主流验证技术优缺点进行分析,对目前通用的验证方案进行改 进,并搭建验证平台对a m b a 模块以及相关的接口模块进行验证。新的验证方案对 验证平台重新进行功能划分,提高了验证平台的重用性,加快了芯片的验证时间, 能够更好的保证芯片设计的正确。 通过在实际项目中的应用与实践,新型的验证平台有效地缩短了整个芯片设计 验证的周期,加快了芯片的上市速度。同时,新提出的验证流程,能够检查出更多 的错误,确保产品的成功。 关键字:验证、断言、r v m 、a m b a i i i 重庆邮电大学硕十论文 a b s t r a c t a b s t r a c t u n d e rt h ef a s td e v e l o p m e n tt e n d e n c yo ft h ei n t e g r a t e dc i r c u i t ,t h es o c 伊删l y b e c o m e st h er e a l i t y a l o n gw i t ht h es c a l ea n dc o m p l e x i t yo ft h es o cd e s i g ni m p r o v i n g c o n t i n u o u s l y ,i t sv e r i f i c a t i o nh a sa l r e a d yb e c o m et h eb o t t l e n e c ko f t h ee n t i r ed e s i g nf l o w m o r et h a n7 0 o fd e s i g ne f f o r ti sn o wd e d i c a t e dt ov e r i f i c a t i o n t h e r e f o r en o to n l yt h e d e s i g ne x p e n s e i sr e d u c e d ,b u ta l s ot h ev e r i f i c a t i o ne x p e n s em u s tb er e d u c e d n o wm o r e a n dm o r er e u s ei pm o d u l e sa r ei n t e g r a t e di ns o c ,h o wt ov e r i f yt h e s ei pm o d u l e sa n dt h e o v e r a l ls y s t e mf a s th a v ea l r e a d yb e e nt h ed i f f i c u l t ya n dt h eh o ts p o to ft h es o c v e r i f i c a t i o n t h et h e s i st a k e sa m b am o d u l ea sa l le x a m p l et od ot h ed e s i g na n dv e r i f i c a t i o n , t h e m a i nw o r ka n di n n o v a t i o no ft h i sp a p e ri s : 1 t h et h e s i sp r o v i d eac o m p r e h e n s i v ei n v e s t i g a t i o no nt h ed e v e l o p m e n tb a c k g r o u n d o fc h i pd e s i g na n dv e r i f i c a t i o n , t h ec u r r e n tv e r i f i c a t i o nt e c h n o l o g ya n dc h a l l e n g e sa r ea l s o s h o w e di nt h ep a p e r ; 2 a f t e rl e a n i n gt h ep r o c e s so fc h i pd e s i g na n da m b as p e c i f i c a t i o n2 0 ,a m b a m o d u l eh a sb e e nd e s i g n e di nt h ep a p e r ; 3 an e wv e r i f i c a t i o np l a nw h i c hc a nb eu s e di na m b am o d u l eh a sb e e np r o p o s e di n t h i sp a p e ra c c o r d i n gt ot h es h o r t c o m i n ga n da d v a n t a g eo fc u r r e n tv e r i f i c a t i o nt e c h n o l o g y ? l l e nc o m p a r e dw i mt r a d i t i o n a lt e s tp l a n , t h en e wt e s tp l a nc a ns f l v em o r ev e r i f i c a t i o n t i m e ,g i v em o r ec o n v e n i e n c ei nm o d u l er e u s e ,a tt h es a m et i m e ,m o r eu s e f u li nf i n d i n g b u g s t h r o u g ha p p l y i n ga n dp r a c t i c i n gi n t h ea c t u a lp r o j e c t , t h en e wv e r i f i c a t i o nt e s t e n v i r o n m e n th a ss h o r t e n e dt h ec h i pd e s i g na n dv e r i f i c a t i o nc y c l e s ,t h et i m e - t o - m a r k e ti s a l s or e d u c e de f f e c t i v e l y a tt h es a m et i m e ,w i t ht h en e wt e s tp l a n ,w ec a nf i n dm o r e e r r o r sa n de n s u r et h ec o r r e c t n e s so f o u rd e s i g n k e y w o r d s :f i c a t i o n 、a s s e r t i o n 、r m 、a m b a i v 重庆邮电大学硕十论文 第一章绪论 1 1 集成电路的发展 第一章绪论 人类社会已经步入高度发达的信息化社会,而信息化社会的发展离不开以集成 电路( i c ,i n t e g r a t e dc i r c u i t ) 为基础的电子技术和产品的进步。现代电子产品在性 能和功能不断提高的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越 来越快,实现这种进步最主要的原因是集成电路制造工艺及其设计技术的持续发展。 从1 9 4 7 年第一支半导体晶体管的发明,到1 9 5 8 年采用硅平面工艺的集成电路诞生, 直至目前正在发展中的系统芯片,集成电路技术以惊人的速度发展着,正如i n t e l 公司创始人之一的g o r d o ne m o o r e l 9 6 5 年所预言的那样:集成电路芯片上的晶体管 数量每1 8 个月将增加一倍,性能增加一倍i l j 。 集成电路自诞生以来,经历了小规模集成电路( s s i ) 、中规模集成电路( m s i ) 到大规模集成电路( l s i ) 、超大规模集成电路( v l s i ) ,而达到了今日的特大规 模集成电路( u l s i ) 片上系统( s o cs y s t e m - o n a - c h i p ) 的时代,伴随着电路规模的 增大和功能的增强,集成电路的设计工具和方法也飞速发展着。早期i c 设计采用手 工设计的方法,这时的电路规模小、功能简单,可以依据所设计电路系统的具体要 求,先进行功能划分,对每个功能块画出真值表,逻辑化简后写出布尔表达式,手 工画出电路图。对于集成电路,还必须进行绘制版图、以及刻红膜等一系列复杂的 手工操作。到了2 0 世纪7 0 年代,随着中规模集成电路的出现和应用,传统的手工 制图设计集成电路的方法已无法满足设计精度和效率的要求,人们开始将产品设计 过程中高重复性的繁杂劳动如布图布线工作用二维平面图形编辑与分析的c a d 工 具代替。8 0 年代,随着c a e 技术的出现,i c 产业得到了进一步的发展。到了9 0 年代,电路设计的高复杂度使得依靠原理图输入的方式已不堪承受,采用硬件描述 语言的设计方式就应运而生,此外引入了高级综合( 行为综合) 和逻辑综合工具, 从较高的抽象层次开始,按自顶向下的方法进行设计,从而大大地提高了处理复杂 设计的能力,设计周期也大大的缩短 2 1 3 j 。 目前的集成电路设计,己经进入了系统级芯片( s o c ,s y s t e mo nac h i p ) 时代。 s o c 是指在一块芯片上集成了数字和模拟逻辑部件,包含微控制器( m c u ,m i c r o c o n t r o lu n i t ) 或者数字信号处理器( d s p ,d i g i t a ls i g n a lp r o c e s s o r ) ,总线,存储器, 输入输出( f o ,i n p u t o u t p u t ) 接1 :3 ,电源管理( p o w e r m a n a g e m e n t ) 和锁相环( p l l , p h a s el o c k i n gl o o p ) ,模数数模( a d d a , ) 转换器等功能单元,能够独立的完成 重庆邮电大学硕士论文 第一章绪论 信号采集,存储,处理,输入输出等功能的一种设计理念。s o c 是面向嵌入式系统 应用的设计,集软硬件系统于一身,以最小的尺寸完成最多的任务的集成电路器件。 s o c 设计是基于i p ( i p 就是常说的知识产权i n t e l l e c t u a lp r o p e r t y ) 的设计,其核心 理念就是利用可重用模块以缩短系统级芯片的开发时间,缓解设计能力与i c 制造的 矛盾,降低产品开发的成本。s o c 的典型结构图如图1 i 所示: 总线 图1 i s o c 的典型结构图 s o c 设计技术的运用和推广可以极大地降低整个系统的开发费用,同时在原有 芯片的基础上增加更多功能,提高产品性能。尤其在消费电子产品中,s o c 大大地 缩短了产品的面市时间( t t m ,t i m e - t o - m a r k e t ) 。 1 2 验证的基本概念 在进行i c 设计的过程中,为了保证设计功能的正确,验证工作是必不可少的, 在s o c 的设计过程中,有关验证方面的工作要贯穿整个设计流程。从前端行为级 h d l 设计开始,一直到后端版图设计,在芯片的流片之前需要做足够多的验证流 程【4 】。 1 2 1 验证的重要性 我们可从以下两个事件切实感受到设计正确性验证的重要性。1 9 9 4 年,奔腾 处理器被发现在执行某个特定的浮点运算时出现错误,这种错误2 7 0 0 0 年才可能出 现一次。对此,i n t e l 付出4 7 5 亿美元的巨额代价回收有缺陷的奔腾处理器。1 9 9 6 年 6 月4 日,欧洲航天局研制的阿里亚娜五型火箭在发射后不至l j 4 0 秒爆炸。事后调查 发现,错误发生于当一个很大的6 4 位浮点数转换为1 6 位带符号整数时出现异常。 细微错误,使得十年的努力毁于一旦。 从以上事件可以看出,无论是在高危险性领域中使用的还是普通家用的数字 系统,保证设计正确性都是至关重要的。软件、硬件和协议是目前数字系统设计 所包含的三种最基本的形式,任何复杂的数字系统大致都由这三个部分组成。如 果说在复杂系统设计过程中错误是难免的,那么出现事故的惟一原因就是:没有 2 重庆邮电大学硕士论文第一章绪论 在产品使用前对其进行完备的置信工作,即确认系统已经完全实现了设计者的意 图【5 】o 1 2 2 验证的定义 j a n i c kb e r g e r o n 给验证下的定义是:“验证是证明一个设计的功能是否正确的 过程 。使用汇聚模型可以从概念上清晰地描述验证过程,如图1 2 所示,图中 d e s i g n ( 设计) 可以是任何包含有输入输出的过程,例如根据s p e c i f i c a t i o n ( 规范) 写出r t l 代码、扫描链插入、把r t l 级代码综合为门级网表、根据门级网表布局 布线等。而v e r i f i c a t i o n ( 验证) 过程是一个相反的过程,它从d e s i g n 的结果出发 回到起点【6 j 。 d e s i g n s t a r tp o i n t 1 2 3 验证平台 v e r i f i c a t i o n 图1 2 汇聚模型 盘占 彳h er e s u i t 测试平台实质上就是一段代码,它能够把测试向量( t e s tc a s e ) 输入到被测 试对象( d e s i g n u n d e r t e s t ,d u t ) 或者叫做被验证对象( ( d e s i g n u n d e r v e r i f i c a t i o n , d u v ) 上,然后判定被验证对象所产生的结果是否正确川。在实际验证工作中, 一般采用由验证平台( t e s t b e n c h ) 和d u v 组成验证体系,验证平台与d u v 一起 构成一个闭合系统,对外没有输入,也没有输出。一般地如图1 3 所示: 图1 3 简单的验证平台 3 重庆邮电大学硕士论文第一章绪论 验证平台主要包括激励生成( s t i m u l u sg e n e r a t i o n ) 和响应检验( r e s p o n s e c h e c k ) 两个部分,激励部分用于对d u v 提供激励,响应部分用于对d u v 的输出 进行处理。对于那些对d u v 的输出进行采样,并与期望的输出进行比较的验证平 台我们称之为带白检器的验证平台,当输出的采样结果与预期的输出不相符时, 则输出错误信息。 s e l f c h e c k i n g 。,一 t est b e n c h 旧x p e t p u c t e t d i 然h d u t ( s t i二u l u s ) 州 1 2 4 验证计划 o u t p u t ( r e s p o n s e ) e s u l t s c o m p a r ld 图1 4 带自检器的验证平台结构 在对系统芯片的设计过程中,编制验证计划是非常重要的。它是一个可操作 的文档,是接下来进行验证工作的指导书。在所有的验证要素中,验证计划决定 了最终验证的好坏。所以,验证计划是非常关键的,而不是可有可无的。为了一 次成功,设计者必须识别在什么条件下必须检测什么特征,以及期望的反馈应该 是什么。整个设计团队都要参与计划制订,以保证它的完整性和正确性。 验证计划在制定时必须注意是“验证什么而不是“怎样验证 ,因为只有确 定什么是需要验证的,验证团队才能保证计划的完整性和平衡性阎。这时,验证计 划就不仅仅是怎样完成验证的工程规范。验证计划主要包含以下内容: 1 ) 制订验证策略、验证项目、验证环境、验证手段、验证工具、验证进度、 测试对象、测试方案、衡量标准、人力配备、完成期限、准备工作及所需资源。 2 ) 确定在各种条件下必须验证的项目、期望结果,确定项目的优先级及可做 选择验证的项目。 1 2 5 验证结果的评估 虽然目前流片的成本已经大为降低,但是一次流片,从制版一流片一封装一 工艺测试至少需要3 - 4 个月的时间,这还不包括芯片功能测试d e b u g 的时间,资 金和时间上的巨大开销对验证的要求非常高。因此,对于一个验证工程师来说, 如何评价验证的成功与否非常重要。按照设计流程的角度来看,可以把这个问题 7 4 重庆邮电火学硕士论文 第一章绪论 解释为:如何确认己经完成对设计的测试和可以提交到流片的阶段。 目前这个问题没有一个完善的结论,这是复杂的设计规模决定的。目前采用 的主要方法是覆盖率分析。覆盖率指的是设计被成功测试到的部分。通常根据覆 盖的特征的不同可以分成几种类型,其中最常见的是代码覆盖和功能覆盖【9 】。 1 ) 代码覆盖率 代码覆盖率是衡量测试对象被测试程度的指标,一些商用软件帮助自动产生 相关报表,但是代码覆盖率并不知道设计运行结果是否和规格书定义的功能目标 一致,它仅仅知道在仿真测试的时候,设计的某些部分被测试到没有,以及被测 试到的频率。代码覆盖率有块覆盖率、跳转覆盖率、状态机覆盖率、表达式覆盖 率等多种形式。 2 ) 功能覆盖率 代码覆盖率针对的是文本特征,功能覆盖率针对的是设计特征。设计特征通 常是一些数值处理、交换通讯顺序或者其它相关关系。比如,在视频后处理芯片 中,电视信号以流的形式进入芯片,这种流形式的数据虽然其标示图像的部分可 以近似看成随机的,但是数据流本身有其特点的内部规则。为了识别这些内部规 则,设计必然有判决和数据缓冲的部分,甚至有一部分其它保护处理( 如出错判 决、多余部分去处、不足补全等) 。 然而设计特征是千变万化的,只有捕捉特征的标准或者参考,却没有专门实 现的工具。因此由于功能特征本身的灵活特点,完备准确的测试计划书非常重要。 通常的做法是,验证人员自己编写针对性的工具监察代码中关键量的变化。比如, 在对一个处理器的流水特征的验证工作中,关注的功能特征是特定的指令流的组 合。如果观察不到某种特定的指令流,那么可能会少覆盖到一种数据竞争情况。 针对这样一个特征,需要做到的工作包括:特征的识别和特征的执行检查。其中 特征的识别通过监督实现特征的代码段的输入实现;特征的执行通过监督内部变 量、状态和输出实现。 1 3 验证技术的发展状况 验证技术可分为两大类:模拟验证技术和形式验证技术【1 0 1 n 】。模拟验证是传 统的验证方法,目前仍然是主流的验证方法。模拟验证是将激励信号施加于设计, 进行计算并观察输出结果,并判断该结果是否与预期一致。然后分析能够激活特 征和边角功能的内部状态与外部输入的组合,开发测试实例。并继续模拟,在设 计的边界察看是否检测了该特征。如果没有,就返回去重新开发测试实例,接着 模拟检查,如此反复,通过穷举硬件设计中的所有状态来保证设计的正确。模拟 重庆邮电大学硕士论文 第一章绪论 验证的主要缺点是非完备性,即只能证明有错而不能证明无错。因此,模拟一般 适用于在验证初期发现大量和明显的设计错误,而难以胜任复杂和微妙的错误。 模拟验证还严重依赖于测试向量的选取,而合理而充分地选取测试向量,达到高 覆盖率是一个十分艰巨的课题,同时验证的时间也是一个瓶径。 既然模拟验证有如此大的局限性,自然就促使人们去研究更完善的验证方法, 这时产生了形式验证技术。形式验证就是从数学上完备地证明系统是否实现了设 计者的意图。这意味着首先要用某种语言和逻辑构造系统的数学模型,然后运用 严格的数学推理来证明设计的正确性。 形式验证的主要优点是完备性,但保证这种完备性的过程却存在出错的可能 性。形式验证是在对原始设计进行抽取后所得到的模型上进行的。这就会出现两 个问题:首先,模型抽取过程本身是一个很复杂的转换过程,保证抽取无误是一 个困难的问题;其次,抽取模型和原始设计之间不可避免地存在鸿沟。抽取过粗, 则可能忽略某些设计错误;抽取过细,则可能将本来正确的设计判断成错误的。 最后,目前两种最基本的形式验证技术,定理证明和模型检验,都有其固有的缺 陷需要继续研究克服。 由于以上原因,形式验证目前还不能取代模拟验证,两者各有优势,互为补 充。从在验证中的角色看,模拟验证针对整体设计验证比较明显的设计错误,而 形式验证针对部分设计验证隐含的设计错误;从验证的手段看,模拟是对完备的 原始设计进行不完备的验证,而形式验证则是对不完备的模型进行的完备验证; 从验证的目标看,形式验证主要对功能进行验证,而模拟验证则能够对电路性能, 尤其是时延性能进行精确的模拟;最后,从验证的结果看,形式验证往往只能判 断设计正确与否,至多给出不满足性质的反例,而不能对错误定位。而当结合自 动测试向量生成技术时,错误定位恰又是模拟验证的优势。 目前又出现了模拟验证与形式验证相结合的断言验证技术,设计团队在r t l 设计中插入设计意图( 断言) 并且进行模拟,然后用形式化技术检对断言进行检 查。 1 4 课题的来源、研究目的和意义 1 4 1 课题来源 本文来源于重庆重邮信科公司承担的国家项目:国家8 6 3 计划“t d s c d m a 终 端基带芯片软硬件及终端参考设计研发( 编号2 0 0 4 a a l 2 3 1 5 0 ) 。 6 重庆邮电大学硕+ 论文第一章绪论 1 4 2 课题研究的意义 随着芯片集成度的快速提高,s o c 的设计规模和设计复杂性不断增大,同时 市场需求的快速变化、上市时间的竞争压力等因素,使得s o c 的设计者面临着极 大的困难和挑战。 筝再万翻二敬投片豹圪爿 棚,磅嚏 0 ht ,f - 1 覆备铝号2 执f l r l l 洲叫圜豳 筏 i 识- 盈 嗡l 烈粒 翼它柏整 图1 2 ( a ) 一次投片成功率图1 2 ( b ) 二次投片分析 图1 2 是最新统计的北美地区芯片一次投片成功率和二次投片的统计分析。从 统计图形( a ) 可以看出,一次投片的成功率从1 9 9 9 年的4 8 下降到2 0 0 1 年的4 4 , 在2 0 0 3 年下降到3 5 。很明显,从2 0 0 1 年到2 0 0 3 年的下降曲线比从1 9 9 9 年到 2 0 0 1 年的下降曲线要陡得多,而且这种趋势在2 0 0 3 年后继续保持。针对2 0 0 3 年 的高达6 5 的二次投片率,( b ) 图给出了芯片设计中不同方面进行二次投片的比 例。可以看出,排在第一位的是逻辑功能方面,其二次投片的比例高达7 0 。因 此,对芯片功能进行反复验证是必需的,特别是对s o c 的验证,必须尽早发现设 计中的功能错误【l 引。 目前,s o c 设计和验证从寄存器传输级( r e g i s t e rt r a n s f e rl e v e l ,r t l ) 开始 进行。众所周知,在r t l 级进行验证存在着局限性。首先,v h d l ,v e r i l o g 等硬件 描述语言抽象层次较低,更多关注硬件在r t l 级上的特性,随着s o c 硬件部分复 杂性不断增加,其仿真时间会让人难以接受。其次,系统中的硬件部分采用v h d l , v e r i l o g 等硬件描述语言进行描述,软件部分采用c c + + 进行描述,这会使得软硬 件设计人员之间的交流存在着语言上的鸿沟,容易产生歧义,而且系统设计人员 对s o c 不同的软硬件划分方案进行权衡和评估也很困难。再次,软硬件协同仿真 只能在硬件的r t l 级模型开发出来以后才能进行,仿真时需要硬件仿真器的参与, 仿真速度大大降低,而且软件部分的验证也要等到这个时候才能进行。软硬件的 开发不能并行进行,增加了产生错误的可能,验证的开销也会急剧增加【1 3 1 1 1 4 1 。 综上所述,一方面,当前的技术发展和市场要求给s o c 验证带来了更大的挑 战;另一方面,目前的s o c 验证方法也存在着局限性。为了克服上述问题,必须 采用新的s o c 验证思路,在s o c 设计周期中,尽早发现更多的功能错误。在上 7 重庆邮电大学硕士论文 第一章绪论 述背景下,论文对目前主流的验证方法进行研究,改进现有验证平台结构,提高 验证平台的重用性,加快硬件验证工作的进度,对硬件设计进行更完备的验证。 1 5 论文的主要内容和结构安排 本文论文共分为6 章,简述如下: 第一章:介绍集成电路的发展趋势,验证的基本概念以及论文的研究背景,目 的及意义。 第二章:介绍目前s o c 的验证流程和验证技术,讲述系统级验证和模块级验 证。 第三章:介绍a m b a 的总体结构,使用v e n l o g 语言由上到下对a m b a 分块 进行设计; 第四章: 建验证平台 第五章: 第六章: 制定a m b a 的验证计划,根据目前的验证方法研发验证的方案,搭 对各模块进行仿真,对验证方案进行总结。 本文的结论及以后的工作。 8 重庆邮电大学硕士论文 第二章面向s o c 的验证方法学 第二章面向s o c 的验证方法学 上一章回顾了集成电路的发展,并简单介绍了验证的一些基本概念,本章将 对目前s o c 的验证流程进行讲解,同时对基于事务的可重用验证平台技术进行讲 解。 2 1s o c 的验证流程 s o c 的验证工作始终贯穿整个设计流程。从阶段划分上说,s o c 验证可以分 为功能验证、等价性验证、静态时序分析和物理验证等几个主要阶段【1 5 】【1 6 】,如图 2 1 所示。 2 1 1 功能验证 豳2 1 芯片的设钎醯证流程m 一 功能验证( f u n c t i o n a lv e r i f i c a t i o n ) 是验证中最复杂,工作量最大同时也是最 灵活的部分,功能验证主要采用的是模拟仿真( s i m u l a t i o n ) 验证和形式验证技术 【i8 】【t g 0 1 ) 仿真技术 9 重庆邮电大学硕士论文 第二二章面向s o c 的验证方法学 仿真技术是目前最主要的功能验证技术,仿真技术可以分为两类从仿真的 抽象层次来看仿真包括基于事件的仿真、基于时钟周期的仿真、基于对象转换的 仿真。 a 基于事件的仿真器把输入激励的变化认为是事件的触发,每一个仿真时间 仿真器处理一个事件触发,根据事件触发的内容对整个设计重新计算,直到一个 仿真稳态出现为止。如果输入的信号在一个时钟周期内到达,但是不同的输入信 号达到的时间可能不尽相同,则基于事件的仿真机制决定仿真器在一个周期内要 计算多次。设计基于事件触发的仿真模型既包含了功能模型,也包含了时序模型, 它为设计提供了更为精确的仿真环境。基于事件触发的仿真特点是同时覆盖了设 计的功能和时序模型,仿真结果精确,它非常容易探测到设计中的毛刺电路,尤 其适用于异步电路的仿真。然而,基于事件触发的仿真由于算法复杂而导致仿真 速度较慢,不太适用于规模较大的电路仿真。 b 基于时钟周期的仿真器在一个时钟周期的时间内没有时间的概念,它只在 时钟的上升沿或下降沿进行触发,每一个时钟周期的时间对电路计算一次。基于 时钟周期的仿真技术特点是忽略设计的时序,假定所有寄存器的建立时间( s e t u p t i m e ) 和保持时间( h o l dt i m e ) 都满足要求,在一个时钟周期,信号仅更新一次, 从而信号必须与时钟同步。基于时钟周期的仿真可以在一定程度上提高电路的仿 真速度,但是它只适用于同步设计的电路仿真,对于异步电路则有可能产生错误 的仿真结果。 c 基于对象转换的仿真以数据包、图形、语音等对象作为直接的仿真激励, 而不再是添加到设计引脚的激励波形。总线功能模型( b f m ) 在这里是必需的, 总线功能模型提供了对象激励到设计引脚激励波形的转换接口,它的实现是根据 设计的对外接口协议,使用h d l 语言或c + + 进行行为级描述。基于对象转换的仿 真技术通过提高仿真激励的抽象层次,大大提高了仿真工作的效率,使得大规模 的逻辑电路设计采用仿真的手段来完成自检查测试和大流量随机性测试,变得更 加容易实现。 从仿真的活动内容来看包括代码测试覆盖率检查、软硬件协同仿真、硬件加速 器和快速原型系统仿真。 a 代码测试覆盖率检查,可以统计当一组测试例作用于设计时各种各样的测 试覆盖情况:s t a t e m e n t ,t o g g l e ,f s m ,v i s i t e ds t a t e ,t r i g g e r i n g ,b r a n c h , e x p r e s s i o n ,p a t h a n ds i g n a l 等。利用这些数据,设计者可以对测试用例对设计的覆盖情况有所了解, 同时还可以确定设计还有哪些功能没有得到测试。测试激励的代码覆盖率至少要 达到9 0 以上,才能基本认为代码在逻辑上是通过质量控制的,才能进入综合步 1 0 重庆邮电大学硕士论文 第二章面向s o c 的验证方法学 骤。这一方面帮助设计者可以对测试功能覆盖情况有一个量的认识,另一方面方 便设计者发现冗余逻辑和设计错误。代码覆盖率是保证高质量代码的必要条件, 但却不是充分条件。即便代码行覆盖和分支覆盖都能够达到1 0 0 ,也不能肯定的 说代码已经得到1 0 0 的验证,除非所有的分支覆盖都能够进行组合遍历。 b 软硬件协同仿真主要适用于验证s o c 设计。传统的嵌入式系统设计,硬件 和软件的开发相对独立,只有等硬件单板完成后才能够将软硬件结合起来进行系 统验证。软硬件协同仿真工具提供一个集成的软件环境,工程师可以把硬件的r t l 级设计和嵌入式软件在同一个软件环境下进行同步调试。这样,软件工程师可以 较早地在硬件设计上直接调试软件,硬件工程师可以较早地得到更加真实地输入 激励并检验效果。目前,由于软硬件协同仿真的速度非常慢,这种仿真手段还局 限于对软硬件接口的调试,一般并不用于对整个系统进行实时仿真。 c 硬件加速技术,是将软件仿真中全部或部分元件映射到特意为加快某些仿 真操作的速度而设计出来的硬件平台中。普遍的做法是:测试平台仍以软件形式 运行,而实际的待验证设计对象在硬件加速器中运行。商用的硬件加速器,通常 采用f p g a 阵列和高速的处理器阵列和相应的系统软件特殊设计加以实现。被验 证的目标设计及其测试环境,通过h d l 语言编程用f p g a 阵列实现。仿真速度很 快,甚至可以直接放到目标设计最终应用到的系统环境中进行测试。 d 快速原型系统( r p s ,r a p i dp r o t o t y p es y s t e m ) ,可用来为预期的系统芯片精 确的建立快速原型模型。它是待验证的设计对象的一种硬件设计表示形式。成功 建立快速原型的关建在于要快速地将原型实现出来。原型验证系统最常见的是用 f p g a 验证目标设计,首先用f p g a 实现并放到应用系统环境中进行测试。对于 嵌入式的s o c 设计,其原型验证系统可以是嵌入式系统插板,它极有可能是包含 有m c u ,d s p 、存储器件、实现p 宏或定制设计的一个或多个f p g a 系统。 快速原型系统提供了开发和调试软件的能力,提供了给软件进行调试的真实 硬件环境。这样在有了芯片原型的时候,就能够实现硬件和软件的无缝集成,其 提供的仿真速度比软件仿真和协同仿真快得多。 2 ) 形式验证技术 形式验证是一种系统验证手段,它一方面指利用边界条件从理论上推导、论 证设计实现的正确性,另一方面通过分析对比两个设计,论证两个设计实现的功 能是否一致,形式验证主要用来判断两个设计的等价性。形式验证的代码覆盖率 好,但涉及较复杂的数学推导,推导本身的正确性难以把握。而且,系统较复杂 时,形式验证会成为整个项目进展的瓶颈。目前,主要有三种形式验证方法,它 们是定理证明方法、模型检验方法和等价性形式检查方法。 定理证明( t h e o r yp r o v i n g ) 方法 重庆邮电大学硕士论文 第二章面向s o c 的验证方法学 定理证明是半自动的基于证明的验证方法。它的基础是一个形式化的逻辑系 统,该逻辑系统由一系列公理和推理规则组成。定理证明的过程是从系统的公理 出发,使用推理规则逐步推导出规范成立的证明过程,可用于验证v l s i 电路,主 要缺点是验证方法与被验证系统相关。 模型检验( m o d e lc h e c k i n g ) 方法 模型检查主要是检查r t l 代码是否满足规范中规定的一些特性,它将原始设 计表示成有限状态机,将要验证的性质用时态逻辑描述。然后,遍历有限状态机 以检验性质是否存在。 等价性检查( e q u i v a l e n c ec h e c k i n g ) 方法 等价性检查是证明同一个设计对象的两个不同视图彼此等价的一种方法。它通 过一定的算法,来证明设计实现的逻辑一致性,保证设计的功能在实现过程中没 有改变。等价性检查主要用来检查两个门级网表( g a t e 1 e v e ln e t l i s t ) 之间是否一 致,或者保证网表能正确地实现r t l 代码所描述的功能,或者保证两种r t l 描述 逻辑一致。图2 1 中所示的从r t l 级到网表级功能的验证使用的就是这种方法。 2 1 2 静态时序分析 静态时序分析是指按照同步电路设计的要求,根据电路网表的拓扑结构,计算 并检查电路中每一个存储器件如触发器或锁存器的建立时间和保持时间,以及其 它基于路径的时延要求是否得到满足。静态时序分析技术的特点是只根据电路结 构“静态 分析,判断设计在时序上是否满足,不需要测试向量。只适用于对同 步设计的电路进行时序验证,而不能保证电路实现的功能是否正确。 2 1 3 物理验证 物理验证主要是进行设计规则检测( d r c ) 、版图与原理图对照( l v s ) 和信 号完整性分析。s o c 设计要求采用一种不受设计类型约束的物理验证工具,来完 成这两项任务,为制造复杂s o c 提供灵活性和保证。 在深亚微米设计中,由于互连线延迟所产生的问题相对于门延迟所产生的问 题而言,已经成为设计中主要需考虑的问题,所以必须将所有的电学问题和工艺 都纳入统筹考虑,并要重点解决互连线寄生效应。 需要考虑和必须分析解决的问题有:时序( t i m i n g ) 、信号完整性( s i g n a l i n t e g r i t y ) 、串扰( c r o s s t a l k ) 、i r 电压降( i rd r o p ) 、电迁移( e l e c t r om i g r a t i o n ) 、 功耗分析( p o w e r a n a l y s i s ) 、工艺天线效应( p r o c e s sa n t e n n ae f f e c t s ) 、相移掩模 ( p h a s es h i f tm a s k ) 和光学临近效应修正( o p t i c a lp r o x i m i t yc o r r e c t i o n ) 。 1 2 , 重庆邮电大学硕士论文 第二二章面向s o c 的验证方法学 2 2 模块级和系统级验证 s o c 的验证包括系统级验证和模块级验证【2 0 】【2 l 】【2 2 】【2 3 】。系统级设计是设计人员 将用户的需求转换为系统的功能和性能指标,然后确定系统的行为功能模型,最 终用软硬m 来表示这些行为模型的过程。系统级验证就是指对系统级的行为功能 模型、体系结构映射和软硬件划分之后的系统级模型进行验证。模块级设计就是 指硬件口的设计,而模块级验证是指对单个i p 的验证,可以是独立的单个i p 的 验证,也可以是在s o c 中对单个口的验证。 2 2 1 模块级验证 图2 2 模块级验证流程 任何s o c 设计均由一系列模块组成,模块可能是自己开发,也可能是重用第 三方的口核。不论哪种情况,在系统集成前做d 核验证工作是必需的。模块i p 核 级验证流程如图2 2 所示,图中的虚线部分的模型检验部分属于形式验证技术,由 于形式验证技术有着自身的缺陷,所以在具体验证是可以不进行该操作。软性检 查主要检查代码语法、可综合性、变量未初始化、结构化可支持性和端口失配性 1 3 重庆邮电大学硕士论文第二章面向s o c 的验证方法学 等;规范模型检查主要做设计特征遗漏性检查,以在早期发现错误状况,尤其对 控制流设计效果明显,通过设计文档非正式说明、与设计者非正式沟通等途径抽 取特征疑问,逐一验证,消除缺陷;功能验证主要利用基准测试向量基于事件或 基于时钟进行功能验证,如黑盒测试、白盒测试和灰盒测试等;协议检查主要验 证是否违犯总线协议或模块互连约定,按照协议逐一检查并比较结果;直接随机 测试通过随机产生数据、地址、控制等信号检查功能正确性,减少模拟仿真工作 量;覆盖率分析对验证成果的进行检验,它是检验代码被验证与否的一个重要指 标。 2 2 2 系统级验证 如图2 3 示,在系统级的设计过程中,芯片的规范说明首先被转换为各种功能、 性能的需求,根据这些功能和性能的需要进行功能和行为模块的设计,在这一阶 段,设计人员将对数据信号流、控制信号流等一些细节进行分析,然后将各个功 能模块映射到该体系结构上。在进行映射的过程中,会从m 库中选择合适的口复 用到系统的体系结构中。 图2 3 系统级设计验证流程 系统级的验证在功能设计和系统结构的映射阶段之后开始的。在功能设计阶 段,验证的目的是检验设计的行为是否达到了预期的功能要求。功能的设计和验 证过程相互共同进行着,直到合适的功能设计被确定。在体系结构的映射阶段, s o c 验证工程师在系统级验证平台上建立基于体系结构映射和软硬件划分的测试 平台,进行系统的性能验证。 1 4 重庆邮电大学硕士论文 第二章面向s o c 的验证方法学 2 3 可重用的验证平台 在今天的s o c 中,验证工作占整个设计工作的绝大部分,由此带来的巨大的 开发费用,随着d 重用技术的产生,人们想到了对验证平台的也进行重用,实践 证明,可重用的验证平台是解决验证瓶颈的有效手段之一【2 4 】【2 5 】。 2 3 1 基于事务的验证 为了更好的重用激励和响应,需要将它们抽象到一个更高的层次。基于这种考 虑,1 9 9 8 提出了基于事务的验证( t b vt r a n s a c t i o nb a s e dv e r i f i c a t i o n ) 的方法学。 t b v 是验证重用的基础和前提,其一经提出,便迅速应用到集成电路功能验证中【2 6 】。 所谓事务( t r a n s a c t i o n ) 是指一个事务处理单元与设计之间的通过接口进行的 数据或控制的单一传输。事务的概念很宽,它可以简单到一个存储器读写操作,也 可以复杂到通讯通道内整个数据包的传输i z 。 图2 4 事务级的信号驱动图 基于事务的验证将验证事务从管脚级( p i n - l e v e l ) 上升到事务级 ( t m m a c t i o n - l e v e l ) ,此时验证工程师写验证程序就变得相对简单,从而提高了验 证工程师的设计效率。基于事务的验证不是直接的驱动验证平台中d u v 的管脚, 而是在激励层和d u v 层之间增加一个附加层( a d d i t i o n a ll a y e r ) ,该层主要用来将 抽象的激励转换成管脚级激励用的,例如,读总线事务r e a d b u s ( ) 可能导致在 d u v 接口在管脚级的一系列的信号变化,如图2 4 所示。 基于事务的验证将抽象的层次从信号层提升到事务层,因此更易于开发高效的 测试集。基于事务的验证允许验证小组从一个系统级的观点来开发、运行和诊断测 试。 基于事务的验证从信号层提升到事务层,使得更加容易创建测试、调试测试和测 量功能覆盖率。这是因为这种方法采用容易识别的高层事务( 如存储器读写操作) , 1 5 重庆邮电大学硕士论文 第二章面向s o c 的验证方法学 而不是多个分段的低层信号,如使能信号、r w 、地址和数据等。这样,验证工程师 就可从复杂的信号转变和时序里解脱出来,而集中精力于验证覆盖率和角落实例上。 相对于传统的验证而言,基于事务的验证,验证工程师只需要知道事务的类型, 而不必关心附加层和管脚的信息,这可大大降低对验证工程师的要求,对芯片知识 不是很了解的人也可以从事验证工作。 基于事务的验证将验证平台分为两层:项层是测试层,用于在系统中协调事务 处理层的处理。测试是一个程序,它给系统中的每一个事务处理单元生成组织好的 ( 确定的或随机的) 任务调用序列。测试程序通常与事务处理单元分开。 底层是事务处理层,它将由测试程序提出的事务处理层的请求映射到设计接口 的细化的信号协议。一个事务处理单元本质上属于测试程序和设计本身之间的一个 抽象层次。一个事务处理单元是一个任务的集成,其中每一个任务都执行某一类事 务。设计小组在事务处理层创建结构化的设计,在事务层处理层上进行的功能验证 多数是有效的。 2 3 2 模块化 实现验证重用的另一种策略就是验证平台的模块化。传统的验证平台通常被认 为是包围在d u v 周围庞大的、非结构化的代码集合。这就使得很难在新的应用中 重用这些代码。验证平台的非结构化主要是因为验证平台的建立是通过逐渐增加而 完成的,在这过程中没有考虑到对整个体系结构重用的原则。将验证平台模块化

温馨提示

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

评论

0/150

提交评论