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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 最近使用uvm_ral update有些疑惑,望大神指点!!!

[复制链接]
发表于 2016-12-21 09:38:42 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 abcyou 于 2016-12-21 09:40 编辑

最近研究uvm_reg,使用auto_predict的方式连续对同一个寄存器进行set和update,如果set的值是一样的,总线只会有一次写操作;代码大致为
    automatic uvm_status_e status;
    model.rega.set(1);
    model.rega.update(status);
    model.rega.set(1);
    model.rega.update(status);
    model.rega.set(1);
    model.rega.update(status);

看update源码我理解为:
     需要m_mirrored != m_desired才会跳转到下一步write阶段,在第一次update的时候write会使用do_predict将
     m_mirrored更新为写入的值,如果下一次set的m_desired一直为上一次的值,则之后就不会有write操作;
我想到的两种解决方式为:
     1.不用update,直接使用model.rega.write(model.rega.get());
     2.每次完成后使用model.reset()将值reset;
我理解是否有问题,或者有更好的解决方式,update的正确使用方法望大神指点迷津!!!!
发表于 2016-12-22 07:02:19 | 显示全部楼层
update的作用就是判断期望值(desired_value)是否与镜像值(mirrored_value)一致,如果不一致,将期望值写入dut,并且更新镜像值;由于你前期操作中可能可能按照以下方式进行设置,导致镜像值自动更新为写入的参数“model.default_map.set_auto_predict(1)”

如果将设置如下model.default_map.set_auto_predict(0),楼主可以再试试,不过这个地方最好设置为1,否则使用寄存器模型的意义就不大了。


你的第一种方式就是使用get函数取期望值,将其重新写入到dut中,总线上可定会有操作的
第二种方式是的作用我不确定,不知是将期望值与镜像值全部修改为复位预设值还是两个中的一个设置为复位预设值,需要查询一下源码

我有个小问题,为什么需要对寄存器操作后返回的状态加入automatic机制,里面存在多个进程么?
automatic uvm_status_e status;
发表于 2016-12-22 07:06:28 | 显示全部楼层
楼主可以在看看使用model.default_map.set_auto_predict(0)时,如果期望值与镜像值不一致时,如果进行write()操作与update()操作的结果是否一致
1)总线上执行dut总线写操作(这个应该都会有);
2)寄存器是否都可以将镜像值更新为期望值(write应该不会有,但update就不确定了);
 楼主| 发表于 2016-12-22 09:44:03 | 显示全部楼层
回复 2# RichKoala


env中设置set_auto_predict(1),这样省事,如果设为0那就得用Explicit Prediction方式;automatic其实没必要,我开始还以为uvm_status_e有什么特殊用处,后来翻源码发现就是UVM_IS_OK判断,这处加的是多余的;
我使用reset是由于我默认值是0,所有每次reset就会将m_mirrored和m_desired都恢复回reset状态,要是这时候set的是0,update依旧直接return,不会进入下一步write;
非常感谢,还没考虑使用auto_preict为0的方式,前期先用auto predict尝试;
发表于 2016-12-26 06:18:59 | 显示全部楼层
回复 1# abcyou

你有联系方式么?可以短消息我,我有些疑问想问下
发表于 2018-12-27 15:19:08 | 显示全部楼层
求指点,在对执行update的时候,会将RU寄存器里的期望值写入DUT吗?  DUT修改RU寄存器的值,RAL里的期望值会一起被修改掉吗?
发表于 2020-6-8 16:42:55 | 显示全部楼层
学习一下,加油

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-26 17:29 , Processed in 0.041990 second(s), 10 queries , Gzip On, Redis On.

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