一個component(如my_driver)內(nèi)通過get_full_name()函數(shù)可以得到此component的路徑
config_db機制用于在UVM驗證平臺間傳遞參數(shù)。它們通常都是成對出現(xiàn)的。set函數(shù)是寄信,而get函數(shù)是收信。如下設置當前名字為pre_num=100寄信給drive
uvm_config_db#(int)::set(this, "env.i_agt.drv", "pre_num", 100);
其中第一個和第二個參數(shù)聯(lián)合起來組成目標路徑,與此路徑符合的目標才能收信。第一個參數(shù)必須是一個uvm_component實例的指針,第二個參數(shù)是相對此實例的路徑。第三個參數(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ù)被設置為this,那么第二個參數(shù)可以是一個空的字符串。第三個參數(shù)就是set函數(shù)中的第三個參數(shù),這兩個參數(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語句,當執(zhí)行到driver的super.build_ phase時,會自動執(zhí)行g(shù)et語句。
審核編輯:劉清
-
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19171
原文標題:UVM的config機制
文章出處:【微信號:FPGA學姐,微信公眾號:FPGA學姐】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論