這是一篇技術(shù)干貨快文,能夠快速閱讀完。文章內(nèi)容是關(guān)于如何從命令行獲取和解析參數(shù),包括SystemVerilog本身支持的系統(tǒng)函數(shù)和UVM提供的函數(shù)封裝,并給出示例代碼和仿真結(jié)果。
01 SV系統(tǒng)函數(shù)
通過命令行來傳遞參數(shù)在實(shí)際項(xiàng)目中算是常規(guī)操作,比如通過命令行參數(shù)來指定Testbench的配置信息等等。在SystemVerilog LRM規(guī)范里,命令行提供的仿真參數(shù)要求使用加號(hào)(+)作為引導(dǎo),這部分參數(shù)可以被驗(yàn)證環(huán)境中的SV代碼通過系統(tǒng)函數(shù)訪問到。由于是額外增加的,這些參數(shù)也就被稱之為plusargs。
訪問plugargs的系統(tǒng)函數(shù)有$test$plusagrs(arg_string)和$value$plusargs(arg_string, target_var)。這兩個(gè)系統(tǒng)函數(shù)都會(huì)根據(jù)用戶指定的字符串a(chǎn)rg_string,去檢索plusargs列表。如果找到了,則系統(tǒng)函數(shù)返回值1;如果沒有找到,返回值0。
其中$test$plusargs(arg_string)可以被用于判斷命令行是否帶了arg_string參數(shù),以此來作為驗(yàn)證環(huán)境的配置開關(guān);$value$plusargs(arg_string, target_var)則是在$test$plusargs的基礎(chǔ)上,增加了對(duì)參數(shù)arg_string的值的解析:如果匹配到了arg_string,系統(tǒng)函數(shù)會(huì)將其值賦給target_var;如果沒有找到,則不修改target_var的值。
執(zhí)行仿真命令:
./simv +vcs+lic+wait +HelloWorld +NAME=ictalking +DATA1=123 +DATA2=C0FFEE +DATA3=101001011101
仿真結(jié)果如下:
?
?02UVM_CMDLINE_PROCESSOR
UVM是個(gè)非常喜歡搞封裝的類庫。UVM中有個(gè)類叫uvm_cmdline_processor,該類繼承自u(píng)vm_report_object,再往上就到uvm_object了。uvm_cmdline_processor提供的底層函數(shù)接口,說白了跟$test$plusargs和$value$plusargs沒有什么大的區(qū)別,不過其中有匹配功能或返回參數(shù)列表的函數(shù),對(duì)于uvm_root解析UVM配置相關(guān)的參數(shù)還是很有幫助的。
uvm_cmdline_processor全局單一例化,并提供了get_inst()靜態(tài)方法用來獲取對(duì)象句柄。UVM默認(rèn)在初始化的時(shí)候,會(huì)構(gòu)造uvm_cmdline_processor的全局對(duì)象,叫uvm_cmdline_proc。不過在實(shí)際使用中,我們還是可以按照習(xí)慣,先聲明一個(gè)uvm_cmdline_processor句柄,然后通過get_inst()函數(shù)來指向uvm_cmdline_processor對(duì)象。
執(zhí)行仿真命令:
./simv +vcs+lic+wait +UVM_TESTNAME=cmdline_test +cmd_data_int=123 +cmd_data_hex=AA +cmd_data_bin=1011
仿真結(jié)果如下:
原文標(biāo)題:SystemVerilog | UVM | 獲取命令行參數(shù)的方法,這些就夠用了
文章出處:【微信公眾號(hào):路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
參數(shù)
+關(guān)注
關(guān)注
11文章
1829瀏覽量
32195 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4327瀏覽量
62569 -
UVM
+關(guān)注
關(guān)注
0文章
182瀏覽量
19167 -
命令行
+關(guān)注
關(guān)注
0文章
77瀏覽量
10385
原文標(biāo)題:SystemVerilog | UVM | 獲取命令行參數(shù)的方法,這些就夠用了
文章出處:【微信號(hào):Rocker-IC,微信公眾號(hào):路科驗(yàn)證】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論