在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

在UVM中更輕松地進行內存管理

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Siddharth Nair ? 2022-10-24 14:45 ? 次閱讀

典型的SOC由多個接口組成,這些接口可以訪問設計中的存儲器。當我們驗證這樣的設計時,我們需要確保各種接口的內存訪問不會重疊,從而導致數據完整性丟失。

當使用涉及多個接口的基于System Verilog的驗證環境進行驗證時,我們需要對激勵提供簡潔的約束,以確保這些訪問不會重疊并導致數據完整性丟失。

驗證工程師通常不得不花費大量時間調試所施加的約束,而這種約束形式導致刺激的約束,這是一條非常危險的道路。

隨著基于 UVM 的單例內存管理器的引入,隨著 UVM 提供的內存管理類的可用性,此任務的實現變得更加友好。但是,這些新的驗證組件仍然不是專門為開發涉及多個主站的環境而設計的。我們在這里開發的“簡易內存管理器”最大限度地利用了現有的UVM方法,并且還提供了多個主服務器之間更輕松的內存訪問。

什么是 UVM 內存管理器?

關于uvm_mem_mam類的資源非常稀缺,因此,如果讀者對其功能沒有太多了解,這是可以理解的。在繼續討論內存管理器提供的功能之前,我們想簡要介紹一下默認 UVM 內存管理器的功能。

UVM 中有四個與內存管理關聯的類。它們在下面提到 -

uvm_mem_mam_cfg – 它允許我們選擇要由管理器管理的字節數以及開始和結束偏移量。

uvm_mem_mgr - 它是由希望分配內存的靜態/動態實體啟動的。

uvm_mem_alloc_policy – 它還可用于控制經理的開始和結束偏移,并根據我們的要求約束這些變量。

uvm_mem_region – 這些區域表示要由內存管理器分配的區域。這些區域包含起始偏移量和由管理器分配的字節數。

現在,我們已經簡要了解了默認內存管理器的操作以及與 UVM 中的內存管理關聯的類,讓我們看看我們在內存管理器中的此現有功能上添加了什么。

支持的功能

“簡易內存管理器”支持以下功能集,可以在各種項目之間重復使用:

整個內存分為三個維度的內存、主內存和分配的區域,支持這三個維度上的區域分配和釋放。

將記憶劃分為虛擬區域。

運行時分配和區域發布。

多個主節點的非重疊分配。

通過提供要分配的區域的物理地址和字節數來分配區域。

可以保留內存塊,以便任何主服務器都無法訪問它。

提供有關已分配區域的詳細信息的調試機制。

根據.xls文件的輸入創建內存。

頂部寄存器塊和管理器可通過腳本進行配置。

即插即用,因此可以直接在任何現有的UVM環境中使用。

建筑

本節描述了內存管理器的結構以及將引入“簡易內存管理器”的環境。管理器由頂部的 uvm_reg_塊組成,該塊包含各個存儲器(例如 – 閃存、JTAG、SRAM 等)。各個存儲器是根據.xls文件中提供的數據創建的。各個內存類配置可根據項目要求完全自定義。以類似的方式,我們可以通過腳本的命令行選項配置頂部內存。管理器是單例,因此不會有數據重復。

pYYBAGNWNJCAIQO6AAB5PhuVPSs003.png

圖 1 使用簡易內存管理器的環境

poYBAGNWNJeAQO5zAABDvAtgHBs631.png

pYYBAGNWNJ-AEb0kAABIwbW8vdk546.png

圖 2 使用簡易內存管理器分配和取消分配內存區域

poYBAGNWNKCAFp6SAAE4Thk9Nh0931.png

表1 管理器中的方法列表

在這里,我們展示了如何在多主方案中使用“簡易內存管理器”的場景。存儲器由兩個主站訪問,一個是SPI主站,另一個是以太網主站,它們正在執行自己的測試序列。在此示例中,您可以觀察主節點在訪問內存時提供的唯一編號如何使用戶能夠更好地控制測試用例中的區域處理。此外,用戶無需了解RAL模型中存儲器的結構。他可以簡單地提供實際地址,經理足夠聰明,可以根據地址保留區域。

pYYBAGNWNKeAS7zdAAESrFPoaUE924.png

圖 3 主節點在保留/釋放區域時與管理器的交互

