【UVM】 【source_code】 uvm_cmdline_processor
class uvm_cmdline_processor
函数 get_arg_values()
用于收集命令行(command line)中匹配的参数,便于后续处理。
返回所有匹配上的参数数量,所有匹配上的参数词尾被存放在values[$]中。
source code
function int get_arg_values (string match, ref string values[$]);
int chars = match.len();
values.delete();
foreach (m_argv[i]) begin
if(m_argv[i].len() >= chars) begin
if(m_argv[i].substr(0,chars-1) == match)
values.push_back(m_argv[i].substr(chars,m_argv[i].len()-1));
end
end
return values.size();
endfunction
举例
命令行中有"+foo=1,yes,on +foo=5,no,off"
如果有如下调用
string foo_values[$]
initial begin
void'(uvm_cmdline_proc.get_arg_values("+foo=", foo_values))
...
最终结果会在foo_values中有两个items:
"1,yes,on"
"5,no,off"
suggest
建议使用uvm_split_string()来对此函数的结果(ref string values[$] )做处理。
举例
string seed;
string case_name_str_dump;
string dump_sw_get;
string dump_sw;
string bypass_pll;
string sw_clk_sel;
initial begin
void'(uvm_cmdline_proc.get_arg_value("+seed=",seed));
void(uvm_cmdline_proc.get_arg_value("+UVM_TESTNAME=",case_name_str_dump));
void(uvm_cmdline_proc.get_arg_value("+verdi_dump=",dump_sw_get));
void(uvm_cmdline_proc.get_arg_value("+bypass_pll=",bypass_pll));
void(uvm_cmdline_proc.get_arg_value("+sw_clk_sel=",sw_clk_sel));
end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?