路科验证(Rocker IC)专注于验证系统思想和前沿工程资讯,拥有一支活跃的技术原创团队,著有《芯片验证漫游指南》一书,致力为高校微电子相关专业学生与IC从业人员提供技术食粮。 您可以在手机移动端同步关注微信订阅号“路科验证”或是登录网页www.rockeric.com了解澳门皇冠APP资讯。如果您需要联系我们,请发送邮件至 bin.rocker.liu@intel.com 。

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

上一篇 / 下一篇  2018-01-28 14:29:28 / 个人分类:验证前沿资讯

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


不多说了,完结撒花!!


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

路科验证

路科验证

路科验证(Rocker IC)专注于验证系统思想和前沿工程资讯,拥有一支活跃的技术原创团队,为高校微电子相关专业学生与IC从业人员提供技术食粮。 您可以在手机移动端同步关注微信订阅号“路科验证”。如果您需要联系我们,请发送邮件至 rocker.ic@vip.163.com 或者 bin.rocker.liu@intel.com 。

日历

« 2018-05-26  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 101697
  • 日志数: 185
  • 建立时间: 2016-06-25
  • 更新时间: 2018-05-20

RSS订阅

Open Toolbar
博聚网