最初,整個內存范圍都可用,SPI 主站請求兩個區域,以便它可以在這些區域上啟動其序列。

同樣,以太網主站也請求了三個區域。以太網主站和SPI主站的區域將通過主站在分配時作為參數傳遞的主控號來區分。

SPI 主站已完成其序列,并通過在調用釋放函數時指定其唯一主控號來釋放其分配的兩個區域。

以太網主機現在希望訪問先前分配給 SPI 主機的區域。因此,它將通過指定物理地址來請求這些區域。

以太網序列已經完成,它將釋放它所請求的區域。

集成步驟

poYBAGNWNLCANS7OAABVZsjRFL4056.png

圖4 集成步驟

向 XLS 提供輸入–在.xls文件中以適當的格式寫入數據以創建單獨的內存。

通過腳本生成記憶和reg_block – 使用適當的命令行選項運行腳本。如果未提供命令行選項,則使用默認選項。

以環境中的經理實例為例 – 存儲器和管理器將根據.xls文件和命令行選項中提供的數據創建。在要訪問管理器的組件中創建管理器的對象實例。

獲取管理器的句柄 – 管理器的實例需要獲取管理器的句柄,因為它是單例。管理器由返回單一實例句柄的方法組成。

通過句柄訪問方法– 可以使用管理器的句柄訪問管理器的方法。

“簡易內存管理器”本質上是通用的,可以在任何現有的基于UVM的驗證環境中使用。管理器包易于配置,可以擴展到任何特定于項目的環境中,而無需對內部代碼進行任何更改。

在 eInfochips,我們在系統、子系統和 IP 級環境中使用此內存管理器,并取得了預期的結果。我們已經使用探索和NCSim模擬器驗證了這個組件。

審核編輯:郭婷

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

    關注

    31

    文章

    5361

    瀏覽量

    120873
  • 存儲器
    +關注

    關注

    38

    文章

    7523

    瀏覽量

    164130
  • soc
    soc
    +關注

    關注

    38

    文章

    4193

    瀏覽量

    218694
