公制驱动验证

度量驱动验证是一种基于度量集合的方法。它用于提高验证工作的可预见性、生产力和质量。

在简而言之,该方法基于连续执行的四个步骤,直到结果符合假定标准:

  • 规划-创建并形式化包含设计师意图的规格和细节的文件。该文档允许项目经理或领导者跟踪分配给每个里程碑的目标,并对计划中包含的特性进行优先排序。我们称之为核查计划。
  • 构建验证环境- 在此阶段,工程师试图重用现有验证IP和基于约束的SystemVerog UVM或OSVMM环境,以创建涵盖验证计划的验证方案。
  • 测试场景执行- 在此期间,在项目的每个修订版本中执行回归测试。使用ACDB技术捕获代码或功能覆盖等度量标准。结果映射到验证计划中。
  • 衡量并分析过程-这提供了一个清晰的实际项目状态的图像,并将其与关键里程碑进行交叉引用-当Riviera-PRO的覆盖功能非常有用时。

代码覆盖范围

代码覆盖率由设计源代码自动生成。此验证指标并不表明设计的正确性。相反,它度量代码在运行回归测试时是如何运行的。如果覆盖率缺失,则它指示在测试期间未执行的代码或未完成的测试。

Aldec模拟器中提供以下类型的代码覆盖率:

  • 报表覆盖范围- 检查每个可执行语句并计算所执行的次数。
  • 分支覆盖-检查每个条件语句的分支,并统计分支在模拟期间满足的真或假条件。
  • 路径覆盖检查条件语句的执行顺序,并指示是否所有可能的执行序列都已通过测试台验证。
  • 表达覆盖-监视逻辑表达式并指示是否执行了逻辑表达式的所有可能状态。
  • 切换覆盖范围- 监视信号逻辑值更改,并指示测试禁率不正常锻炼的信号。

功能覆盖—断言

断言和覆盖指令指定和验证设计的预期行为。它们直接写入源代码中,以观察一段时间内的信号值。

断言声明必须始终保持某些东西(断言失败意味着设计中的错误)。

Cover指令声明应该发生某些事情(Cover success确认覆盖范围)。

PSL封面指令和SystemVerilog封面陈述是形式断言覆盖范围.在设计系统和定义其验证算法时,属性的规范及其在断言和功能覆盖中的使用是至关重要的。Aldec模拟器支持三种用于此目的的流行语言:

  • SystemVerilog断言(SVA)

    SVA是SystemVerilog的一部分,并在模块绑定级别和行为代码中使用Verilog代码融合。在SVA中写入的验证模块也可以在混合语言模拟器环境中绑定到VHDL组件。断言束默认情况下在Aldec模拟器的高端配置中发货。一旦捆绑包可用,所有相关的图形工具也可以提供:设计中定义的所有断言都可以显示在专用断言查看器中,允许更改单个断言,设置断言断点和添加断言的属性。其他调试工具(如波形查看器或高级数据流),两者都包括强大的调试功能。

  • 属性说明语言(PSL)

    PSL是最彻底的,但易于学习的属性语言。为了帮助它与其他语言共存,它的风格与VHDL、Verilog、SystemVerilog或SystemC代码完美融合。PSL的简单子集(保证模拟的语言部分)甚至包含在最新版本的VHDL标准(IEEE Std 1076)中™-2008). 当前VHDL或Verilog用户最感兴趣的PSL特性是它能够被放置在由验证工程师管理的单独验证单元中,以及直接放置在由设计工程师管理的HDL代码中。

  • OpenVera断言(卵子)

    OVA与Verilog代码的混合比与VHDL代码的混合更好,尽管它可以与两者一起使用。OpenVera被捐赠给了致力于SystemVerilog的Accellera小组,这导致了OpenVera断言和SystemVerilog断言之间的许多相似之处。

功能覆盖范围 - SystemVerilog封面组

CoverGroup覆盖范围是一种功能覆盖的一种形式,可以计算SystemVerilog覆盖模型统计数据。它是一种用户定义的度量标准,用于测量通过运行模拟会话检查的设计规范的百分比。使用生成的刺激,覆盖覆盖覆盖验证已验证有趣的和相关的设计特征(验证计划中列出)。与用于验证设计特征的断言覆盖率相比,覆盖覆盖范围集中在覆盖整个仿真期间接受的相关值。它用于复杂设计的高级验证。

功能覆盖- OSVVM

开源VHDL验证方法(OSVVM)库提供了子程序,以促进OSVVM功能覆盖率在VHDL设计中。此库中包含的CoveragePkg包提供了与SystemVerilog硬件描述语言对应的功能覆盖验证。

功能覆盖 - FSM

有限状态机由一组状态、输入和输出事件以及逻辑条件组成。188金宝慱亚洲基于条件逻辑、输入事件和当前状态的计算返回一组新的输出事件和下一个状态。188金宝慱亚洲FSM Coverage允许用户识别未访问的状态和未评估的转换。FSM组件和覆盖率统计如下:

  • 状态-决定机器输出的内部条件。
  • 过渡- 从一个状态到另一个状态的当前机器状态的变化。
  • 序列-两个或多个过渡的集合。

覆盖数据库-统一覆盖互操作性标准

aldec覆盖数据库(ACDB.)是统一的存储格式,用于多种类型的覆盖数据。ACDB是ALDEC的Accellera UCIS(统一覆盖互操作性标准)要求的实施

在aldec的模拟器中,收集各种覆盖统计数据,可以保存到ACDB中。

保存到ACDB的覆盖结果可以使用ACDB Rank命令进行排名。

多个ACDB文件可以合并为一个。该特性允许检查在不同的模拟会话中生成的统计信息(另外,合并ACDB文件还可以生成报告)。

排名测试结果

保存到ACDB数据库的覆盖率结果可以进行排名。此函数根据单个测试对总覆盖率分数的贡献对结果进行分类。该命令允许将单个覆盖率结果与所有其他结果进行比较,以确定其可用性。成本敏感的参数,如模拟时间和CPU时间,也可以考虑,以确定在最短时间内产生最大覆盖率值的测试运行。acdb rank命令对贡献测试结果的并集进行操作,以生成最全面的总体结果。可以以纯文本或HTML格式创建报告

验证计划

验证过程而不是专注于详细的覆盖结果,旨在满足总体要求并实现更高水平的验证。

要求可用于将各种设计特征和覆盖度量联系在一起,提供优于基本验证方法的优势,专注于检查详细的覆盖结果。

问我们一个问题
X
问我们一个问题
X
验证码图像 刷新验证码
输入错误的数据。
谢谢!您的问题已提交。请允许1-3个工作日为某人回复您的问题。
发生内部错误。您的问题未提交。请联系我们使用反馈形式
我们使用cookies来确保为您提供最佳的用户体验,并为您提供我们认为与您相关的内容。如果您继续使用我们的网站,您同意我们使用cookie。有关Cookie和其他网站信息使用的详细概述,请参阅隐私政策
Baidu