0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

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

冬至子 ? 來源:芯時代青年 ? 作者:尼德蘭的喵 ? 2023-12-04 11:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

我自己非常的確定語法肯定時沒有問題的,但是無論往寄存器里predict什么奇怪的值進(jìn)去,mirror時候都不會報錯。這就非常令人費(fèi)解了,于是只能去源碼里找。

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

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

field本身不是UVM_NO_CHECK屬性的話才會進(jìn)行比對,那么問題是不是可能出現(xiàn)在field屬性身上呢?轉(zhuǎn)到uvm_reg_field.svh文件,找get_compare()方法:

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

進(jìn)一步的看下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;
...

問題大概明確了,應(yīng)該是field在進(jìn)行configure是volatile賦值為1,查了一下確實(shí)如此:

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中這個“易失性”。之前就一直不明白,為啥一個仿真模型要關(guān)心volatile呢,原來如果易失性=true的話,環(huán)境認(rèn)為你這個寄存器存不住值也就不會進(jìn)行compare操作。于是將其修改為(或者直接刪除,我就不應(yīng)該多這一筆):

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

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

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

    關(guān)注

    31

    文章

    5428

    瀏覽量

    123801
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    19482
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

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

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

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

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

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

    原理圖已附上,問題是在我匯編程序開頭,就是一個簡單的向8255寫入控制字的問題卻無論如何也不進(jìn)去,程序中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軟件設(shè)計的17.5M/V的環(huán)路
    發(fā)表于 10-26 09:15

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

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

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

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

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

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

    使用bmpaddle轉(zhuǎn)換模型時應(yīng)該如何參數(shù)填寫方式

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

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

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

    什么是Mirror Site

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

    榮耀V9吊打華為P10,結(jié)局不意外!

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

    “當(dāng)前鏡子”(The Current Mirror)

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

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

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

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品