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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: doogo

[原创] 《UVM实战》24小时问答

[复制链接]
发表于 2014-9-21 17:19:52 | 显示全部楼层
好东西
发表于 2014-9-21 20:28:56 | 显示全部楼层
回复 45# doogo


   恩 MAC还是比较好的,是IEEE802.3标准中的内容,不存在所谓侵权的问题,无论如何,祝贺楼主
发表于 2014-9-22 00:00:37 | 显示全部楼层
谢谢强哥之前对于我的port端口的问题的答复!
同时,我看完你的答复,还是有个小疑问,可能是我对UVM理解不够深吧: 书中P101对于blocking和nonblocking的解释:monitor有2种处理方法:1.是阻塞的(这个好理解) 2.是非阻塞的,“不等待,直接返回”这个"直接返回",是返回什么? 返回put/get函数的结果? 但是我看代码清单4-9中put函数定义的是function void B::put( );这个void,如果返回了,也不会有什么影响啊。 这个地方不太明白。 又麻烦强哥了。。。
发表于 2014-9-22 09:02:02 | 显示全部楼层
非常好的建议,如果能指出一些细节就更好了。
发表于 2014-9-22 09:08:00 | 显示全部楼层
一共有几卷呀?
 楼主| 发表于 2014-9-22 10:43:59 | 显示全部楼层



哦,这里是这个样子的。
如果要体现“阻塞”这个特性,那么代码4-9中的put要实现成一个task,在这个task中可以:


wait(b_queue.size() == 0);
b_queue.push_front(tr);


其实b_queue是B中的一个queue。这样相当于在b_queue为空前一直阻塞在那里。
现在代码4-9中的put是实现成了一个函数。
但是无论是函数还是任务,对于monitor来说都是不可见的。它唯一能够做的事情是等待这个任务/函数返回。从而体现出阻塞的特性。
如果是非阻塞型端口,那么put只能定义成一个函数,由于函数不消耗仿真时间,所以就是非阻塞的。
对于既可以定义成任务,又可以定义成函数的情况,我在书中都以“函数/任务”做了说明,否则都直接说明是“函数”
 楼主| 发表于 2014-9-22 10:44:36 | 显示全部楼层


一共有几卷呀?
msim578 发表于 2014-9-22 09:08



如果时机成熟,后面会有卷2。卷1的内容对于熟悉UVM来说足够了。
发表于 2014-9-22 12:25:35 | 显示全部楼层
卷二主要写啥?要是能多几个项目的例子就比较好啦
发表于 2014-9-22 16:21:54 | 显示全部楼层
回复 1# doogo

还想请教一个问题:
      在基于UVM RAL的验证环境来实现寄存器访问时,除了读写类型,地址,数据等这些基本的总线信息之外,有些总线可能还有些sideband信号(比如AHB的hprot),但是uvm_reg_adapter的reg2bus和bus2reg函数参数传递的是uvm_reg_bus_op这个结构体(里面只有kind,addr,data,byte_en等信息),那这些sideband信号怎样才能加进去呢?(我想实现的目标就是我在调用寄存器的读写函数read/write的时候能控制driver的hprot信号)
发表于 2014-9-23 03:40:14 | 显示全部楼层
great job !!!!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-18 19:20 , Processed in 0.020969 second(s), 6 queries , Gzip On, Redis On.

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