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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜全文
查看: 6922|回复: 6

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

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

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

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

×
本帖最后由 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 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尝试;
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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


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

GMT+8, 2025-9-19 04:48 , Processed in 0.012217 second(s), 4 queries , Gzip On, Redis On.

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