(电路与系统专业论文)基于fpga的片上系统(soc)原型验证的研究与实现.pdf_第1页
(电路与系统专业论文)基于fpga的片上系统(soc)原型验证的研究与实现.pdf_第2页
(电路与系统专业论文)基于fpga的片上系统(soc)原型验证的研究与实现.pdf_第3页
(电路与系统专业论文)基于fpga的片上系统(soc)原型验证的研究与实现.pdf_第4页
(电路与系统专业论文)基于fpga的片上系统(soc)原型验证的研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(电路与系统专业论文)基于fpga的片上系统(soc)原型验证的研究与实现.pdf.pdf 免费下载

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

文档简介

原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名:蝉日期:2 1 兰尘 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 做储微:哗翩鹕。帮 山东大学硕士毕业论文 内容摘要 随着e d a ( e l e c t r o n i cd e s i g na u t o m a t i c ) 技术和半导体制造工艺的不断发 展,系统芯片s o c ( s y s t e mo nac h i p ) 的功能越来越强,器件结构越来越复杂。 根据摩尔定律,验证的复杂度是与芯片面积的平方成正比的,随着芯片单位面积 上容量每1 8 个月增长一倍,验证的复杂度也会每6 9 个月翻一番。验证工作是目 前s o c 设计过程中最耗时费力的一项工作,它可以占到整个设计工作量的5 0 8 0 , 是当今s o c 设计的瓶颈。因此,找到一种方便、灵活、高效的验证方法,尽快缩 短产品的开发面市时间,以达到适应市场需求之目的,已成为关注的焦点。 根据s o c 的功能和结构特性,除需硬件模块之外,还需要大量的固件和软件, 如配置操作系统、通讯协议以及应用程序等。由于s o c 硬件模块数目众多、内嵌 软件复杂,传统的基于逻辑模拟的验证方式已不再可行,特别是其在软硬协同验 证时,模拟时间之长令人难以忍受。为了缩短s o c 验证时间,基于f p b a 的快速系 统原型( r a p i ds y s t e mp r o t o t y p e ) 验证,即硬件原型和软件原型结合验证,已经 成为s o c 设计流程中的重要手段。快速系统原型验证的本质在于快速地实现s o c 设计中的硬件模块,让软件模块在真正硬件上高速运行,即实现s o c 设计的软硬 件协同验证。该技术实现的基础是需要能够满足工作要求的f p g a ,以及有力的设 计描述及编译工具。 目前f p g a 器件在密度和复杂度上有了飞速的发展,a l t e r a 公司的s t r a t i x 系列以及x i l i n x 公司的v i r t e x 系列芯片可达到数百万门的规模,对于几百万门的 f f g a 器件都嵌有微处理器,i p 逻辑模块和多个高速接口标准:如p c ie x p r e s s 、 r a p i di o 等。由于f p g a 最大的特点就是具有静态可编程的特性或在线动态重构特 性,使硬件的功能同软件一样可以通过编程来修改。这样就使设计修改变得十分 便利,实时性好可以使产品开发周期大大缩短。开发成本降低这些特点使得 5 一些查查兰塑主兰些鲨壅 f p g a 成为理想的s 0 c 功能验证的器件,为s 0 c 的快速系统原型验证提供了一个非常 合适的平台目前f p g a 已经从系统集成、系统存储、系统时钟和系统接口四个方 面满足了s o c 验证的要求。 论文主要讨论f p g a 器件在s 0 c 验证设计中的应用,探讨了基于f p g a 的s o c 原型 验证的方法,并以a 1 t e r a 公司的c y c l o n e 系列器件为例介绍了s o c 的原型验证的软 硬件平台搭建、验证设计的流程等等。 关键词:s o c ,f p g a ,原型验证,验证平台 山东大学硕士毕业论文 a b s t r a c t w i t ht h e d e v e l o p m e n t o f d e e ps u b - m i c r o n ( d s m ) t e c h n o l o g yi n s e m i c o n d u c t o rt e c h n i c sa n dt h ed e v e l o p m e n to fe d a t e c h n o l o g ya l s o ,t h ef u n c t i o n o fs o c ( s y s t 鲫o nac h i p ) b e c o m e sm o r ea n dm o l lp o w e r f u l ,a n dv e r i f i c a t i o n b e c o m e sm o l ta n dm o r ei m p o r t a n ti ns o cd e s i g n b ym o o r e sl a w , t h ev e r i f i c a t i o n p r o b l e m sa 增d i r e c t l yp r o p o r t i o n a lt ot h es q u a r eo ft h ec a p a c i t y a st h es i l i c o n c a p a c i t yi sd o u b l i n ge v e r y18m o n t h s ,t h ed i f f i c u l t i e so fv e r i f i c a t i o na l ld o u b l i n g e v e r y6 - 9m o n t h s t o d a y ,v e r i f i c a t i o ni st h em o s tt i m ec o n s u m i n gp a r ti ns o cd e s i g n f l o w , i tc a nt a k e5 0t o8 0p e r c e n to fa i id e s i g nw o r k ,v e r i f i c a t i o nb o m e st h e b o t t l e n e c ko fe n t i r ed e s i g nf l o w n o w , v e r i f i c a t i o na c t i v i t i e sh a v et ob ep e r f o r m e d m o l le f f i c i e n t l yt om e e tt h er e q u i r e m e n to f t i m e - t o - m a r k e t s ot h e r em u s tb ef o u n da w a y t om e e tt h er e q u i r e m e n t t h ef p g a b a s e dr a p i ds y s t e mp r o t o t y p ev e r i f i c a t i o ni st h ek e yt os o l v et h e p r o b l e m so f v e r i f i c a t i o n i ti so n eo f t h ep o p u l a rm o 黜l so f v e r i f i c a t i o ni ns o cd e s i g n t h ee s s e n t i a lo fr a p i ds y s t e mp r o t o t y p ev e r i f i c a t i o ni st oi m p l e m e n tt h eh a r d w a r e m o d u l eo fs o cr a p i d l y , m a k et h es o f e w m em o d u l ew h i c ho nt h er e a lh a r d w a r e r u n n i n gi nh i g hs p e e d c o n s e q u e n t l ym a k et h eh w s wc o - v e r i f i c a t i o nc o m et r u e t o d a y ,f p g ah a v eu n p r e c e d e n t e dp e r f o r m a n c e , a n dt h e rd e n s i t ya n d c o m p l e x i t yc o n t i n u et og r o wa ta l li n c r e d i b l er a t ew i t hm u l t i - m i l l i o n sg a t e sc a p a b i l i t y , i m b e d d e dm i c r o p r o c e s s o r s , i pl o g i cb l o c k sa n dm u l t i p l eh i 曲s p e e di n t e r f a c e s t a n d a r d s ,s u c ha sp c ie x p r e s s ,r a p i d l oa n ds oo n a n dt h e r ea l le c o n o m i cb e n e f i t s 邪w e l l b e c a u s ef p g aa l lp r o g r a m m a b l e , as i n g l ef p g ad e s i g nc a l lb eu s e di n m a n ye n dp r o d u c t s t h e s ec h a r a c t e d s t i c sm a d ef p g ab e c o m ei d e a lc h o i c et ov e r i f y s o cf u n c t i o n s , a n df p g a sg i v eag o o dp l a t f o r mf o rr a p i ds y s t e m p r o t o t y p e v e r i f i c a t i o n f p g ai sn o ws a t i s f i e dt h er e q u e s to f v e r i f i c a t i o na l r e a d yi nf o u ra s p e c t s : s y s t e mi n t e g r a t i o n 、s y s t e ms t o r a g e 、s y s t e mi n t e r f a c ea n ds y s t e mc l o c k 7 山东大学硕士毕业论文 s oi nt h i sp a p e r1w i l ld i s c u s st h ei s s u e sr e l a t e dt ov e r i f ys o cu s i n gf p g a m y m a i nt a s k sa r ed i s c u s s i n gt h ea p p l i c a t i o no ff p g ad e v i c ei ns o cv e r i f i c a t i o nd e s i g n ; d i s c u s s i n gt h et e c h n i q u e so ff p g a - b a s e dr a p i ds y s t e mp r o t o t y p ev e r i f i c a t i o n ;c r e a t e af p g av e r i f i c a t i o np l a t f o r mf o rs o cd e s i g n i nm yt a s k , 1w i l lc h o o s ec y c l o n e s e r i e sf p g ao f a l t e r at ob u i l dt h ee n v i r o n m e n to f p r o t o t y p ev e r i f i c a t i o n k e y w o r d s :s o c ,f p g a , p r o t o t y p ev e r i f i c a t i o n , v e r i f i c a t i o np l a t f o r m 8 山东大学硕士毕业论文 第一章绪论 1 1 论文的研究背景、目的和意义 随着微电子制造技术的深亚微米( d s m ,d e e ps u b - m i c r o n ) 和超深亚微米 ( v d s m ,v e r yd e e ps u b m i c r o n ) 工艺的不断发展,作为集成电路设计中关键的 技术验证( v e r i f i c a t i o n ) 技术也随之变化和发展。验证是系统芯片s o c ( s y s t e m o na c h i p ) 设计和生产中的一个不可或缺的环节。它是在流片( t a p o u t ) 前发现所设计的芯片在概念、功能、实现( i m p l e 鹏n t a t i o n ) 等方面是否有错的最 后机会,对于保证项目开发的顺利进行,降低风险,缩短项目周期具有关键作用 和重大意义。验证是贯穿s o c 设计全过程的重要组成部分:从制定系统设计规约 开始,验证工作就已经开始。在构架设计、行为级的系统建模到模块化的设计和 实现,以及最终的网表和后端布局、布线等一系列过程中,验证工作都一直如影 相随。芯片设计流程中总要阶段性、有针对性的进行各种仿真和验证,而不只是 在设计完成后才去考虑它。通过各个阶段的验证,可以避免把前一阶段的问题带 到下一个阶段,做到问题早发现和早解决。在一个芯片设计团队中,专门的验证 小组和验证部门已成为主要的组成部分,有关验证方法和验证工具也成为芯片设 计重要的研究和开发方向。 根据摩尔定律,验证的复杂度是与芯片面积的平方成正比的。随着芯片单位 面积上的容量每1 8 个月增长一倍,验证的复杂度也会每6 - 9 个月翻一番。目前, 验证过程是s o c 设计过程中最耗时间的一项工作,它可以占到整个设计工作量的 5 0 - 8 0 ,成为当今i c 设计的最大瓶颈,而且随着有越来越多的实时数据需要处理, 验证技术需要能够在接近芯片工作频率的条件下进行验证。因此如何进行高效实 用和方便灵活的验证,以尽快缩短产品的面市时间,适应市场的需求成为人们关 注的焦点之一。 对于验证,目前最常用的方法是通过软件仿真来达到验证设计功能的目的, 但由于软件仿真速度和仿真模型的局限性,当芯片复杂度和规模达到一定程度 时,验证往往难以达到令人满意的效果。尤其是传统的基于逻辑模拟的验证方式 9 山东大学硕士毕业论文 在软硬协同验证时,模拟时间之长令人难以忍受。为了缩短s o c 验证时间,提高 验证的效率,基于f p g a 的快速系统原型( r a p i ds y s t e mp r o t o t y p e ) 验证( 后面简 称为f p g a 原型验证) ,即硬件原型和软件原型结合的验证,已经成为s o c 设计流 程中一种常用的验证手段。快速系统原型验证的本质在于快速地实现s o c 设计中 的硬件模块,让软件模块在真正的硬件环境中高速运行,从而实现s o c 设计的软 硬件协同验证。该技术实现的基础是需要规模强大的f p g a 和有力的设计描述及编 译工具。由于目前f p g a 在密度和复杂程度上有了飞速的发展,使得这项工作可以 实现。a 1 t e r a 公司推出的s t r a t i x 系列以及x i l i n x 公司的v i r t e x i i 系列芯片已达 到数百万门的规模。几百万门的f p g a 器件一般都嵌有微处理器、i p 逻辑模块和多 个高速接口标准:如p c ie x p r e s s 、r a p i di o 。由于f p g a 最大的特点就是具有静 态可编程的特性或在线动态重构特性,使硬件的功能同软件一样可以通过编程来 修改,使设计和测试工作变得便利且实时性好。这种设计验证模式也可以使产品 开发周期大为缩短,降低开发成本。因此f p g a 已成为最理想的s o c 功能验证的器 件,它为s o c 的快速系统原型验证提供了一个非常合适的平台。所以,基于f p g a 器件对s o c 芯片进行验证的研究工作,具有非常重要的现实意义。 1 2 论文的结构和主要内容 本论文共分六章,正文部分将按以下顺序展开: 第一章绪论。介绍论文的研究背景、目的和意义。 第二章s o c 的验证。包括验证的概念,验证工具、验证技术和验证策略的介 绍,以及验证计划的建立等。 第三章f p g a 及其设计流程。介绍f p g a 的发展与应用,f p g a 设计的摹本流程。 第四章基于f p g a 的s o c 验证方法。介绍f p g a 实现s o c 验证的基本技术;f p g a 原型验证的优势和局限性;f p g a 原型验证过程的描述;s 0 c 到f p g a 的移植技术以 及s i g n a l t a p i i 在f p g a 原型验证中的应用,并对多片f p g a 验证s o c 进行探讨。 第五章基于f p g a 的s o c 原型验证平台的设计。主要介绍f p g a 原型验证在s o c 开发流程中的位置;基于f p g a 的s o c 原型验证流程及所用的e d a 工具;f p g a 原型验 证平台的设计制造过程;f p g a 原型验证平台的硬件和软件的设计。 1 0 山东大学硕士毕业论文 第二章s o c 的验往 2 1 什么是验证 在s o c 的设计过程中,有关验证方面的工作要贯穿整个设计流程。从前端行 为级h d l 设计开始,一直到后端版图设计,在芯片流片之前都需要做足够多的验 证流程。当前验证工作已经占整个设计工作5 0 8 0 ,因此验证是非常重要也是比 较繁杂的。 2 1 1 验证的定义 j a n i c kb e r g e r o o 给“验证”下的定义是:“验证是证明一个设计的功能 是否正确的过程”。使用汇聚模型可以从概念上清晰地描述验证过程,如图2 1 1 所示,图中t r a n s f o r m a t i o 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 过程是一个相反的过程,它从 t r a n s f o r m a t i o n 的结果出发回到起点。 t r a n s f o r m a l i o n t h er t m 9 1 l v e h i f i c a l i o n 图2 1 i 汇聚模型 在实际验证工作中,一般采用由验证平台t e s t b e n c h 和d u v ( d e s i g nu n d e r v e r i f i c a t i o n ) 组成的验证体系,如图2 1 2 所示。这是验证系统普遍适用的模型。 验证平台主要包括激励生成( s t i m u l u sg e n e r a t i o n ) 和响应检验( r e s p o n s ec h e c k ) 两个部分,激励部分用于对o u r 提供激励,响应部分用于对d u v 的输出进行处理。 其中,激励又可分为两类:( 1 ) 确定性激励。用于测试设计的典型功能或具体的 角落实例( c o r n e rc a s e ) 。( 2 ) 约束驱动的随机激励( c o n s t r a i n e dr a n d o mt e s t v e c t o r ) 。而响应检验则主要通过以下两种方法实现:( 1 ) 对待验证设计的黄金 1 1 山东大学硕士毕业论文 模型( g o l d e nm o d e l ) ,通常是经过验证的设计的高层次行为模型和其自身施加 相同的激励,并比较两者的输出。( 2 ) 通过专门的检验器监视和检查响应输出 是否与设计规范相一致。验证平台与d u v 一起构成一个闭合系统,对外没有输入, 也没有输出。 验证工程师所面临的挑战就是如何确定d u v 的输入模式,并判断d u v 输出的 正确性。设计团队首先需要根据设计规范开发相应的模块级( b l o c kl e v e l ) 和系 统级( s y s t e ml e v e l ) 验证计划。验证计划通常包含验证设计功能正确性的各种角 落实例和覆盖率需求。接下来,根据这个计划开发验证平台并对各个层次上的验 证进行设计。这项工作将一直持续到满足测试计划的全部要求为止。 图2 1 2 验证体系 2 1 2 设计过程中的人为因素 如果t r a n s f o r m a t i o n 过程不是自始至终全部自动完成的,那么就要由人去 理解规范,并进行t r a n s f o r m a t i o n ,r t l 代码的编写就属于这种情况。设计团队 根据对节面规范的理解,编写他们认为功能正确的可综合代码。通常进行验证时, 是由写代码的工程师验证所写代码的功能正确。图2 1 - 3 画出了这种情况下的汇 聚模型。 r t l c o d i n g s 1 m e 燃i l l t v e i 面c a t i o n 图2 1 3 同一个人完成代码设计和验证的汇聚模型 山东大学硕士毕业论文 如果编写r t l 代码前还需要理解规范,同时编写代码和验证工作由同一个人 完成,那么验证的将是对规范理解后的实现,而不是规范本身的实现。也就是说 如果理解上出现错误,将不能通过验证发现错误。 转换过程中任何人为因素,都是不确定性和不可重复性的来源。因此,排 除人为因素导致的错误非常重要。在设计过程中排除人为错误的方法主要包括 a u t o m a t i o n 、p o k a - y o k a 和r e d u n d a n c y 三种。 ( 1 ) a u t o m a t i o n ( 自动化) 法。a u t o m a t i o n 排除了人为的干预,但对于未 能清楚定义的情况,以及象硬件设计这种需要人的智慧与创造性的工作,不可能 全部自动化。 ( 2 ) p o k a y o k a 法。该法按照简化及标准化的原则,将整个工作过程分步 实现,并且每一步都是极其简单不容易发生错误的,人只需根据希望的结果决定 步骤的顺序。这要求对整个工作过程进行完整的、标准化的定义。根据目前的验 证技术,还不能对验证过程做如此的定义,因此这种方法还不能用在验证工作中 ( 3 ) r e d u n d a n c y ( 冗余) 法。该法是去除人为错误的最后选择,这是一种 最简单但是成本最高的方法。它要求双倍的转换资源。由一个工程师完成的设计 转换要由另外一个工程师进行设计验证,或者由两个工程师同时进行转换,然后 比较结果是否一致。这种方法一般用于对可靠性要求很高的系统,或者事后重新 设计和替换缺陷部件的成本高于r e d u n d a n c y 本身的情况中,例如a s i c 设计图 2 1 4 所示为规范存在不确定性时使用r e d u n d a n c y 减小理解错误的汇聚模型。在 硬件设计中,相应的转换过程为根据书面规范编写r t l 代码,使用这种方法意味 着需要一个专门的人做验证工作。 删训 图2 1 4 使用r e d u n d a n c y 减小理解错误的汇聚模型。 山东大学硕士毕业论文 2 1 3 功能验证 选择不同的起点和汇聚点能够决定不同的验证对象,而起点和汇聚点经常 由验证工具所决定。因此,为了明确验证的对象必须先要清楚验证的起点和汇聚 点。功能验证( f u n c t i o n a lv e r i f i c a t i o n ) 由于起点和汇聚点的不同,验证的 对象也各不相同。 功能验证能保证设计预定功能的实现。该验证过程显示出设计符合规范的 程度,但是不能证明设计实现了规范。通过功能验证,只能证明设计存在b u g , 不可能证明设计不存芒e b u g 。功能验证的汇聚模型如图2 1 毛所示。 s 图2 1 5 功能验证的汇聚模型 功能验证主要包括: ( 1 ) 黑盒验证( b l a c k - b o xv e r i f i c a t i o n ) 它通过设计顶层接口,验证那些与设计实现技术( a s i c ,f p g a 或软件) 无 关的功能。黑盒验证不直接访问设计的内部状态。功能验证可以和设计实现并行 进行,但是它很难进行功能隔离( 可控性差) ,很难发现问题的来源( 可见性差) , 因此也就不能对设计进行全面的验证。对于大型设计,需添加一些与功能实现无 关的设计,以增强验证可控性及可见性。如:增加软件可访问的寄存器及数据处 理量的控制。 ( 2 ) 白盒验证( w h i t e b o xv e r i f i c a t i o n ) 它保证设计实现技术( a s i c ,f p g a 或软件) 相关的功能正确实现,是黑盒验 证的补充,对于设计的内部结构及实现是完全可控和可见的,但不可移植。 ( 3 ) 灰盒验证( g r e y - b o xv e r i f i c a t i o n ) 它根据设计的内部结构写t e s t c a s e ( 测试实例) ,从设计顶层接口进行控 制和观察。t e s t c a s e 的目的是验证某种设计方法是否实现了一些主要特性,而 并不关心其它的设计方法。 1 4 山东大学硕士毕业论文 2 1 4 验证面临的新挑战 s o c 和基于重用的设计方法学的出现,对传统验证方法提出了新的挑战,主 要体现在以下三个方面: ( 1 ) i p 模块失去了原有的可控性和可见性 在传统的i p 单独验证中,i p 的输入输出端口可以直接被验证向量所直接访 问。而在s o c 验证过程中,单个i p 模块被嵌入到s o c 中,此时的输入输出端口已 变成了i p 模块的互连,不可能在对s o c 的访问过程中,直接访问原来的i p 模块的 输入输出端口。因为此时的i p 模块输入输出端口已在s o c 内部,从s o c 的外部输 入输出端口是无法直接访问的。i p 模块失去了原有的可控性和可见性,从而使 得s o c 中的i p 模块的验证变得困难。同时它还意味着要实现i p 模块的验证重用, 必须要为单个的i p 模块提供相应的验证访问通道。 ( 2 ) 验证平台的构建和重用问题 在基于重用的设计方法学中,作为独立设计的i p 需要验证,被集成到s o c 中 的i p 也必须得到验证。然而开发多样、独特的验证平台需要花费非常多的精力, 同时,s o c 集成者对第三方i p 缺乏足够了解或相关专业的知识。因此,与重用i p 来设计s o c 一样,其他验证团队也希望能够重用i p 验证平台中的部分或全部元件 来构建s o c 验证平台。验证平台的重用是一种有效的验证策略,这种方法允许设 计者对于任何层次、任何应用的设计都可以用最小的花费、最大的连贯性开发高 质量的验证平台。但是在传统验证方法的许多情况下,验证平台是在信号级 ( s i g n a ll e v e l ) 的接口上直接与d i n 相通讯,即使用激励直接驱动d o v 的引脚,并 通过检查接口信号的值和变化达到验证设计功能的目的。这种验证方法的抽象层 次较低,平台的开发与设计的接口协议紧密相关,从而就使得验证平台的重用变 得非常困难。 ( 3 ) 验证的概念和技术涉及广泛 验证的目标要确保设计在任何合理的配置和应用中都是零缺陷。为此,验 证工程师必须要开发出一套高质量( 高覆盖率) 的测试( 激励) 集( t e s ts u i t e ) 。由 于传统功能验证的抽象层次较低,随着设计规模的不断增加,其测试集的开发存 在周期长、代码过于庞大等缺点,很大程度上影响了产品的质量和产品的设计周 1 5 山东大学硕士毕业论文 期。因此,我们所说的验证是一个包含众多方法和工具在内的广泛意义上的概念 ( 如,形式化验证、硬件仿真、物理原型验证等都属于该范畴) 。 s o c 验证这个领域所涉及的内容很广,种类也很多,如:i p 核模块级验证 ( b l o c k - l e v e lv e r i f i c a t i o n ) 、系统级验证( s y s t e m - l e v e lv e r i f i c a t i o n ) 、 仿真验证( s i m u l a t i o n ) 、软硬件协同验证( h a r d w a r e s o f t w a r e c o - v e r i f i c a t i o n ) 、等价性检查( e q u i v a l e n tc h e c k i n g ) 、静态时序分析和时 序验证( s t a t i ct i m i n ga n a l y s i s t i m i n gv e r i f i c a t i o n ) 、版图验证( p h y s i c a l v e r i f i c a t i o n ) 等。随着验证技术的逐步发展,验证方法由最初的直接测试向量 生成( d i r e c t e dt e s tv e c t o rg e n e r a t i o n ) ,到约束随机测试( c o n s t r a i n t e d r a n d o mt e s t ) ,再到覆盖驱动验证( c o v e r a g e d r i v e nv e r i 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 ) ,各种验证方法还 在不断创新和发展。 2 2 验证工具 改善验证效率和可靠性的一个方法是自动化。目前自动化工具很多,有些 是功能验证必不可少的,例如仿真器:有些工具可以代替人完成最繁琐的工作, 并能提高功能验证的可信度,例如l i n t i n g 和代码覆盖率工具。 2 2 1l i n t i n gt o o l l i n t i n gt o o l 是根据设计的r t l 描述代码结构做静态分析,推断描述代码存 在的逻辑错误,但无法决定描述代码是否能够现实设计要求的功能。l i n t i n g t o o l 可用于强制代码遵从编写规范。由于l i n t i n g i 具是静态验证工具,因此运 行速度快,可以节省时间。其缺点是多疑问,误报率高,会产生大量不存在的错 误警告,因此要对不存在的错误警告仔细过滤,注意避免滤除真实的错误警告。 变量名最好符合命名惯例,这样有助于过滤。 对于v e r i l o g 描述的设计,因其语言特点,l i n t i n gt o o l 是一种有益的验证 工具。它可以检测r a c ec o n d i t i o n s 及数据宽度不匹配,可保证v e r i l o g 正确描述 的数据处理过程,避免造成数据的弃位及增位现象。通常这种错误通过仿真并不 一定被发现。对v h d l 使用l i n t i n gt o o l 的作用不如对v e r i l o g 语言那么明显,但 1 6 山东大学硕士毕业论文 l i n t i n gt o o l 还是能发现一些潜在的问题。 2 2 2 仿真器 仿真器通过忽略及简化设计的物理特性,对设计的实现进行模拟。仿真器 通过执行r t l 级的设计描述,模拟设计的物理实现,但它无法确定设计真实的物 理实现与设计描述之间的区别。仿真的结果取决于设计描述是否准确反映了设计 的物理实现。仿真器不是一个静态工具,需要激励( s t i m u l u s ) 和响应( r e p o n s e ) 。 激励由模拟设计工作环境的t e s t b e n c h 产生,响应为仿真的输出,由设计者确定 输出的有效性。 仿真器的类型分为4 种类型,事件驱动仿真器( e v e n t d r i v e ns i m u l a t o r ) 、 基于周期的仿真器( c y c l e b a s e ds i m u l a t o r ) 、联合仿真器( c o - s i m u l a t o r ) 、 硬件模拟器( h a r d w a r em o d e l e r ) ,分别介绍如下: ( 1 ) 事件驱动仿真器 事件驱动仿真器可将信号的变化定义为一个事件,该事件驱动仿真执行 事件驱动仿真器能准确地模拟设计的时序特征,可模拟异步设计。事件驱动仿真 器的工作过程如图2 2 1 所示。 - qa d v a n c es i m u l a t l o n 妇 is 坞n a lu p d a t e g c l a v a t l o no f a nt h ep r o c e s s e s i n e w s 咖a 1l e v e ba l o cd e f i n e d i s 1 n 百ec v a l u h o nl o o p d e l t ac y c l e i 乞 ( i s c 廿止 a p t o c e s $ w = t 吨f o ras p e c i f i ca m o t m t :o ft m l e 0 1 af u t m ev a l u et ob e 鼬s 蜘d 船al f l o n z c t od e l 巧 图2 2 1 事件驱动仿真器的工作过程 山东大学硕士毕业论文 ( 2 ) 基于周期的仿真器 基于周期的仿真器的特点是忽略设计的时序,其仿真速度比事件驱动仿真 器要高。基于周期的仿真器的工作过程步骤是,首先编译电路,将组合逻辑压缩 成单独的表达式。根据该表达式可确定寄存器的输入,然后执行仿真。遇到时钟 的有效沿,寄存器的值被更新。基于周期的仿真器的缺点是不能仿真异步电路, 不能进行验证设计的时序。 ( 3 ) 联合仿真器 联合仿真器可以对同一设计各个部分分别用不同的仿真器进行仿真。如对 既含有同步设计又含有异步设计的电路,可用事件驱动仿真器对异步设计仿真, 用基于周期的仿真器对同步设计仿真。联合仿真器中各个仿真器的操作是 l o c k e d s t e p 的,类似于电路的流水线( p i p e l i n e ) 操作。其缺点是由于不同仿 真器之间需要同步和相互通讯,联合仿真器的仿真速度受到最慢仿真器的限制, 因而影响仿真器的性能,而且在各仿真器传送的信息会产生多义性。 ( 4 ) 硬件模拟器 硬件模拟器是创建一个物理芯片的逻辑模型,向仿真器提供该芯片的行为 信息。芯片和仿真器的通信过程,是首先将物理芯片插入硬件仿真器,然后格式 化来自仿真器的数据,作为该芯片的输入,最后将该芯片输出的数据,包含时序 信息,送往仿真器。硬件模拟器可以提供很高的仿真速度,但是设备价格高昂。 需要注意的是,硬件模拟器做的仍然是功能仿真,而不是时序仿真,因为芯片是 降频运行的。图2 2 2 为硬件模拟器系统框图。 盅。哐孙,申 啊 i:i 一 图2 2 2 硬件模拟器系统框图 2 2 3 波形观察器 在仿真调试的过程中,波形观察器是必不可少的工具。它能提供信号状态 1 8 山东大学硕士毕业论文 和变化的详细信息。但是,波形观察器不能用来判断一个设计是否通过验证,因 为信号波形是不可重复的,且无法用于递归仿真。 波形观察器的优点,是可以观察仿真的整个过程,有利于设计及t e s t b e n c h 的诊断。缺点是由于要输出波形,影响了仿真的速度,因此应尽可能限制在波形 图中显示的信号数量及时间长度。 波形观察器的另一个作用是波形比较。在波形比较中,不能仅看表象,需 仔细分析,确认波形之间存在的差别是有意义的。例如,有时我们仅关心波形 t r a n s i t i o n s ( 转换) 之间的相对位置,而不关心它的绝对位置。图2 2 3 为波形 观察器的工作流程。 盅。 垂七垂卜圜 图2 2 3 波形观察器的工作流程 2 2 4 代码覆盖率 代码覆盖率( c o d ec o v e r a g e ) ,可以指示v e r i l o g 代码描述的功能有多少 被验证。代码覆盖率有三种计算方法,第一种是语句覆盖率( s t a t e m e n t c o v e r a g e ) ,它用来指示验证过程中,设计代码被执行的语句数量。有时会添加 一些没有具体设计意义的语句,仅用于监视代码执行过程中的异常或标注一些设 计中的假设。这些语句可不参与语句覆盖率的统计。第二种是分支覆盖率( p a t h c o v e r a g e ) ,它在设计中往往通过分支控制语句来完成对功能的控制。可以将所 有分支控制语句的控制状态进行组合,产生一定数量语句执行分支路径,分支覆 盖率指示所有的语句执行分支路径是否都得以执行。第三种是表达式覆盖率 ( e x p r e s s i o nc o v e r a g e ) ,它用来指示分支控制语句的控制条件是否全部有效。 需要注意的是,百分之百的代码覆盖率仅仅表示了代码都已被执行,并不 能证明设计的正确性。代码覆盖率可以用于衡量验证工作是否完成。 1 9 山东大学硕士毕业论文 2 3 可供选用的验证技术 验证的目的,是要确保设计对象满足在设计规范中所定义的功能要求。目 前验证技术有许多种,它们大致可以分为四类:基于仿真的技术、静态技术、形 式技术、物理验证与分析技术。要实现系统芯片的设计目的,必须将这些技术组 合起来使用。 2 3 1 仿真技术 仿真( s i m u l a t i o n ) 技术是设计验证的主要形式。它可以分为两类: ( 1 ) 从仿真的抽象层次来看 包括基于事件的仿真、基于时钟周期的仿真、基于对象转换的仿真。 基于事件的仿真 基于事件的仿真器把输入激励的变化认为是事件的触发,每一个仿真时间 仿真器处理一个事件触发,根据事件触发的内容对整个设计重新计算,直到一个 仿真稳态出现为止。如果输入的信号在一个时钟周期内到达,但是不同的输入信 号达到的时间可能不尽相同,则基于事件的仿真机制决定仿真器在一个周期内要 计算多次。 设计基于事件触发的仿真模型既包含了功能模型,也包含了时序模型,它 为设计提供了更为精确的仿真环境。基于事件触发的仿真特点是同时覆盖了设计 的功能和时序模型,仿真结果精确,它非常容易探测到设计中的毛刺电路,尤其 适用于异步电路的仿真。然而,基于事件触发的仿真由于算法复杂而导致仿真速 度较慢,不太适用于规模较大的电路仿真。 基于时钟周期的仿真 基于时钟周期的仿真器在一个时钟周期的时间内没有时间的概念,它只在 时钟的上升沿或下降沿进行触发,每一个时钟周期的时间对电路计算一次。基于 时钟周期的仿真技术特点是忽略设计的时序,假定所有寄存器的建立时间( s e t u p t i m e ) 和保持时问( h o l dt i m e ) 都满足要求,在一个时钟周期,信号仅更新一次, 从而信号必须与时钟同步 基于时钟周期的仿真可以在一定程度上提高电路的仿真速度,但是它只适 柏 山东大学硕士毕业论文 用于同步设计的电路仿真,对于异步电路则有可能产生错误的仿真结果。 基于对象转换的仿真 基于对象转换的仿真以数据包、图形、语音等对象作为直接的仿真激励, 而不再是添加到设计弓i 脚的激励波形。总线功能模型( b f 3 t ) 在这里是必需的,总 线功能模型提供了对象激励到设计引脚激励波形的转换接口,它的实现是根据设 计的对外接口协议,使用h d l 语言或c + + 进行行为级描述。 基于对象转换的仿真技术通过提高仿真激励的抽象层次,大大提高了仿真 工作的效率,使得大规模的逻辑电路设计采用仿真的于段来完成自检查测试和大 流量随机性测试,变得更加容易实现。 ( 2 ) 从仿真的活动内容来看 包括代码测试覆盖率检查、基于行为级模型的比较仿真、软硬件协同仿真、 硬件加速器和快速原型系统仿真。 代码测试覆盖率检查 代码测试覆盖率检查,可以统计当一组损4 试用例作用于设计时各种各样的 测试覆盖情况: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 ha n ds i g n a l 等。利用这些数据,设计者可以对测试用例对设 计的覆盖情况有所了解,同时还可以确定设计还有哪些功能没有得到测试。测试 激励的代码覆盖率至少要达到9 5 以上,才能摹本认为代码在逻辑上是通过质量 控制的,才能进入综合步骤。这一方面帮助设计者可以对测试功能覆盖情况有一 个量的认识,另一方面方便设计者发现冗余逻辑和设计错误。 代码覆盖率是保证高质量代码的必要条件,但却不是充分条件。即便代码 行覆盖和分支覆盖都能够达到1 0 0 ,也不能肯定的说代码己经得到1 0 0 的验证, 除非所有的分支覆盖都能够进行组合遍历。 基于行为级模型的比较仿真丁| 段 首先建立设计的行为模型,然后对设计的r t l 实现和行为模型使用同样的激 励,对比两者输出的结果。设计的行为模型不考虑具体的实现结构,开发周期短。 实现同样的功能,用行为级模型描述 比r t l 描述在代码的复杂度上能大大简化, 因此也减小了行为级模型代码出错的概率,它便于产生复杂的测试环境。建立行 山东大学硕士毕业论文 为模型的语言可以是h d l ,也可以是s y e t e m c ,c ,c + + ,验证语言v e r a 和s p e c m a n e 等。 软硬件协同仿真 主要适用于验证s o c 设计。传统的嵌入式系统设计,

温馨提示

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

评论

0/150

提交评论