一個component(如my_driver)內(nèi)通過get_full_name()函數(shù)可以得到此component的路徑
config_db機(jī)制用于在UVM驗證平臺間傳遞參數(shù)。它們通常都是成對出現(xiàn)的。set函數(shù)是寄信,而get函數(shù)是收信。如下設(shè)置當(dāng)前名字為pre_num=100寄信給drive
uvm_config_db#(int)::set(this, "env.i_agt.drv", "pre_num", 100);
其中第一個和第二個參數(shù)聯(lián)合起來組成目標(biāo)路徑,與此路徑符合的目標(biāo)才能收信。第一個參數(shù)必須是一個uvm_component實例的指針,第二個參數(shù)是相對此實例的路徑。第三個參數(shù)表示一個記號,用以說明這個值是傳給目標(biāo)中的哪個成員的,第四個參數(shù)是要設(shè)置的值。set函數(shù)的第一個參數(shù)為null時,在這種情況下,UVM會自動把第一個參數(shù)替換為uvm_ root::get()。
假如把this替換為了this.env,第二個參數(shù)是my_driver相對于env的路徑
uvm_config_db#(int)::set(this.env, "i_agt.drv", "pre_num_max", 100);
在driver中的build_phase使用如下方式收信
uvm_config_db#(int)::get(this, "", "pre_num", pre_num);
get函數(shù)中的第一個參數(shù)和第二個參數(shù)聯(lián)合起來組成路徑。第一個參數(shù)也必須是一個uvm_component實例的指針,第二個參數(shù)是相對此實例的路徑。一般的,如果第一個參數(shù)被設(shè)置為this,那么第二個參數(shù)可以是一個空的字符串。第三個參數(shù)就是set函數(shù)中的第三個參數(shù),這兩個參數(shù)必須嚴(yán)格匹配,第四個參數(shù)則是要設(shè)置的
set與get函數(shù)一般都是成對出現(xiàn),但是在某些情況下,是可以只有set而沒有g(shù)et語句,即省略get語句。
只要使用uvm_field_int注冊,并且在build_phase中調(diào)用super.build_phase(),就可以省略在build_phase中的如下get語句
uvm_config_db#(int)::get(this, "", "pre_num", pre_num);
關(guān)鍵是build_phase中的super.build_phase語句,當(dāng)執(zhí)行到driver的super.build_ phase時,會自動執(zhí)行g(shù)et語句。
審核編輯:劉清
-
UVM
+關(guān)注
關(guān)注
0文章
183瀏覽量
19842
原文標(biāo)題:UVM的config機(jī)制
文章出處:【微信號:FPGA學(xué)姐,微信公眾號:FPGA學(xué)姐】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
分享一下多點(diǎn)電極液位開關(guān)的特點(diǎn)與優(yōu)勢

NVMe高速傳輸之?dāng)[脫XDMA設(shè)計24: UVM 驗證包設(shè)計

NVMe高速傳輸之?dāng)[脫XDMA設(shè)計24: UVM 驗證包設(shè)計
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計23:UVM驗證平臺
圖解環(huán)路設(shè)計及控制技術(shù)探討
奧比中光助力支付寶碰一下落地電梯場景
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計18:UVM驗證平臺
“碰一下”支付終端應(yīng)用在酒店:智能無卡入住與客房控制

上電時GPIO控制的LED偶爾詭異地亮了一下

碰一下終端,讓自助售貨機(jī)秒變 “家里的冰箱”

ADS1115的Config Register在什么時候配置比較好?
“碰一下”支付背后的4G技術(shù)
支付寶發(fā)布新一代AI視覺搜索“探一下”
深入探討Linux系統(tǒng)中的動態(tài)鏈接庫機(jī)制

評論