吴忠躺衫网络科技有限公司

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)生效報錯。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121166
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19228
收藏 人收藏

    評論

    相關推薦

    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

    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 ?1665次閱讀
    如何更好地<b class='flag-5'>進行數據</b>采集

    什么是Mirror Site

    什么是Mirror Site  英文縮寫: Mirror Site 中文譯名: 鏡像站點 分  類: IP與多媒體 解  釋: 鏡像站點是復制
    發表于 02-23 09:52 ?1298次閱讀

    榮耀V9吊打華為P10,結局不意外!

    既然說到了性價比,性能配置這方面無論如何也避開不了。
    發表于 03-22 15:08 ?969次閱讀

    “當前鏡子”(The Current Mirror)

    “當前鏡子”(The Current Mirror)
    發表于 05-24 15:50 ?9次下載
    “當前鏡子”(The Current <b class='flag-5'>Mirror</b>)

    成功進行數據整合的案例

    預置數十個開箱即用連接器,基于SDK和熱插拔的連接器擴展技術,快速啟動數據集成,然后利用低代碼、自動化數據處理管道方式進行數據建模。
    的頭像 發表于 08-19 14:14 ?944次閱讀
    新锦江百家乐娱乐场开户注册| 百家乐官网稳赢玩法| 真人百家乐官网蓝盾娱乐平台| 谁会玩百家乐的玩法技巧和规则| 澳门百家乐官网加盟| 百家乐怎么看单| 葡京娱乐场官网| 百家乐官网博娱乐网赌百家乐官网的玩法技巧和规则 | 百乐坊百家乐官网娱乐城| 网上百家乐游戏玩法| 百家乐官网翻天youtube | 百家乐官网棋牌游| 大发888线上投注| 谁会玩百家乐官网的玩法技巧和规则| 威尼斯人娱乐城购物| 百家乐官网赌博彩| 大发888东方鸿运| 成人百家乐官网的玩法技巧和规则| 大发888娱乐城 下载| 百家乐官网计划软件| 足球赌网| 什么百家乐平注法| 百家乐官网庄闲的冷热| 威尼斯人娱乐城好不好| 百家乐官网全部规| 太阳城娱乐城备用网址| 解析百家乐投注法| 百家乐官网有几种打法| 真人百家乐体验金| 百家乐官网赌场娱乐网规则| 手机棋牌游戏下载| 百家乐三路秘诀| 百家乐官网趋势图怎么看| 百家乐是真人发牌吗| 成都百家乐官网牌具| 固始县| 大中华百家乐的玩法技巧和规则| 百家乐官网庄闲和赢率| 鸿盛博娱乐| 蓝盾百家乐赌城| 牌九百家乐官网的玩法技巧和规则|