典型的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文件中提供的數據創建的。各個內存類配置可根據項目要求完全自定義。以類似的方式,我們可以通過腳本的命令行選項配置頂部內存。管理器是單例,因此不會有數據重復。
圖 1 使用簡易內存管理器的環境
圖 2 使用簡易內存管理器分配和取消分配內存區域
表1 管理器中的方法列表
在這里,我們展示了如何在多主方案中使用“簡易內存管理器”的場景。存儲器由兩個主站訪問,一個是SPI主站,另一個是以太網主站,它們正在執行自己的測試序列。在此示例中,您可以觀察主節點在訪問內存時提供的唯一編號如何使用戶能夠更好地控制測試用例中的區域處理。此外,用戶無需了解RAL模型中存儲器的結構。他可以簡單地提供實際地址,經理足夠聰明,可以根據地址保留區域。
圖 3 主節點在保留/釋放區域時與管理器的交互
最初,整個內存范圍都可用,SPI 主站請求兩個區域,以便它可以在這些區域上啟動其序列。
同樣,以太網主站也請求了三個區域。以太網主站和SPI主站的區域將通過主站在分配時作為參數傳遞的主控號來區分。
SPI 主站已完成其序列,并通過在調用釋放函數時指定其唯一主控號來釋放其分配的兩個區域。
以太網主機現在希望訪問先前分配給 SPI 主機的區域。因此,它將通過指定物理地址來請求這些區域。
以太網序列已經完成,它將釋放它所請求的區域。
集成步驟
圖4 集成步驟
向 XLS 提供輸入–在.xls文件中以適當的格式寫入數據以創建單獨的內存。
通過腳本生成記憶和reg_block – 使用適當的命令行選項運行腳本。如果未提供命令行選項,則使用默認選項。
以環境中的經理實例為例 – 存儲器和管理器將根據.xls文件和命令行選項中提供的數據創建。在要訪問管理器的組件中創建管理器的對象實例。
獲取管理器的句柄 – 管理器的實例需要獲取管理器的句柄,因為它是單例。管理器由返回單一實例句柄的方法組成。
通過句柄訪問方法– 可以使用管理器的句柄訪問管理器的方法。
“簡易內存管理器”本質上是通用的,可以在任何現有的基于UVM的驗證環境中使用。管理器包易于配置,可以擴展到任何特定于項目的環境中,而無需對內部代碼進行任何更改。
在 eInfochips,我們在系統、子系統和 IP 級環境中使用此內存管理器,并取得了預期的結果。我們已經使用探索和NCSim模擬器驗證了這個組件。
審核編輯:郭婷
-
寄存器
+關注
關注
31文章
5361瀏覽量
120873 -
存儲器
+關注
關注
38文章
7523瀏覽量
164130 -
soc
+關注
關注
38文章
4193瀏覽量
218694
發布評論請先 登錄
相關推薦
評論