一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

在UVM中更輕松地進(jìn)行內(nèi)存管理

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Siddharth Nair ? 2022-10-24 14:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

典型的SOC由多個(gè)接口組成,這些接口可以訪問(wèn)設(shè)計(jì)中的存儲(chǔ)器。當(dāng)我們驗(yàn)證這樣的設(shè)計(jì)時(shí),我們需要確保各種接口的內(nèi)存訪問(wèn)不會(huì)重疊,從而導(dǎo)致數(shù)據(jù)完整性丟失。

當(dāng)使用涉及多個(gè)接口的基于System Verilog的驗(yàn)證環(huán)境進(jìn)行驗(yàn)證時(shí),我們需要對(duì)激勵(lì)提供簡(jiǎn)潔的約束,以確保這些訪問(wèn)不會(huì)重疊并導(dǎo)致數(shù)據(jù)完整性丟失。

驗(yàn)證工程師通常不得不花費(fèi)大量時(shí)間調(diào)試所施加的約束,而這種約束形式導(dǎo)致刺激的約束,這是一條非常危險(xiǎn)的道路。

隨著基于 UVM 的單例內(nèi)存管理器的引入,隨著 UVM 提供的內(nèi)存管理類的可用性,此任務(wù)的實(shí)現(xiàn)變得更加友好。但是,這些新的驗(yàn)證組件仍然不是專門為開發(fā)涉及多個(gè)主站的環(huán)境而設(shè)計(jì)的。我們?cè)谶@里開發(fā)的“簡(jiǎn)易內(nèi)存管理器”最大限度地利用了現(xiàn)有的UVM方法,并且還提供了多個(gè)主服務(wù)器之間更輕松的內(nèi)存訪問(wèn)。

什么是 UVM 內(nèi)存管理器?

關(guān)于uvm_mem_mam類的資源非常稀缺,因此,如果讀者對(duì)其功能沒(méi)有太多了解,這是可以理解的。在繼續(xù)討論內(nèi)存管理器提供的功能之前,我們想簡(jiǎn)要介紹一下默認(rèn) UVM 內(nèi)存管理器的功能。

UVM 中有四個(gè)與內(nèi)存管理關(guān)聯(lián)的類。它們?cè)谙旅嫣岬?-

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

uvm_mem_mgr - 它是由希望分配內(nèi)存的靜態(tài)/動(dòng)態(tài)實(shí)體啟動(dòng)的。

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

uvm_mem_region – 這些區(qū)域表示要由內(nèi)存管理器分配的區(qū)域。這些區(qū)域包含起始偏移量和由管理器分配的字節(jié)數(shù)。

現(xiàn)在,我們已經(jīng)簡(jiǎn)要了解了默認(rèn)內(nèi)存管理器的操作以及與 UVM 中的內(nèi)存管理關(guān)聯(lián)的類,讓我們看看我們?cè)趦?nèi)存管理器中的此現(xiàn)有功能上添加了什么。

支持的功能

“簡(jiǎn)易內(nèi)存管理器”支持以下功能集,可以在各種項(xiàng)目之間重復(fù)使用:

整個(gè)內(nèi)存分為三個(gè)維度的內(nèi)存、主內(nèi)存和分配的區(qū)域,支持這三個(gè)維度上的區(qū)域分配和釋放。

將記憶劃分為虛擬區(qū)域。

運(yùn)行時(shí)分配和區(qū)域發(fā)布。

多個(gè)主節(jié)點(diǎn)的非重疊分配。

通過(guò)提供要分配的區(qū)域的物理地址和字節(jié)數(shù)來(lái)分配區(qū)域。

可以保留內(nèi)存塊,以便任何主服務(wù)器都無(wú)法訪問(wèn)它。

提供有關(guān)已分配區(qū)域的詳細(xì)信息的調(diào)試機(jī)制。

根據(jù).xls文件的輸入創(chuàng)建內(nèi)存。

頂部寄存器塊和管理器可通過(guò)腳本進(jìn)行配置。

即插即用,因此可以直接在任何現(xiàn)有的UVM環(huán)境中使用。

建筑