收藏 人收藏

    評論

    相關推薦

    使用 Memtester 對華為云 X 實例進行內存性能測試

    測試環境 ? 3.3 測試命令 ? 4 測試數據及性能分析 ? 4.1 帶寬測試結果 ? 4.2 延遲測試結果 ? 5 性能瓶頸與優化建議 ? 6 總結 ? 前言 云計算的應用場景內存性能對系統
    的頭像 發表于 12-30 14:52 ?109次閱讀
    使用 Memtester 對華為云 X 實例<b class='flag-5'>進行內存</b>性能測試

    Linux下如何管理虛擬內存 使用虛擬內存時的常見問題

    Linux系統,虛擬內存管理是操作系統內核的一個重要功能,負責管理物理內存和磁盤上的交換空間
    的頭像 發表于 12-04 09:19 ?582次閱讀

    如何使用 ChatGPT 進行內容創作

    使用ChatGPT進行內容創作是一個高效且富有創意的過程。以下是一些關鍵步驟和建議,幫助您充分利用ChatGPT進行內容創作: 一、準備階段 注冊與登錄 : 確保您已注冊ChatGPT賬號,并登錄
    的頭像 發表于 10-25 16:08 ?506次閱讀

    Linux內存管理HVO的實現原理

    代碼閱讀工具:vim+ctags+cscope本文主要介紹內存管理的HVO(HugeTLB Vmemmap Optimization)特性,通過HVO可以節省管理HugeTLB 頁面
    的頭像 發表于 10-22 16:51 ?273次閱讀
    Linux<b class='flag-5'>內存</b><b class='flag-5'>管理</b><b class='flag-5'>中</b>HVO的實現原理

    Windows管理內存的三種主要方式

    Windows操作系統提供了多種方式來管理內存,以確保系統資源的有效利用和性能的優化。以下是關于Windows管理內存的三種主要方式的詳細闡述,包括堆
    的頭像 發表于 10-12 17:09 ?1192次閱讀

    內存管理的硬件結構

    常見的內存分配函數有malloc,mmap等,但大家有沒有想過,這些函數在內核是怎么實現的?換句話說,Linux內核的內存管理是怎么實現的?
    的頭像 發表于 09-04 14:28 ?364次閱讀
    <b class='flag-5'>內存</b><b class='flag-5'>管理</b>的硬件結構

    Jtti:新加坡云服務器運行內存和存儲內存有何區別?

    。它是一種易失性存儲,意味著斷電后存儲的數據會丟失。 存儲內存:用于持久化存儲數據,如操作系統、應用程序、數據庫和用戶數據。它是一種非易失性存儲,即使斷電后也能保持數據不丟失。 二、速度: 運
    的頭像 發表于 06-25 14:26 ?526次閱讀

    ESP-IDF內核內存管理如何驗證?

    請教一下,ESP-IDF 內核內存管理如何驗證
    發表于 06-19 06:30

    FreeRTOS如何在中斷調用內存分配函數?

    最近在玩FreeRTOS,遇到一個問題,就是不知如何在中斷調用內存分配函數。pvPortMalloc函數中會調用xTaskResumeAll,而這個函數不能再中斷調用,所以請問中斷中進行內
    發表于 05-08 08:25

    stm32h7想把sarm1作為運行內存,但上電會進入hard fault是哪里的問題?

    因項目需要,想把sarm1(0x30000000-0x3000ffff)作為運行內存,但上電會進入hard fault, 請問有哪大哥這樣設置是成功的
    發表于 04-17 07:20

    STM32如何用HAL庫進行內核復位?

    STM32如何用HAL庫進行內核復位 普通的系統復位函數如下: / ** 簡短的系統重置 詳細信息發起系統重置請求以重置MCU。 * / __STATIC_INLINE void
    發表于 04-11 06:49

    fpga驗證和uvm驗證的區別

    FPGA驗證和UVM驗證芯片設計和驗證過程中都扮演著重要的角色,但它們之間存在明顯的區別。
    的頭像 發表于 03-15 15:00 ?1725次閱讀

    uvm1.1升級為uvm1.2 uvm_report_server報錯是何原因?

    ISP算法仿真中,小編會用reference model調用DPI接口用C++ 算法實現pixel算法處理,然后和DUT算法處理輸出的pixel值進行比較,比較時候發現報錯,報錯代碼如下,原因是小編把uvm1.1升級為uvm1.
    的頭像 發表于 03-04 14:18 ?844次閱讀
    <b class='flag-5'>uvm</b>1.1升級為<b class='flag-5'>uvm</b>1.2 <b class='flag-5'>uvm</b>_report_server報錯是何原因?

    UVM手把手教程系列(二)Phase機制簡單介紹

    UVM的phase,按照其是否消耗仿真時間($time打印出的時間)的特性,可以分成兩大類
    的頭像 發表于 02-29 09:26 ?1486次閱讀
    <b class='flag-5'>UVM</b>手把手教程系列(二)Phase機制簡單介紹

    C語言中的動態內存管理講解

    本章將講解 C 的動態內存管理。C 語言為內存的分配和管理提供了幾個函數。這些函數可以
    的頭像 發表于 02-23 14:03 ?414次閱讀
    C語言中的動態<b class='flag-5'>內存</b><b class='flag-5'>管理</b>講解
    主站蜘蛛池模板: 国产欧美综合在线| 美女在线看永久免费网址| 日本一区视频在线播放| 亚洲福利视频一区| 国产精品久久免费观看| 一级做a爱| 天天射综合网站| 色资源在线观看| 欧美一二| 黄色激情小说视频| www成年人视频| 天堂资源最新版在线官网| 九九黄色网| 国产视频h| 在线色| 天堂在线视频精品| 欧美一级视频免费看| 激情五月开心婷婷| 午夜影视在线观看| 国产在线小视频| 一区二区三区高清不卡 | 国产一区二区影院| 在线日本人观看成本人视频| 欧美成人全部费免网站| 日本高清在线3344www| 男女一进一出抽搐免费视频| 天堂-bt种子| 美国一级毛片免费看成人 | 色婷婷色综合缴情在线| 美女网站视频色| 夜色成人| 成人国产一区二区| 九九热精品视频| 日韩三级免费看| 国产农村一级特黄α真人毛片| 天天操天天搞| 202z欧美成人| 天天看天天摸天天操| 黄色三级在线看| 人人干在线| 亚洲综合色色图|