路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

大象终于要被装进冰箱了,学会SV也只差一步。完结撒花!

已有 2129 次阅读| 2018-1-28 14:29 |个人分类:验证前沿资讯|系统分类:芯片设计

在上一期的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 grouprouter_cov)的定义。

4.在这个cover group内部

   。根据sada来创建coverpoint groups。

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


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

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


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

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

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

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

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

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

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

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



至此,所有Lab都已经完成啦。点击左下角的阅读原文,即可查看所有要用到的代码。


稍微总结一下,从开始决定翻译要这个SV Lab给大家,到现在全部更完过了快两个月。在这两个月中,西安也从炎炎酷暑变成了秋风萧瑟,但是小编还是一只小菜鸟,说来真是非常惭愧。

刚开始觉得这是路科验证的为数不多的入门系列连载,也是对这个系列充满了期待。然而第一期的有认真准备的先导篇还是扑街了,也为后面的惨淡定下了基调。于是小编的封面和排版也逐渐变得将就,甚至有想过中断去更新一些其它的文章。还好,最终还是把这些都更新完成了,也因此知道了坚持一件反馈度不高的事情后面的艰辛。

而路桑的UVM书在这里已经更新了一年多,平均每周两三篇的量,而且里面的内容也都是很系统性的原创并且难度会高很多。此外路桑又开始准备一套系统而完整的芯片验证课程体系,也每周在西电一上就是四个多小时。不由得越来越佩服路桑的专业和坚持,也希望努力终有回报,路科验证会越来越好。


不多说了,完结撒花!!


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 05:02 , Processed in 0.022165 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部