0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ral_model的mirror()无论如何也不进行数据比对?

冬至子 来源:芯时代青年 作者:尼德兰的喵 2023-12-04 11:35 次阅读

今天在添加环境的结束检查时候,突然发现ral_model的mirror()无论如何也不进行数据比对:

ral_model.xxx.predict(xxxx);
ral_model.mirror(status, UVM_CHECK);

我自己非常的确定语法肯定时没有问题的,但是无论往寄存器里predict什么奇怪的值进去,mirror时候都不会报错。这就非常令人费解了,于是只能去源码里找。

mirror的最底层逻辑在uvm_reg.svh:

if (check == UVM_CHECK)
     exp = get_mirrored_value();
...
if (check == UVM_CHECK) void'(do_check(exp, v, map));

鉴于UVM_CHECK我已经传入了,get_mirrore_value()我也执行过确实predict进去了奇怪的值,那么问题只能出现在do_check这里(这个想了好久)。在do_check里我找到了一个核心的操作:

if (!(m_fields[i].get_compare() == UVM_NO_CHECK ||
            acc == "WO")) begin
...

field本身不是UVM_NO_CHECK属性的话才会进行比对,那么问题是不是可能出现在field属性身上呢?转到uvm_reg_field.svh文件,找get_compare()方法:

function uvm_check_e uvm_reg_field::get_compare();
  return m_check;
endfunction

进一步的看下m_check属性是怎么定义的:

function void uvm_reg_field::configure(uvm_reg        parent,
                                       int unsigned   size,
                                       int unsigned   lsb_pos,
                                       string         access,
                                       bit            volatile,
                                       uvm_reg_data_t reset,
                                       bit            has_reset,
                                       bit            is_rand,
                                       bit            individually_accessible);
...
m_check     = volatile ? UVM_NO_CHECK : UVM_CHECK;
...

问题大概明确了,应该是field在进行configure是volatile赋值为1,查了一下确实如此:

this.xxxx.configure(this, 20, 0, "RW", 1, 20'h0000, 1, 1, 1);

那么问题就大概清晰了,溯源来看ral_model是通过ralf生成的,ralf是通过xml生成的,那么只能是xml中写错了:

< spirit:volatile >true< /spirit:volatile >

我这才理解了xml中这个“易失性”。之前就一直不明白,为啥一个仿真模型要关心volatile呢,原来如果易失性=true的话,环境认为你这个寄存器存不住值也就不会进行compare操作。于是将其修改为(或者直接删除,我就不应该多这一笔):

< spirit:volatile >false< /spirit:volatile >

重新生成ral_model后mirror(status, UVM_CHECK)生效报错。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117765
  • UVM
    UVM
    +关注

    关注

    0

    文章

    181

    浏览量

    18973
收藏 人收藏

    评论

    相关推荐

    AD9783无论如何更改SET及HLD的值,SEEK值一直为1是为什么?

    此时按照芯片手册对SET和HLD进行设置构建array时,无论如何更改SET及HLD的值,SEEK值一直为1。此时将数据直接输出,观察不到信号输出。 问题: 1.将reset管脚拉低后,除了
    发表于 12-22 06:57

    dede的水印图片文字颜色,无论如何设置都是黑色?

    dede的水印图片文字颜色,无论如何设置都是黑色?试了N种方法搞不好,谁有好的方法啊。。
    发表于 05-15 10:02

    根据条件进行数据的问题

    本帖最后由 eehome 于 2013-1-5 10:03 编辑 如题所示,程序上传到附件了,我想当输入为假时,不进行存入数据。当输入为真时,录入数据。但是程序老是报错,但LZ我不知道哪里出错。所以求助大家咯。O(∩_∩)
    发表于 01-03 22:45

    做了个写入数据库程序,运行数据不进去,求大神帮忙看下,谢谢。

    我之前是用8.6版本的可以写入数据库,发现文件放在16版运行不了,然后在16版重新做了个,运行数据不进去,求大神帮忙看下,谢谢。
    发表于 07-20 10:22

    proteus仿真 8086 8255,控制字无法写入

    原理图已附上,问题是在我汇编程序开头,就是一个简单的向8255写入控制字的问题却无论如何也不进去,程序中DX为控制口地址,OUT DX,AL后总是写入的是DX的内容,而不是AL中控制字的内容。
    发表于 07-31 10:43

    ADF4002无论如何无法锁定

    各位大神咨询ADF4002的问题 无论如何无法锁定情况是这样的一个ADF4002,用DDS给25KHZ的参考频率 VCO是一个15MHZ/V的 环路滤波器是使用的ADI软件设计的17.5M/V的环路
    发表于 10-26 09:15

    使用Backhaul LDPC IP内核无论如何设置输入信号都不会变高是为什么?

    当使用Backhaul LDPC IP内核时,无论如何设置输入,输出s_axis_ein_tready信号都不会变高,并且没有输出数据
    发表于 05-25 15:43

    移植ST emWIN+UCOS+FATFS时无论如何修改都不成功的解决办法?

    在战舰开发板移植ST emWIN+UCOS成功,移植STemWIN+FATFS成功,移植UCOS+FATFS成功,可是移植ST emWIN+UCOS+FATFS时无论如何修改都不成功,哪位大侠有移植成功的,请上传以下,小弟感激不尽。
    发表于 08-11 08:00

    DMA进行数据传输和CPU进行数据传输的疑问

    求大佬解答,本人正在学习STM32单片机中DMA直接数据存储部分的内容 看了DMA简介后,也上手过实例代码,但是没有实际的项目经验,所以有以下疑问: DMA外设在进行数据传输的操作,是否也是需要经过
    发表于 05-25 17:18

    visionfive2用sd卡刷debian,无论如何都无法启动怎么解决?

    昨天刚购入一块visionfive2,想试试sd卡刷debian,但是无论如何都无法启动。
    发表于 09-12 07:42

    使用bmpaddle转换模型时应该如何参数填写方式

    会导致顺序不同。这些都会导致转换中断,可以关闭cmp,不进行数据比对,到业务层面验证转换后模型的精度。
    发表于 09-19 07:05

    如何更好地进行数据采集

    如何更好地进行数据采集 工程师经常需要进行数据采集来验证产品的性能和指标,或者对一些特定的应用进行监测和控制,以便确定其物理参数,例如温度、应力、压
    发表于 01-04 10:32 1599次阅读
    如何更好地<b class='flag-5'>进行数据</b>采集

    什么是Mirror Site

    什么是Mirror Site  英文缩写: Mirror Site 中文译名: 镜像站点 分  类: IP与多媒体 解  释: 镜像站点是复制
    发表于 02-23 09:52 1092次阅读

    荣耀V9吊打华为P10,结局不意外!

    既然说到了性价比,性能配置这方面无论如何也避开不了。
    发表于 03-22 15:08 945次阅读

    隧道没信号怎么进行数据采集

    隧道没信号怎么进行数据采集
    的头像 发表于 12-06 13:27 322次阅读