指标驱动的验证

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

简而言之,该方法基于连续执行的四个步骤,直到结果满足假设的标准:

  • 规划-文档的创建和形式化,其中包含规范和设计师意图的详细信息。该文档允许项目经理或领导跟踪分配给每个里程碑的目标,并对计划中包含的功能进行优先级排序。我们称之为核查计划。
  • 构建验证环境-在这个阶段,工程师尝试重用现有的验证ip和基于约束随机的SystemVerilog UVM或OSVMM环境,以创建包含验证计划的验证场景。
  • 测试场景执行-在此阶段,对项目的每次修订都执行回归测试。代码或功能覆盖率等指标是使用ACDB技术获取的。结果被映射到验证计划中。
  • 测量和分析过程-这为实际项目状态提供了清晰的画面,并将其与关键里程碑进行交叉引用——这也是Riviera PRO的覆盖功能非常有用的时候。

代码覆盖率

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

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

  • 报表覆盖范围—检查每个可执行语句并计算它被执行的次数。
  • 分支机构覆盖率-检查每个条件语句的分支,并统计分支在模拟期间满足的真或假条件。
  • 路径覆盖-检查条件语句的执行顺序,并指示是否所有可能的执行序列都已由测试台验证。
  • 表达式覆盖率-监视逻辑表达式并指示是否已执行逻辑表达式的所有可能状态。
  • 切换覆盖-监控信号逻辑值的变化,并指出信号没有被测试平台正确执行。

功能覆盖-断言

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

断言声明必须始终保持某些内容(断言失败意味着设计中存在缺陷)。

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

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

  • SystemVerilog断言(上海广电)

    SVA是SystemVerilog的一部分,可以很好地与Verilog代码混合在一起,无论是在模块绑定级别还是在行为代码中。在混合语言模拟器环境中,用SVA编写的验证模块也可以绑定到VHDL组件。断言Bundle默认在Aldec的模拟器的高端配置中提供。一旦捆绑包可用,所有相关的图形工具也可用:设计中定义的所有断言都可以显示在专用的断言查看器中,该查看器允许更改单个断言的属性,设置断言断点,并将断言添加到其他调试工具(如波形查看器或Advanced Dataflow)中,这两种工具都包含强大的调试功能。

  • 属性规范语言(PSL)

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

  • OpenVera断言(OVA)

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

功能覆盖- SystemVerilog覆盖组

Covergroup Coverage是Functional Coverage的一种形式,它计算SystemVerilog覆盖模型统计数据。它是一个用户定义的度量,用于度量通过运行模拟会话检查的设计规范的百分比。Covergroup Coverage验证使用生成的刺激物观察到的有趣和相关的设计特性(在验证计划中列出)。断言覆盖(Assertion Coverage)用于验证设计特性,与断言覆盖相比,Covergroup覆盖侧重于覆盖整个模拟过程中接受的相关值。用于复杂设计的高层验证。

功能覆盖-OSVVM

开源VHDL验证方法(OSVVM)库提供了便于实现OSVVM功能覆盖在VHDL设计中。此库中包含的CoveragePkg包提供了与SystemVerilog硬件描述语言对应的功能覆盖验证。

功能覆盖- FSM

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

  • 状态-决定机器输出的内部条件。
  • 过渡-将当前机器状态从一种状态更改为另一种状态。
  • 序列-两个或多个过渡的集合。

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

Aldec覆盖资料库(ACDB)是几种覆盖数据的统一存储格式。ACDB是Aldec公司对Accellera UCIS(统一覆盖互操作性标准)要求的实现

在Aldec的模拟器中,可以收集各种覆盖统计信息,并将其保存到ACDB中。

可以使用ACDB rank命令对保存到ACDB的覆盖率结果进行排序。

多个ACDB文件可以合并为一个。此功能允许检查在不同模拟会话期间生成的统计信息(另外,报告生成可用于合并的ACDB文件)。

测试结果排名

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

核查计划

验证过程的目标不是关注详细的覆盖结果,而是满足总体需求并实现更高级别的验证。

需求可以被用来将不同的设计特性和覆盖率度量联系在一起,提供了相对于着重检查详细覆盖率结果的基本验证方法的优势。

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