ghong6003的个人空间 https://blog.eetop.cn/1430538 [收藏] [复制] [分享] [RSS]

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

日志

The advance of SystemVerilog

已有 1522 次阅读| 2018-5-26 21:53 |个人分类:Verification|系统分类:芯片设计

1. 回调(P237)
(1)为测试平台提供一个“钩子”,以便测试程序在不修改原始类的情况下注入新的代码;
(2)注入错误,放弃事务,延迟事务,将事务跟其他事务同步,将事务放进记分板,收集覆盖率数据等;
(3)使用方法:
1)建立Driver_cbs类,其中有virtual task pre_task; post_task;其中的task的参数使用引用调用或者传入Driver的句柄。
2)在Driver中例化Driver_cbs cbs[$], 在Driver中定义task run(), 在run中,定义foreach(cbs[I]) cbs.pre_tx(tr,drop), 定义transmit(tr); 定义foreach(cbs[I]) cbs.post_tx(tr,drop);
3)  建立Driver_cbs的继承类,修改其中的pre_tx或者post_tx;
4)  在program automatic test 的initial 中调用env.drv.cbs.push_back(dcd),然后调用run;

2.blueprint(P220)
先构建一个对象的蓝图,然后修改其约束,甚至使用一个扩展对象替换它。然后随机化这个蓝图,接着复制这个对象,并将拷贝值发送给下游的事务处理器。
使用方法:
1)在Generator中定义Transaction blueprint,然后在new函数中blueprint=new()例化。在run函数中assert(blueprint.randmoze()); tr=blueprint.copy();然后gen2drv.put(tr);
2)  在Environment类中例化Generator,并执行三个阶段:创建(Build),运行(run)和收尾(wrap_up)等,在run 中gen.run()  drv.run()
3)  创建Transaction 类的继承BaseTr,并修改其约束等,建立新的类型;
4)在program automatic test中的initial 中 例化BaseTr bad=new();并替换blueprint: env.gen.blueprint=bad.

3.虚接口
使用XMR(跨模块引用)连接接口和测试程序
在program automatic test中virtual bus_ifc bus=top.bus
为什么要使用虚拟接口?
1)虚拟接口是唯一可以桥接动态对象和静态模块、接口的一种机制。
2)虚拟接口可以program automatic test中把接口合并称数组引用。

4.信箱的使用

5.覆盖率的使用

6.交叉覆盖率

7.覆盖率的种类
代码覆盖率,功能覆盖率,漏洞率,断言覆盖率

8.覆盖组的触发
(1)在driver中使用覆盖组的回调函数;
(2)使用事件进行触法;
covergroup name@(trans_ready)
(3)使用断言进行触发;
covergroup name @($root.top.m1.write_event) 

9●注入错误的方法
         (1)在driver中使用回调函数,在Pre_tx中注入错误激励…
         (2)在generator中使用blueprint,在test中重新赋值blueprint
         (3)在test中使用randomized with 注入错误激励

10.Verilog 的不足:
1)verilog 中的 initial、task、 function多用于验证。verilog在验证方面最大的问题就是功能模块化、随机化验证上的不足。这导致更多的是直接测试用例(dircet test case).
2)可以把IC笼统的分为两类:算法需求比较少的和算法需求非常复杂的,复杂的算法会在ve ri lo g编码前使用C或C++建立算法模型(reference model),验证需要将算法模型的输出与DUT的输出进行对比。
3)System Verilog 是Verilog的扩展集,完全兼容Verilog;
4) SV具有面向对象语言的特性:封装、继承、多胎。同时还提供了独有特性:约束,功能覆盖了,邮箱等
5)SV提供了DPI接口,可直接把C或C++函数导入SV平台,SV本身提供了内存管理机制,还支持系统函数$system,可以将C/C++编译的参考模型编译成可执行文件,使用¥system函数调用。

点赞

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 1

    关注
  • 3

    粉丝
  • 0

    好友
  • 2

    获赞
  • 1

    评论
  • 1539

    访问数
关闭

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

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

GMT+8, 2024-3-29 02:40 , Processed in 0.016529 second(s), 8 queries , Gzip On, Redis On.

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