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

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

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

基于DUT內(nèi)部寄存器值的鏡像

芯片驗(yàn)證工程師 ? 來源:芯片驗(yàn)證工程師 ? 2023-06-24 12:02 ? 次閱讀

寄存器模型保持著DUT內(nèi)部寄存器值的鏡像(mirror)。

鏡像值不能保證是正確的,因?yàn)榧拇嫫髂P椭荒芨兄綄?duì)這些寄存器的外部讀寫操作。

如果DUT內(nèi)部修改了寄存器中的字段,鏡像值就會(huì)過時(shí)(outdated)。

寄存器模型可以通過使用uvm_reg_field::mirror(), uvm_reg::mirror(), 或uvm_reg_block::mirror()方法將一個(gè)寄存器的鏡像值更新為存儲(chǔ)在DUT中的值。

更新寄存器中某個(gè)字段的鏡像也會(huì)同時(shí)更新同一寄存器中所有其他字段的鏡像。更新一個(gè)block的鏡像會(huì)更新它包含的所有寄存器和字段的鏡像。

如果使用前門訪問,更新一個(gè)大block的鏡像可能需要大量的仿真時(shí)間;而使用后門訪問更新不需要消耗仿真時(shí)間。

可以通過使用uvm_reg_field::set()uvm_reg::set()方法在不消耗仿真時(shí)間向寄存器模型中的寫入鏡像值,這個(gè)鏡像值不會(huì)反應(yīng)到DUT中相應(yīng)字段或寄存器。

可以通過使用uvm_reg::update()uvm_reg_block::update()方法更新DUT的寄存器以匹配鏡像值。如果新的鏡像值與舊的鏡像值相匹配,寄存器就不會(huì)被更新,從而節(jié)省不必要的總線訪問。

要想不消耗仿真時(shí)間訪問一個(gè)field或register的當(dāng)前鏡像值,可以使用 uvm_reg_field::get()uvm_reg::get()方法。

Memories是沒有鏡像的

Memories比較大,所以通常使用稀疏陣列的方法來建模。只有被寫入的位置才會(huì)被存儲(chǔ)起來,然后再讀回來。任何未使用的內(nèi)存位置都不會(huì)被建模。

與寄存器不同,memory的行為非常簡單,memory鏡像將是一個(gè)ROMRAM內(nèi)存模型,所以可以通過提供對(duì)內(nèi)存模型的后門訪問來取代。因此,使用uvm_mem::peek()uvm_mem::poke()方法提供與memory鏡像完全相同的功能。此外,與基于觀察到的讀寫操作的寄存器鏡像不同,使用后門訪問的memory鏡像總是返回或設(shè)置DUT中一個(gè)內(nèi)存位置的實(shí)際值

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

    關(guān)注

    31

    文章

    5421

    瀏覽量

    123328
  • 鏡像
    +關(guān)注

    關(guān)注

    0

    文章

    178

    瀏覽量

    11119
  • DUT
    DUT
    +關(guān)注

    關(guān)注

    0

    文章

    190

    瀏覽量

    12844

原文標(biāo)題:寄存器模型中的Mirroring

