0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

ral_model的mirror()無論如何也不進行數(shù)據(jù)比對?

冬至子 ? 來源:芯時代青年 ? 作者:尼德蘭的喵 ? 2023-12-04 11:35 ? 次閱讀

今天在添加環(huán)境的結束檢查時候,突然發(fā)現(xiàn)ral_model的mirror()無論如何也不進行數(shù)據(jù)比對:

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我已經(jīng)傳入了,get_mirrore_value()我也執(zhí)行過確實predict進去了奇怪的值,那么問題只能出現(xiàn)在do_check這里(這個想了好久)。在do_check里我找到了一個核心的操作:

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

field本身不是UVM_NO_CHECK屬性的話才會進行比對,那么問題是不是可能出現(xiàn)在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的話,環(huán)境認為你這個寄存器存不住值也就不會進行compare操作。于是將其修改為(或者直接刪除,我就不應該多這一筆):

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

重新生成ral_model后mirror(status, UVM_CHECK)生效報錯。

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

    關注

    31

    文章

    5343

    瀏覽量

    120365
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19171
收藏 人收藏

    評論

    相關推薦

    AD9783無論如何更改SET及HLD的值,SEEK值一直為1是為什么?

    此時按照芯片手冊對SET和HLD進行設置構建array時,無論如何更改SET及HLD的值,SEEK值一直為1。此時將數(shù)據(jù)直接輸出,觀察不到信號輸出。 問題: 1.將reset管腳拉低后,除了
    發(fā)表于 12-22 06:57

    dede的水印圖片文字顏色,無論如何設置都是黑色?

    dede的水印圖片文字顏色,無論如何設置都是黑色?試了N種方法搞不好,誰有好的方法啊。。
    發(fā)表于 05-15 10:02

    根據(jù)條件進行數(shù)據(jù)的問題

    本帖最后由 eehome 于 2013-1-5 10:03 編輯 如題所示,程序上傳到附件了,我想當輸入為假時,不進行存入數(shù)據(jù)。當輸入為真時,錄入數(shù)據(jù)。但是程序老是報錯,但LZ我不知道哪里出錯。所以求助大家咯。O(∩_∩)
    發(fā)表于 01-03 22:45

    做了個寫入數(shù)據(jù)庫程序,運行數(shù)據(jù)不進去,求大神幫忙看下,謝謝。

    我之前是用8.6版本的可以寫入數(shù)據(jù)庫,發(fā)現(xiàn)文件放在16版運行不了,然后在16版重新做了個,運行數(shù)據(jù)不進去,求大神幫忙看下,謝謝。
    發(fā)表于 07-20 10:22

    proteus仿真 8086 8255,控制字無法寫入

    原理圖已附上,問題是在我匯編程序開頭,就是一個簡單的向8255寫入控制字的問題卻無論如何也不進去,程序中DX為控制口地址,OUT DX,AL后總是寫入的是DX的內(nèi)容,而不是AL中控制字的內(nèi)容。
    發(fā)表于 07-31 10:43

    ADF4002無論如何無法鎖定

    各位大神咨詢ADF4002的問題 無論如何無法鎖定情況是這樣的一個ADF4002,用DDS給25KHZ的參考頻率 VCO是一個15MHZ/V的 環(huán)路濾波器是使用的ADI軟件設計的17.5M/V的環(huán)路
    發(fā)表于 10-26 09:15

    使用Backhaul LDPC IP內(nèi)核無論如何設置輸入信號都不會變高是為什么?

    當使用Backhaul LDPC IP內(nèi)核時,無論如何設置輸入,輸出s_axis_ein_tready信號都不會變高,并且沒有輸出數(shù)據(jù)
    發(fā)表于 05-25 15:43

    DMA進行數(shù)據(jù)傳輸和CPU進行數(shù)據(jù)傳輸?shù)囊蓡?/a>

    求大佬解答,本人正在學習STM32單片機中DMA直接數(shù)據(jù)存儲部分的內(nèi)容 看了DMA簡介后,也上手過實例代碼,但是沒有實際的項目經(jīng)驗,所以有以下疑問: DMA外設在進行數(shù)據(jù)傳輸?shù)牟僮?,是否也是需要?jīng)過
    發(fā)表于 05-25 17:18

    visionfive2用sd卡刷debian,無論如何都無法啟動怎么解決?

    昨天剛購入一塊visionfive2,想試試sd卡刷debian,但是無論如何都無法啟動。
    發(fā)表于 09-12 07:42

    使用bmpaddle轉換模型時應該如何參數(shù)填寫方式

    會導致順序不同。這些都會導致轉換中斷,可以關閉cmp,不進行數(shù)據(jù)比對,到業(yè)務層面驗證轉換后模型的精度。
    發(fā)表于 09-19 07:05

    如何更好地進行數(shù)據(jù)采集

    如何更好地進行數(shù)據(jù)采集 工程師經(jīng)常需要進行數(shù)據(jù)采集來驗證產(chǎn)品的性能和指標,或者對一些特定的應用進行監(jiān)測和控制,以便確定其物理參數(shù),例如溫度、應力、壓
    發(fā)表于 01-04 10:32 ?1654次閱讀
    如何更好地<b class='flag-5'>進行數(shù)據(jù)</b>采集

    什么是Mirror Site

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

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

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

    “當前鏡子”(The Current Mirror)

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

    成功進行數(shù)據(jù)整合的案例

    預置數(shù)十個開箱即用連接器,基于SDK和熱插拔的連接器擴展技術,快速啟動數(shù)據(jù)集成,然后利用低代碼、自動化數(shù)據(jù)處理管道方式進行數(shù)據(jù)建模。
    的頭像 發(fā)表于 08-19 14:14 ?894次閱讀