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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4096|回复: 8

[求助] UVM验证平台中自动对比

[复制链接]
发表于 2015-1-15 19:10:22 | 显示全部楼层 |阅读模式

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

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

x
在验证平台里面实现自动对比的功能,在reference_model和scoreboard里面各自定义了端口,
reference_model里面负责把transaction包发给scoreboard,但是现在发现scoreboard里面

的端口不能正常接收transaction。在scoreboard里面,有两个并行运行的while(1)语句,分别

如下:

11.bmp


12.bmp


现在只有一个while(1)语句里的actual_port能正常接收数据,原因在哪里,请求解答
发表于 2015-1-15 21:41:54 | 显示全部楼层
scb中用analysis_port比较常见一点,使用write函数更加合适,可以用vcs的gui 跟一下,很快就可以定位到问题了
 楼主| 发表于 2015-1-16 09:18:52 | 显示全部楼层
回复 2# dtyuzhou


   你是说,1. 在scb里面,用analysis_port而不是uvm_blocking_get_port是吧。
2. 用write函数,是写出去的啊,我目前scb里面要用get来接收数据。

请对1和2做一下详细解释,多谢
发表于 2015-1-16 10:49:27 | 显示全部楼层
用put/get也可以。我觉得你需要检查一下,数据源是否ready
发表于 2015-1-16 20:14:34 | 显示全部楼层
回复 3# joeljun


   这两种用法都是可以的,不过一般在scb可能会选择Analysis_port(简称AP)吧,AP是以广播的形式传递的,只要在ref_model中是用ap_port.write(tr)。然后在scb中实现一个write(trans_type tr)的函数即可。AP的方式没有延时,不会阻塞,相对比较简单。blocking的方式会有阻塞,而且一般是一对一的连接,更加适合在处理或者驱动数据的Components之间一对一的传输数据,上层传递过来的数据没有被获取的时候是不能够再put新的数据的。
 楼主| 发表于 2015-1-22 09:43:42 | 显示全部楼层
回复 4# longxigen


   如何识别数据源是否ready ?
 楼主| 发表于 2015-1-22 09:47:38 | 显示全部楼层
回复 5# dtyuzhou

你好,之前你回复的帖子中有这样一句话:   只要在ref_model中是用ap_port.write(tr)。然后在scb中实现一个write(trans_type tr)的函数即可。


后一句没看明白,我们在scb中不是要接收来自ref_model的数据吗,应该用get函数才对啊,怎么还要用到


write函数呢?
发表于 2015-1-22 20:52:19 | 显示全部楼层
回复 7# joeljun


   这个就是AP端口的用法,需要接受数据的组件就例化一个ap端口,然后实现write函数即可,VMM和UVM中都有这个用法,具体的你可以查一下说明。
发表于 2015-1-29 12:54:20 | 显示全部楼层
回复 8# dtyuzhou
是因为对于analysis_port来说,analysis_port.write(xxx)会调用与之连接的analysis_imp的write()方法,所以imp接口的write函数必须要实现
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-1 11:58 , Processed in 0.029064 second(s), 9 queries , Gzip On, Redis On.

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