已阅读5页,还剩77页未读, 继续免费阅读
(通信与信息系统专业论文)soc可重用验证平台研究与开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
s o c 可重用验证平台研究与开发 东华大学学位论文原创性声明 本人郑重声明:我恪守学术道德,崇尚严谨学风。所呈交的学位 论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除 文中已明确注明和引用的内容外,本论文不包含任何其他个人或集体 已经发表或撰写过的作品及成果的内容。论文为本人亲自撰写,我对 所写的内容负责,并完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 刎f r 年乙月啄日 s o cn j 重用验证平台研究与开发 东华大学学位论文版权使用授权书 学位论文作者完全了解学校有关保留、使用学位论文的规定,同 意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允 许论文被查阅或借阅。本人授权东华大学可以将本学位论文的全部或 部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复 制手段保存和汇编本学位论文。 本学位论文属于 学位论文作者签名: 日期: 保密口,在年解密后适用本版权书。 不保密 缘 加吖年乙月妒 舯狮签名:盘觊 日期:2 d ( f 年胡啪 摘要 s o c 可重用验证平台研究与开发 摘要 随着s o c 设计的规模和复杂度的日益增加,其验证工作也日益 繁杂,验证难度也逐渐递增。由于验证环节往往可能占到整个s o c 开发周期的半数7 0 以上,而且验证能力目前远落后于设计能力和生 产能力,验证已经成为制约s o c 设计和应用的最主要瓶颈。验证方 法学及其应用已成为国际性的研究热点和关键技术。新兴的o v m 验 证方法学( o p e nv e r i f i c a t i o nm e t h o d o l o g y ) 的目标便是为s o c 时代提 供高效的验证方法和统一的验证平台的标准,被视为最有希望突破上 述瓶颈的发展方向。 本文针对当今s o c 系统验证所面临的挑战( 困境) ,首先在分析 传统验证环境的优缺点的基础上,较深入地研究了新兴的o v m 验证 方法学的基本原理、平台框架和实施要点,特别是如何实现功能验证 的可重用性、可扩展性,以及如何针对s o c 系统验证的需求,提供 高效、完整的验证方案。其次,以o v m 验证方法学为指导,结合某 设计项目,利用s y s t e m v e r i l o g 语言等实际开发了系统验证平台( 原 型) 。该平台在系统建模方面引入了面向对象的设计思想,利用事务 级建模技术来实现验证平台的层次化和模块化:在仿真r t l 的被测 对象时,各模块同时运行,实时比对,及时报告错误信息,实现错误 收集和定位。该平台( 原型) 因而具有模块化、可裁剪、可复用和高 效率等特点。最后,本文讨论了s o c 验证平台的优化方法,探讨了 如何进一步提高其可重用性和验证效率。 关键词:o v m 验证方法学,s y s t e m v e r i l o g ,可重用,事务级建模 i i a b s t r a c t r e s e a r c ha n dd e v e l o p m e n to fr e u s a b l ev e r i f i c a t l 0 n p l a t f o r m0 fs o c a b s t r a c t w i t ht h ei n c r e a s i n gs i z ea n dd e s i g nc o m p l e x i t yo fs o c ,v e r i f i c a t i o nb e c o m e sm o r ea n dm o r e d i f f i c u l t i tw i l lc o s tah a l fo rm o r et h a n7 0 e f f o r t so nt h ed e v e l o p m e n tc y c l eo fs o c ,a n dt h e a b i l i t yo fv e r i f i c a t i o ni sf a rm o r eb e h i n dt h a nt h ec a p a c i t yo fd e s i g na n dp r o d u c t i o n c u r r e n t l y , t h e v e r i f i c a t i o nh a sb e c o m et h em a i nb o t t l e n e c ki nt h ed e s i g no fs o ca n dc o n s t r a i n e di t sa p p l i c a t i o n t h ea p p l i c a t i o no fv e r i f i c a t i o nm e t h o d o l o g yh a sb e e na ni n t e r n a t i o n a lh o t s p o ta n dt h ek e y t e c h n o l o g y t h ep u r p o s eo fn e wr i s i n go v m v e r i f i c a t i o nm e t h o d o l o g y ( o p e nv e r i f i c a t i o n m e t h o d o l o g y ) i st op r o v i d eah i g h l ye f f i c i e n tv e r i f i c a t i o nm e t h o da n dt ob e c o m eas t a n d a r df o r u n i f y i n gt h ev e r i f i c a t i o np l a t f o r m s oi ti sc o n s i d e r e dt ob et h em o s tp r o m i s i n gd e v e l o p i n g m e t h o d o l o g yt ob r e a kt h eb o t t l e n e c k f o rt o d a y sv e r i f i c a t i o nc h a l l e n g e s ,f i r s tt h i sp a p e rm a k e sad e e ps t u d yo ft h eb a s i cp r i n c i p l e s , t h ef r a m e w o r k sa n dt h ei m p l e m e n t so fo v mi nt h ea n a l y s i so fa d v a n t a g e sa n dd i s a d v a n t a g e so f t h et r a d i t i o n a lv e r i f i c a t i o ne n v i r o n m e n t p a r t i c u l a r l y , i tp r o p o s e sa ne f f i c i e n ta n dc o m p l e t et e s t p l a nt oa c h i e v et h er e u s a b i l i t ya n de x t e n d i b i l i t yo f f u n c t i o n a lt e s t sw i mt h ed e m a n do fs o c v e r i f i c a t i o n s e c o n d l y , t h ev e r i f i c a t i o np l a t f o r m ( p r o t o t y p e ) o fad e s i g np r o j e c ti sd e v e l o p e db yt h e s y s t e m v e r i l o gl a n g u a g eb a s e do no v m w i mt h et e c h n o l o g yo ft r a n s a c t i o n - l e v e lm o d e l i n g ( t l m ) a n do b j e c t - o r i e n t e dp r o g r a m m i n gt oa c h i e v et h eh i e r a r c h ya n dm o d u l a r i t y d u r i n gt h es i m u l a t i o n o fr t l ,e a c hm o d u l ei sr u n n i n ga n dc o l l e c t i n gt h ee r r o rr e p o r t si nr e a l - t i m e i tm a k e st h ep l a t f o r m ( p r o t o t y p e ) m o d u l a r , r e u s a b l ea n de f f i c i e n t f i n a l l y , t h i sg i v e ss o m es u g g e s t i o n so nh o wt o o p t i m i z et h es o c v e r i f i c a t i o np l a t f o r ma n dh o wt oi m p r o v ei t sr e u s a b i l i t ya n de f f i c i e n c y k e yw o r d s :o v m ,s y s t e m v e r i l o g ,r e u s a b i l i t y , t l m i i i 目录 目录 第1 章绪论1 1 1研究背景1 1 1 1验证面临的挑战1 1 1 2 验证的开销2 1 2 研究内容及章节安排2 第2 章验证方法学概述4 2 1 测试平台概念。4 2 2 传统验证环境的特点及不足5 2 2 1传统验证环境的特点5 2 2 2传统验证平台的不足7 2 3 硬件验证语言简介8 2 3 1v e r a 9 2 3 2 s y s t e m c 9 2 3 3 s y s t c m v e r i l o g 1 0 2 3 。4 面向对象的设计语言1 2 2 4 s o c 验证面临的挑战1 3 第3 章o v m 验证方法学初探1 5 3 1o v m 和c d v 验证技术简介1 5 3 2o v m 验证平台和验证环境1 6 3 3 s y s t e m v e r i l o g 的o v m 类。1 9 3 3 1o v m 验证组件类1 9 i v s o c 可重用验证平台研究与开发 3 3 2o v m 仿真运行阶段2 1 3 4 事务级系统建模。2 7 3 4 1 事务级建模综述2 8 3 4 2o v m 中t l m 概念2 9 3 4 3端口和输出端口3 0 3 4 4 传统模块间通信3 1 3 4 5生产者和消费者问题3 2 3 5s o c 系统验证环境4 0 第4 章利用o v m 搭建可重用验证平台4 4 4 1 被测设计d u t 功能简介4 4 4 2 验证需求分析。4 5 4 3 搭建验证平台。4 5 4 3 1 p c i - e x p r e s s 总线简介一4 5 4 3 2p c i - e x p r e s si p 核简介4 6 4 3 3 被测对象的p c i e 接口设计4 8 4 3 4 验证的难点4 8 4 3 5 验证流程5 0 4 4 o v m 验证平台5 0 4 5 验证平台各模块介绍5 2 4 5 1 p c i - e 数据包定义5 2 4 5 2 序列发生器s e q u e n c e r 5 5 4 5 3 测试序列s e q u e n c e 5 6 4 5 4 驱动器d r i v e r 5 7 4 5 5 测试环境e n v i r o n m e n t 6 2 4 5 6 测试作为顶层t e s t 6 2 4 6 测试结果分析6 3 第5 章总结与展望6 7 5 1 总结6 7 v 目录 5 2 展望6 7 参考文献6 9 附录7 2 作者攻读学位期间发表的论文7 3 致谢。7 4 v i 第1 章绪论 1 1 研究背景 1 11 验证面临的挑战 第1 章绪论 随着片上系统( s y s t 锄o i l c h i p ,简称s o c ) 集成度的日益增加,数字系统 所实现功能越来越复杂。一个典型的s o c 系统设计包括各种知识产权( i p ) 核 的使用、集成嵌入式处理器( c p u ) 或嵌入式微控制器( m p u ) 、数模混合电路 设计等等。据统计,平均每个s o c 芯片中包含有6 个i p ,而s o c 技术已经成为 集成电路的一种发展趋势川。如今,仅一块s o c 芯片上就已经可以包含上千万 个门,这无形中增加了电路出错的几率,也使得验证工作变得日益繁杂和困难。 - 生户能力醴汁耗力- 赣证能力 图1 - 1 验证缺口远大于设计缺口 从图1 - 1 可以看出,设计能力的发展落后于生产能力的发展,即存在所谓的 “设计缺口”( d e s i g n g a p ) 。单个芯片容量的增加,使得片上系统设计成为主流, 而现有的设计方法无法适应当前复杂设计的要求,这就产生了“设计缺口”,从而 推动新的设计方法的产生,如可重用口设计等。同样地,我们用“验证缺口” s o c 可重用验证平台研究与开发 ( v e r i f i c a t i o n g a p ) 来描述设计能力与验证能力之间的差距。然而在设计缺口不 断增大的同时,验证带来的缺口更为巨大,因此验证的能力远远不能满足设计和 生产的需求1 2 1 。 设计者们为了保证所设计片上系统功能的正确性,需要付出比以往更多的人 力和时间,其困难度也大幅增加。而目前功能验证能力已经远远落后于设计能力, 功能验证一下成为大规模芯片设计的瓶颈。 1 1 2 验证的开销 图1 - 2 是上海某公司在不同阶段( 2 0 0 5 年和2 0 0 9 年) ,验证工作在整个s o c 系统开发周期中所占时间花费的比例。在2 0 0 5 年时,一个普通c p l d 设计的验 证开销为整个设计周期的3 0 左右。而到了2 0 0 9 年,f p g a 系统设计的验证工 作花费已经占到了整个设计周期的5 0 以上,甚至更多。很多时候,系统验证计 划书( t e s tp l a n ) 在项目设计方案提出之初就开始撰写。而随着集成电路规模和 复杂度的不断增加,如多芯片方案设计等,使得验证所需的时间在整个设计周期 中的比重还将持续增加。 2 0 0 5 芷 r t l 设计验证与仿真综合布局布线后仿真 2 0 0 9 年 r t l 设计验证与仿真 综合。,布局布线。后仿真 图1 - 2 验证在项目设计中所占比例 近年来,验证方法逐步得到改进,其主要体现在诞生了一些新的硬件验证语 言,比如v e r a 和s y s t e m c 等【3 】。伴随着这些语言也产生了些新的验证技术,其 中包括基于断言的验证,功能覆盖率和产生可约束的随机激励等【4 】。而现在验证 方法改进的趋势渐渐转移到如何搭建更加系统化和结构化的验证平台上去。而只 有在更好的验证方法学的指导下才能建立起一个高效的验证环境,充分发挥出充 分发挥出这些验证技术的特点,从而迎接复杂s o c 的验证挑战。 1 2 研究内容及章节安排 本文针对当今s o c 系统验证所面临的挑战( 困境) ,分析了传统验证环境的 优缺点,研究了新兴的o v m 验证方法学的原理、框架和要点,并以其为指导, 结合某设计项目,利用s y s t e m v e r i l o g 语言等实际开发了系统验证平台( 原型) , 第1 章绪论 并结合实验( 试用) 对其进行了改进和优化。该平台( 原型) 具有模块化、可裁 剪和可复用等特点。总的章节安排如下: 第一章介绍了本文的研究内容、研究意义和相关背景,以及全文的章节安排; 第二章分析、总结了传统验证环境的优缺点,介绍了硬件验证语言的发展,讨 论了当今s o c 系统验证所面临的挑战和对策; 第三章o v m 验证方法学概述。重点介绍了o v m 验证方法学的架构、原理及特 性; 第四章以o v m 验证方法学为指导,针对某项目的实际需要,开发了可重用系 统验证平台。该平台是利用s y s t e m v e r i l o g 设计及建模,可裁剪、模块化的高效 验证平台( 原型) ; 第五章对上述验证平台所作的改进和优化,及对未来工作和发展趋势的展望。 第2 章验证方法学概述 2 1 测试平台概念 第2 章验证方法学概述 系统验证最主要的就是测试平台( t e s t b e n c h ) 的搭建。图2 - 1 显示了t e s t b e n c h 是如何与被测设计连接的。被测设计( d e s i g n u n d e r t e s t ,简称d u t ) 的输入 ( i n p u t ) 、输出( o u t p u t ) 端口与测试平台直接相连。整个测试平台把d u t 包在 它里面【”。 t e s t b e n c h o u t p u t 图2 - 1t 撼t b t m e h 结构 一般来说,t e s t b e n c h 是用硬件描述语言v e f i l o g 或v h d l 编写,也可以用高 级验证语言入v e r a 来编写。在使用v e r i l o g 语言编写测试平台时,可以通过p l i 接口调用外部数据和c 语言程序i “。验证的大部分工作就是编写测试平台。一个 好的验证平台直接影响着验证的结果和效率。例如,在输入端施加怎么样的激励, 并且在适合的时间观察在这些激励下相应的输出响应。而测试平台的可重用性是 评价一个t e s t b e n c h 好坏的重要标准之一。 s o c 町重用验证平台研究与开发 2 2 传统验证环境的特点及不足 2 2 1 传统验证环境的特点 在图2 - 1 的基础上,最简单的t e s t b e n e h 包括2 个模块:激励生成( 又称驱动 器,d r i v e r ) 和输出响应( 又称接收器,r e c e i v e r ) ,如图2 - 2 所示。 t e s t t e s t b e n c h d u t 0 u t p u t r e c e j v e r 图2 - 2 传统的验证平台 传统的系统功能验证方法主要是通过对系统模块进行仿真,运行大量的测试 用例( t e s te a s e s ) ,通过观察和比较,然后对错误进行分类和分析。测试激励直 接把测试用例在特定时刻送到被测设计的引脚上,如使能信号,控制信号,数据 和地址等【”。输出结果则直接打印到显示器屏幕或保存成文件,人们通过比较输 出或观察波形来判断被测设计设计是否正确。 随着设计复杂度越来越大,以上连接结构就显得不那么有效了,而且这种把 整个被测设计包起来的测试平台很难进行维护和错误定位。有些错误可能是验证 本身所导致的,而真正的设计错误隐含在其中。这样的验证方法使得每设计一个 不同的系统都要针对它各个模块编写不同的测试项目,故很难实现验证的可重 用。 随后,人们提出一种更加结构化的验证方法:编写一个系统的参考模型 ( r e f e r e n c em o d e l ,又称黄金模型,g o l d e nm o d e l ) ,然后通过仿真来比较被测设 计与参考模型的输出是否一致,并记录错误日】。图2 3 描述了一个带参考模型的 验证平台,其中包括仿真器( s i m u l a t o r ) 、d u t 、参考模型、比较器( c o m p a r a t o r ) 和错误报表( e r r o r r e p o r t ) 。 第2 章验自e 方法学概述 r e f e r e n c e m o d e l c o m p a r a t o r r e p o r t 图2 - 3 带参考模型的验证平台 这里仿真器包括了原先的测试用例和激励生成,比较器用来收集激励通过被 测设计与参考模型后的输出,并判断是否相同。参考模型可以用v 舐l o g 编写或 者用c 语言等其它高级语言编写【9 】。参考模型的设计工作无形中加大了验证的开 销,而且如何确定参考模型的可靠性也成为验证过程中的新问题。 而近年来,人们提出层次化的验证平台设计。先从单模块开始验证,最终上 升到整个片上系统进行验证。这样做的好处是各模块内部的错误可以尽可能早的 被发现。 目前流行的基于断言的验证就是一个层次化的验证。而s v a ( s y s t m n v c r i l o g a s s e r t i o n ) 语言是当前测试的一个新的发展趋势,其特点是通过在r t l 代码中 插入断言语句( a s s c 咀i o n ) ,然后在仿真的过程中由这些断言语句来判断实现的设 计是否与设计的规范相一致n 川。其优点是,验证人员能够很好地理解所要实现 的设计,能够精确定位设计中出现错误的位置。但是,这又涉及到传统e d a 软 件厂商对断言的支持度。为此,又有些人提出了可综合的断言语句设计方法( s v a 目前不可综合) 。断言对于设计者是有利工具,但对于并不需要了解设计的测试 人员来说,基于信号的断言显得有点力不从心了j 。 6 s o c 可重用验证平台研究与开发 d r i v e ra s s e r t i o n d u t m o n i t0 1 1 图2 4 基于断言的验证平台 图2 - 4 描述了一个基于断言的测试平台,包括激励生成( d r i v e r ) 、插入的断 言语句( a s s e r t i o n ) 和一个监视器( m o n i t o r ) 用来观察断言结果。 2 2 2 传统验证平台的不足 通过对传统验证平台分析可以很清楚地发现,随着s o c 高速发展,原纯粹用 h d l 设计语言搭建的验证平台的不足之处已经显而易见了,尤其是非层次化的 结构所暴露出众多局限性: 由h d l 语言本身所导致测试平台缺乏层次化。 难以维护和扩展。 没有受约束的随机激励。 不支持软硬件协同仿真。 定向测试很难达到较高的功能覆盖率。 验证速度缓慢。 在系统验证过程中,难以定位验证中发现的问题及错误而浪费大量时间 来排除错误。 可重用性低,当添加某一新功能验证时必须重新搭建验证平台。 所以,传统验证平台在功能覆盖率,模块的可重用性,验证效率方面存在众 多不足。而新的验证方法学配合新的验证语言,可以帮助验证人员( 在一定程度 上) 克服以上缺点。 第2 章验证方法学概述 2 3 硬件验证语言简介 传统的验证激励采用v e r i l o g 进行编写,同样也可以通过p l i 接1 3 用c 语言 来辅助产生激励。v e r i l o g 的优势就在于可以和被测设计进行无缝连接l l “。但不 足也是明显的。例如v e r i l o g 难以描述复杂的数据结构、协议,如以太网数据包、 和算法。而且随着s o c 设计不断复杂,用v e r i l o g 建模也变得力不从心。虽然c 语言具备上述特点,可以进行复杂数据结构建模和算法实现,但又不具各任何电 路的概念。因此,在进行大规模s o c 片上系统的验证时,通常采用硬件验证语 言( h v l ,h a r d w a r e v e r i f i c a t i o nl a n g u a g e ) 来进行系统验证。 t e s t b e n c ha n dt e s t c a s ec o d l r l g s i m u l a t i o n p o s t a n a l y s l s 图2 - 5 v l 验证流程 图2 5 显示了一般h v l 验证流程。验证流程从了解s o ( 2 设计规范 ( s p e c i f i c a t i o n ) 出发,一旦了解了芯片设计,就开始准各编写测试用例( t e s t e a s e s ) 的文档。当所设计的测试用例可以有7 0 0 旷8 0 的功能覆盖时,就可以开 始准备测试平台( t e s t b e n c h ) 架构的文档了n 3 】。在过去,人们先准各测试平台 再开始编写测试用例。但知道特定的用例后再来编写测试平台往往更为简单。 s o c 可重用验证平台研究与开发 v e r a 最初是由s u n 公司微系统部门开发的内部a s i c 验证项目。后来由 s y s t e ms e i e n e n 面向市场销售v e r a 语言和v e r a 编译器。再后来,s y s t e ms c i e n c e 把v e r a 出售给了s y n o p s y s 公司( 新思科技) 。在此基础上,新思科技推出了 o p e n v e m 语言,并使它与v c s 整合,这也加速了o p e n v e r a 的推广【l 。 v e r a 语言是一个面向对象( o o ,o b j e c t o r i e n t e d ) 的语言,其核心概念就是 对象和继承,这一点相信学过c + + 的人都很熟悉。v e r a 程序能够很好地和v e r i l o g 程序交互,这也是使v e m 成功的重要一点。v e r a 的语法跟j a v a 、c + + 和v e r i l o g 都很相似,这样一来可以缩短学习v e r a 语言的时间【i ”。 t x g e n 0 u t 口u t 图2 - 6 、,e r a 测试平台架构 典型的v e m 测试平台如图2 - 6 所示,其中主要模块包括基本对象( b a s e o b j e e t ) 、事务发生罂( t r a n s a c t i o ng e n e r a t o r ) 、驱动器( d r i v e r ) 、监视器( m o n i t o r ) 和计分板( s c o r e b o a r d ) 。 顾名思义,s y s t e m c 是由c + + 程序语言派生而来,或者说由一系列c + + 类构 成,称为s v l ( s y s t e m cv e r i f i c a t i o nl i b r a r y ) 。s y s t e m c 在1 9 9 9 年正式推出,并 由o p e ns y s t e m ci n i t i a t i v e ( o s c i ) 负责维护和发展i l q 。s y s t e m c 语言的发展大致 经历了两个大的阶段:s y s t e m c1 0 和s y s t e m c 2 0 。s y s t e m c1 0 可以用来进行硬 件描述。其中包括一个用来模拟系统行为的仿真核。s y s t e m c2 0 的推出使 s y s t e m c 成为真正的系统级设计语言,能够用来对s o c 体系结构进行更加自然和 有效的描述。这样就使s y s t e m c 语言涵盖了从系统概念直到实现的针对系统软、 第2 章验证方法学概述 硬件建模的能力r 丌。s y s t e m c 未必是构建一个低层次测试平台的理想语言,但通 过对s v l 库扩展,s y s t e m c 可以支持操作系统级建模或嵌入式软件建模。 ? 一一一 4 + c o m p i l e r * ;l i n k e r s y s t e m cl i b r a r y i ;d e b u g g e r s i m u l a 图2 - 7s y s t e m c 开发环境 图2 7 显示了一个s y s t e m c 的开发环境。和开发c + + 软件环境一样,你可以 使用标准c + + 开发工具来创建,仿真和调试各种架构和算法设计。 2 3 3 s y s t e m v e r i l o g 2 0 0 5 年i e e e 正式批准了s y s t e m v e r i l o g 为新的标准。s y s t e m v e r i l o g 是一种 硬件描述和验证语言( h a r d w a r cd e s c r i p t i o na n dv e r i f i c a t i o nl a n g u a g e ,h d v l ) , 它基于l e e e1 3 6 4 - 2 0 0 1v e r i l o g 硬件描述语言,并对它进行了扩展,如引入了 d o + 语言数据类型,支持面向对象,事务级建模和断言等【l ”。s y s t e m v e d l o g 结合了上述语言的特点,如设计与验证,抽象与构造。它是一种不断发展的和融 合型的语言,而不仅仅是各种标准的实现。如同上世纪8 0 年代,随着原理图适 用性越来越差和综合方法的出现,使得v c r i l o g 和v h d l 这样的h d l 硬件设计 语言获得了业界的认可。而在上世纪9 0 年代末,验证又成为了i c 设计的瓶颈, 此时又出现了v e r a 之类的硬件验证语言( h v l ) 来解决这个问题。s y s t 脚l c 的 出现是为了解决系统级验证问题【l ”。形式验证技术则为属性规范语言提供了发 展动力。虽然上述每种工具和语言都推进了各自特定领域的技术进步,但仅仅提 高了特定设计环节的设计效率。而s y s t e m v e t i l o g 将设计和验证结合了起来,他 与v e r i l o g 兼容( 或者说是v e r i l o g 的一个扩展) ,一个v e d l o g 代码设计人员可以 快速地学习和掌握。 胃 s o c 可重用验证,r 台研究与开发 但s y s t e m v e r i l o g 与v e r i l o g 又有许多重要区别: s y s t e m v e r i l o g 提供了一个完整的仿真模型:它将每个时隙细分成好几个 有序的段,并规定了每个这样的段内必须发生的事件。这样就可以避免 在仿真中包含的反应性测试平台、覆盖率分析工具和相互作用的第三方 c 模型在内的模型运行时时发生的某些不确定性唧j 。而s y s t e m v e r i l o g 可 以很好的避免上述问题的发生。 s y s t e m v e r i l o g 有着c + + 语占所具有的一些功能,包括结构、类、c 数据 类型、动态存储器分配和动态进程等,使s y s t e m v e r i l o g 更适合测试平台 的丌发和系统级建模。 s y s t e m v e r i l o g 引入了接口( i n t e r f a c e ) 的概念。接口在s y s t e m v e r i l o g 中 扮演着一个很重要的角色。接口可以被单独定义,可以包含有关它们行 为的声明,还可以在整个设计中复用。因此所产生的代码更紧凑,具有 更好的可读性和鲁棒性t 2 ”。 图2 - 8 显示了一个分层的s y s t e m v e r i l o g 测试平台环境。与上文提到的v e r a 测试平台架构类似,整个测试环境( e n v i r o n m e n t ) 包括的组件有激励生成器 ( g e n e r a t o r ) ,代理( a g e n t ) ,计分扳( s c o r e b o a r d ) ,驱动器( d r i v e r ) ,断言 ( a s s e r t i o n s ) ,检验器( c h e c k 盯) 和监视器( m o n i t o t ) 。 _ 一 艇 一 一 幽由 图2 - 8s y s t e m v e r i l o g 测试平台架构 s y s t e m v e r i l o g 一经推出就得到众多e d a 厂商的支持,尤其是业界巨头 s y n o p s y s 公司的全力支持。s y s t c m v c r i l o g 由a e e e l l 猷a 公司维护,其业界最新标 准为s y s t e m v e r i l 0 9 3 1 a ,在原有版本基础上显著提升和增强了验证的自动化程 度。 l 一 第2 章验证方法学概述 2 3 4 面向对象的设计语言 为了使验证平台在更高的抽象层次运行,必须寻求一种抽象的高级语言。而 对于结构化的编程语言而言,如v e r i l o g 和c 语言来讲,他们的数据结构和使用 这些数据结构的代码之间存在很大的沟壑。数据声明、数据类型与操作这些数据 的算法经常放在不同的文件里,因此造成了对程序理解的困难。 而v e r i l o g 的开发人员比c 程序员更加棘手的是,v e f i l o g 语言中没有结构 ( s t r u c t u r e s ) ,只有位向量和数组【22 i 。如果一个测试人员想要存储一个总线事务 ( b u st r a n s a c t i o n ) 的信息,就需要多个数组:一个用于保持地址,一个用于保存 数据,再用一个保存操作指令等等。事务的信息分布于所有这些数组中。而用来 创建、发送和接收事务交易的代码位于各个模块( m o d u l e ) 中。这个模块可能连 接到总线上,也可能根本没有连接到总线上。最糟糕的是,这些数据都是静态的, 所以一个测试平台( t e s t b e n c h ) 只指定了1 0 0 个数组,而当前需要测试1 0 1 个数 组时,就必须修改测试平台代码改变数组大小,并且重新编掣2 3 1 。但对于一个 简单的事务交易测试中,并不需要那么多的数组时,就造成了存储空间和测试时 间的浪费。 面向对象的程序设计( o b j e c t o r i e n t e dp r o g r a m m i n g ,简称o o p ) 可以使得 测试人员创建更复杂的数据类型,并把它们跟这些数据类型紧密的结合起来。测 试人员可以在更高的抽象层次建立测试平台和对测试系统进行建模。可以通过函 数调用来传递事务操作而不是直接改变某个信号的电平。而这种使用事务传递来 代替直接对信号进行翻转的方法,使整个测试变得更加高效而且可控。这样所带 来的好处也是显而易见的,验证人员只需知道当前做了什么操作,而不用关心某 个信号线上电平的翻转是否正确。这样使得测试变得更加可靠,更加易于维护, 而在未来的测试项目中能够得以反复使用【2 4 】。 而上文介绍的s y s t e m v e r i l o g 硬件语言正是严格遵循o o p 的规则。使用 s y s t e m v e r i l o g 语言可以快速搭建面向对象( o o ) 的测试平台。传统的测试平台 强调的是要做的操作,如创建一组数据,发送,接收,检查结果和打印报告,而 在面向对象编程( o o p ) 中,测试人员需要考虑测试平台的结构及模块化的设计 每个组件的功能【2 5 1 。如上文提到的激励生成器( g e n e r a t o r ) 会创建事务并将它们 传递到下一级,通过驱动器( d r i v e r ) 与被测设计( d u t ) 进行对话后,由d u t 返回的事务信息将被监视器( m o n i t o r ) 捕获,而计分板( s c o r e b o a r d ) 会将捕获 的事务与预期结果进行比较。这样在每个模块中的通信都是以传递事务交易来进 行的。 1 2 s o c 可重用验证平台研究与开发 下面简单归纳s y s t e m v c r i l o g 语言在o o p 方面的主要特点: 可以创建类( c l a s s ) 包含变量和子程序的基本块。这对于硬件语言 来说这是一个突破。类的功能类似于v e f i l o g 中的模块( m o d u l e ) 。同模 块需要通过例化一样,类需要创建一个类的对象( o b j e c t ) 才能使用。 可以像c + + 程序员一样来对对象进行操作。如对象的创建和复制。 在s y s t e m v e r i l o g 中,所有的成员都是公有的,除非使用l o c a l 或者 p r o t e c t e d 关键词。 在进程间通信过程中可以通过信箱( m a i l b o x ) 来传递事务信息。这个功 能在事务级建模中尤其重要。 对于现有类可以继承和派生。s y s t e m v e r i l o g 语言强大的地方,或者说 o o p 真正强大的地方,就在于可以对现有类进行继承。例如一个事务类, 测试人员可以通过替换子程序有选择性地改变它的行为,却不修改基础 类的结构【2 6 】。这样,通过对测试计划的周密考虑,编写一个强健的测试 平台来发送基本事务,同时也可以针对不同的测试需求扩展功能,达到 可重用的目的。而这些特点对于使用v e f i l o g 设计的模块中是难以想象 的。 更详细的s y s t e m v e r i l o g 语言介绍可以参考s y s t e m v e r i l o gl a n g u a g er e f e r e n c e m a n u a l ,而本文涉及的版本是s y s t e m v e r i l o g3 1 a 。本文使用s y s t e m v e r i l o g 来开 发测试平台。 2 4s o c 验证面临的挑战 s o c 验证技术已经落后于设计和制造能力,如何构建更快更好的验证方法是 当前最大的问题。下面列举了当前验证面临的主要挑战: 人们希望产品能快速上市导致的开发周期越来越短的压力。 产品规模不断增大所带来的验证复杂度越来越大。 传统的验证方法无法应付当前的验证挑战。 没有时间去重新学习并掌握一门新的验证语言。 软硬件协同验证所面临的问题。 面临验证平台可重用性问题。 仿真速度过慢。 当然,还有一些其它潜在风险。当某一公司内部人员变动时,如何保证验证 平台的顺利交接,验证平台的维护,添加新测试用例等问题。甚至由于早期的测 试平台验证效率低和不可重用性而重新开发新的测试平台,这将花费大量的工作 时间【2 7 1 。 第2 章验证方法学概述 可见,一个高效的、可重用的验证平台对现有片上系统设计的成功起着关键 作用。如果在验证平台上没有突破性的改进,验证将成为半导体产业继续发展的 巨大障碍。新兴的o v m 验证方法学被视为最有希望获得突破的发展方向。在本 文的后续章节中将重点对它加以介绍和讨论,并以它为指导进行某项目验证平台 ( 原型) 的开发。 1 4 第3 章o v m 验证方法学初探 第3 章o v m 验证方法学初探 3 1o v m 和c d v 验证技术简介 随着集成电路规模越来越大,深亚微米工艺技术日益成熟,基于i p 复用的 s o c 设计方法的广泛采用,对验证技术和方法学提出了很大挑战。验证平台的可 重用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国水上气球行业市场前景预测及投资价值评估分析报告
- 2026年中国铝箔排烟管行业市场前景预测及投资价值评估分析报告
- 2026年中国真空泵管行业市场规模及未来投资方向研究报告
- 2026年中国打药泵行业市场前景预测及投资价值评估分析报告
- 2025重庆两江新区人民医院重症医学科医师岗位招聘3人笔试考试参考试题及答案解析
- 2026年中国铁路郑州局集团有限公司招聘全日制普通高等院校大专(高职)学历毕业生1288人考试笔试参考题库附答案解析
- 2025云南昆明润城学校秋季学期教育人才招聘10人笔试考试备考试题及答案解析
- 2025重庆市合川区卫生事业单位“绿色通道”引进高层次人才19人笔试考试参考题库及答案解析
- 2025山东协和学院党委办公室工作人员招聘1人考试笔试备考试题及答案解析
- 2025年肥西县郑小菲中职名班主任工作室成员招募12人笔试考试参考试题及答案解析
- 园区物业服务方案(3篇)
- 新解读《DZ-T 0130.11 - 2006地质矿产实验室测试质量管理规范 第11部分:岩石物理力学性质试验》新解读
- 工程代签免责协议书
- 承接查验委托协议书
- 快艇买卖合同协议书
- 年产200吨高纯金属铯铷项目报告书
- 导弹基本知识
- 2025年度租赁车辆租赁合同附件四:维修保养记录
- 采血后预防淤青的按压方式
- 国企中层领导竞聘笔试题
- 《AI公文写作范例大全:格式、要点与技巧》课件 第5、6章 AI公文写作的方法、AI写作工具的测评
评论
0/150
提交评论