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

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

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

1.4覆盖率驱动验证      贯穿验证过程中的覆盖率测量数据有两方面重要作用。一方面能明确指出设计中还没有被充分验证到的部分,确定验证过程中空洞。通过回答下一步如何去做这样的关键问题,有助于指引验证需要努力的方向。比如,需要补充编写哪些直接测试用例,如何改变参数用于带约束的随机测试。

      另一方面,覆盖率测量是验证已经足够充分,可进行流片的指示器。覆盖率不仅仅简单提供是或否这样结果。覆盖率增量提升,用于评估验证进度,增加开发团队进行流片时间点的信心。事实上,覆盖率是一个非常苛刻指标,因此大部分先进,自动化方法都采用基于覆盖率驱动的验证,覆盖率指标的指导作用贯穿整个过程中每一步。

      覆盖分为两大类:代码覆盖和功能覆盖。代码覆盖包括多种形式(行覆盖,翻转覆盖,表达覆盖等),是一个典型自动化过程。能告诉在一个特定仿真运行中,所有RTL设计描述代码是否被执行。一个具有可信度验证方法中,代码覆盖是必需的,但不是充分条件。相对应的,功能覆盖提供一个外在度量方法,确定设计所需要功能有多少被真正正确实现。通过运用交叉覆盖(cross-coverage)技术测试覆盖组合情况,能更进一步提高验证信心。项目中,重要功能覆盖以及交叉覆盖点应尽早明确,并包括在验证计划中。

      填补覆盖测量中确定的空洞是覆盖率驱动验证过程中核心部分。通过定义,当100%覆盖率达到时,能对芯片最终tapeout提供足够信心。SystemVerilog通过覆盖特性(property)用于低层次覆盖点,覆盖组(group)用于跟踪高层次覆盖,并支持交叉覆盖。

      《VMMforSystemVerilog》讨论在验证过程中不同阶段运用不同方法提高覆盖。图2带约束的随机验证过程图表,说明了更多细节。


Figure 2 自动及人工验证技术运用在验证不同阶段


      此过程第一部分是建立测试平台环境。通常在验证环境建立前不会进行芯片级或系统级测试。然而在此期间,如果设计者编写RTL代码,他们可以并行进行模块级直接测试或形式分析。一旦验证环境准备就绪,开发团队可以开始运行带约束的随机测试,产生第一次覆盖结果,这个阶段测试用例对设计覆盖范围明显很宽。随着未覆盖到点减少,需要有更多分析来填补空洞。验证工程师注意力转向特殊corner-case覆盖点,小心改变约束条件及参数,产生新测试用例来击中这些点。

      直接测试在覆盖率驱动验证环境中也具有重要角色。虽然带约束随机测试是主要方法,对于填补一个特定覆盖点来说编写一个直接测试用例比用带约束的随机技术自动生成一个测试更容易。测试目标是通过多种方法使定义的覆盖率达到100%。

      设计验证过程中,SystemVerilog作为统一设计及验证语言,提供所有覆盖信息支持。《VMMforSystemVerilog》扮演所有覆盖形式执行角色,同时说明这些测量如何被用于验证过程中以度量验证完备性,并指明下阶段验证方向。

      1.5断言
      验证环境中可增加断言来加强验证环境能力。断言描述了设计意图。理想情况下,当设计者编写RTL时,用断言来证明设计行为如何达到需求,研发人员用断言描述设计行为及相邻连接模块接口需求。断言能用于对设计单元低层次描述,规范其应该具有的行为,也能用于贯穿整个设计中端到端所规范的信息。

      断言可通过多种方法指定,包括用普通RTL表达式,在硬件验证语言中专门的陈述。SystemVerilog中内置有断言结构,可以在验证环境或RTL设计本身中声明。

     SystemVerilog断言通过三个重要方面加强验证:

      "提供最初设计者功能意图文档。如果设计被另一个设计者重用,这将非常有用,可置于一个设计库中供以后使用,或作为商业IP产品。

      "直接测试或随机测试中,仿真器支持SystemVerilog断言结构,仿真中运行断言。仿真中断言增加了内部行为可观测性,提高调试效率。

      "形式分析工具能读SystemVerilog断言,通过数学方法证明每个断言从不告警,或者发现一个反例说明断言如何会失败。这将使仿真中断言很容易转换到更广泛验证,通过形式分析增加tapeout的信心。

      通过图3说明,断言对验证过程中很多部分都有影响。断言除了在仿真中运行或用于形式验证,一些形式断言能够被映射到硬件中,在仿真加速器,emulators,基于FPGA原型,或者最终SoC中运行。断言也能提供覆盖率测量,并能与其他形式覆盖率相结合。


Figure 3 断言是验证重要组成部分


      SystemVerilog提供单一断言规范机制,与多种工具工作,使断言成为验证方法学中重要一部分。《VMMforSystemVerilog》提供了用于仿真(simulation,),模拟(emulation),形式分析中断言的编写指导方法,同时指导如何在多种验证工具中最大化利用断言优点。
继承事业,薪火相传
返回列表