首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于SystemVerilog语言的验证方法学(7)

基于SystemVerilog语言的验证方法学(7)

3.5 事务级模型(Transaction-level models)
       文章中描述的系统级验证方法在事务级中经常需要承担对DUT部分进行建模任务。编写一个完整设计事务级模型是现代验证方法学一部分。对一些情况,设计中第一个模块是在RTL级编写,设计中事务级模块编写似乎是花费昂贵的行为,因此实际设计中常贬低这种做法。但是如果RTL代码不可用,编写一个事务级模型,不仅不会增加消耗,还有利可图的,将节省整个项目大量时间。

       编写一个合适事务级模型相对于编写一个RTL模型只耗费很少一部分时间,因此让设计和验证团队并行工作。事务级模型运行速度也比RTL模型以数量级快很多。使得验证环境,测试开发及调试更快。

       当RTL模型最后有效可用时(available),验证环境中所有单元已经处于非常成熟水平。他们将立即验证设计中各方面功能,针对这些方面达到高功能覆盖。事务级模型的编写及仿真速度更快,因为他们不用处理复杂物理信号及协议。他们能用更高层次事务描述接收,执行并相应事务。他们不需要在事务中交换或处理物理wire中比特搜集序列。但是有能力在系统中用一个pin-accurate事务级模型代替RTL设计模块,使得仿真运行消耗更少的仿真资源,仿真运行更快。

       设计方法学中需要或产生一个设计的事务级模型通常用SystemC作为建模语言。这是一个非常好选择,没有理由选用其他建模语言,因为SystemC模型相对于执行功能验证,能用于其他contexts中。但是对这些设计方法学而言,编写一个事务级模型仅仅是加速验证环境的开发,而不需要在其他context中重用这些模型,SystemVerilog同样也是一个优秀建模语言选择。SystemVerilog提供了高层构造的所有需求,使得事务级模型编写更加高效。

       3.6 小结
       当与一个合适的方法学相结合,SystemVerilog提供了建立一个完整系统级ESL验证环境所需要所有constructs和features。《VMM forSystemVerilog》描述了几种不同形式环境,能用于验证设计的事务级模型,RTL设计,以及嵌入式软件。几乎上100条用于系统级和软件验证的建议和指导方针将作者的专家意见转换成通往成功的具体步骤。
文章最后部分将讨论采用推荐的验证方法学策略,包括《VMM forSystemVerilog》中定义的标准模块建立,断言库使用。这些库涉及到文章中讨论的基本方法,包括XVC,XVC管理器,软件验证。

       4 SystemVerilog验证方法学:采用VMM

       4.1 采用验证方法学
       先进验证技术并非总是容易采用的;验证团队不能因为只要是新东西就去盲目尝试。事实上,随着设计规模及复杂度不断增加,旧方法因不再实用而淘汰。基于此现象带约束随机激励产生,覆盖率驱动验证,断言,形式分析等技术从理论上转向实际应用。实际项目中这些技术也成为必需。

       当大部分SoC项目存在大量设计缺陷时,许多验证团在可能出现问题之前就已经清楚认识到项目挑战性以及旧验证方法缺陷。解决方法是尽可能快采用VMM方法学。SystemVerilogVMM验证方法学应运而生。

       通过此书可知,在验证中将涉及到两种形式的验证手段。一是参考方法学支持普通验证方法学。比如:工程师在不熟悉加入断言(assertions)概念下,能不依赖于他们可用的任何assertion语言或库而熟悉此方法。不论用哪种语言,类似采用带约束随机激励生成需要熟悉约束的角色,内容。

       VMM方法学中面向对象特点,对某些想用此方法学工程师来说是很大障碍。封装,类,继承,扩展,以及面向对象编程等验证环境的考虑远大于传统验证平台。幸运的是,很多工程师有诸如C++,Java语言方面经验,因此对他们来说只需要将高级语言中面向对象概念应用于验证领域。

       另一种采用形式是用此书中对SystemVerilog规范技术方法。使用书附录中定义的模块库而非常方便自动化。当然明白普通验证概念有助于SystemVerilog方法学使用。同时SystemVerilog库提供的范例也能帮助用户明白这些概念。比如:断言检查(assertion-checker)库;基类(base-class)库提供了面向对象验证很好范例。

       SystemVerilog VMM例出了四个库,使其使用更加方便快捷。
       VMM标准库,一套SystemVerilog验证平台及有用的类。
       VMMchecker库,一套SystemVerilog断言检查。
       XVC标准库,一套SystemVerilog系统级验证单元及有用的类。
       软件测试架构,一个用于软件验证的C库。

       利用这些库能够使开发团队快速容易建立起他们的验证环境。从使用这些库用户反馈,在项目早期使用能至少节约几个月时间。而且随着厂商提供的VMM验证单元。标准库采用使得不同用户,跨项目之间能够建立平台一致性。

       4.2 VMM提供四类库

       4.2.1 VMM标准库
       SystemVerilogVMM定义了一个分层结构验证平台,能够支持先进验证及方便重用。验证平台的控制以及测试用例执行都包括在一系列已定义好步骤中。这些步骤受控于系统虚拟函数(virtualmethods)。VMM标准库定义了vmm_env基类(baseclass),用于控制每个测试用例运行,如图10所示:


Figure 10 vmm_env类定义一系列virtual methods用于执行测试用例


       图10所示过程包括产生测试用例配置;建立验证平台;复位DUT;配置DUT;测试执行以及最后执行停止并输出报告。vmm_env基类中virtualmethod提供了针对每个步骤基本结构,同时很多methods可根据被扩展去执行DUT相关行为。
继承事业,薪火相传
返回列表