在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3637|回复: 6

[求助] 求助:UVM中如何实现两种接口与driver共存?

[复制链接]
发表于 2013-7-11 15:28:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
各位:
      目前正在使用UVM搭建验证平台,遇到一个问题,比如说,要往DUT中发送一帧图像,但是DUT的接口有很多种可能(比如带hs/vs同步信号的,比如没有同步信号,使用valid与ready来同步的,等等)。那么,可不可以在一个package里面同时存在两种interface,两种driver,两种monitor....。还是我需要把它们放在两个PKG里面?
      如果放两个pkg里面,那么,如果有DUT同时有两种接口的话该怎么办呢?
      现在就有点搞不清楚,像这种只需要替换driver,interface和monitor的情况,是否可以直接在使用的时候使用override替换,可是两个driver里面除了interface不一样,里面的task也不一样,这样的情况可以用一个来extends另外一个么?
发表于 2013-7-11 23:38:30 | 显示全部楼层
interface无法重载,task是可以重载的,在两套driver是需要定义两套virtual interface的,在你的top中也需要用宏或者别的方式来区分两种不同的DUT和interface的链接,但是图像包的transaction和sequence应该就是通用的了。
发表于 2013-7-12 13:57:23 | 显示全部楼层
假如核心的protocol是基本一致的,只是接口上略有不同,那么我建议可以使用一个package。
区别和DUT不同接口的方法可以在driver中实现,这里面需要有config的参数来动态配置driver的方法。
 楼主| 发表于 2013-7-12 16:13:07 | 显示全部楼层
回复 2# gaurson

我也是这样想的,奈何动手全是错误。
两个不同的driver该如何区分呢?也是在master_agent中用不同的宏来区分么?我本来想的是driver_B extends driver_A,这样就能在test中直接替换掉,但是后来发现两个driver的task有所不同,一些变量也有所不同。除非我将它们两个修改成使用同样的task名称。
然后还有 driver_B中有driver_A中不同的interface,这个没办法在替换类的时候替换掉呀。。。。还是我想多了,这个不需要考虑?
 楼主| 发表于 2013-7-12 16:16:03 | 显示全部楼层
回复 3# liubin1222

是说把两个driver和两个interface都放到同一个package中么?
发表于 2013-7-13 22:10:41 | 显示全部楼层
如果driver a 和driver b 差别很大的话,为什么一定要 从a 扩展出b呢?都从uvm_driver扩展出来有什么不方便的么?不影响override啊。

实在要复用部分代码的话,把这部分代码放到一个base driver类,然后a和b都从base driver扩展出来就好了?

两个package还是一个package,应该是个人喜好或公司规范的问题吧?我个人会用两个package。

还是不完全理解你的问题,贴几行(伪)代码会好些。
 楼主| 发表于 2013-7-15 17:17:39 | 显示全部楼层
那个,我貌似记得如果要override的话,替换的那个必须是extends自被替换的那个。难道我理解有误?我记得当时一开始我采用的是从同一个父类出来的不同子类来override,结果不对,但是子override父就对了。
    关于package这个问题,我换了一种做法,就是把driver_a等相关的封入package,而需要替换的新的driver_b和monitor_b并不放入package中,但是将它们的函数与driver_a,monitor_a整合成统一的名称和参数,然后分别当做driver_a和monitor_a的子类。然后在tb中对它们进行override。
    这样整了之后就能跑起来了。不知道以后把driver_b和monitor_b都放package中会出现什么问题,待我慢慢试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-20 00:51 , Processed in 0.027264 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表