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

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

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

2.3结果检查      虽然带约束随机激励产生方式能快速生成很多测试情况,还需要对结果进行检查以确保设计对所有用例执行结果正确。结果检查分为数据检查和协议检查。数据检查依赖于测试平台能力。需要测试平台记录被测试设计输出结果顺序变化情况。对于要覆盖所有可能的情节来说,可变性相当重要。

      测试平台中建立结果检查功能,是产生测试平台中遇到的一个难点。SystemVerilog本身具有的语言结构能有助于测试平台检查中激励与响应通信执行。通过这种方法统计可能输出的变化,从而帮助管理预期结果。

      对于所有输入数据组合,响应检查器中包括数据覆盖记录,确保合适输出组合被接收到。验证工程师分析覆盖数据并评估当前产生输入激励组合是否验证了所有可能输出。协议检查主要在验证中对行为监控,以及时序关系的建立。一些高层次协议主要在SystemVerilog验证结构中进行规范定义并在验证平台中监控。其他关于设计意图方面应用规范协议检查主要通过设计中及其接口定义的SystemVerilog断言进行检查。

      当断言违反时,大部分验证工程师认为报告一个直接或带约束的随机测试通过是不合适的。因此,《VMMfor SystemVerilog》讨论如何访问验证环境中被检查单元结果的方法。这种方法提供了断言与所有验证环境之间连接。

      2.4覆盖率驱动验证执行
      每一个验证方法学在运用中至少都会包含一些覆盖率驱动。总有一些目标必须达到,如果一些特殊目标测试无法执行,要么调整测试用例,要么产生新测试用例。甚至通过观察波形来进行简单手工测试。虽然这样测试覆盖率记录和分析比较盲目,可信度不高,但也是基于覆盖率驱动。

      《VMMforSystemVerilog》能够让用户建立一个高效验证环境,此环境主要依赖于测试平台自动化,断言和覆盖率测量从而提高验证生产力。验证生产力主要包括迅速产生更多测试用例能力及避免产生冗余测试情况的能力。

      如果一个新产生测试用来测试以前已经测试过的相同功能(由此会有相同的功能覆盖率),那么这样测试用例不值得加入到验证中。功能覆盖率能让用户知道哪些功能还没有被执行到,从而调整测试用例,集中精力在未覆盖到部分。《VMMfor SystemVerilog》描述如何通过功能覆盖率更快达到验证目标。

      SystemVerilog非常适合于功能覆盖率。功能类似于SystemVerilog断言时序(Temporal)覆盖特性能用于抓住设计中深层次corner-case条件。高层次覆盖点能通过覆盖组(covergroups)进行定义规范。这种方法能跟踪定义值范围以及不同定义值之间组合情况。此能力尤其适合于监控存储器地址范围,数据包内容,以及设计或验证平台中其他多比特信号
《VMM for SystemVerilog》描述了很多使用,包括:temporal覆盖特性;覆盖组(covergroups),用交叉覆盖指定覆盖点,以及用传统代码覆盖测量方法跟踪这些点。SystemVerilog通过统一语言方法,将代码覆盖,功能覆盖,断言覆盖用一种语言进行定义。

      2.5使用形式分析
      《VMMforSystemVerilog》不仅仅涉及到以仿真为基础的验证技术,还包括形式分析验证技术。丰富的SystemVerilog断言结构能将断言目标用于仿真,形式分析,或包括这两者的规范定义。《VMMfor SystemVerilog》提供了在这些仿真或形式分析验证中编写断言的方法。

      形式工具能分析每个断言,并尽力证明此断言安全,任何测试情节下都不会发生告警。这一步骤不需要编写任何仿真测试用例。由于以后RTL设计改变而引入缺陷使证明无效,断言都不应该被删除。被证明的断言通常不需要进行仿真。如果断言失败,形式工具产生一个反例说明断言如何失败。反例展示一个设计或断言中缺陷,或证明输入的约束不充分,而限制了合法仿真序列分析。

      一些形式分析也能用于统计直接或随机仿真测试中无法击中的temporal覆盖点。此形式工具首先尽力测定覆盖目标是否曾经达到。如果没有,将指示出设计中冗余或无法达到的逻辑,并更新覆盖率数据库结果。如果能达到,一个输入测试用例将产生。如果此测试符合合法激励(因为输入约束充分),则带断言的测试用例被执行,验证设计行为同时覆盖率数据结果被更新。

      2.6产生可重用验证IP
      分层验证平台结构以及《VMMfor SystemVerilog》其他特点自然适合产生可重用VIP(verification intellectualproperty)。VIP包括比如事务级模块,发生器(generators),处理器(transactors),检查器(checkers),断言(assertions),以及分层验证平台中其他部分。必须很方便用于其他不同项目中。《VMMfor SystemVerilog》指导方针是让开发者输出项目内可重用或能商用的VIP。

      具有与《VMMforSystemVerilog》相适应的验证环境SOC开发团队能非常方便快捷采用项目内或外部VIP,从而在项目中节省大量时间及资源。图6是分层验证平台中如何使用VIP单元。如果一个具有特殊接口验证单元只要封装合适,在以后有相同接口芯片中可重用这个VIP。


Figure 6 具有通用接口协议验证IP重用到新项目


      2.7小结
      当与合适的方法学相结合,SystemVerilog能提供建立高效验证环境所需要所有结构和特点。这样验证环境包括带约束随机激励产生,覆盖率驱动验证,以及断言。《VMMfor SystemVerilog》书中展示了验证方法学能最好利用语言的特点能力,增加先进芯片设计一次流片成功机会。
继承事业,薪火相传
返回列表