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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: doogo

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

[复制链接]
发表于 2014-11-17 12:14:00 | 显示全部楼层
受益良多
希望大大的第二冊早日出版.....期待期待....
 楼主| 发表于 2014-11-17 12:52:09 | 显示全部楼层



不好意思,这部分代码是几年前看的了,有点记不太清楚了。刚才仔细看了下

1、create函数最终会执行如下的代码:
     cfg = new("my_config");
     cfg.set_name("uvm_test_top.cfg");
     所以在cfg的new函数中,使用get_full_name最终得到的都是my_config


2、前面的那个{parent.get_full_name, name}也是我记错了,这个路径是用于factory的override,而不是真实的名字。
    换言之,使用create("uvm_test_top.cfg", this)得到的cfg最终的名字是"uvm_test_top.cfg",而不是“uvm_test_top.uvm_test_top.cfg"。
发表于 2014-11-19 15:01:03 | 显示全部楼层
UVM是什么
发表于 2014-11-20 16:00:22 | 显示全部楼层
Doogo 你好:
   再来打扰一下  两个问题:
1     uvm_config_db#(virtual spi_if)::set("uvm_root::get()","","spiif",spiif);
指定路径的参数如果为空的话是不是uvm_test_top下所有的component都能够get到接口呢,我试了一下,结果是对的,但是不知道有没有什么风险存在。
2    在总线配置重用这块还是有些疑惑。你写的书中说建议采用register_model改变地址参数去实现。如果不用寄存器模型要怎么实现呢?感觉这个比较难呀,,
发表于 2014-11-21 10:37:37 | 显示全部楼层
Doogo 你好:
   再来打扰一下
   在类中定义了一个整形变量:   int    data;
   在做判断时data和local::data有什么区别? 作用于有什么区别?
   eg  :  if(data==100)   if(local::data==100)
发表于 2014-11-25 15:31:36 | 显示全部楼层
thanks you share examples link, I just get this book.
发表于 2014-11-26 10:43:40 | 显示全部楼层
本帖最后由 Eric_Chu 于 2014-12-1 14:13 编辑

楼主您好,对于reg-model有个问题,书上没找到:

在7.4.4的例子中,对于backdoor可以用poke来进行配置。
对于单个地址的寄存器,例如counter.poke();对于多个地址的寄存器,例如counter_low.poke(),counter_high.poke().
我在学习的过程中,遇到了多个域的寄存器,例如7.4.3中的fieldA,fieldB,fieldC。此时如果我在case中仅仅想对fieldB做poke操作,应该如何写呢?我做过了一些尝试,发现并不能读写出相应的值。您能否在这里简单举例一下,如何去设置configure,或者别的办法?
谢谢

楼主你这两天怎么没有来?这个问题我已经在uvm的cookbook上找到了答案,直接写reg_model_ins.reg_name.fieldA.peek()就可以了。
但如果我直接去peek,不论是fieldA/B/C都是0;但是如果我先read一下这个寄存器,再写分别peek,就能找到相应的值。

能不能帮我分析一下这个产生的原因?
发表于 2014-11-27 08:46:38 | 显示全部楼层
Doogo 你好:
   再来打扰一下
   在多个模块级联的情况中,采用analysis_port作为管道,在scoreborad中对应的就是analysis_imp了。如果做系统级验证时,analysis_imp就不能够作为中间节点了,需要改了analysis_export了,这个要怎么才能够重用呢?
发表于 2014-11-28 15:41:19 | 显示全部楼层
本帖最后由 Eric_Chu 于 2014-12-1 14:15 编辑

楼主你好!

能否解释一下run_tc中,用VCS仿真时的vcs +acc +vpi -sverilog $UVM_HOME/src/dpi/uvm_dpi.cc的作用呢?我现在仿真过程中,用frontdoor对reg_model进行read/write都正常,backdoor在peek()时会报以下错误:
UVM_ERROR: get: unable to locate hdl path top.xx.xxx.fieldA. Either the name is incorrect, or you may not have PLI/ACC visibility to that name。

我在run的命令中没有加入cs +acc +vpi -sverilog $UVM_HOME/src/dpi/uvm_dpi.cc,加入这句话以后,编译完了会报multiple definition of "uvm_hdl_read"之类的错误。

这个问题困扰了我一天,请楼主帮我想想办法。


----------------------------------------------
这个问题也已经解决了,是在reg_model里面config的名字写的不对。
发表于 2014-11-30 16:00:39 | 显示全部楼层
感觉UVM空学是没有用的。project走上一两个,基本就明白了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-6 20:38 , Processed in 0.021792 second(s), 6 queries , Gzip On, Redis On.

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