路科验证官网:路科验证 - 专注于数字芯片验证的系统思想和前沿工程领域

EETOP路科首页: EETOP - 路科验证 - IC验证培训

CSDN路科首页:CSDN - 路科验证 - IC验证培训

分享给微电子相关专业新生:微电子新生入坑指南

在上一期的Lab5中,我们将验证平台更为规范化。今天的Lab6的学习目标是:

  1. 实现功能覆盖率从而可以决定仿真何时结束。

在lab5中我们还遗留了一个问题:究竟发送多少数据包才能测试到所有输入端口和输出端口的连接? 根据我们已有的随机激励代码并不能解决这个问题。你需要引入功能覆盖率(functional coverage)。

在这次的lab中,你将会给scoreboard类中添加功能覆盖组件。这个功能覆盖率可以来衡量你的testbench的测试进度,并且当你的testbench在完全检查到了所有输入端和输出端的连接后终止仿真。

任务一.在scoreboard类中创建一个covergroup

在SV中引入功能覆盖率要做的的第一件事:就是定义coverage group。在coverage group中,coverage bins,update event,timing 和coverage goal 都应该被定义。

应该给每一个输入端和输出端都创建coverage bins。然后,cross 所有输入端和输出端的coverage bins。

1.用编辑器打开Scoreboard.sv文件。

2.添加两个新的类属性。

bit[3:0] sa,da; //functional coverage properties

3.在这两个属性的声明之后,声明一个对cover group(router_cov)的定义。

4.在这个cover group内部

。根据sa和da来创建coverpoint groups。

。在两个取样group上来创建 cross bins(这个cross coverage是我们在寻找的real 覆盖率信息。)

任务二. 修改new()来构建coverage对象

1.在new()的结构体中,构造router_cov。当完成后,covergroup的定义应跟以下一样。

任务三:为了覆盖率修改check()

1.在方法check()中,添加一个新的真实变量 coverage_result(这个数据类型一定是real,因为功能覆盖率的结果是作为真实意义(real values)返回的。)。将会在这个变量中存储跑出的功能覆盖率 (%)。

2.在pkt2send和pkt2Cmp的比较成功之后,设置类变量sa和da来衡量在pkt2send对象中的值。

3.接着,调用router_cov.sample()来触发功能覆盖率bin的更新。

4.调用$get_coverage()来重新获取更新后的功能覆盖率的值,并将他们存储在coverage_result中去。

5.修改$display()中的语句,使其可以打印覆盖率(%)。

6.将if语句修改为:if 覆盖率到达了100%作为event flag来触发DONE的发生。

7.保存和关闭scoreboard.sv文件。

至此,所有Lab都已经完成啦。扫描二维码关注路桑的公众号,即可查看所有要用到的代码。

不多说了,完结撒花!!

IC验证培训——实战SV验证学习(lab6)相关推荐

  1. IC验证培训——实战SV验证学习(lab5)

    路科验证官网:路科验证 - 专注于数字芯片验证的系统思想和前沿工程领域 EETOP路科首页: EETOP - 路科验证 - IC验证培训 CSDN路科首页:CSDN - 路科验证 - IC验证培训 分 ...

  2. IC验证培训——实战SV验证学习(lab1)

    路科决定给大家介绍更多与验证入门相关的知识,因此准备把Synopsys公司的一个十分适合新手的SV实验介绍给大家.在上一期的先导篇中我们介绍了验证在IC行业中的地位,验证的工作内容和验证平台的大概结构 ...

  3. IC验证培训——实战SV验证学习(lab3)

    在上一期的Lab2中,我们拓展了测试平台并从一个输入端向一个输出端发送了数据包.今天的Lab3的学习目标是: 1.构造一个从路由器输出端进行取样的监视器(Monitor). 2.构造一个可以验证路由器 ...

  4. 实战SV验证学习(lab4)

    在上一期的Lab3中,我们创建了TB所需的组件,如Monitor和Checker.今天的Lab4的学习目标是: 1.将数据信息封装进入Packet类中 2.利用随机化(randomization)在p ...

  5. IC验证培训——SV Interface 入门指导

    路桑的个人网址:路科验证 -IC验证培训-数字芯片验证 当涉及到验证时,接口可能是SystemVerilog语言中经常用到的部分.接口广泛的应用在静态的被测设计(DUT)和动态的测试平台之间.本文介绍 ...

  6. IC验证培训——SystemVerilog通用程序库(上)

    路桑的个人网址:路科验证 -IC验证培训-数字芯片验证 作为许多验证工程师的首选语言,SystemVerilog其实并不是专门为验证设计的语言,它还是一种硬件描述语言和通用的编程语言.尽管System ...

  7. IC验证培训——SystemVerilog通用程序库(下)

    路桑的个人网址:路科验证 -IC验证培训-数字芯片验证 五.类方法还是包函数? 我们最初的直觉是将svlib作为一组SystemVerilog类呈现给用户. 我们假设由一个类来表示一个正则表达式,另一 ...

  8. IC验证培训——SV通用库共享

    (一)摘要 你已经编程了多少次看门狗定时器,让它在事件没有在限定时间内发生时触发?你曾经是否想过当数据在计分板中不匹配的时候用一个函数来显示多一点的信息,而不仅仅是在出错地方的那一条信息?设计验证工程 ...

  9. IC验证培训——SystemVerilog与UVM,IC验证线上培训九月澎湃将至

    ​ 路科验证精品线下培训 为响应全国各地心心念路科验证培训的路粉们,路科将在9月1日进行线上培训,线上报名方式如下: 手机安卓端(暂不支持iOS)可在[腾讯课堂]APP搜索"路科验证&quo ...

最新文章

  1. 单点登录系统(SSO)和Session共享解释
  2. 图解机房空调制冷系统
  3. android 微信缩小通话界面_安卓如何做出微信那样的界面仿微信“我”的界面2/5...
  4. sql学习笔记---公用表达式(CTE)
  5. query登录linux命令,在Linux系统中使用sqlcmd命令连接与查询SQL Server
  6. php 输出数据库取出来的html源码 正常显示解决,替换显示数据库中的html代码
  7. mysql安装包提示选项_Windows操作系统安装MySQL解压版
  8. iis如何连接mysql_iis怎么连接数据库
  9. LinkedIn开源数据发现和管理工具 WhereHows
  10. Hadoop HDFS命令
  11. 读书笔记2014第12本:《创新者的窘境》
  12. 前序、中序、后序遍历的基础详解
  13. unity 环境光、模型、材质发绿,绿的发光
  14. 谈谈对 Database Plus 认识与畅想
  15. 如何用css实现一段文字的两端对齐和分散对齐
  16. Slider Revolution 轮播滑块Wordpress插件下载
  17. DirectShow 09 - 音视频捕捉
  18. 梁漱溟:做学问的八层境界
  19. shell在xcode中涉及到的关键字
  20. 限期解除!要跟乱七八糟的口令说拜拜了

热门文章

  1. 我为什么不是清华的学生
  2. 制造企业如何通过APS智能排产进行生产计划规划?
  3. RDPCrystal EDI SDK 10.0.4.X Crack
  4. 再见, Python, 你好, Julia
  5. 第2章构造函数语义学读书笔记——深度探索c++对象模型
  6. python的难点在哪里_python厉害在哪里?看看python大牛怎么说
  7. 由参数方程所确定的函数的导数
  8. SAP-License-3种方法帮您有效减少License许可证授权支出
  9. 【分享-一键在线抠图】在线免费去除图片背景
  10. 前端参数用MD5加密