禾雨

导航

【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

posted on 2024-03-06 15:09  禾雨  阅读(9)  评论(0编辑  收藏  举报