System Verilog视频学习笔记(11)- Functional converage

来源:互联网 发布:统计年鉴数据不一致 编辑:程序博客网 时间:2024/06/02 05:19

Functional converage(功能覆盖率)

内容来自启芯-System Verilog视频

============================================================== 

目录结构:

1、验证流程

2、计算功能覆盖率

3、功能覆盖率建模

4、总结

 ==============================================================

本章目标:

1、定义功能覆盖结构

2、指定覆盖率采样机制

3、定义采样的信号和变量

4、定义采样值代表的功能

5、使用参数化使覆盖率实例唯一

6、使用覆盖率分配定义覆盖率结构

7、动态监测testcase

 

1、验证流程

图1、验证流程

验证目标何时达到?

如何切换到corner-case验证?当测试例子都到达预期目标时,设计边界用例

什么时候做直接测试?

图2、Coverage位置

图3、组合逻辑的验证例子

完备输入和输出,定义需要采样的信号

图4、功能覆盖率例子

(1)通过covergroup关键字,

coverpoint定义比特输入,比特输出

cross,交叉连接

option.goal验证目标

endgroup

(2)实例化

(3)查询结果

2、计算功能覆盖率

图5、计算覆盖率

3、功能覆盖率建模

状态和状态转移生成

图6、例子

对状态和状态转换建模。

coverage bin生成:VCS内自动生成crosscoverage bins,如cross sa;

采样:(1)指定采样事件,@([specified_edge] signals | variables)。(2)使用系统函数 cov_object.sample()更新采样比特。

控制覆盖率过程$get_coverage()

coverage 属性:可在coveragegroup等处定义。

主要的coverage选项

         (1)at_least(1):至少一次覆盖

         (2)auto_bi_max(64):自动生成最大数

         (3)goal(100):100%覆盖率

         (4)wight(1):coverage比特层数

         (5)per_instance(0):每个instance对覆盖率的共享率

coverage结果报告:文件转换成html、txt和仿真工具自动生成的格式

参数化coverage group

图7:、参数化例子

通过传递参数方式定义。

 

4、总结

本节介绍了功能覆盖率建模过程。

covergroup

coverpoint:采样信号定义

cross:信号关系

endgroup

实例化,采样、覆盖率统计

0 0
原创粉丝点击