已阅读5页,还剩62页未读, 继续免费阅读
(微电子学与固体电子学专业论文)数据路由系统基于systemverilog语言的验证.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要摘要:随着系统设计的规模和复杂度呈指数上升,传统的验证环境在可重用性、灵活性和验证效率等方面存在的缺点越来越明显,显然已无法满足验证领域的需求,巨大的验证压力迫使验证工程师必须突破传统验证方法,开发新的验证技术和新的验证环境来提高验证效率,保证产品质量。本文的主要任务是完成对数据路由系统的功能验证,因此如何有效地实现其系统级验证平台,使其具有较强的灵活性和可复用性,并且自动化程度高,是本文的研究难点和重点。本文运用s y s t e m v 嘶1 0 9 语言实现了基于、伽m ( v e r i 丘c a t i o nm e t l l o d o l o 科m a n u a lf o rs y s t e m v 甜l o g ) 高级验证方法学的可扩展的分层验证平台,有效的提高了验证的充分性和可靠性以及验证效率,加速了项目开发进程。本文通过脚本文件对验证平台进行仿真管理,实现了约束随机激励的生成、断言的监视、输出数据的实时比对以及覆盖率统计等自动化功能。同时,验证平台支持随机测试向量约束条件的更改、自动比对机制按需求定制和功能覆盖点的添加,使验证平台的灵活性和可复用性达到最大化。此外,本文采用基于事务的建模方法,抽象层次高,使验证从信号级抽象到事务级,验证平台的每个层次都能给其上层或测试用例提供一系列的服务,并通过抽象将低层次的细节隐藏起来,针对不同的测试用例,只需要修改测试场景和约束条件。本文实现的系统级分层验证平台已经成功应用于数据路由系统的功能验证中,验证结果和覆盖率均达到了预期的目标,验证过程中充分体现了订m 验证方法学的优势和约束随机激励验证、基于断言的验证和覆盖率驱动验证等高级验证技术的灵活性、高效性和自动化特点。本文采用的基于m 高级验证方法学的验证思想和先进的验证技术为日益复杂的系统级功能验证提供了坚实的基础,具有一定的创新和应用价值。关键词:系统级验证;v m m ;约束随机验证;断言验证;覆盖率驱动验证分类号:t n 4 0 7j 匕京銮通太堂亟堂僮论塞曼墨i 基ia bs t r a c ta b s t r a c t a st h es y s t e ms i z ea n dc o m p l e x 时i n c r e a s ee x p o n e n t i a l l y ,t h es h o n c o m i n g so ft 1 1 et r a d i t i o n a lv f i c a t i o ne n v i r o n m e n ti nt h er e u s a b i l i 吼f l e x i b i l i t ) ,a l l de 伍c i e n c ya s p e c t sh a v eb e c o m em o r e 觚dm o r eo b v i o u s ,w h i c hm a k et h e 仃a d i t i o n a lv e r i f i c a t i o nm e t h o d sa r en o1 0 n g e rt 0m e e tt l l en e e d so fv e r i f i c a t i o n t h eh u g ep r e s s u r eo fv a l i d a t i o nf o r c ev e r i f i c a t i o ne n g i n e e r st ob r e a k l r o u g ht h e 仃a d i t i o n a lm e t h o d sa n dd e v e l o pt h en e wv e r i f i c a t i o nt e c l l n 0 1 0 百e st 0i m p r 0 v ev e r i f i c a t i o np r o d u c t i v i t ya n de n s u r et l l eq u a l i 哆o fp r o d u c t s t h em a i nt a s ko ft h i sp a p e ri st 0c o m p l e t et h em n c t i o n a lv e r i f i c a t i o no ft h ed a 衄r o u t i n gs y s t e m s oh o wt 0b u 订da ne 衔c i e n ts y s t e m - 1 e v e lv e r i f i c a t i o np l a t f o n l lw i t l ln e x i b i l i 妙a i l dr e u s a b i l i 够i sm ek e ya n dd i 伍c u l tp o i n to fm i sp a p e r t h i sp 印e rg i v e sas c a l a b l eh i 僦i c a lv 砸f i c a t i o np l a t f o n nu s e ds y s t e m v e r i l o gl a n g u a g eb a s e do nv m m ,e 虢c t i v e l yi m p r o v i n gt h ea d e q u a c ya n dr e l i a b i i i 够o fv e r m c a t i o na l l dv a l i d a t i o ne 伍c i e n c ya i l da c c e l e r a t i n gn l ep r o j e c td e v e l o p m e n tp r o c e s s t h ev e r i f i c a 廿o np l a t f o r m ,r e f e r r e di nt h i sp a p e r ,i sc o n t r o l l e db ys c r i p t sf o r 向n c t i o n a ls i m u l a t i o n ,w h i c hh a sa c l l i e v e dc o n s 仃a i l l t r a n d o ms t i m u l u sg e n e r a t i o n ,a s s e r t i o nm o n i t o r i n g ,a u t o m a t i cr e a l - t i m ec o i n p a r i s o nf o ro u 印u td a t aa n dc o v e r a g es t a t i s t i c s m e a 工1 w h i l e ,t l l ev e r i f i c a t i o np l a t f o n ns u p p o r t st 0c h a n g et 1 1 ec o n s 仃a i n t so fr a n d o mt e s tv e c t o r c u s t o m i z et h ea u t o m a t i ca l i g n m e n tm e c h a i l i s mo nd e m a n d sa n da d dn m c t i o n a lc o v e r a g ep o i n t s ,t 0m a x i i l l i z em en e x i b i l i 哆a r l dr e u s a b i l i 妙o ft 1 1 ep l a t f o m w h a t sm o r e ,m et r a n s a c t i o n - b a s e di n o d e l i n gm e t h o dh a sb e e nu s e di nt l l i sp a p e r ,s om 她行o mt h es i g n a ll e v e lt on l e 胁s a c t i o nl e v e l ,e a c h1 e v e lo ft l l ev e r i f i c a t i o np l a t f o mp r o v i d e sam g eo fs e r v i c e st 0i t su p p e r l e v e la n dh i d e st h ed e t a i l so ft h el o w e ri e v e lt l l 】沁u 曲m ea b s t r a c t i i o n t h e r e so n l yn e e dt 0m o d i 矽也ec o n s 仃a i n t sa i l ds c e n 撕o sf o rd i f f e r e n tt e s tc a s e s t h es y s t e m l e v e lv e r i f i c a t i o np l a t f l o n nh a sb e e na p p l i e dt 0d a t ar o u t i n gs y s t e ms u c c e s s m l l ya n dt h es i r n u l a t i o na i l dc 0 v e r a g er e s u l t sa r ea c c 印切b l e t l l ea d v a n t a g e so f也ev m ma r e 如l l yr e n e c t e di nt h ew h o l ev e r i f i c a t i o np r o c e s s ,a n dt h en e x i b i l i 够a l l de m c i e n c yo fm ea d v a n c e dv e r i f i c a t i o nt e c l l l l i q u e s ,s u c ha sc o n s 仃a i n e dr a n d o mv e r i f i c a t i o n ,懿s e r t i o n - b a s e dv 嘶f i c a t i o n 孤dc o v e r a g e - d r i v e nv 嘶f i c a t i o na r ea l s om l l yr e n e c t e d t h ea d v a n c e dv e r i f i c a t i o nm e t h o d 0 1 0 影b a s e do nv m ma n dt l l ea d v a i l c e dv e d f i c a t i o nt e c l l i l i q u e sp r o v i d eas o l i df 0 u n d a t i o nf o rt l l ei n c r e a s i n 9 1 yc o m p l e xs y s t 锄一1 e v e lm n c t i o n a lv e r i f i c a t i o n ,w h i c hh a sac e n a i nv a l u ef o ri 如o v a t i o n 锄da p p l i c a 石o n k e y w o r d s :s y s t e m 一1 e v e lv e r i f i c a t i o n ;v m m ;c o n s 仃a i n e d 瑚d o mv 舐f i c a t i o n ;a s s e r t i o n - b a s e dv e r i f i c a t i o n ;c o v e r a g e 一血v e nv 嘶f i c a t i o nc l a s s n o :t n 4 0 7v致谢本论文的工作是在我的导师李晓光副教授的悉心指导下完成的,李老师严谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年来李老师对我的关心和指导。李老师悉心指导我们完成了实验室的科研工作,在学习上和生活上都给予了我很大的关心和帮助,在此向李老师表示衷心的谢意。在实验室工作及撰写论文期间,李媛、孔璐等同学对我论文中的验证平台研究工作给予了热情帮助,在此向她们表达我的感激之情。另外也感谢家人,他们的理解和支持使我能够在学校专心完成我的学业。1引言1 1 选题背景及研究意义随着半导体工艺水平进入深亚微米和超深亚微米阶段,a s i c ( a p p l i c “o ns p e c i f i ci n t e g r a l i e dc i r c u i t ,专用集成电路) 设计规模日益庞大,设计复杂度飞速增长,集成电路在容量和性能两方面都有了显著的提高。随之而来的是更为复杂的验证过程,它伴随着集成电路设计的每个阶段,并且贯穿于整个设计过程的始终。目前,验证工作可占整个芯片设计工作的7 0 ,而且随着i p 标准化工作的进行,其所占比例还在呈上升趋势【1 】。验证的主要目的就是检查设计模型是否满足设计规范,是否实现了设计所需的功能。对于集成电路来说,具体就是在设计需求规定的激励下,电路是否产生了符合功能要求的输出,以及在设计需求规定的条件下,电路是否能完成正常的功能。随着s o c 设计的规模和复杂度呈指数上升,对设计进行充分有效的验证变得非常重要,也变得越来越困难,验证成为整个项目设计的瓶颈,而系统功能验证的不足往往造成系统流片失败【2 】,大大增加了芯片开发成本,延缓了芯片上市时间。其问题在于,验证技术的发展未能跟上设计规模和复杂程度不断增加的步伐,而导致两者之间出现了明显的差距。近年来e d a ( e l e c 仃0 1 1 i cd e s i g n a u t o m a t i c ,电子设计自动化) 工具的发展使得集成电路的设计能力有了空前的提高,而真正制约集成电路设计能力进一步提升的一个重要因素是验证技术的相对滞后,如图1 1 【3 】所示,随着设计复杂度的增长,同时设计的验证复杂度逐渐上升,导致了设计能力、验证能力与制造能力之间出现了较大的缺口。因此,传统的验证方法必须加以改革,以适应深亚微米工艺的发展。 蛹l 时姆f b c 嘲 嘣“坶培籼蝌鲫1 9 诣1 9 瓣9 驰2 0 0 02 霹图1 1 验证能力远远落后于设计和制造能力f 培1 - lv e r i f i c a t i o na b i l i t ) ,f a l l i n gb e h i n dd e s i 盟a 1 1 df a b r i c a t ea b i l i 哆先进高效的验证技术对于s o c 的研发具有关键性的推动作用。目前,业界的设计公司及工具开发商不断创造出专用的硬件验证语言并提出高效的验证方法来推动验证技术的发展。然而,设计和验证之间仍然存在着巨大的鸿沟,验证方法已经远远落后于设计和生产的能力,验证依然是集成电路设计过程中所面临的最大挑战。目前验证环节上所面临的问题主要体现在以下三个方面:( 1 ) 验证的抽象层次。验证过程中施加定向激励的时候需要分别确定输入引脚的值,这样在验证复杂设计的时候,构建测试用例非常麻烦,而在输出端需要分别检查每个引脚的值也非常繁琐。因此,迫切需要提高验证的抽象层次,突破传统的低层次功能验证方法。( 2 ) 验证的自动化程度。验证的过程繁琐而复杂,同时设计功能的日益复杂使验证需要考虑的方面也越来越多,过多的人为因素可能会导致忽略某些边界条件,难以发现系统深层次的设计缺陷。提高验证过程的自动化程度,可以极大的提高验证效率,并且将人为因素造成的不良影响降低到最低程度。在冗长的仿真过程中,人直接干预和检查逻辑错误的可能性是非常低的,必须设计合理的方法和工具提高验证的自动化。( 3 ) 验证平台的可重用性。集成电路的芯片规模一直按照由摩尔定律所揭示的发展规律呈指数型增长,单位时间内的逻辑门密度与设计生产率之间的差距越来越大,而此问题又不能简单的通过投入更多的工程师来解决,因此需要一种新的方法来有效的提高设计过程的生产率。验证平台的重用要实现同一个项目中的很多个测试用例都使用同一个验证环境完成。若能尽可能多的重复使用代码,则只需添加几句代码就能完成某个特性的验证。最终,将能把可高度重用的部件经过简单的配置,组合起来构造出针对某个设计的专用验证环境,更理想的是在代码改动量越小的情况下该验证平台能在多个项目之间重用。1 2 研究现状及发展趋势传统的基于定向测试的功能仿真验证方法是在信号级的接口上直接施加激励驱动d u t ( d e s i g nu n d e rt e s t ,待测发计) ,通过查看波形或者日志文件来检查d u t的响应,并判断系统功能的正确性。传统验证环境如图1 2 所示,验证平台的输入激励是针对被测设计各个功能点逐个创建的直接测试用例文件,验证平台的仿真流程通过一个简单的测试用例文件来控制。由于测试用例不够充分,这种方法很难在验证中模拟执行被测系统实际运行时可能遇到的所有情况,很难预期到所有可能的边界条件及功能场景,以及发现系统设计中深层次的设计缺陷,因此错误不容易定位,仿真验证平台不可重用,验证消耗过多的项目时间并延长了产品上市时间。2j 立銮通太堂亟堂焦i 金塞呈i宣激励测试用例l测试用例2测试用例3待测设计( d u t )波形观察日志文件图1 2 传统验证环境f i g 1 2 r 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传统验证方法抽象级别低,只适用于功能简单、规模较小的设计,对于功能复杂、规模庞大的设计来说,这种方法具有以下局限性【4 】:( 1 ) 都是直接的测试用例,对于有限的人力来说,不可能考虑到所有的测试向量,导致很多场景没有被测试到,验证很难达到比较高的覆盖率;( 2 ) 缺少高效的约束随机激励仿真功能;( 3 ) 在整个系统的环境中进行模块的验证,很难定位问题,测试过程冗长,仿真速度很慢;( 4 ) 验证平台缺乏层次化,即测试的可读性和可维护性差;( 5 ) 验证平台可共享的代码非常少,平台的扩展性和可重用性差,每次都需要花费大量的时间开发新的验证平台;( 6 ) 不支持协同仿真;( 7 ) 静态特性,如算法的c 模型不能被直接集成到验证环境中等。随着芯片的设计规模及其复杂度成指数增长,传统的验证环境在可重用性、覆盖率、验证效率等方面存在的缺点越来越明显,传统的验证方法显然已无法满足验证领域的需求,芯片的开发将面临巨大的风险,巨大的验证压力迫使验证工程师必须突破传统验证方法,开发新的验证技术和新的验证环境来提高验证效率,缩短产品的开发周期,从而迅速地将产品推向市场,创造更多的利润,最终在市场竞争中胜出。目前,以约束随机激励验证、覆盖率驱动验证、基于断言的验证为代表的高级验证技术已逐步取代传统的依赖于直接测试的验证技术,显著提高了验证效率,加速了项目开发进程【5 j 。面对新的验证挑战,验证工程师感觉采用传统的硬件描述语言( h a r d w a r ed e s c r i p t i o nl a n g u a g e ,h d l ) 来建立验证环境和编写验证向量具有很大的局限性,其抽象建模能力不足,验证效率低,于是不断涌现出很多专门的高抽象级验证语言,比如e 语言【6 】、s y s t e m c 【7 1 、v e r a 【8 】、s y s t e m v e r i l o g 【9 1 等。其中,s y s t e r n v e m o g已经成为全球增长最快的设计验证语言,现在己被广泛应用在各大公司和研究机构的验证计划中。图1 3 是根据s y n o p s y s 的一项调查结果所绘制的条形图,从图中可以看出,虽然传统的v e r i l o g 语言在集成电路的设计和验证中仍然具有明显的优势,但是s y s t e m v e r i l o g 语言所表现出的增长势头却不容忽视。厂一_ p ,。f | :| _ ,1 譬i - ? jji - ? ,u ? jv e “吣8 囊一f ”_ = =州叭-j一年以内i! 一s y s t c m 垤州0 9 - 7 囊二i 前|u 。2 u 。4 u 、砭b u 坼s u l u u 扎图1 。3 各种设计验证语言的使用比例f i g 1 3p r o p o r t i o n so fd e s i g na n dv e r i 行c a t i o nl a n g u a g e s为了尽快弥补验证与现实产品设计之间的差距,很多针对具体验证语言的高级验证方法学不断涌现,比如c a d e n c e 公司提出的较为通用的基于e 语言的u v m( u n i v e r s a lv e r i f i c a t i o nm e t h o d 0 1 0 9 y ) 验证方法学、m e n t o rg r a p h i c s 公司提出的基于s y s t e m c 和s y s t e m v e r i l o g 语言的怂伥压( a d v a n c e dv e 丽f i c a t i o nm e l o d 0 1 0 9 y ) 验证方法学、c a d e n c e 公司与m e n t o rg r a p h i c s 公司联合推出的基于s y s t e m v e r i l o g 语言的0 ( o p e nv e r i f i c a t i o nm e m o d 0 1 0 9 y ) 验证方法学、s y n o p s y s 公司提出的基于r a语言的r 、订订( r e f e r e n c ev e r i f i c a t i o nm e m o d ) 验证方法学、a i u m 公司和s y n o p s y s 公司联合推出的基于s y s t e m v e r i l o g 语言的v m m ( v 舐f i c a t i o nm e t h o d o l o g ) rm a n u a l ) 验证方法学等【1 0 】,这些高级验证方法学较好的实现了高速度、高完备性和高度重用性的验证。它们采用基于事务的层次化验证平台,提高了验证的抽象性、验证环境的可重用性以及实现了验证过程的自动化控制,从而可以更早地发现设计错误,减少系统和验证平台的开发时间,加大验证过程的运行效率。基于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 c 设计公司的主流验证语言。验证工程师使用s y s t e m v e r i l o g 创建采用覆盖率主导、随机约束和基于断言验证技术的综合验证环境,极大提高了芯片验证过程的质量和生产率。1 3 本文研究内容及章节安排本文的结构安排如下:引言:叙述了验证在集成电路设计中的重要性及验证工作面临的挑战与问题,讨论了传统验证环境的局限性,通过观察国内外发展现状总结了目前先进的验证技术和高级验证方法,阐述了目前验证领域广泛采用的高级方法学的优势。4第二章:概述了s y s t e m v b r i l o g 语言的发展及特点,介绍了订m 验证方法学,包括m 验证方法学的特点、订m 分层验证平台结构及订m 标准库和可重用的验证i p 。第三章:介绍了数据路由系统的功能和外部接口环境,分析了数据路由系统验证平台的目标和自身特点,提出了系统级验证过程的重要步骤,然后讨论了目前验证领域广泛运用的先进功能验证方法。第四章:提出并分析了数据路由系统分层验证平台的总体架构,详细介绍了验证平台组件的功能原理和具体实现方法,包括场景发生器、驱动器、监视器、记分板等,然后介绍了验证平台仿真控制的九个步骤。第五章:分析基于覆盖率的功能仿真验证流程以及覆盖率收集方法,应用验证平台对d u t 进行了功能仿真验证,给出了重要的接口时序波形、记分板比对结果和覆盖率统计信息。结论:对课题研究进行了总结,并提出了完善验证平台进一步所需的工作。52基于s y s t e m v e riio g 语言的v m m 验证方法学2 1s y s t e m v e ri lo g 语言的发展及特点s y s t e m v e r i l o g 是对i e e e1 3 6 4 2 0 0 5v e r i l o g 中标准的扩展,这些扩展可被归纳为两个方面:对硬件建模的扩展,主要集成了s u p e r l o g 和c 语言的很多优秀特性:对验证和断言方面的扩展,主要集成了来自s l ,e r l o g 、v e r a 、e 、c + + 和d l 语言的特性,同时包括o v a 和p s l 断言【l l 】。虽然s y s t e m v e r i l o g 是一个整合体,但它大大超越了分立部件的总和,实际上是创造了一种新的工程语言,即硬件描述及验证语言( h d 。,h a r d w a r ed e s c r i p t i o na l l dv e r i f i c a t i o nl a l l g u a g e ) 。h d v l 使得工程人员可以使用一个统一的标准语言对大型复杂的设计进行建模,并验证设计功能的正确性。s y l l o p s y s 在2 0 0 5 年的s n u 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 g 具有丰富的语言能力,能描述复杂验证环境,包括带约束随机激励产生、面向对象编程和功能覆盖率统计。这些特点使用户开发出能自动产生大量验证场景的测试平台。s y s t e m v e r i l o g 作为硬件验证语言具有以下特性:( 1 ) 面向对象的编程。数据和对数据进行操作的方法被封装到一个独立的、正式的数据结构,即类。类作为一个数据类型,其内部可以定义数据成员和对这些数据成员进行操作的方法,即函数和任务。类的实例化就是对象,s y s t e i n v e r i l o g 中的对象可以动态的创建和析构,每个对象在没有通过构造函数分配空间时,为一个空的句柄【l 。面向对象的编程技术使验证平台更易开发、调试、维护和重用;( 2 ) 受约束的随机激励生成。s y s t e m v e r i l o g 提供了带约束随机激励测试所需要的所有验证语言结构。它提供了一些内建函数,用来随机化输入的激励,以较短的时间,覆盖更多的情况,同时又可以根据实际情况调整约束的权重,使创建激励时灵活性很高;( 3 ) 功能覆盖率。通过分析覆盖率报告,调整随机约束,显著缩减了达到完全覆盖的时间;( 4 ) 多线程及线程间的通信。多线程是s y s t e m v e r i l o g 对v e r i l o g 所做的重要改进,实现了构成验证平台的所有组件都能够并发执行。除了f 0 r k _ _ j o i n 并行块以外,为了使测试真正做到并发执行,s y s t e m v e r i l o g 提供了两个新的语言结构f - o r k 1 0 i nn o n e 并行块和f b r k _ 1 0 i n 锄y 并行块【1 2 j ;( 5 ) 新增数据类型。s y s t e i n v e r i l o g 增加了很多新的数据类型来帮助描述更抽象的硬件行为。如两态( i 0 ) 数据类型的引入减少了仿真器对内存的使用并提高了仿真运6行效率、动态数组的引入意味着不需要在编译的时候指定数组的大小,可以在运行的过程中进行动态分配、关联数组则是通过标号来分配空间和访问的数组等;( 6 ) 接口( i n t e m c e ) 。接口采用关键字对i n t e r f a c e 和e n d i n t e r f l a c e 进行构造。接口的定义是独立于模块的,它们用来封装验证平台各个组件之间通信所需要的各种信号。接口包含了连接、同步、甚至两个或者更多块之间的通信功能,连接了设计块和测试平台。此外,接口里面还可以带时钟、断言、方法等定义;( 7 ) 时钟块( c l o c k i n gb 1 0 c k ) 。时钟块是s y s t e m v e r i l o g 语言提供的另一个重要的行为级语言结构。它将属于同一个时钟域的信号全部放在一起,并采用关键字对c l o c k i n g 和e n d c l o c k i n g 进行声明,这些信号在定义的时钟沿发生时都处于激活状态。它解决了以往测试和设计中同步时钟采样的问题,从而避免了可能出现的潜在时序竞争问题。此外,如果有多个时钟信号,可以分别建立多个时钟块,并将属于这些时钟域中的相应信号分别进行封装,然后用于监测【l2 1 。2 2v m m 验证方法学2 2 1v m m 验证方法学特点m e 玎i 锄w e b s t e r 是这样定义方法学( m e t l l o d o l o g y ) 的:“由方法、程序、运作概念、规则和假定构成的,在某种科学、艺术或学科采用的个体 【1 3 1 。不同的学科和领域有不同的方法学,但是它们都具备m e r r i 锄w 曲s t e r 所定义的方法学的基本构成。在验证领域,显见的趋势是语言划一、仿真平台统一、更加正规和高效,而验证方法学的采用正是顺应了这种趋势。压m 不仅是方法学,更是该方法的具体实现,它包括一系列的类库( c l a s sl i b r a u 黟) 、类对象( c l a s so b j e c t ) 连接关系,以及用户定制的代码等。基于s y s t e m v e r i l o g 的m 验证方法学已经得到全球数百家s o c 和i p 验证团队的采用,自2 0 0 7 年5 月1 4 日,v m m 验证方法学开始在中国的i c 设计公司使用,用于开发先进的验证环境,这标志着基于s y s t e m v e r i l o g 的设计验证方法开始在中国推广,缩小了我国与国外先进设计验证技术的差距,大大推动了我国i c设计与验证的发展。实践证明,m 验证方法学在中国的广泛运用使新一代芯片开发人员能够利用先进的验证技术进行复杂的s o c 验证,加速了开发基于s y s t e r n r i l o g 的功能强大的验证环境,并有助于以较少的时间和努力达到可测量的功能覆盖率目标。】所具有的很多特点使搭建系统级验证平台的过程大大简化。l 、可重用性删验证方法学中采用了s y s t e 椭l o g 的接口特性,接口作为一个独立的模块存在,所有输入输出信号都在接口中声明,其他功能模块直接引用接口即可连接。此外,接口模块可以采用时钟块( c l o c k i n gb l o c k ) 进行同步,这样,时序和连接关系都在接口中得到了很好的定义。在传统的v e r i l o g 模块连接中,如果增加、减少或者修改一个输入输出,所有与这个信号有关的信号都要跟着改动,在系统级设计中,这样的改动无疑会消耗大量的时间和精力,而采用了接口后,同样的情况下只需要修改接口一个模块即可。接口的使用使得系统级验证平台的可重用性大大增加,如接口协议验证平台,即可被移植到所有具有相同接口的设计中,无需重新搭建平台,这样验证工程师便可以把工作重心放在其它验证组件的研究上,而不再花费时间用于接口的连接。2 、抽象层次高一个复杂的设计需要开发大量的测试用例( t e s tc a s e ) ,由于传统的功能验证抽象层次较低,开发大量高覆盖率的测试用例会很费时间,并且代码量过于庞大,因为需要开发大量的代码来模拟协议的各种情况。m 方法学采用了基于事务的验证方法,可以很好的解决这一问题。事务是指一个处理单元和设计之间通过接口进行的数据或控制的单一传输。基于事务的验证是通过在验证的过程中引入事务的概念,将信号级传输提升到一个更高的层次,如总线的读写操作,传统的验证方法需要编写大量的激励来覆盖所有的读写指令,而讧m 方法学则通过高层的任务将操作进行封装,然后经过层层解析,最终形成底层的二进制激励,输入到d u t 的管脚。3 、灵活性m 验证方法学沿袭了面向对象编程的很多优良特性,如封装性、继承性和多态性,因此具有很好的灵活性。m 定义了很多个基类,验证工程师可以根据自己的实际需要对它们进行继承和扩展,经过扩展的类可以同时实现子类和父类的全部功能。因此,v m m 验证方法学具有很好的可扩展性,运用这些方法的过程,灵活可控。2 2 2v m m 分层验证平台s y s t e m v 耐l o g 语言实现了硬件验证语言的抽象化设计,从而使验证平台的建模逐渐向高层次发展。验证平台的抽象级别越高,所需要考虑的因素就越少,验证平台的搭建也越简单。验证平台中的各个功能被分化开来,通过类的实现被封装在特定的模块中,同时,使用方法来实现这些需要的功能。这样就能够从多个层次构建验证平台,使模块被抽象到各个不同级别的层次之间,模块之间采用基于事务的通信,大大提高了验证平台的重用性。此外,分层的验证平台具有高度的8灵活性,针对不同系统或者是同一系统中的不同模块具有高度的可移植性,即能够最大限度的实现验证平台代码及其组件的重用。高度重用的验证平台可以极大程度的减少构建验证环境的工作量,从而减少这一环节所投入的时间,使得验证工程师可以将更多的精力投入到后期的验证工作中去,因此大大提高验证工作的效率。图2 1 显示了一个完整的v m m 分层验证平台结构,该验证平台分为5 层,使验证从信号级抽象到事务级,每个层次都能给其上层或测试用例提供一系列的服务,并通过抽象将低层次的细节隐藏起来。验证平台独立于d u t 之外,可以实现对d u t进行黑盒验证,只须了解d u t 外部需要的激励和接口的时序关系。由于验证平台具有抽象和自动化功能,因此可以减少需要编写的测试用例的数目和细节,验证平台无需修改即可被尽可能多的测试用例重用,从而可以减少验证d u t 代码的数量。测试层场景层功能层指令层信号层图2 1 n 压分层验证平台结构f i g 2 11 1 1 es t m c t l o f h i e r a r c h i c a lv m mv e r i f i c a t i o np l a t f o m图2 1 所示的v m m 分层验证平台是整个验证环境的核心。这种层次化的结构并没有对d u t 模型进行假设,d u t 模型可以是寄存器传输级或是门级,也可以是事务传输级的。层次结构是一个抽象化的模型,实际中完整的验证平台并不一定要包含图中的每一个层次,在实际验证平台的搭建过程中也没有十分明确的分界。功能仿真时在验证平台的项层使用信号层与d u t 进行通信,而一切事务的执行被封装在验证环境中。图2 1 中各层的介绍如下【1 4 】:最项层为测试层,通过分析设计需求而设计的测试用例位于该层,针对不同的系统特性采用不同的测试用例进行仿真。在验证过程中针对每一个测试用例需要修改激励发生器的随机约束,定义新的随机场景,同步不同的事务处理器以及根据覆盖率报告创建一些定向激励。9场景层中的激励发生器以随机的次序和序列生成对应于场景的事务流,产生各种激励命令和数据给下层的事务处理器,同时针对指令集和数据源可以建立不同的激励发生器,用户根据系统设计的具体需求说明在该层实现激励随机化的约束,以进行各种场景的测试。场景( s c e n 撕o ) 指有一定关系的随机事务序列。每个场景都代表了一个值得关注的事务序列,用以实现对某种特定边界情况的功能测试。场景管理器根据特定测试用例的定义和指示发起场景,并生成与要求场景对应的事务流。根据测试用例约束范围的不同,其上的测试层可以部分或完全绕过场景层。因此,要求能够在仿真开始或仿真的过程中关闭发生器,以便插入指定的激励。发生器同时需要具有重启动的能力,以便在插入指定激励序列之后能够重新进行随机仿真。功能层提供必要的抽象层次,用以处理应用层的事务,验证d u t 的正确性。与物理层中基于接口的事务不同,功能层的事务与接口或物理事务没有一一对应的关系。功能层事务是高层操作的抽象,这类操作由d u t 的主要子集或整体来完成。功能层根据物理层事务的完成状态来决定重新发起一些事务还是延迟一些事务。该层包含抽象级别高的事务处理器、记分板和检查单元。事务处理器从通道中获取激励发生器产生的命令或数据,并通过总线功能模型传给底层驱动。记分板建立自动比对机制,利用回调函数实时获取d u t 输入及输出数据流,判断d u t 的响应是否和期望结果一致,以显示验证通过或失败。指令层直接进行对d u t 的读写、配置等指令操作。这一层包含底层驱动器、总线功能模型及监视器,其抽象级别最低,因此该层的模块与d u t 的接口和具体物理协议有关。该层为上层提供一个事务级接口,同时经过信号层驱动物理管脚。监视器直接接收d u t 的输出数据,并送入记分板进行比对或将某些结果写入日志文件。此外,断言的插入可以比较容易地发现潜在的系统设计的内部错误,显著提高了验证的可观察性和可控制性。最底层为信号层,为d u t 提供信号级的连接。运用s y s t e m v e r i l o g 中的接口技术( i n t e m c e 结构) 将d u t 的端口信号进行抽象,封装在接口类中。在与其他模块通信时,使用基于接口事务的传输,而不是基于以位( b i t ) 为单位的信号传输。这样当验证满足同一传输接口协议的d u t 来说,验证环境无须修改即可用于不同实现模型之间的验证。对于使用接口层的r t l 模型,同一个使用位信号表示的d u t 门级模型,都可以使用同一个验证环境。在接口层中,使用时钟块( c l o c k i n gb l o c k ) 来实现接口中信号的同步,同时使用m o d p o r t 关键字定义接口的主从属性。该层提供了信号抽象,而且当信号层需要访问时,这些信号抽象能够提供给高层次的所有层及测试用例访问或使用。然而,验证环境和测试用例的实现应当使用尽可能高的层次的服务,除非万不得已,应当始终避免直接访问跨层的信号。功能覆盖率模块中定义d u t 的不同功能点,通过覆盖率报告发现设计中的缺l o陷。功能覆盖率也可以衡量所有测试在满足验证计划要求方面的进展。随着各项测量标准的完成,功能覆盖率代码在整个项目过程中会经常变化。虽然分层测试平台主要用于带约束随机激励产生,但也支持人工定向测试。图2 1 左边部分展示了从测试到驱动直接运行路径,完全绕过生成器,这样允许验证工程师直接产生事务级而不需要设置带约束的随机场景。2 2 3v m m 验证平台组件1 、数据和事务验证过程中产生的大量激励来源于验证工程师事前设计的数据结构。合理的设计数据结构,并结合随机化约束来产生特定的数据是提高验证效率的前提。在使用s y s t e m v e r i l o g 设计数据结构时,通常把满足特定协议的数据使用面向对象的模式封装在类中,从而形成数据单元( d a t ai t e m ) 。数据单元是指最终或者立即被d u t处理的数据基元。例如包、指令或a t m 信元。数据单元可以由很多小的数据单元组成,方法是将多个较小的类组成一个大的类。在类中可以定义方法( m e t l l o d ) 来对数据对象的操作和变换进行建模,类的实例可以更有效的处理和移动。数据类中还可以包含约束声明,通过约束化随机来产生满足验证条件的特定数据实例。同时,可以不用修改原始的基类模型,就能够通过继承来修改类的默认行为和属性,操作起来十分方便【l5 1 。事务( t r a n s a c t i o n ) 就是d u t 与事务处理器之间通过接口在特定的起止时间内所作的一次数据传输【l6 1 ,也可以理解为事务处理模块和d u t 两个模块之间的一次数据或控制信号交换。这个交换与采用的协议无关,因为事务级模型通常不涉及具体的总线时序等细节。一个事务可以是一个简单事务,如某个存取单元的读取,也可以是一个复杂的事务,如传输整个结构式数据报文。基于事务的验证允许在信号引脚之外的事务级之上对设计对象进行仿真和调试,将系统中各个功能模块之间所有可能的事务类型都建立出来,并系统地加以测试。在基于事务的验证中使用总线功能模型( b f m ,b u sf u n c t i o nm o d e l ) ,它为在设计对象的硬件接口上运行事务提供了一种手段,它将根据接口协议的要求来驱动各个互连线的信号。这种验证技术不仅提高了验证效率,还可以很容易的实现自核对和定向随机测试,它是当前仿真中采用的主要验证技术。2 、事务处理器事务处理器( 仃a n s a c t o r ) 用来表示验证环境中的组件,这种组件在特定协议的两个抽象层之间担任接口,或者用来生成协议事务。在图2 1 所示的分层验证平台中,驱动器、监视器、检查器和发生器的组件都是事务处理器。对验证环境来说,事务处理器的生存周期是静态的。它们创建于仿真过程的开始时刻,并存在于仿真的整个过程中。它们是验证环境的构造组件,就像d u t 中的模块一样。被创建的事务处理器一般只有很少几个,与其相比,事务( 仃a n s a c t i o n ) 拥用动态的生存周期:由发生器创建的成千上万个事务,流过一系列事务处理器,在记分板中被记录和比较,最后被释放。场景层的事务处理器为激励发生器。依照所需激励的不同,可以编写出各种不同的激励发生器,其具体形态和复杂度也相差很大。在v m m 中,最常用的两种激励发生器是:基元发生器( a t o m i cg e n e r a t o r ) 和场景发生器( s c e n 撕og e n e r a t i 吖) 。基元发生器是最简单的激励发生器,它用于生成相互独立的数据项和事务。也就是说,在基元发生器所产生数据项序列或是事务描述符序列中,每个数据项或者事务描述符与其前后项都是相互独立的。用基元发生器来产生激励就好像调用了一个随机函数,只不过返回的是一个复杂的数据结构而非一个标量。在实际应用中,如果需要产生一个真正有意义的序列,一般都要求发生器能够根据序列的前后项来约束随机激励。只有在产生一些非常简单的数据或事务时,才可以使用基元发生器来完成。与基元发生器相比,场景发生器能够产生更为复杂的数据序列或是事务描述符序列,这得益于它使用了称为“场景描述符”的数据结构。场景发生器和基元发生器相似,唯一的不同在于被随机化的对象的种类:基元发生器是直接随机化数据项或是事务描述符,而场景发生器则是随机化包含有数据项
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年电气工程师高级仿真题集
- 2026年社区健康教育知识讲座主题
- 2026年自然语言处理技术试题
- 2026年电气工程师供配电系统考试题库
- 2026年考研英语仿真题核心词汇速记手册
- 护理人文关怀的跨文化比较
- 2026年绿茶基础知识课件
- 2026年职业规划职业素质测评
- 2026年教师书法竞赛活动方案策划
- 2026年新能源车故障排除模拟题
- 2026国家粮食和物资储备局招聘面试题库
- 2026年超星尔雅学习通尔雅文艺复兴史试卷押题宝典试题附答案详解(突破训练)
- 2026年苏教版小学四年级数学上册期中卷含答案
- 2026年4月浙江卷高考预测模拟数学试卷01
- 2026年洗涤厂转让合同(1篇)
- 长鑫科技集团在线测评
- 2025桥梁顶推技术标准
- 17太空生活趣事多 课件(共19张)
- 消防队道路交通事故救援
- 卫生院控烟培训课件
- 中药制剂室建设方案
评论
0/150
提交评论