




已阅读5页,还剩52页未读, 继续免费阅读
(通信与信息系统专业论文)基于事务验证方法在pmon项目中的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华 中 科 技 大 学 硕 士 学 位 论 文 摘 要 当 今a s i c设 计因其后端工艺的不断进步( 从0 3 5 微米到0 . 1 0 微米甚至0 .0 8 微 米技术) 而规模越来越大。 在今后的近十年里,电 子产业仍将邂循摩尔定 律的 速度 增长。 但是随着 a s i c设计规模的增大, 其相应前端验证的难度、复杂度将以几何 级数的 速度增加。当 今a s i c前端验证已 经成为整个a s i c设计流程中耗时长、 难 度大却又十分关键的阶段。 a s i c前端验证已 经建立了 一套完备的理论, 但是因为 商业利益等各方面的原因, 其实现上尚 有诸多不足。 近年来c a n d e n 二公司推出了 专 门用于 验证的c + + 工具库: t e s t b u i l d e r o t e s tb u il d e r 将软件设计中的面向 对象设 计思 想与a s i c前端验证中 荃于事务的验证思想完美结合,加之其全开放、 免费的验证 环境, 使之成为了当 今业界最流行的验证方式之一。 本论文 将在介绍前端验证 基木理论的 基础上, 着爪介绍如何利川t e s t b u il d e r 在 拼 建验证环境方面的 诸多优势, 结合p m o n项目 原 有的 验证方案, 提山了 一 种新的验 证方案,并以实际的验证举例进行具休说明。第一章为绪论,主要介绍a s i c开发 流程以 及前端验证的基本理论,并重点介绍了 基于事务 验证的基本 概念及其流程, 从而引出 墓于事务验证的 解决方案t e s t b u i l d e r . 第二章介绍如何结合t e s t b u i l d e r 的 优 点,将现有的 验证方案进行进一步的改进,使之可以 解决 很多瓶颈问题, 井论证了 这一改进方案的正 确性与可行性。第三章将利用第二章提出的新的验证方案,阐述 其在具体设计中的 应用, 其中的 三个设 计举例都是以 前p m o n顶目 的测试难点, 也 是经典的验 证难点问 题:仲裁模型、排队 模型、多 对多模型等。第四章对第 找章的 实验结果进行了 数据统计,并据此进行了结果分析,说 明了新的ia 1if 方案与 传统验 证方案相比 的优缺点。第五章将对前四章的内容 进行总结,闹 迷拼建验证环境应该 注意的一些基本却十分重要的原则,以及该验证方案的一 些展望。 关键诃, 事务验证 t e s t b u i l d e r t v m t a s k验证模架 并发调 j ”同步机制 华 中 科 技 大 学 硕 士 学 位 论 文 ab s t r a c t wi t h t h e d e e p d e v e l o p m e n t o f b a c k - e n d t e c h n o l o g y , t h e d e s i g n s i z e o f a s i c i s i n c r e a s i n g f a s t e r a n d f a s t e r . wit h e x p l o d i n g d e s i g n s i z e s , w e n e e d to g e n e r a t e a la r g e a m o u n t o f h i 沙 q u a l i t y s t i m u l u s w i t h a m in i m u m o f e f f o r t . v e r i f i c a t i o n i s g e t t i n g m o r e t i m e - c o n s u m i n g a s d e s i g n c o m p l e x i t y i n c r e a s e s . b u t d e v e l o p i n g a n e f f e c t i v e t e s t s u i t e f o r a n h d l d e s i g n i s a n a r d u o u s a n d c h a l l e n g i n g p r o c e s s . i n s t e a d o f c r e a t in g a n e w l a n g u a g e , c a n d e n c e h a v e d e s i g n e d a n o p e n - s o u r c e c + + l ib r a r y , c a l l e d t e s t b u i ld e r . b e c a u s e m a n y c o m p a n i e s h a v e a l r e a d y b e e n u s i n g c ( c + + in a n a d - h o c m a n n e r to s im u l a t e d e s i g n s v i a p l i np i , a n o p e n - s o u r c e c + + l i b r a r y w o u ld e l i m in a t e t h e b u r d e n o f m a i n t a i n i n g a n a d - h o c e n v i r o n m e n t a n d w o u l d e v e n tu a l l y a l l o w i n t e g r a t i o n o f t h e s e a d - h o c e n v i r o n m e n t s i n t o a p l a t f o r m f o r v e r i f i c a t i o n i n r e u s e a n d e x c h a n g e . t e s t b u i ld e r c o m b i n e s t h e t h e o r ie s o f o o p a n d t r a n s a c t i o n - b a s e d v e r if i c a t i o n p e r f e c t l y a n d n o w i t h a s b e c o m e t h e m o s t p o p u l a r m e t h o d o f v e r i f i c a t i o n t h is p a p e r s u m m a r i z e d h o w t o u s e a c + + l i b r a r y ( t e s t b u il d e r ) t o b u i l d a n e f f e c t i v e a n d r e u s a b l e t r a n s a c t i o n - b a s e d v e r i f ic a t i o n e n v i r o n m e n t b a s e d o n t h e p r o j e c t o f p m o n . a f t e r t h e i n t r o d u c ti o n o f b a s i c t h e o r y o f v e r i f i c a t i o n i n t h e f i r s t c h a p te r , w e w i l l d i s c u s s t h e ma i n c h a r a c t e r s o f t e s t b u i l d e r a n d h o w t o b u i l d a t r a n s a c t i o n - b a s e d v e r i f i c a t i o n e n v i r o n m e n t b a s e o n t h e t r a d i t i o n a l v e r if i c a t i o n m e t h o d . i n c h a p t e r t h r e e , w e u s e t e s t b u i l d e r t o b u i ld t r a n s a c t io n - b a s e d v e r i f ic a t i o n e n v i r o n m e n t t o v e r i f y t h r e e h a r d w a r e m o d e l s i n p m o n p r o j e c t .a f t e r t h a t , w e w i l l g e t o u r c o n cl u s i o n a b o u t t h e a d v a n t a g e o f t e s t b u i l d e r c o m p a r i n g t o t r a d i t i o n a l v e r i f i c a t i o n m e t h o d . a t l a s t , w e w 川s u m m a r i z e t h e r u l e s o f h o w t o b u i l d a n e f f e c t i v e a n d r e u s a b l e t r a n s a c t i o n - b a s e d v e r i f i c a t i o n e n v i r o n me n t . k e y w o r d s : t r a n s a c t i o n - b a s e d v e r i f i c a t i o n te s t b u il d e r t v m t a s k v e r i f i c a t i o n m o d e l s u b s e q u e n t s y n c h o r i z a t i o n o f m u t i - t h r e a d s 丫 6 9 1 6 9 4 独创性声朋 本人声明 所呈 交的 学位论文;f i t 个人 在导 师指导 下 进粉的 研究工 作及取得的 研 究成果。尽我所知,除文tp己 t标v引 r d m 0 4 容外,本论文不包含任何其 他令人或 集体已 经发表或撰1 4 i t 的 研究成果。对本文的研究做出 贡献的个人和集体, 均已 在 文中以明 确方式标明。 本人完全意识到本声明的法律结果由 本人承担。 学 、 文 作 者 签 名 : 多 i 求 只 期 录 哗乒)j只 学位论文版权使用授权书 本学0 论 文f v *完全了 解学校有关保留、 搜 用tr论 文的规定, i t 学校有 投 保留 并 向ie 家 有 关 i m 或 机 构送 交论 文 m复 印 件 和电 子 版, 允 许 论 文 被查 阅 和 借 阅。 本人授权华中 科技 大学可以 将本学位论文的 全部 或部分内 容编入有关 数据库 进行 检 索, 可以 采用影印、 缩印或扫描等复制手段保存和汇编木学位论文。 保密q寒 _年 解 密 筋 适 用木 授 权书。 本论文属于 不 保 密 斌 ( 请在以 上方 框内 打“ 4 ” ) 学 位 论 文 作 、, l l 扮 。 。 名 , m _ ; o p f- )l r i m 沙 4r犷 b 华 中 科 技 大 学 硕 士 学 位 论 文 1 绪 论 自 有i c的4 i 年以来, 从器 电路集成到系统集成” 这句话最好不过总结了 集成电 路设 计 技术从小规 模集成电 路 ( s s i ) 到 今天 特大 规模集成电 路 ( u l s i ) 的发 展过 程, 即 从 传统的 板 上系 统 ( s y s te m - o n - b o a r d ) 进 步 到片 上系 统 ( s y s t e m - o n - c h ip ) 的 发 展 过程。 从1 1 .3 5 微米工艺到 现在的( l . 1 甚至0 .,) 8 徽米工 艺, 电 子产 业 一直 遵循摩 尔定律的发展曲 线,也就是i c 集成度每1 8 个月 翻一番. 但是 摩尔定律有可能会失 效吗? 从工艺实现和市场褥求来看, 摩尔定律还有很长时间的适用期, 相反的, 对摩尔 定律豹实际限 制有很大一方面的原因来自 于相应的测试,即 随着a s i c设计规模不 断扩大, 其相关的前端验证复杂度将以 几何级数的速度增加, 甚至超过整个设计时 何的5 0 %.当 今a s i c前端验证己 经成为整个a s i c设计流程中 耗时长、 难度大郊 又十分关键的阶段, 因为虽然a s i c设计流 程中有前端验证、 门 级仿真、 形式骇证、 静态 时 序分析和 板 级 ( 系统 级) 调 试等各 个阶 段的 调 试, 但是 如果前 端 验证不 够充 分, 将 给 后 面 的 调 试 造成 灾 难 性的 后果 。 川 正 是因 为 其 重要 性, 业 界 经 过多 年的 研 究积累,己 经形成了一套比较完备的前端验证理论。 但是相应的实现手段却是参差 不 齐 , 传 统 的 实 现 方 法 是 用 高 级 语 言 如c / c + + 写 代 码 , 同 时 通 过 烹 接 调 用p l i/ v p 13 接口( 实现与h l ) l 代码的交互) 来拼建验w环境。 用这种方法实现过程比 较*m, 关键是这种验证 环境的适应性较差, 绝大部分m验证代码在另 一个 类似的项日 中无 法 重 用, 无 形 中 增 加了 测 试 人 员 的 :t 作 最. 而 用 专门 的 验 证 语 育 如e ,v e r a ,s p e c m a n 等,不仅购买费 用高昂,而且要花一定的时n j 来培训 验证工程师学习 这些专门的 验 证语言。 13 1 根 据前 端验证的经典思 想, 进行f lo 件建 模应利 用高 级语官 半窝的数 据结 构和灵 活性,而其中的关键和难点就是a级语言 ( 如 c i c + + )与 硬件描述语育 如 v e r ilo g / v h d l ) 的 接口 伺 题。 长 期 以 来, 山 于 直 接 调 川p l i/ v p i 3 的 不 便 , 便 得 高 级 语 言与 硬件描述语言在共同 搽建验i ie 境_ k ; 存在一定的 脱节, 这也是当 前许多 验f ili 环 境效率不高的根本原因。 幸运的 是c a n d e n c e 公司 适时的推出了 专i i 川于骏r的c + + 工具库: t e s t b u i l d e r a 1 e s i b u i ld e r 充分利用了c + + 作为而向对 象讲言 的优势,j 卜 将 华 中 科 技 大 学 硕 士 学 位 论 文 c + + 与 硬件描述语言 的接口 封装成、些底层类, 使得验证_ t _ f 到 币 可以 直接调川c + + 类中的一些特定函数来与硬件语言通信, 而不必考虑接口 的细节。 正是有了 此基础, 才使我们讨论c + + 在前端验证中的应用有了 可能 ( 这里并不是说在t e s tb u i l d e r 出现 以前,业界就没有使用 c + + 进行验证工作,只是没有充分利用其优势而己) 。值得 指出的是t e s t b u i l d e r 选用c + + 作为其实 现语言的 诸多 优势:首 先绝大多数的工程师 对c f c 十 + 都不陌生, 极易上手; 其次c + + 与c的互通性,以 及其与 硬件描述语言 接 口 的规范性, 使得其实现与 封装这些接口 十分方便; 而c + + 作为面向 对象语言的 优 势, 一方面t e s t b u i l d e r 本身为我们提供了 很多 搭建验证环境所必禽的 墓类及其派生 类, 使得我们可以很方便地利用现有的验证数据库搭建验证环境,另一方面我们可 以 对自己 的验证环境进行充分的重用,并在长期的 验证积累中 逐步 积累、 扩展自 己 的 验证数据 库, 使得以 后的 相关验证周期 越来 越短。 3 1 本论文以凯达实验室与美国c o mb r i o公司合作的网络监拉设备的自 主j i 发为 背景, 在介绍前 端验证基本理论的 基础上, 着重介绍如何利用t e s t b u i l d e r 在搭建验 证环境方面的 诸多优势, 结合p m o n项月 原有的10 w方案, 提出了一 种新的验证方 案,并以实际的验证举例进行具体说明。 1 . 1 论文背景 1 . 1 .1 a s i c开发流程简介 前面已 经提及, 本论文的 撰写背景是凯达实验室与美国c o m b r i o公司合作的 a s i c自 主开发项目 , 凯达实 验室主要负责a s i c设计的前端实 现以及相应的前 端验 证,所以在正式介绍a s i c前端验i ll: 技术之前,有必要简单 介绍一下a s i c的开发 流f +r 和一些基本概念。 华 中 科 技 大 学 硕 士 学 位 论 文 构 瓜 + 市 场 研 究 形式晚证 ( 捅入网农 扫猫y s 俩入网表c t ) r t l u i lt !i t1 b r a ut . !. 翎 布 局 后 , 详 细 布 妞形 式 转 * 1_ _ _ lfi i s t a 布局伯s t a 图1 .1 a s i c开发基木流程图 典型的i tr 设计 流 程如图1 . 1 所示, 其主 要步 骤包 括以 下 些 方而: 140 1 ( 1 ) 根 据 需 求 确定i c 规 格 并 做 好 系 统 方 案 设 计: ( 2 ) r t l 编码 和 相应t e s tb e n c h 代码的 编写; ( 3 )功能仿真以 验证前端设计的正 确性; ( 4 ) 完 成设 计 综 合, 生 成门 级网 表: ( 5 ) 完 成d f r 设 计, 并 进 行模 块 级的 静 态 时 序分 析 ; ( 6 ) 进行 形式 验 证, 以 保 u _ 综合网 表实现的 功能与r t l 级 描述一 致: ( 7 ) 对 整 个设 计 进 行p r e es l a y o u t 静 态 时 序分 析; ( 8 ) 把 综 合时 的 时 间 约 束 条 件 传 递 给 版图 工 具; ( 9 ) 采 样时 序 w-动的 策 略 进行初 始 化fl o o r p , a n 。 内 容 包 括单 元分 布, 生 成时 钟 树 和预布线; ( 1 0 ) 通过综合 工 具将时 钟树插 入到初始的 综合网 表, 并 进行 形式 验u ,: ; ( 1 1 ) 利用 预布 线 后提取出 来的 估计延 时 信息 进行 静 态时序 分 析: 华 中 科 技 大 学 硕 士 学 位 论 文 ( 1 2 ) 完 成 详 细的 布 线工 作 , 并 提取洋 细的 延 迟 信 息 : ( 1 3 ) 进 行p o s t la y o u t 静 态 时 序分 析 ; ( 1 4 ) 物理 验证 后 输 x 设f 图 数据 给 jf a 毅 f 进 行 投片 ; 下面 将上述步 骤中 提 到的 几个 重要概念简单 描述 如下: 其中, 综合是指根据时间 约束等条件,完成可综合的r t l 描述到综合库单元 之 间 的 映射, 得到一 个门 级网 表 等( 对实际电 路的门 级 描 述) , 从 而实 现了 从 硬件 描述 语言到门 级网 表的自 动转化。 形式验证是一种静态的 验证手段,它报据电路结果 静态地判断两个设计在功能 上是否等价,从而判断一个设计在修改前和修改后其功能是杏保持一致。它 运行时 无须测试向蚤,但是必须有一个参照设计和一个待验证的设 计。 形式验证在 a s i c 设计 流程中主要应用在以 下几 个方面, r t l - r t l 时比、 r t l - g a t e 对比、 g a t e 一 g a t e 对比。 14 0 1 静 态 时 序 分 析 简 称s t a ( s t a ti c r im in g a n a l y s is ) , 它 提 供了 一 种 针 对 大 规 模八 级 电 路进行时序分析的有效方 法。 它只需要根据电路网表的拓扑,就可以检查电路设 计中 所有路 径的 时 序 特性, 测试路径的 覆盖率 理论i : 可以 达到 1 1 1 0 % , 从而 保证时 序分析的完备性。 需 要指出的是, 我们将从系统设计到逻辑综合和d f i 设计称为“ 前端设计、 而将后续的所有步 骤称为“ 后端设计” 。而通常意义l 的验证指得是前 端功能 辘证、 形式验证和 s t a在内 豹所有验证手段, 本文要讨论 i 是前端设计 中的功能验证技 术。 1 , 1 .2 a s i c 前端验证的基木概念 一个产品在设 计阶r一定有一份关于产品设计要求的详细规范 , 也 就是我们说 的 设计文档在系统工程师提ii i 了 设计文 档以 后, 实现小 4r i i t- t . 证小组就根据这份文 m 分 别 进 行 设 计 ,最 后 检杳 两个 小 组 的 设计 是 否 一 致, 如 巢一 致 ( i t :意前 提是 与i 计文 档 华 中 科 技 大 学 硕 士 学 位 论 文 的 一 致性 ) 则 验证 通 过 , 否 则 ,就 要 检查 是 哪 个小 组 的 设 计问 题 a s ic前 端 验证 的 主 要 目的就是检查我们的硬件设计是否与系统设计师要求的设计规范一 致,也就是我们 常说的功能验证。功能验证的月 的是证明设计中没有错误, 然而事实上我们只能证 明 某些错误存在或是不存在。 验证是一个穷举设计中可能存在的 错误的过程, 所以 说验证的充分性是一个利益权衡的问 题,也正是这个问 题要求我们搭建一个高效率 高复用性的验证环境, t4 0 1 构 架 测 试 环 境 在 软 件 仿 真 过 程 中 被 称 为“ w r i t in g t e s tb e n c h e s p t e s tb e n c h e , 通 常 是这样的 代码, 它对设计进行适当的配置、 产生测试激励和有选择性地观察电 路的 响应。 虽然前端验证的实现方 法有很多, 但是其基本思 想和实现流程大多是一致的: 图1 . 2 a s i c前端验证环境1 如图 2 ,2所示, 一个有自 动 检测功能的前 端验证环 境 一 般山 r t l d e s ig n . r e f e r e n c e m o d u le , c h e c k e r , t e s t b e n c l, 和c o v e r a g e 组成: ( 1 ) r t l d e s i g n : 前 端 0 i 7 : 中 需 要 验 i 一般被定义先任务t a s k 楼价 。 这样处理俊得测wi ( h 的实 现 与b f m相对独 立, 只要b f m中 定义 豹t a s k 接g .1 没有改 变, o f m本 身和t a s k 华 中 科 技 大 学 硕 士 学 位 论 文 内部实现的任何改变都不会需要高层次的测试用例进行改变, 这样就避免了 传统的 t e s t b e n c h 设 计中 存在的“ 牵一发而动全身” 的缺陷。 12 0 1 1 .1 .3 p m o n项目开发背景 p m o n ( p a c k e t o v e r s o n e t m o n i t o r )是现代互联对工程与技术中 心同美国 c o m b r i 。公司的国 际合作项目 ,旨 在开发一 种光纤环形网监控计费 系统。系统的主 要任务是将o c 4 8 光纤环形网上的数据包抓取, 根据数据包的 类型 进行流分 类处理, 然后将其转发至1 2 个千兆快速以太网口。 同时, 系统还支持负载均衡和流且统计计 费 等功能。系统主 要由3 颗a s i c芯片组成,总计 两百万门,内置 一百万比 特的 存 储器。 这三颗a s i c芯片分别是r p m ( 数据包协议处理单元) 、 p k m( 流分类处理 单元) 和t p m ( 数据包转发单元) ,其系统结构如图1 .4 所示: 图1 . 4 p mo n系统摧架图 r p m完成对数据包头的协议 分析以 及关键字的提取, 在协议处理单无处理的同 时,数据包送往t p mf存储在数据包缓冲r ( d d r s d r a m) . r p m提取的关桃字 华 中 科 技 大 学 硕 士 学 位 论 文 送往p k m, 完成流分类相关操作,流 分类的结果 送往t p m. t p m根据流分 类的结 果以 及调度算法, 将数据包转发到1 2 个千兆以 太网i; i ( p m 3 3 8 6 ) , 送往指定的监控 服务器进行相应的分析和处理。 在r p m中, 有两路流水线处理模块对数据包头进行分析和关键字提取; 每一路 流水线有s 级处理模块, 每一级处理模块处理分组数据包的一层协议, 在p k m中, 主 要集成了c a m的接口 , 提供多 种方式对c a m的查 找进行操作, 高效率完成流 分类工作。 在t p m中, 集成了1 2 个队列操作单元, 分别 对应每一个接口,同时提 供这些队列对外部存储器的操作, 本 课题是p m o n项日 中 的 一 个子 课题。 由 子a s i c的 验证一直是a s i c 研发 过 程中的难点和瓶颈,大规模的a s i c电路验证尤其如此, 所以在这个项目 中,木课 题的任务是旨 在设计一种高效率in集成电 路验u ie 方法, 能够在较短的时n内完成对 系统中专 用集成电 路的 功能 验 证工作, 从而保 证芯片 能 够一 次 性 投片 成 功。 1 . 2 关键技术现状及其发展 a s i c前端验证在整个a s i c 1 p 发流程中的重婴地位已 经不容谈 疑, 但是如何搭 建高效省力且可重用性高的验证环境却是长期困 扰业界 的一个难点。 一传统的实现方 法 是 用 高 级 语言 如c /c + + 写 代 码, 同 时 通 过 直 接调 用p l i / v p l l 接i i ( 实 现与1 1 13 l 代码的 交互) 来搭建验r环境。 用这种方法实 现过v比 较繁 琐, 关键是这种验 i il a l 境的适应性较差, 绝大部分的 验证代码在另一个类似的项月 中无法重用,无形中 琳 加了测 试人员的工 作皿。还有一些业界公司为前端验证专门开发了一 套验证翁言 系 统 , 如e ,v e r a ,s p e c m a n 等 , 但 是 不 仅 购 买 费 用高 昂 , 而 且 要 花 定 的 时 间 来 培 训 验 证工程师学习这些专门的 验证语言。 经过多年的经验积累, 基子事务 验证的骇v : 想已经成为了 业界最为流行的验证思想,c a d e n c e公司根据这 思想及时推出了个 开放式的验证环境一 t e s t b u i l d e r 。 本节 将在重点介绍基于 事务 验证思想的基本概念, 为下一章t e s t b u i l d e r 的介绍提供理论基0 4 华 中 科 技 大 学 硕 士 学 位 论 文 1 .2 . 1 垂千事务验证简介 事务是一次性完成的一组 操作或信号变化。 在一个抽象概念上包括信号的传送, 数据的处理、 变化, 系统的状态等.事务可以用开 始时间、 结束时间、 数据变化与 流向、 控制信号的 动作以 及其他一切相关的 信息来描述, 这些信息可以 作为事务的 属性来存储。事务的概念很宽,可以简单到存储器的读写,复杂到很多数据的处理 与 传 输。 事务也可以由 多 个 操作、多 个时钟 周 期来组 成。 1 1 5 1 基于事务的验证是当今业界最流行的验证方法, 其核心思想为提高验证的抽象 性,以 提高验证环境的可重 用性。 基于事务的 验证方法可以 在一个更高的层次上进 行验证, 可以明显地减轻测试工作、 简化调试, 并有助于统计测炭功能覆盖率, 可 以 给设计者更多的信心。 利用事务 进行测试,比从查 看信号 之间的详细电 平转换和 时序信息进行测试要简单得多,因为基于事务的检 骗方法提供了 直接解决 这些低层 问 题所需的 基本结构。 1 1 6 1 基于 事务的 验证 把验证 提高到一 个更高的 水 平。 可以 把单 独信号 的 特殊性 , 比 特 和字节的繁琐性都被模型化并 且包装起来, 这样把验证提高到更高的抽象的层次_匕 这个层就是事务 层, 这 样能够 更有效 地完成 更多的 功能。 运用 这种茶 于事务 的 io证 方法可以 给验证过程的每一个环节带来好处。 事务是一 个抽象的层次, 在这个层上 , 设计的功能可以用 特定的语言 来描述,并且, 在这样一个层上, 可以 用很高效的方 法验证一个设计是否满足要求。 不仅如此, 基于事务的验证方法还能提高 测试能力, 暴露某些甚至也许是很隐蔽的 缺陷,可以 改进结果的检查能力, 能够准确、 有效地 检测出 缺陷。当 一个设计在信号 层经常要关注那些1 或0 时, 设计者可以借助挤j : 事务的方法很方便快捷地创建测试方法。系统结构设计人员可以不川费心去思考那 些使能 信号、 她址总线等等之间细节的关系, 而是更多的关 注数据的流向, 处理, 存储,以 及电路的状态和动作 等这类事务。 基于事务的这种方 法可以说 是自 然验证 方法在设计的更高抽象层的一种扩展。 华 中 科 技 大 学 硕 士 学 位 论 文 图1 .5基于事务的验证环境 为了 做到提升验证的 层次, 必须对整个验证环境进行分层。 如图1 .5 所示为一个 c p u接口的验证环境,我们将其分成两个层次:顶层模块 ( t e s 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 ) 属性的事务 ( 如d o r e a d , d o w r i t e ) , 而不必 关 心 验 证 对 象 的 具 体 时 序 和 协议 ; 底 层模 块 ( t r a n s a c t io n v e r ifi c a t io n m o d u le , t v m ) 负责实 现顶层模块事务与验证对象的映射, 即将抽象的事务用符合验证对象接口 的 时序和协议来实现。以 这个c p u接口 为例,c p u接口 有很多种, 但是必定会提供 读写寄 存器的功能, 我们将这两种方法抽象成事务。 当我们搭建了 一个c p u的验证 环境后, 下次一旦使用了不同 的c p u , 我们只需要将t v m中的两个事务实 现( t a s k ) 进行少量的改进, 其他如顶层模块、测试向量等都可以不变,大大提高了设计的重 用性。 从上面的例子可以 看出,基于事务的验证思想将验证对象的共性抽象成了 事 务,而将底层的实现细节与上次屏蔽, 做到了将验证层次尽可能地提高,从而大大 提高了验证环境的重用性。 基子事务的验证不仅使上层模块实现简单、可重用性强:也是得测试向最的构 造更加容易、 测试搜盖率更高: 更重要的是t v m其实只是 个框架, 随着t v m t 1 l 实 现的事务 越多 其功能越强,那么我们可以 将t v m中最基本的共性抽象出 来组成 一个类库,这样我们就可以根据不同的 d u v调用不同的事务类. 做到验证环境的 标准 化、 简单 化和重 用化。 这也就 是木文 要 重点介 绍的 验证 思想: c + + 库在 鹅于 小 务验证中的应用。 【川 华 中 科 技 大 学 硕 士 学 位 论 文 1 , 2 .2 签干攀务验证的流程 典型的基于事务验证豹流v包撼=个 阶段: m- 生a,设计调试、坊能攒 率 分析。图1 ,6 中对比了传统方法和基于事务方法的区别, 可以 体现出 基于事务验证 方 法的 高 效性 和便 利 性, 下 面将具体到 每一阶 段 分析 基于 事务的 ya证 方法, 侧试生成 基于信号和裁试穴 皿的 洲试平ft 格建 很困难 推于? # c 务 拼续验证 环境很方 攫 ! 立 看 波 形 文 怜 和 h 设 t i o 志 文 件 繁琐 对半务的杏找,关 迷、1 r 果分析, 组 澳摊稼,分折、记 录等 侧 试 砚 做 华k 4 r v * u a 被规 定 y r. 分 得很 细的 层k 进行. a采用传统的 低层检验技术时; 验证人员需要确定一m“ 检验向 鱼n以 充分x. . _ 个设计的功能。 4 004 量是一组可产生渊试方案的向 量序3 4 1它能确定设计是否达 到预期的 婆求。由 于 需要检验 的方 案很多, 因 此真ie 有效的 检 验向 众 很 难 产!4 ; n 另 外, 在设计本身还处于开发阶段时, 检a向量也很难保持不变。 每解决一个设计 缺 陷, 测试方案的总体时序和序死都可能发生变化。这就意味着不得不修改检验向量 组本身。总之, 在设计的初期阶段,向最细节给你增加了 很多负扣。 墓 于 事 务 的 实 现 方 法, 在t re r i吨潜 言 里 面 , 可以 用 任 务( t as k 来 实 现 一 个 事 务 , 而 在v 13 l 领 域 , 则 可 以 用 过 程( p ro c e d u r e ) 来 实 现 。 这 种 用t a s k / p ro c e d u r e 方 法是 从v e r i l o g ( v h d l 塔言的 仿真功能 进化而 来的。般摧木的 测试 要 求是可以 满 足的. 但是如果用在复杂结构、复杂测试a i v il lk酒试豹时候这种方法就有很多 局限 性了 。 秀 此* 便出 现了 高 级 验 证 语 言1 4 l v ( h ig h - l e v c l v e r if ic a t io n ) , 提 供了 强 大 的 华 中 科 技 大 学 硕 士 学 位 论 文 功能而又使用方便。 13 5 1 验 证 需要 搭 建 一 个高 效的 测 试 平台 ( t e s tb e n c h ) , 这 样的 测 试 平台 常 常是 具 有 井 发 性、封装性、抽象性、自 检功能、随机信号发生等功能,也许还有可重利用部件。 所以 测试平台的搭建是项很复杂的设计。但是如果测试平台的设计工具利用了 基于 事务验证的方法,就可以开发出高效、功能强大的测试平台。比如利用t e s t b u i l d e r 或 者v e r a 此 类的 工 具。 13 4 1 1 .2 . 2 . 2第二阶段:设计调试 运用了 事务验证的方法, 可以 在验证调试过程中极大地节省时间和精力。 它的 好处得益于快速地查看事务的属性、波形的变化、事务的输出提示等手段,这样就 不必去详细查看那么多的底层信号和详细的数据。当然,必须需要有强大的测试平 台 ( t e s t b e n c h )来支持这些方法。 在事务层运用测试平台的验证方法可以 充分地提高设计生产力,能 够很简单地 把想要关心的事务的属性记录到模拟过程的数据文件或者相关文件中, 这种方法提 供了仿真运行后的调试和分析方法, 这样就不必每次仿真验证都要亲自 在现场监视 仿真过程了。 3 6 1 再来看基于事务层的调试方法,一丝调试是在事务这一 层次进行,更高层次的 抽象也就可以被应用了,比如分析有关联关系的多个事务。比方说,一个设计者想 要知道是不是所有的a t m 单元都以正确的方式工作, 并且完成了网络交换的功能, 如果是在信号层调试,儿乎不可能去查看、分析那么多的信号,但是,如果在事务 层 上 来调 试 就 变 得容 易 得多 。 13 7 1 一般来说,基于事务层的调试方法,第一个步骤是分析模拟过程中所涉及到的 各个事务之间的关系,而不必去查看繁琐的信号变化。调试的第二步骤,是把这些 事务相关的信号变化的细节显现出来,尤其是如果出现设计错误的时候,就需要详 细查看信号变化。利用多种方法分析模拟结果的数据,就可以不i f 再去运行 、 次仿 真 运行,因为一般的仿真可能会占 川很多时间, 这样可以 缩烦设计周期。 华 中 科 技 大 学 硕 士 学 位 论 文 事务层验证方法对于调试工作来说有下面儿种很好的特性,可以记录信息到数 据文件中,然后用波形查看工具或者其他分析工具显示出来: 事务显示: 显示出事务的抽象信息; 错误事务:当 仿真过程中出 现了 错误。能够被记 录下来, 错误原因可以 利用因 果关系方便地查出来: 并发性事件: 乱序执行的事务或者流水线事务以 及并发事务 可以 用简单的方式 在相对应的位置显示出来; 串行性:可以发现有一定执行顺序关系的事务系列; 关联性:提供很简单的方式查找事务直接的因果关系, 前辈和后辈,上级和下 级的关联等. 、且了、.产、.护 ,.n乙勺 了1、了口胜、了,、 、.浮.屯,卫产 j.尸合 户r、了、 基于事务的验证方法提高了各个验证阶段的抽象性,同时还可以 在模拟结果文 件 中 保 持 信 号 层的 细 节 信 息。 另 外, 它 可以 记 录测 试 中 对ta s 帅r o c e d u r 。 的 调 用, 记 录激励和响应的因果关系,还有用户定义的事务,可以用错误标记来显示出是什么 类型的错误。事务、信号、错误标记都必须提供直观的图形化的方式以 便查看,或 者利用波形查看的工具,设计者可以查看事务以及它所相关的属性和信号。这也包 含了 事务的前后辈的 继承关系。 验证二 _ 程师还可以 采用一 个临时的查询来分析 些 复 杂的 问 题. 所以 , 利 用事 务 的 概 念 来 进 行 调 试 是非 常 方 便 有 效 省 时 省 力 的 。 1.1 8 1 1 .2 .2 . 3 第三阶段:功能粗盖率分析 功能援盖率分析是用来确定验证测试是否完全的满足了设计要求,是否涌盖了 设计中所提出的 功能。 功能 覆盖率可以 从指定的事务是否完成这点上来反映, 如对 r am 的读和写操作, 或者更复杂的一系列的事务如多条指令的执行, 有没有覆盖 所有的功能要求。 传统的验证方法对于功能 覆盖率很难进行分析,因为它木来就是在信号层的验 证,虽然可以 提供有代码覆盖率或者条件覆盖率的分析数据, 但是,还不是我们想 要得到的功能覆盖率。比方说,代码覆盖率也许可能达到 1 0 0 0/ o ,但是功能并不 华 中 科 技 大 学 硕 士 学 位 论 文 定完善, 反过来,当 功能完养的时候代码不一定祁执行过。 12 i 在荃于事务的方法中,为了能 搜索复杂的事务系列,功能覆盖率分析工具必须 要提供简单的方法来查找事务,寻找特定的类型,列出 选定事务的属性等功能。举 个例子, 功能被盖率工具应该能够指山 诸如“ 读内存数据” 这样的事务来, 并且能 够存储下这个事务所相关的地址和数据, 还能统计出测试中用到了多少个读操作, 哪 些读 操 作是 正 确 的 等 信 息。 浏 1. 2 .3 t e s t b u i l d e r 简介 t e s t b u i l d “是由c a d e n c 。 公司推出的一个用于前端验证的c + + 库, 此c + + 库不 仅完全免费而且可以运行于目前所有流行的前端仿真工具土 ( 如 n c s i m , v c s , m o d e l s i m等) 。 t e s t b u i l d e t 将软件设计中的面向对象设计思想与a s i c前端验证中基 于事务的验证思想完美结合,不仅解决了软硬件无法方便地协调工作的传统问题, 而 且在 大大提高 验证环境 重用性的同 时 简化了 验证的设 计难度, 使之 成为 业 界 最流 行 的 基 于事 务 脸 证 方 法 之一 。 12 4 1 木节将重点介绍t e s t b u i l d e r 的一 些基本特性,如接i= i 封装、t b v w i x a r d 机制等。 1 . z3 . 1 t e s t b u l l d e r 的接口问题 前端验证的经典思想就是利用高级语言 丰富的数据结构来进行硬件模拟,即山 软件来模拟硬件。但是软硬件最大的区别就是串行与并行的区别,同样软件编程语 言( 如c , c + + 等) 与 硬 件 描 述 语言( 如v e r il o g , v h d l 等) 的 木 质 p . 别 就是 软 件 编 程语言是串 行执行的,而硬件描述语言是基于时钟的并行执行语官。 这就产生了一 个问 题: 软件如何模拟硬件的并发行为。传统的解决方法 有两 种:一 种是 在软件中 也 设置 全 局时 钟, 完全模拟 硬件的 所 有行为, 但是 这种方 法不 仅实 现 相当 困 难, 而 且 违背了 用简单模拟复杂的验证思想; 另一种是利用传统的p l i/ v p i 接n 对软 件进 行 适当 的调度, 这种方法比 较合理,直接调用p l ii v p i 接i ! 不 仅婆将拟个软件实现 的 函 数 进 行系 统 注 册, 而 且 对 软 件 的 调 度也 相当 复 杂, 更 无 重 用 性可言 , 12 6 1 华 中 科 技 大 学 硕 士 学 位 论 文 可以 看出软硬件协同 工作的关键是 接口 问 题,为了 解决 这个问 题 t e s t b u i ld e r 将 p l i 戊p i 接口 封装成了一些底层类并对上层屏蔽,这样我们所看到的就是一些简单 的 连 接 方 法。 (2 ) t r a n s a c t io n b a s e d t e s t s t e s t b u il d e r 亡or 日 a n a ly s is t o o ls 下 旧n s a c t i o n v e r i f ic a t io n mo d e l s r t l d e s 咖 图1 . 7 t e s t b u l l d e r 中的接口系统 如图1 .7 所示, t e s t b u i ld e r 有两套底层接口: s d i ( s i m u l a t i o n d a t a i n t e r f a c e )和 c h p i ( c o m m o n h d l p r o c e d u r a l i n te r f a c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中数学相交线第1课时++相交线(教学课件)数学苏科版2024七年级上册
- 人教版八年级英语上册期末测试试卷-含答案03
- 人教版八年级英语上册单元同步知识点与语法训练 unit6 section B
- 儿童生长发育全阶段特点与指南
- 人教版八年级英语上册Unit9标准检测卷(含答案)
- 新解读《GB-T 2383-2014粉状染料 筛分细度的测定》
- 图文转换-2026年高三语文一轮复习专项训练解析版
- 完形填空暑假提升练 (15空) 含答案-2025年新高一英语暑假专项提升(译林版)
- 重庆乡情课件
- DB6108-T 67-2023 马铃薯瓢漏粉条加工技术规程
- 代理记账财务会计管理制度范文
- T/CHC 1001-2019植物源高有机硒食品原料
- 青岛租房合同协议书下载
- 企业内部培训合格证明书(5篇)
- 医疗设备采购项目实施进度计划
- 国内安全保卫学课件
- 高校干部面试试题及答案
- 农村宅基地审批培训课件
- 教科版科学小学科学三年级上册:全册 教案教学设计(新教材)
- 船员四小证Z01基本安全理论考试题及答案
- 村委雇佣合同范本
评论
0/150
提交评论