本節(jié)描述了內(nèi)存管理器的結(jié)構(gòu)以及將引入“簡(jiǎn)易內(nèi)存管理器”的環(huán)境。管理器由頂部的 uvm_reg_塊組成,該塊包含各個(gè)存儲(chǔ)器(例如 – 閃存、JTAG、SRAM 等)。各個(gè)存儲(chǔ)器是根據(jù).xls文件中提供的數(shù)據(jù)創(chuàng)建的。各個(gè)內(nèi)存類配置可根據(jù)項(xiàng)目要求完全自定義。以類似的方式,我們可以通過(guò)腳本的命令行選項(xiàng)配置頂部?jī)?nèi)存。管理器是單例,因此不會(huì)有數(shù)據(jù)重復(fù)。

pYYBAGNWNJCAIQO6AAB5PhuVPSs003.png

圖 1 使用簡(jiǎn)易內(nèi)存管理器的環(huán)境

poYBAGNWNJeAQO5zAABDvAtgHBs631.png

pYYBAGNWNJ-AEb0kAABIwbW8vdk546.png

圖 2 使用簡(jiǎn)易內(nèi)存管理器分配和取消分配內(nèi)存區(qū)域

poYBAGNWNKCAFp6SAAE4Thk9Nh0931.png

表1 管理器中的方法列表

在這里,我們展示了如何在多主方案中使用“簡(jiǎn)易內(nèi)存管理器”的場(chǎng)景。存儲(chǔ)器由兩個(gè)主站訪問(wèn),一個(gè)是SPI主站,另一個(gè)是以太網(wǎng)主站,它們正在執(zhí)行自己的測(cè)試序列。在此示例中,您可以觀察主節(jié)點(diǎn)在訪問(wèn)內(nèi)存時(shí)提供的唯一編號(hào)如何使用戶能夠更好地控制測(cè)試用例中的區(qū)域處理。此外,用戶無(wú)需了解RAL模型中存儲(chǔ)器的結(jié)構(gòu)。他可以簡(jiǎn)單地提供實(shí)際地址,經(jīng)理足夠聰明,可以根據(jù)地址保留區(qū)域。

pYYBAGNWNKeAS7zdAAESrFPoaUE924.png

圖 3 主節(jié)點(diǎn)在保留/釋放區(qū)域時(shí)與管理器的交互

最初,整個(gè)內(nèi)存范圍都可用,SPI 主站請(qǐng)求兩個(gè)區(qū)域,以便它可以在這些區(qū)域上啟動(dòng)其序列。

同樣,以太網(wǎng)主站也請(qǐng)求了三個(gè)區(qū)域。以太網(wǎng)主站和SPI主站的區(qū)域?qū)⑼ㄟ^(guò)主站在分配時(shí)作為參數(shù)傳遞的主控號(hào)來(lái)區(qū)分。

SPI 主站已完成其序列,并通過(guò)在調(diào)用釋放函數(shù)時(shí)指定其唯一主控號(hào)來(lái)釋放其分配的兩個(gè)區(qū)域。

以太網(wǎng)主機(jī)現(xiàn)在希望訪問(wèn)先前分配給 SPI 主機(jī)的區(qū)域。因此,它將通過(guò)指定物理地址來(lái)請(qǐng)求這些區(qū)域。

以太網(wǎng)序列已經(jīng)完成,它將釋放它所請(qǐng)求的區(qū)域。

集成步驟

poYBAGNWNLCANS7OAABVZsjRFL4056.png

圖4 集成步驟

向 XLS 提供輸入–在.xls文件中以適當(dāng)?shù)母袷綄懭霐?shù)據(jù)以創(chuàng)建單獨(dú)的內(nèi)存。

通過(guò)腳本生成記憶和reg_block – 使用適當(dāng)?shù)拿钚羞x項(xiàng)運(yùn)行腳本。如果未提供命令行選項(xiàng),則使用默認(rèn)選項(xiàng)。

以環(huán)境中的經(jīng)理實(shí)例為例 – 存儲(chǔ)器和管理器將根據(jù).xls文件和命令行選項(xiàng)中提供的數(shù)據(jù)創(chuàng)建。在要訪問(wèn)管理器的組件中創(chuàng)建管理器的對(duì)象實(shí)例。

獲取管理器的句柄 – 管理器的實(shí)例需要獲取管理器的句柄,因?yàn)樗菃卫9芾砥饔煞祷貑我粚?shí)例句柄的方法組成。

通過(guò)句柄訪問(wèn)方法– 可以使用管理器的句柄訪問(wèn)管理器的方法。