文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

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

    LMX2492工作一段時(shí)間后微波失鎖,并且內(nèi)部寄存器恢復(fù)成上電,為什么?

    加入LMX2492內(nèi)部寄存器讀取功能,先讀取正常工作時(shí)LMX2492內(nèi)部寄存器 ,然后等待故障復(fù)現(xiàn)。故障復(fù)現(xiàn)后我們又讀取了LMX2492內(nèi)部寄存器
    發(fā)表于 11-08 08:30

    AMC7836低溫-40C實(shí)驗(yàn),內(nèi)部寄存器可以正常讀寫,數(shù)據(jù)ADC無法采樣怎么解決?

    AMC7836調(diào)試OK后,進(jìn)行低溫實(shí)驗(yàn)-40C(工作溫度),無法讀取ADC內(nèi)部溫度。之后再正常溫度25-40C環(huán)境溫度下也不正常工作,單內(nèi)部寄存器能正常讀寫,發(fā)現(xiàn)49PIN-R
    發(fā)表于 11-28 07:50

    請問關(guān)于ADS5407內(nèi)部寄存器有沒有相關(guān)的中文介紹的?

    請問關(guān)于ADS5407內(nèi)部寄存器有沒有相關(guān)的中文介紹的?其中有幾個(gè)寄存器的功能不是特別明白,麻煩啦
    發(fā)表于 01-17 07:36

    51內(nèi)部寄存器總結(jié)

    51單片機(jī)內(nèi)部寄存器說明總結(jié)
    發(fā)表于 08-30 07:27

    Labview通過VXI總線直接訪問測量儀器內(nèi)部寄存器

    VXI總線直接訪問測量儀器內(nèi)部寄存器,從而在線獲取干涉儀的距離測量結(jié)果,從而與我的位移測量系統(tǒng)作比對(duì)。大家如果對(duì)激光干涉儀不了解不要緊,請告訴我如何通過VXI總線直接訪問測量儀器內(nèi)部寄存器,有遇上類似情況的嗎? 本人對(duì)VXI及Labview了解不多,望有人能討論和幫忙。不
    發(fā)表于 05-07 16:30

    請問AD9129內(nèi)部寄存器的reserved和spi讀取的不一樣會(huì)有什么影響?

    原因不太清楚,在此遇到兩個(gè)問題:1:芯片內(nèi)部寄存器的reserved,spi讀取的和它不一樣會(huì)有什么影響?2:芯片中的DLL中的延遲線具體是怎么操作的?最大最小延遲指的什么?da
    發(fā)表于 10-11 09:53

    如何訪問內(nèi)部寄存器空間或PCIe?

    你好,我在我的項(xiàng)目中使用XC7VX485T virtex FPGA,并嘗試以2.5 GT / s建立PCIe通信,具有X4通道寬度。我知道我需要使用AXI流來訪問集成塊核心。但我的問題是如何訪問內(nèi)部寄存器空間或PCIe?。如果我需要?jiǎng)?chuàng)建寄存器,我該怎么辦?謝謝,馬諾
    發(fā)表于 08-26 07:14

    DMA內(nèi)部寄存器的讀寫方式和應(yīng)用場合

      DMA內(nèi)部寄存器的讀寫方式  基于AXI的DMA對(duì)內(nèi)部寄存器的讀寫有著相同的方式。在普通傳輸模式下,DMA內(nèi)部寄存器都是由處理通過A
    發(fā)表于 12-23 17:48

    SPI內(nèi)部寄存器的相關(guān)資料分享

    從零開始學(xué)習(xí)嵌入式之SPI通信(寄存器)記錄一部分SPI內(nèi)部寄存器記錄一部分SPI內(nèi)部寄存器
    發(fā)表于 12-24 07:48

    AD9129芯片內(nèi)部寄存器的reserved,spi讀取的和它不一樣會(huì)有什么影響?

    原因不太清楚,在此遇到兩個(gè)問題: 1:芯片內(nèi)部寄存器的reserved,spi讀取的和它不一樣會(huì)有什么影響? 2:芯片中的DLL中的延遲線具體是怎么操作的?最大最小延遲指的什
    發(fā)表于 12-20 07:55

    Cortex-M3 內(nèi)部寄存器

    寄存器組R0-R12R0-R12,通用寄存器;R0-R12都是32位通用寄存器,用于數(shù)據(jù)操作;但是絕大多數(shù)16位Thumb指令只能訪問R0-R7,而32位Thumb指令可以訪問所有寄存器
    發(fā)表于 11-26 16:21 ?39次下載
    Cortex-M3 <b class='flag-5'>內(nèi)部寄存器</b>

    簡化UVM寄存器模型的使用

    當(dāng)我開始使用 UVM RAL 時(shí),我無法理解 UVM 基類庫對(duì)更新所需鏡像寄存器有什么看法。我還認(rèn)為,所使用的術(shù)語沒有準(zhǔn)確反映其意
    的頭像 發(fā)表于 05-29 10:15 ?1685次閱讀
    簡化UVM<b class='flag-5'>寄存器</b>模型的使用

    驗(yàn)證環(huán)境獲取DUT內(nèi)部信號(hào)的方法

    在UVM寄存器模型的操作中,寄存器用于設(shè)置DUT狀態(tài)和芯片狀態(tài)信息的上報(bào),有前門和后門讀寫兩種方式。
    的頭像 發(fā)表于 08-19 09:50 ?1236次閱讀
    驗(yàn)證環(huán)境獲取<b class='flag-5'>DUT</b><b class='flag-5'>內(nèi)部</b>信號(hào)的方法

    如何理解 RAMECC FAR 寄存器

    如何理解 RAMECC FAR 寄存器
    的頭像 發(fā)表于 10-19 18:19 ?881次閱讀
    如何理解 RAMECC FAR <b class='flag-5'>寄存器</b>的<b class='flag-5'>值</b>

    詳解寄存器模型鏡像

    DUT的配置寄存器是實(shí)際,reg_model有鏡像、期望
    的頭像 發(fā)表于 10-23 09:43 ?832次閱讀
    詳解<b class='flag-5'>寄存器</b>模型<b class='flag-5'>鏡像</b><b class='flag-5'>值</b>

    電子發(fā)燒友

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

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