




已阅读5页,还剩69页未读, 继续免费阅读
(微电子学与固体电子学专业论文)基于覆盖率验证方法的ip核测试平台设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文研究以覆盖率为量化标准的自动化功能测试平台的设计方法,用以完 成对i p 核仿真结果的自动检测以及覆盖率收集工作。在实际工作中,遵循覆盖 率验证方法的指导思想,研究并设计完成了基于覆盖率验证方法的测试平台, 实现了对m a c 子层i p 核的r t l 功能验证,并通过大量的随机激励进行回归测 试,最终达到了1 0 0 的代码覆盖率与功能覆盖率。 在测试平台的具体设计工作中提出使用参考模型实现对复杂数据的检测, 以及使用第三方验证环境等验证方法,有效地减少了验证的工作量与复杂度, 并使验证效果达到工业级品质,从而保证了验证质量。同时开发了r a m 接口验 证环境与m a c 子层i p 核的断言检测机制,最终实现了对仿真结果的自动检测与 覆盖率收集。 设计中突出层次化的结构和标准化的接口,采用指针的方式调用不同验证 组件之间的信息,并利用配置文件与虚拟序列技术对整个测试平台进行配置管 理,因此本设计具有很好的可重用性和可移植性。 关键词:测试平台验证覆盖率s p e c m a ne l i t e a b s t r a c t t h et h e s i sb a s e do nc o v e r a g ed n v e nm e t h o d o l o g y d e v e l o p i n gt 1 1 ea u t o t n a t i c t e s t b e n c h ,w h i c hc a i lf i m s ht h ea u t o m a t i cc h e c ko f c o r es i m u l a t i o nr e s u l t sa n dc 0 1 l e c t c o v e r a g eo fe a c hs u b - m o d u l e s ni si m p l e m e i l t e di 1 1 t h em a cs u b l a y e rdc o r e s v e r i f i c a t i o n ,w i t hp l e n t yo fr a n d o ms t i m u l u sg e n e r a t e df o rr e 伊e s s i o n f i n a l l yt h e1o o 劬c t i o n a lc o v e r a g ea n dc o d ec o v e r a g eh a v eb e e i la c l l i e v e d s e v e r a ln e ws y s t 锄a t i cv e n f i c a t i o nm e t l l o d sw e r ea p p l i e dd u r i i l gt h ep m c e s so f s 舐i n gt e s t b e n c l l s u c ha st a l ( i n gm er e 衙e i l c em o d e l t 0v 甜矽t h ec o m p l e xd a t a 仃a n s a c t i o n s ,p 1 觚t i n gt 1 1 et 1 1 i r d p a r t yv e f i c a t i o ne i 】帆r 0 衄e m a l lo f 廿1 e mr e d u c e dm e c o m p l e x 时锄de 仃o no ft l l ev 甜f i c a i i o nw i m o u tc o m p r o 商s e dq u a l i 够i l lt 1 1 em e a l lt i i i l e , r ami l l t e r f a c ev e f i c a t i o ne n v i m n m e n ta n da s s e r t i o nt e s tm e c h a i n i s mf o c u s e do nl v ia c c o r ew e r ed e v e l o p e d t h e s e 印p l i e dm e t h o d se n s u r em es e l f c h e c ka n dc o v c r a g e c o l l e c t i o no fs i i i l u l a t i o nr e s u l t s t 1 1 ew h o l ed e s i 印a d 叩t ss t a i l d 砌i i l t e 而c ea 1 1 dm e m l l i c a l 舭t u r e d a t ao fe a c h s u b e n v 衲m 钮tc 锄e a s i l yb es h a r e db yp o i m e 瑙c o i g u r m i o nf i l e sa n dv i r t u a l s e q u 饥c et e c h n o l o g ) ,w e r e 砷d u c e d t oc o i l f i g u r em et e s t b e n c h 舢1m e s el e a du pt om e f e a t l l r em a tt h et e s t b e n c hi sr e u sa _ b l ea n dp o r ta :b l e 【e y w o r d :1 e s t b e n c h v b r i 6 c a t i o nc o v e r a g e r e g r e s s i o ns p e c m a ne n t e 西安电子科技大学 学位论文独创性( 或创新性) 声明 秉承学校严谨的学分和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果:也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:垒,兰蠡彗 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。 本人签名:垄,兰墨型本人签名:丝,釜堡坐 导师签名: 日期迎缮纠1 回 日期立弘 第一章绪论 第一章绪论 1 1 课题的背景及研究意义 二十多年前,数字集成电路的设计还主要采用图形输入工具,硬件设计语言 ( h d l ) 的出现使电路设计能力有了质的飞跃。但验证手段和验证方法学却进展 缓慢。随着集成电路的规模进入千万门级,验证已经成为芯片设计的瓶颈,验证 所需要的人力与物力已经超过了芯片设计本身所耗费的精力。即使如此,由于验 证工作量巨大以及验证工作进行是否完备难以衡量,7 0 以上的芯片失败的原因 是验证的不充分1 1j 。 可设计重用的口核是保证s o c 设计质量和进度的重要手段。因此自行开发 的p ,必须经过充分的测试与验证,以保证其功能的正确性和较高的可靠性。 基于覆盖率验证方法的口核测试平台使用约束化随机向量对口核进行功能 验证,能够通过测试平台中的自动检测机制迅速定位设计中的隐藏问题,并且提 供覆盖率报告对用以测量验证的进度,为功能验证的完成提供重要量化标准,保 证了验证工作的完备性,并同时证明口设计的正确性与可靠性。同时,由于采用 硬件验证语言( h v l ) ,在建立测试平台时,严格按照可重用性机制建立验证环 境,使模块级的测试平台在能够在系统级验证环境中得以重用。 应用基于覆盖率验证方法的p 核测试平台能够有效地减少验证人员的工作 量,极大地缩短验证所需时间,明显地降低芯片开发周期与费用。开发设计基于 覆盖率验证方法的核测试平台对于芯片的设计与开发具有非常现实的意义。 1 2 功能验证 验证是一个证明设计思路如何实现的过程。验证的目的是保证某种变换的结 果和预期的结果一致。验证是通过各种方法核对设计规范与输出结果一致的过 程。大规模a s i c 芯片的前端设计中,验证主要是针对寄存器传输级( r t l ) 代 码的功能验证,其工作量已占到验证整体工作量的6 0 至7 0 之间【2 。 功能验证的主要目的是确定一个设计是否实现了预定的功能。图1 1 所示为 功能验证路径模型。功能验证检验了设计及其规范的一致性。 基丁覆盖率验证方法的i p 核测试平台设计 r t l 编码 规范盯一i _ p 叭 规范q 一一一一p 盯l 功能验证 图1 1 功能验证路径 对r t l 的功能验证是通过仿真实现的。仿真是最普遍和常见的验证手段。之 所以命名为仿真,是因为它的作用是使设计趋近于实际情况。仿真试图创造一种 人工的环境来模拟真实的设计,这种验证使设计者能在产品制造之前调整,改正 错误和问题【3 】。仿真器的工作是执行用某种语言描述的设计,它不是静态工具, 它需要激励,即模拟设计工作时的真实环境。 r t l 层进行的仿真,其特点是不考虑构成电路的逻辑和门的时间延迟,着重 考虑电路在理想环境下的行为和设计构想的一致性。即r t l 级仿真是没有延时 的、基于周期的事件驱动的仿真方式。 i 盯l 仿真主要是指在软件平台上的仿真。通常是指利用计算机硬件平台, e d a 工程设计环境,搭建虚拟的设计系统,在计算机上进行波形分析、时序分 析、功能验证的过程。 仿真方法分为以下两种【4 】: ( 1 ) 交互式仿真方法 在众多的e d a 工具中,大多数的仿真器允许进行实时交互式的操作,允许 在仿真运行期间对输入信号赋值,指定仿真执行时间,并观察输出波形,通常需 要经过多次反复的仿真过程,在系统的逻辑功能、时序关系满足要求后,仿真过 程结束。 ( 2 ) 测试平台( t e s t b e n c h ) 法 利用测试平台,我们可以实现自动地对被测单元输入信号测试矢量,并且通 过波形输出,文件记录输出,或与测试平台中的设定输出矢量进行比较,来验证 仿真结果。 测试平台与源代码具有相同的输入、输出端口,因此,利用测试平台可以对 一个设计进行功能仿真和时序仿真。 与交互式仿真方法相比,测试平台具有以下优点: ( 1 ) 相对于手工方式需要逐个处理输入和输出矢量而言,它提供了一种更 为系统的仿真途径; ( 2 ) 一旦建立了测试平台并确定了测试矢量后,在设计经过多次修改后, 第一章绪论 仍然可以很容易地重新进行仿真: ( 3 ) 通过将h d l 代码写入测试平台,可以方便地进行不同口的仿真。 随着设计规模的扩大,系统芯片设计的发展,仿真变得越来越困难,尤其是 输入激励波形的确定本身就是一个复杂的课题【5 】。事实上,一个电路的设计结果 正确与否,是否具备所期望的功能,仅仅依赖于设计结果的结构。人们希望不需 要指定激励波形,不需要依赖于行为的模拟,而是根据逻辑设计的功能和结构的 描述来证明逻辑设计的正确性【6 】。本文的主要目标就是编写测试平台,它为设计 提供输入信号,使仿真器能基于该输入信号模拟该设计的响应。仿真器并不知道 设计者的意图,因此它不能判断被仿真设计是否正确。设计的正确性应该由验证 工程师根据仿真的结果做出相应的判断。一旦设计在模拟的环境下进行仿真后, 验证工程师的主要职责就是检查相应的输出,判断响应是否符合设计的意图。 通过搭建测试平台来有效地模拟p 处于s o c 的真实仿真环境,可以对设计 好的p 核进行仿真和验证,有效地为为p 提供输入序列并检测i p 的输出响应。 对于减少验证工作量,保证口的正确性与稳定性具有重要的意义。 1 3 基于覆盖率的功能验证方法 1 3 1 传统的功能验证方法及其优缺点 根据仿真结果检验方式的不同,传统的功能验证方法大致可以分为协同仿真 和自测检验两类【7 1 。如图1 2 协同仿真方法是将用户产生的各种测试向量作为激 励信号,同时输入设计与参考系统,并比较两个系统的响应,以此来验证设计方 案的正确性【8 1 。参考系统是独立于设计的可执行模型,它往往比设计本身更抽 象。 厂吞五丽厩磊厢,1 鼎i 图1 2 协同仿真验证流程 4 一 基丁覆盖率验证方法的i p 核测试平台设计 自测检验则是把带有自测性质的测试向量作为激励信号输入设计中,由程序 的运行结果体现系统的行为。自测检验的测试向量包括两部分:执行某一特定功 能的代码和对系统行为的判断p j 。 协同仿真的测试向量容易获得,其测试向量理论上可以是任意代码【1 0 】,前提 是要保证设计与参考系统在接口上保持一致。因此,协同仿真的测试集都比较 大,可以遍历的系统状态也比较多,所以可以验证更多的逻辑。自测检验的优势 在于其验证效率非常高,因为它可以准确地证明系统某一特定功能的正确性。 不论是协同仿真还是自测检验,传统验证方法的一个共同缺点是只能反映发 现问题的数目,而无法反映验证的程度并进行调整。所谓验证的程度就是指哪部 分的逻辑已经被验证过,哪部分的逻辑还有待于进一步验证【l 。因此,需要在验 证流程中引入反馈环节,以便根据已作的工作来指导以后的验证。 1 3 2 基于覆盖率的功能验证方法 基于覆盖率的方法是在验证过程中增加一个新环节一覆盖率检验,它把覆盖 率作为评价验证完备性的标准用以指导是否进一步产生测试向量,只有达到预期 的覆盖率,验证才认为是完备的其验证流程【1 2 】。如图1 3 所示。 图1 3 基于覆盖率验证方法的验证流程 覆盖率的评估标准分为代码覆盖与功能覆盖【”】。下面我们来分别介绍这两种 覆盖。 代码覆盖检查工具是一种能识别设计中哪些代码在验证间被执行过【1 】( 更重 要的是哪些代码没有被执行过) 的工具。 图1 4 说明了代码覆盖检查工具是如何工作的。首先要测量源代码,测量过 程只是简单地在源代码的一些关键位置插入检查点以便纪录这段代码是否被运行 过。 第一章绪论 原始 模型 覆盖率 图1 4 代码覆盖检查过程 代码覆盖率( c o d ec o v e r a g e ) 是验证仿真激励是否完备、检验代码质量的一 个重要标准。测试激励的代码覆盖率至少要达到9 5 以上,才能基本认为代码在 逻辑上是通过质量控制的,是基本可测的。在大的设计中,如果想通过一个激励 就验证完一个设计或者模块是不现实的。一方面是从逻辑功能上很难做到;另外 一方面是因为如果在一个激励中包括了各种情况,整个仿真过程的速度会随着计 算机内存的消耗而成线性下降,效率低下【1 4 1 。通常的做法是每一个激励只验证电 路功能的某个方面。整个电路的功能验证由数个激励共同完成。在这种验证方法 中代码覆盖率更显重要,因为可以通过代码覆盖率来控制激励对功能的覆盖程 度。另外,由于设计复杂度越来越高,基于时序的仿真往往需要较长的时间,同 时对机器性能也有较高要求。目前的仿真工具都支持并行处理,用几台机器同时 来进行处理,还出现了硬件仿真加速器,进一步提高时序仿真的速度。 功能覆盖率从用户与系统的角度关注待验证设计。它关注的是是否所有重要 的激励,错误,极限情况以及协议在验证环境中都被覆盖到了【1 5 】。功能覆盖还是 度量在待验证设计处于不同情况下,所有重要的输入激励组合是否被执行的有效 手段。 采取功能覆盖的优势在于: ( 1 ) 使验证工程师更加关注设计中重要的部分,对于主要功能验证更加充 分。 ( 2 ) 可以作为验证工作进行进度的指示。 ( 3 ) 提高激励产生的有效性。 ( 4 ) 提高激励产生的质量。 ( 5 ) 避免了重复产生相同作用的激励组合【1 6 】。 由于代码覆盖工具的低使用成本,很快地被应用到验证过程中。它们几乎不 需要用户的任何额外操作,最多只是在编译代码之前多执行一个命令【1 7 j 。而由于 功能覆盖涉及到测量一些相关值,所以必须进行一些人工操作。因为值的相关性 皇 基于覆盖率验证方法的i p 核测试平台设计 和重要性是与设计意图相关的,所以功能覆盖是不能从r t l 级源码自动提取的。 功能覆盖率的高低取决于如何实现它。 与代码覆盖类似,功能覆盖数据也在仿真过程中采集。每次运行过程的数据 都被收集到一个数据库或者单独的文件中,然后这些独立运行的功能覆盖数据被 汇总到脱机的分析器。功能覆盖工具通常提供一些进程,测试平台可以靠这些进 程动态地查询某项功能覆盖率,然后由这些信息来修改自己的行为。例如,增加 生成未覆盖值的概率。执行动态反馈机制必须使激励产生过程与功能覆盖率相关 联,并且保证激励的产生过程以功能覆盖为目标【1 引。 只有待验证的设计源代码才需要检查覆盖率,目的是判断是否验证了所有代 码。而测试平台的代码则不需要追踪来确认是否曾运行过。如果有一段重要的测 试平台没有运行,这就表示待验证的设计源代码的一部分没有运行。此外,有些 测试平台代码只有当检测到错误时才运行,因此对于测试平台的代码覆盖率没有 太大意义。 基于覆盖率的验证方法常常与自动生成测试向量的方法结合在一起使用。基 于覆盖率的验证方法的测试向量通常是采用随机的方法自动生成。为了加速反馈 过程,自动生成的测试向量需要满足一定的约束条件【l8 1 。在定义约束条件时,必 须兼顾覆盖率定义与设计规范两方面。不满足覆盖率定义与设计规范的约束条件 都应该被去掉。 以上分析表明基于覆盖率的功能验证方法以代码覆盖与功能覆盖作为覆盖率 检验的评估标准,提供数据化的报告用以测量验证的进度,为验证工作提供了重 要的量化标准。在验证的过程中增加覆盖率检验环节,可以为验证进度提供数据 化的指示、可以提高激励产生的有效性以避免重复产生相同激励、可以从量化的 标准上保证验证工作的完备性。应用基于覆盖率验证方法的测试平台能够有效地 减少验证人员的工作量,极大地缩短了验证所需时间,明显地降低芯片开发周期 与费用。开发设计基于覆盖率验证方法的测试平台对于芯片的设计与开发具有非 常现实的意义。 1 4 本论文研究内容 本论文以m a c 子层口为原型,设计并搭建了基于覆盖率验证方法的口核测 试平台,实现了该口核的仿真与验证,并通过覆盖率与回归测试保证了验证的完 备性,同时证明了设计的正确性与稳定性。该方法能够有效地保证口核的设计质 量,并具有可移植性,对p 核的验证具有普适意义。 本文各章节的基本内容组织如下: 第一章绪论 第一章:首先描述了验证在芯片开发中的重要性,介绍了r t l 功能验证与仿 真,并引入了测试平台法。剖析了传统功能验证的优缺点,然后引入基于覆盖率 的验证方法学一以量化的标准反映验证的进度。 第二章:介绍了硬件验证语言e 语言,包括基于e 语言的功能验证的方法以 及验证环境。 第三章:通过对m 核设计规范的理解与分析,从m p u l 接口特性、内部功 能特性以及结构特性出发,制定验证计划并提取功能覆盖点。 第四章:根据口核设计规范与验证计划,设计并搭建了m p u l 测试平台。 在实际的设计工作中,使用参考模型实现对复杂数据的检测,以及使用第三方验 证环境等验证方法,有效地减少了验证的工作量与复杂度,并使验证效果达到工 业级品质从而保证了验证质量。同时,开发了洲接口验证环境与m a c 子层 m 核的断言检测机制。仿真结果证明,该测试平台能够有效的完成对m p u l 设计 a h b 接口,r a m 接口,数据传输,寄存器与信号时序的检测以及覆盖率的收集 工作。同时由于在测试平台的建立过程中,采用了层次化的构建方式以及一些具; 体的编写技巧,本测试平台具有较强的可重用性。 第五章:通过回归测试与覆盖率分析,证明了m p u l 验证的完备性,以量化 的标准保证了m p u li p 核的设计正确性与稳定性。 第六章:总结了本文的主要内容,以及自己在设计验证平台所作的研究工 作,并且总结自己设计的不足从而明确了以后的研究方向。 第二章基于e 语言的功能验证 第二章基于e 语言的功能验证 当今采用h d l 原始程序代码的先进验证工具广泛采纳了系统工程知识,并 与代替专门测试装置的可再使用验证组件整合在一起,为设计师提供了丰富的支 持能力。c a d e n c e 公司的s p e c m a i le l i t e 验证工具就是这样一款验证技术工具,它 能提供可配置、可再使用和可扩展的验证组件,这些组件被称为e v c 【1 9 】。这些组 件采用硬件验证语言e 编写,能够产生足够多的测试激励讯号,并能对设计行为 与预期结果进行检查确认。e v c 可以极大地缩短验证时间和提高产品品质。具有 互通性的e v c 套件可以透过第三方程式或取得授权,可用来测试算法模块或总线 接口等常见的电路功能。这种方法的突出优点是e v c 的成熟性、可移植性和可再 使用性,使e v c 具有与被测口模块设计同等的价值。 2 1 验证环境与仿真器的交互 在具体介绍基于e 语言的验证环境之前,先介绍一下基于e 语言的验证环境 与仿真器的通信机理。s p e c m a l l 和仿真器在仿真的过程中是两个独立并行的进 程,它们通过通信接口( s t l l b s 文件) 来进行通信【2 0 】,其结构如图2 1 所示。 图2 1s p e c m a n 与仿真器的交互 仿真环境包含以下各组成部分: 基丁覆盖率验证方法的i p 核测试平台设计 ( 1 ) s p e c m a n :整个验证环境是用e 语言实现的,其中包括约束、激励产 生、驱动、检查,覆盖率等,所有的e 文件都是由s p e c m a n 编译和仿真。 ( 2 ) 仿真器:v e r i l o g 或d l 仿真器,它通过s t u b s 文件与s p e c m a l l 进行 通信。 ( 3 ) 外界库:仿真用到的一些模型可能是基于c 语言的,e 语言可以很好地 导入这些模型来进行仿真。 ( 4 ) 设计:基于v e r i l o g 或v h d l 的设计。 ( 5 ) 仿真文件:在仿真中可能用到的一些外部模型,如总线功能模型等。 ( 6 ) 顶层:包括设计和各种模型的例化和一些驱动输入或收集输出的寄存 器。 ( 7 ) s t u b s 文件:s p e c m a n 读入所有的e 文件,然后用一个命令来生成所需 要的s t u b s 文件,这个文件在仿真过程中是由仿真器编译和仿真的【2 1 1 。 2 2 验证环境 e 语言是当今国际流行的测试语言,采用这种语言编写模块级验证环境只是 其应用的一个方面,e 语言还具有支持编写序列库生成引擎、代码重用性等其它 特性,灵活使用e 语言,可以进一步提高s o c 验证的效率【2 2 】。 所谓基于模拟的验证,就是通过施加焦点或随机测试向量,而后观察输出结 果来验证设计【2 3 1 。目前,它仍然是s o c 验证中最常用的方法。但是,要得到满意 的覆盖率,通常需要非常大的测试集合。因此,基于模拟的验证方法必须要解决 两个关键的问题:一是如何高效率、高质量地生成测试激励;二是如何实现结果 自动检查和测试的可回归性。 传统的验证方法是,设计或者验证者根据设计对象所实现的功能,编写相应 的焦点测试激励,然后手工检查设计行为的正确性,同时结合代码覆盖率分析, 来编写下一步的测试激励【2 4 1 。但是,传统方法无法实现验证环境的重用和结果的 自动检查,于是,随着需求发展,验证专用语言h v l s 出现了,其中的e 语言提 供了一种面向事务的编程方法( a s p e c to r i e n t 酣p m 孕a m m i n g ) ,即通过编写说明 性语句而非过程性语句搭建验证环境【2 5 1 。e 语言根据任务不同将验证环境划分成 激励生成、激励驱动、结果检查、覆盖率分析等相对独立的部分,每种任务由一 个基件负责完成。用这种方法搭建的验证环境,对不同抽象层次、不同规模的模 型具有可重用性,并能有效地解决上述两个问题。基于e 语言的验证环境能够完 成以下五项功能【2 4 j : ( 1 ) 激励生成:编写伪随机生成引擎是e 语言在验证环境中最重要的应 第二章基丁e 语言的功能验证 用。用户通过描述规则重用、权重,定义事件和序列等方式在伪随机基础上加入 约束条件,通过写一个t e s t 而改变其随机种子的方法生成大量合法的测试激励, 且激励生成具有可回归性。 ( 2 ) 激励驱动:el a n g u a g e 针对用h d l 描述的d u t 模型设计了一套将激励 驱动到d u t 模型的机制。对于用c 和c + + 描述的模型,用户还需添加接口代 码。 ( 3 ) 输出采样:类似激励驱动,e 语言设计了一套d u t 模型的输出采样机 制。 ( 4 ) 结果检查:结果检查可以是基于参考模型的数据检查,也可以是基于 算法和协议的协议检查。 ( 5 ) 覆盖率分析:基于模拟的验证必须依赖于覆盖率分析结果反馈,e 语言 支持功能覆盖率分析,但其难点在于功能点的提炼和功能点描述的完整性。 基于e 语言的验证环境包括许多组成部分,其基本结构如图2 2 所示。 图2 2 基于e 语言的验证环境 其中数据对象代表固定格式的测试向量,如数据包、视频中的一帧数据,或 c p u 的一种指令。激励产生会对数据对象添加一定的约束,随机产生基于约束的 激励。输入驱动中包括一个输入程序,负责将数据输入给设计,根据设计的不 同,有可能对设计进行重复多次的输入。输出采集中包括一个采集设计输出的程 序,并将采集到的数据转换成数据对象定义的形式,然后送到数据检查模块进行 检查。数据检查部分产生所需要的数据和存储收集到的数据的程序,并完成数据 检查。协议检查通过定义一些时序上的断言【2 6 】来监控设计的协议,如果违反了协 议将产生警告或错误提示。覆盖率分析会分析设计中的断言,给出设计的功能覆 盖率报告。 s p e c m a n 提供约束解释器和通信信道来进行e 语言的仿真,界面对象 ( i n t e r f a c eo b j e c t ) 负责将数据对象驱动给设计的界面,系统对象( s y s t e mo b j e c t ) 包括 各种不同的界面对象。界面对象和系统对象根据每个设计来编写,如对c p u 进行 旦 基丁覆盖率验证方法的口核测试平台设计 验证时,根据设计定义输入给c p u 的数据对象( 指令格式等) ,因此验证环境不需 要随着设计的改变而改变,所以一个设计的环境是可以重用的。不同的测试激励 通过约束数据对象、界面对象、系统对象来产生【1 6 】。验证环境的划分框图如图 2 3 所示。 图2 3e 语言验证环境的划分 基于e 语言的验证环境的文件层次结构如图2 4 所示,其最顶层文件名字固 定为s y s ,在s y s 下例化所有的模块。 1r 数据对象输入驱动输出采集 协议检查覆盖率分析1 图2 4e 语言验证环境的层次结构 唧嘲嘲 啪 一 ev 第三章m p u l i p 核分析 第三章m p u l ip 核分析 3 1 以太网m a c 层简介 e t h e m e t 是i e e e 8 0 2 3 所支持的局域网标准。按照i s o o s i ( 国际标准化组织 开放系统互联参考模型) 7 层结构,以太网标准只定义了其中的物理层和数据链路 层,作为一个完整的通信系统,其高层协议采用t c p 口协议,t c p 用以保证传输可 靠性,而用来确定信息传输路线。m a c 介质访问控制层协议采用 c s m c d ( c a 耐e rs e n s em u l t i p l ea c c e s sw i t hc o l l i s i o nd e t e c t i o n ,冲突检测载波监听多 点访问) 。 以太网( m a c 层) 交换芯片是以太网技术得以实现的关键芯片。使用它可以 用来连接多个不同局域网( l 0 c a l 心e an e t 、o r kl a 】町的网段,扩展局域网覆盖的区 域;可以实现1 0 0 0 m b s 网段、1 0 0 m b s 网段和1 0 m b s 网段之间的互连,使建立混 合速率的局域网成为可能;可以将局域网络流量限制在局域网的有限部分来提高 性能。对应着o s i 七层参考模型中的物理层如图3 1 所示。 l s o 七层参考模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 i e e e8 0 2 3c s m a ,c d 模型 更高层 图3 1o s i 参考模型 i e e e 8 0 2 协议标准系列中,数据链路层包括l l c ( 逻辑链路控制) 子层和眦 ( 媒体访问控制) 子层。其中m a c 单独作为一个子层,完成数据帧的封装、解封、发 送和接收功能。物理层p h y 的结构随着传输速率的不同而有一定差异。m a c ( m e d i u ma c c e s sc o n t r 0 1 ) 层作为以太网软硬件体系结构中的关键部分,具有广泛的 通用性,其相关规范也在不断地根据新的需求而发展。m a c 子层位于逻辑链路控 制( l l c ) 层和物理层之间,它使l l c 适应于不同的媒体访问技术和物理媒质。8 0 2 旦 基丁覆盖率验证方法的i p 核测试平台设计 3 协议中m a c 子层的主要功能是对介质空间利用c s m c d 机制进行访问,完成 对各种帧的封装、解封、发送和接收功能【2 7 】。 3 2i p 核分析 m p u l ( m a cl a y e rt op h yl a y e ru p “1 1 l 【) p 的作用是将m a c 层的帧的进行 封装。即对m a c 层数据格式进行处理使之符合p h y 层数据格式形式。m p u l 口 核为v h d l 语言编写的口软核。 在验证的开始阶段,我们需要根据设计规范对m p u lp 核进行分析,以提取 需要验证的功能覆盖点,制定验证计划。 m p u l 主要包含以下子模块:接收和发送模块,指令译码模块,控制模块, 数据处理模块,以及寄存器模块和主机总线模块,随后将对每一个模块做具体的 介绍。 m p u l 接收模块的任务,就是负责读取与a h b 总线相连的存储器中的原始 数据与指令。模块内部带有地址发生器,产生原始数据与指令的地址信息。根据 产生地址并在控制模块的控制下,m p u l 通过a h bm a s t e r 接口取得指令,并将 指令发送给指令译码模块,若译码后指令为数据处理指令则根据控制信息去获取 数据,并将数据由并行转为串行格式发送给数据处理模块等待后继处理。指令接 收与数据接收都是通过a h bm a s t e r 接口。数据与指令的接收不能同时进行, 需要在控制模块的控制下选择。 指令译码模块接收到m p u l 接收模块发送过来的指令后进行解析,并将解析 后信息发送给控制模块。 寄存器模块,存放整个设计所需要的寄存器,寄存器中存放控制与参数处理 信息。m p u l 寄存器均为3 2 比特位宽。每个寄存器根据设计规范均有确定的复位 值,复位值即m p u l 复位( r e s e t ) 后,寄存器的初始值。寄存器分为两类:一类 为可读写的寄存器,可以通过a h bs l a ! 接口写入数据改变寄存器的值:另一 类为状态寄存器,这类寄存器是只读寄存器,只有当m p u l 中相关硬件信号改变 时,寄存器的值才被更新。 控制模块是m p u l 的核心模块,它的功能是:根据当前寄存器的值与指令译 码得到的信息,控制接收发送,数据处理等动作行为,并触发一些外部输出信 号。 。 数据处理模块在控制模块产生的控制信号的控制下,对输入模块的数据比特 流进行加头加尾以及加密。 发送模块的任务就是负责发送数据。发送模块从数据处理模块得到需要被发 第二章m p u l i p 核分析 送的比特形式数据。通过串并转化为字排列并根据发送模块内部地址产生器产生 的目标地址发送到与与之对应的洲中去。 接口模块为实现m p u l 与总线的通讯,设计的符合总线协议规范的接口模 块。m p u l 设计中含有一个a h bm a s t e r 接口,一个a h bs 1 a v e 接口以及一个 r a mm a s t e r 接口。 m p u l 依靠指令来决定处理数据的方式以及一些控制行为。在设计m p u l 时 就规定了一系列与其硬件电路相配合的指令集。“指令”实质上就是定义的。 m p u l 指令通常由两部分组成:第一部分为操作码( o p c o d e ) ,它表明了指令定义 的操作行为。例如t e r m 指令,它表明了操作结束,m p u l 在执行完上条指令内 容后,主状态机就应跳入空闲状态,m p u l 不再继续读取下条指令。第二部分为 操作数,它为指令的一些附加信息。例如执行数据处理指令时,操作数中就包含 了对数据如何处理的一些信息。 m p u l 指令集中包含两类指令:程序程控制指令与数据处理指令。 程序控制指令为干预m p u l 动作的一类指令,如我们在前面描述的t e 刚, 以及空操作n o p ,同步指令s i g p ( m p u l 主状态机跳入初始状态,知道同步信 号被触发,m p u l 去取下条指令,否则一直等待) 。 若m p u l 解析指令为数据处理指令,则会根据数据处理指令指定的源地址信 息控制m p u l 接收模块通过a h bm a s t e r 接口对相应地址进行读操作,进行并串 转化后送入数据处理模块,数据处理模块根据解析指令得到的信息以及寄存器状 态对数据进行相应操作( 加密,加头,加尾) ,串并转化后,送入数据发送模 块,然后根据数据处理指令指定的目标地址信息控制m p u l 发送模块通过r a m m a s t e r 接口对相应的地址进行写操作。图3 2 描述了指令格式,以及源数据与处 理后数据格式。 原始数据存放格式 数据x | , 指令x、 指令 指令 头信加密信源地目标地m a c输入长输出长 x + 1 指令存放格式 x 1 息息址址头度度 。 处理后数据存放格 m a c 式数据数据 头 经过加密的数据x 加尾 数据 经过处理后的数据x 图3 2 数据处理指令 兰基丁覆盖率验证方法的i p 核测试平台设计 3 3 制定验证计划 制定验证计划即确定需要被验证的功能点,从设计规范中可以列举它所描述 而且要被验证的所有功能。上节我们对m p u l 的设计规范进行了结构,功能,以 及动作特点的分析,这节我们将从3 个方面制定验证计划,提取功能覆盖点。 首先,列举基于接口的功能覆盖点。 m p u l 有三个与外部通讯的接口:a h bm a s t e r ,a h bs 1 a v e 与删 m a s t e r 。下面将分述这三个接口的功能要求。 m p u la h b 接口验证的核心是保证m p u la h bm a s t e r s l a v e 接口的传输符 合蝴b a 协议与设计规范的要求,并能够承受一定的协议违反。 a h bm a s t e r : ( 1 ) 传输符合a m b a 2 o a h b 总线协议。 ( 2 ) 支持仲裁。 ( 3 ) 传输只支持i n c r 4 读操作。 ( 4 ) 能够处理r e s p o n s ee n - 0 r 协议违反。 a h bs l a v e : ( 1 ) 传输符合蝴b a 2 0 a h b 总线协议。 ( 2 ) 支持译码。 ( 3 ) 传输支持s i n g l e 读写操作。 m p u l 洲接口验证的核心是保证m p u l 洲m a s t e r 接口传输符合r a m 协议与设计规范的要求。 r a mm a s t e r : ( 1 ) 单端删存储器端口。 ( 2 ) 支持写等待,即输入等待信号有效时,地址与数据保持。 ( 3 ) 删接口可以实现位输出。 其次,列出m p u l 内部特性的功能覆盖点。 m p u l 内部特性的核心是保证m p u l 设计正确完成设计规范中的功能特性要 求。 ( 1 ) 数据处理机制正确。 ( 2 ) 寄存器更新机制正确:复位值与设计规范一致:能够被正确的写入与 读出;能够被硬件正确地更新。 ( 3 ) m p u l 信号时序正确:中断相关信号之间的时序关系;错误相关信号 之间的时序关系;状态信号自身信号值的时序关系。 最后,列出基于结构的功能。 第三章m p u l i p 核分析 在对m p u l 结构了解的基础上,给设计增加压力,将其推向极限条件,检测 接收模块的输入f i f o 与发送模块的输出f o 是否会发生上溢或下溢。验证 f i f o 在极限情况下是否会发生上溢或下溢是验证设计吞吐率与可靠性重要的一 环,由于设计缺陷造成数据丢失或取出错误数据是不可接受的。 ( 1 ) m p u la h bm a s t e r 以最快地速度读取数据,m p u l 的n 伊u tf i f o 是 否符合系统设计要求,不会产生溢出。 ( 2 ) 根据r a m 等待信号到来时序,m p u l 的o u t p u tf i f o 是否符合系统 设计要求,不会产生上溢或下溢。 制定好验证计划后,将验证计划细化,列出所有需要覆盖率报告的功能点对 应的覆盖点。使用f r 锄e m a k e r 编写功能覆盖率报表定义,然后将其转化成 v m 孤a g e r 可以识别的,后缀是x i l 类型的文件。这样我们就可以利用 v m a n a g e r 的图形化界面实时而直观地监测对设计的验证进行到什么程度,为功能 验证的完成提供重要的量化标准。 第四章i p 核测试平台设计 第四章ip 核测试平台设计 1 9 为了实现对m p u l 的功能验证以及覆盖率收集,在制定了验证计划后,就要 着手搭建针对于m p u l 的测试平台,用于为设计产生特定的输入序列,同时观测 并检测设计的输出响应,并进行覆盖率收集。 4 1 制定测试平台架构 根据验证计划,m p u l 测试平台应完成以下几个功能: ( 1 ) 测试平台应具有a h bs l a v e 的功能,能够对设计的a h bm a s t e r 接口发 出的总线行为做出符合6 m 协议规范的相应响应。能够检查传输是否符合6 幽b 协议规范。 ( 2 ) 测试平台应具有a h bm a s t e r 的功能,能够生成测试矢量,驱动符合 a 耶协议规范的总线传输,对待验证设计的a h bs l a v e 端口进行读写操作。能够 检查传输是否符合a h b 协议规范。 ( 3 ) 测试平台应能监测m p u l 6 岫m a s t e r s l a v e 接口行为,能够检查传输 是否符合协议规范,能够收集覆盖率。 ( 4 ) 测试平台应能进行仲裁以及译码,模拟总线竞争行为。 ( 5 ) 测试平台应具有r a ms 1 a v e 的功能,能够对设计的r a mm a s t e r 接口 发出的总线行为作出符合规范的相应响应,能够检查传输是否符合洲规范。 ( 6 ) 测试平台应能监测m p u l 删m a s t e r 接口行为,能够检查传输是否符 合协议规范,能够收集覆盖率。 ( 7 ) 测试平台应具有检测m p u l 数据处理是否正确、寄存器更新是否正 确、信号时序是否正确的机制,并同时收集覆盖率。 ( 8 ) 测试平台能够应用于系统级验证环境中,即当m p u l 模块例化在包含 有a h b 总线以及r a m 模块的实体中时,测试平台经过配置仍旧能正常工作并完 成相应功能。 考虑到以上因素,在制定测试平台结构时,划分为四部分分别进行创建。如 图4 1 所示。第一部分为v h d l 顶层,包含了仿真运行以及与s p e c m a n 通信需要 的d l 代码,包括m p u l 模块本身,时钟与复位信号产生单元,s t u b 文件以及 一些辅助逻辑。第二部分为a h be v c 。能够完成模拟a h b 总线行为,并监视 a h b 传输状态,进行协议检查,在传输不符合a h b 行为规范时实时报错,同时 收集覆盖率信息。第三部分为c o m r a me v c 。能够模拟r a m 行为,并监视 基丁覆盖率验证方法的i p 核测试平台设计 r a m 端口传输状态,进行协议检查,在传输不符合r a m 行为规范时实时报错, 同时收集覆盖率信息。第四部分为m p u le v c 。能够监视d u t 行为,并监视 d u t 端口与内部重要信号行为,进行数据检查,信号之间的时序检查,寄存器状 态检查,状态机检查,并同时收集覆盖率信息。 e 语言验证环境 a h b m p u lc o m r a m e v ce v ce v c ? i m p u l 设计 t ,u n 1 。而日 v n u l 删,z i 图4 1m p u l 测试平台整体构架 m p u l 模块本身比较特殊,其功能就是实现数据根据不同的指令以及m p u l 模块本身的寄存器配置情况进行加密,加头,加尾。数据处理复杂,因此在验证 过程中普遍使用的计分板数据检测方式不再适用,本文提出了使用参考模型进行 数据比较的方式,这种方式适用于复杂的数据变换,尤其是使用特殊加密模式的 加密单元的数据检测,通过对测试平台加入简单的接口用对参考模型进行参数的 传递就能够比较d u t 与参考模型的运算结果,从而实现对d u t 数据的检测,该 方法实现简单,处理数据量大,通过验证的设计能够有效保证其正确性,并且大 大节省了验证人员的时间与精力。 本文引入d l 顶层的目的是为d u t 加上一个具有固定接口的顶层模块, 在不影响测试平台和d u t 交互的前提下,为d u t 提供一个标准的对测试平台的 接口,最大可能的提高验证环境的可重用性【2 8 】。 上面我们将测试平台划分为四部分,并简述了各个部分应实现的功能,下面 我们将细化各个部分,并根据分析制定测试平台的基本结构。 第一部分:v h d l 顶层 ( 1 ) 时钟与复位信号产生单元:为整个测试平台提供仿真运行时需要的时 钟与复位信号。 ( 2 )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025甘肃定西市陇西县招聘城镇公益性岗位人员28人考前自测高频考点模拟试题及答案详解(网校专用)
- 2025广东云浮市郁南县林业局招聘生态管护人员2人考前自测高频考点模拟试题及答案详解(新)
- 2025年湖南长沙市一中青竹湖湘一教育集团公开招聘教师50人模拟试卷及答案详解(全优)
- 2025年高硅氧玻璃纤维布合作协议书
- 安全培训教室必要性课件
- 小学安全员培训材料课件
- 2025贵州金丽农业旅游产业发展集团有限公司招聘经理层高级管理人员(财务总监)1人模拟试卷及参考答案详解
- 2025年可穿戴运动手环项目发展计划
- 2025年应急管理部所属单位第二批次公开招聘(秦皇岛有岗)考前自测高频考点模拟试题及一套答案详解
- 个人股份转让合同协议书8篇
- GB 3452.1-1992液压气动用O形橡胶密封圈尺寸系列及公差
- 洁普利康抗HPVβ乳球蛋白高分子生物肽冷敷凝胶课件
- 工程建设项目绿色建造施工水平评价申请表
- 鸡的呼吸道疾病与防治课件
- 八年级数学平方差公式完全平方公式过关练习题
- 八年级英语完形填空解题技巧课件
- 插头插座尺寸标准
- 完整版老旧小区雨污分流改造工程施工组织设计方案
- 《基因工程》课件第一章 基因工程概论
- 德国凯尔锚固技术公司石陶幕墙设计和施工中的应用
- (高清版)外墙饰面砖工程施工及验收规程JGJ126-2015
评论
0/150
提交评论