“簡(jiǎn)易內(nèi)存管理器”本質(zhì)上是通用的,可以在任何現(xiàn)有的基于UVM的驗(yàn)證環(huán)境中使用。管理器包易于配置,可以擴(kuò)展到任何特定于項(xiàng)目的環(huán)境中,而無(wú)需對(duì)內(nèi)部代碼進(jìn)行任何更改。

在 eInfochips,我們?cè)谙到y(tǒng)、子系統(tǒng)和 IP 級(jí)環(huán)境中使用此內(nèi)存管理器,并取得了預(yù)期的結(jié)果。我們已經(jīng)使用探索和NCSim模擬器驗(yàn)證了這個(gè)組件。

審核編輯:郭婷

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

    關(guān)注

    31

    文章

    5434

    瀏覽量

    124539
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7653

    瀏覽量

    167426
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4392

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    HarmonyOS優(yōu)化應(yīng)用內(nèi)存占用問(wèn)題性能優(yōu)化一

    一、 概述 用戶功能的不斷增強(qiáng),應(yīng)用越來(lái)越復(fù)雜,占用的內(nèi)存不斷膨脹,而內(nèi)存作為系統(tǒng)的稀缺資源比較有限,當(dāng)應(yīng)用程序占用過(guò)多內(nèi)存時(shí),系統(tǒng)可能會(huì)頻繁進(jìn)
    發(fā)表于 05-21 11:27

    Linux系統(tǒng)通過(guò)預(yù)留物理內(nèi)存實(shí)現(xiàn)ARM與FPGA高效通信的方法

    管理子系統(tǒng)管理。因此,需要預(yù)留一部分物理內(nèi)存,使其不被內(nèi)核管理。接下來(lái)將為大家詳細(xì)介紹 Linux 系統(tǒng)
    的頭像 發(fā)表于 04-16 13:42 ?685次閱讀
    Linux系統(tǒng)<b class='flag-5'>中</b>通過(guò)預(yù)留物理<b class='flag-5'>內(nèi)存</b>實(shí)現(xiàn)ARM與FPGA高效通信的方法

    IEC61508系統(tǒng)的動(dòng)態(tài)內(nèi)存使用

    IEC 61508標(biāo)準(zhǔn)強(qiáng)烈推薦使用靜態(tài)內(nèi)存管理方式。安全應(yīng)用設(shè)計(jì),我們都在遵循這個(gè)建議。
    的頭像 發(fā)表于 04-11 15:17 ?938次閱讀
    IEC61508系統(tǒng)<b class='flag-5'>中</b>的動(dòng)態(tài)<b class='flag-5'>內(nèi)存</b>使用

    如何使用MCX N ROM API進(jìn)行內(nèi)部閃存擦除/編程?

    使用 MCX N ROM API 進(jìn)行內(nèi)部閃存擦除/編程
    發(fā)表于 03-27 07:04

    用ADS1298進(jìn)行內(nèi)部信號(hào)測(cè)試(1HZ)時(shí) 為什么各個(gè)通道的零點(diǎn)都不一致呢?

    老師,我用ADS1298進(jìn)行內(nèi)部信號(hào)測(cè)試(1HZ)時(shí)為什么各個(gè)通道的零點(diǎn)都不一致呢,并且明顯都漂到y(tǒng)=0軸以上了,以至于每次我測(cè)心電信號(hào)時(shí)都需要重新調(diào)整坐標(biāo)Y軸的值
    發(fā)表于 01-23 07:49

    使用 Memtester 對(duì)華為云 X 實(shí)例進(jìn)行內(nèi)存性能測(cè)試

    測(cè)試環(huán)境 ? 3.3 測(cè)試命令 ? 4 測(cè)試數(shù)據(jù)及性能分析 ? 4.1 帶寬測(cè)試結(jié)果 ? 4.2 延遲測(cè)試結(jié)果 ? 5 性能瓶頸與優(yōu)化建議 ? 6 總結(jié) ? 前言 云計(jì)算的應(yīng)用場(chǎng)景內(nèi)存性能對(duì)系統(tǒng)
    的頭像 發(fā)表于 12-30 14:52 ?505次閱讀
    使用 Memtester 對(duì)華為云 X 實(shí)例<b class='flag-5'>進(jìn)行內(nèi)存</b>性能測(cè)試

    ADS1299進(jìn)行內(nèi)部信號(hào)測(cè)試的時(shí)候出現(xiàn)方波不穩(wěn),為什么?

    之前買了ADS1299的評(píng)估板,我利用MCU(cc2530)板子對(duì)ADS1299套件子板供電并實(shí)現(xiàn)spi連接,已經(jīng)成功讀出ID。 再進(jìn)行內(nèi)部信號(hào)測(cè)試的時(shí)候出現(xiàn)方波不穩(wěn)(個(gè)別點(diǎn)跳躍)的情況(評(píng)估板
    發(fā)表于 12-25 07:30

    虛擬內(nèi)存溢出該怎么處理 虛擬內(nèi)存在服務(wù)器的應(yīng)用

    現(xiàn)代計(jì)算機(jī)系統(tǒng),虛擬內(nèi)存是一種重要的資源管理技術(shù),它允許系統(tǒng)使用硬盤空間來(lái)擴(kuò)展物理內(nèi)存的容量。然而,當(dāng)系統(tǒng)運(yùn)行的程序和進(jìn)程超出了物理
    的頭像 發(fā)表于 12-04 09:49 ?826次閱讀

    Linux下如何管理虛擬內(nèi)存 使用虛擬內(nèi)存時(shí)的常見(jiàn)問(wèn)題

    Linux系統(tǒng),虛擬內(nèi)存管理是操作系統(tǒng)內(nèi)核的一個(gè)重要功能,負(fù)責(zé)管理物理內(nèi)存和磁盤上的交換空間
    的頭像 發(fā)表于 12-04 09:19 ?1341次閱讀

    ADS1299進(jìn)行內(nèi)部方波測(cè)試的時(shí)候,方波不對(duì)稱是什么原因?qū)е碌模?/a>

    進(jìn)行內(nèi)部方波測(cè)試的時(shí)候,發(fā)現(xiàn)方波不對(duì)稱 ,配置為短接噪聲時(shí),發(fā)現(xiàn)噪聲為0.37mV,,請(qǐng)問(wèn)這是什么原因呢
    發(fā)表于 11-14 08:22

    RFID手持終端倉(cāng)庫(kù)管理的應(yīng)用

    倉(cāng)庫(kù)管理是供應(yīng)鏈管理的重要環(huán)節(jié),它涉及到貨物的接收、存儲(chǔ)、揀選、打包、發(fā)貨等多個(gè)環(huán)節(jié)。隨著科技的發(fā)展,RFID(射頻識(shí)別)技術(shù)倉(cāng)庫(kù)管理
    的頭像 發(fā)表于 10-29 09:16 ?1047次閱讀

    如何使用 ChatGPT 進(jìn)行內(nèi)容創(chuàng)作

    使用ChatGPT進(jìn)行內(nèi)容創(chuàng)作是一個(gè)高效且富有創(chuàng)意的過(guò)程。以下是一些關(guān)鍵步驟和建議,幫助您充分利用ChatGPT進(jìn)行內(nèi)容創(chuàng)作: 一、準(zhǔn)備階段 注冊(cè)與登錄 : 確保您已注冊(cè)ChatGPT賬號(hào),并登錄
    的頭像 發(fā)表于 10-25 16:08 ?1019次閱讀

    Linux內(nèi)存管理HVO的實(shí)現(xiàn)原理

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

    Windows管理內(nèi)存的三種主要方式

    Windows操作系統(tǒng)提供了多種方式來(lái)管理內(nèi)存,以確保系統(tǒng)資源的有效利用和性能的優(yōu)化。以下是關(guān)于Windows管理內(nèi)存的三種主要方式的詳細(xì)闡述,包括堆
    的頭像 發(fā)表于 10-12 17:09 ?2390次閱讀

    內(nèi)存管理的硬件結(jié)構(gòu)

    常見(jiàn)的內(nèi)存分配函數(shù)有malloc,mmap等,但大家有沒(méi)有想過(guò),這些函數(shù)在內(nèi)核是怎么實(shí)現(xiàn)的?換句話說(shuō),Linux內(nèi)核的內(nèi)存管理是怎么實(shí)現(xiàn)的?
    的頭像 發(fā)表于 09-04 14:28 ?662次閱讀
    <b class='flag-5'>內(nèi)存</b><b class='flag-5'>管理</b>的硬件結(jié)構(gòu)