value_plusargs和.get_arg_value

https://www.cnblogs.com/jiang-ic/p/10579416.html
传入值的方式不太一样,有没有加号。另外是有没有格式化字符串。

program automatic test;
    import uvm_pkg::*;

    class hello_world extends uvm_test;

        uvm_cmdline_processor clp;
        int arg_value;
        string arg;

        `uvm_component_utils(hello_world);

        function new (string name, uvm_component parent);
            super.new(name, parent);
            clp=new();
            if(clp.get_arg_value("+arg_value",this.arg)) begin
                this.arg_value=this.arg.atoi();
                `uvm_info("test_arg", $sformatf("input value = %d", arg_value), UVM_DEBUG);
            end
            else begin
                `uvm_info("test_arg", "no input arg_value", UVM_DEBUG);
            end

            if ($value$plusargs("arg_value%0s", this.arg)) begin
                this.arg_value=this.arg.atoi();
                `uvm_info("test_arg", $sformatf("input value = %d", arg_value), UVM_DEBUG);
            end
            else begin
                `uvm_info("test_arg", "no input arg_value", UVM_DEBUG);
            end

        endfunction

    endclass

    initial begin
        run_test("hello_world");
    end

    initial begin
        uvm_cmdline_processor cmdline_processor = uvm_cmdline_processor::get_inst();
        // give default value
        string my_value = "default_value";
        int rc = cmdline_processor.get_arg_value("+abc=", my_value);
        // if needed, change to integer
        int my_int_value = my_value.atoi();

        // for a set of values in +abc
        string my_value_list[$]; 
        int rc = cmdline_process.get_values("+abd=", my_value_list);

        $display("my rc: %0d", rc);
        $display("my value : %0s", my_value);
        $display("my value_list : %p", my_value_list);
    end

endprogram


运行

vcs -full64 -sverilog -R -ntb_opts uvm-1.2 taa.sv +arg_value1231 +UVM_VERBOSITY=UVM_DEBUG +abc=111 +abd=ccc,ddd,eee


输出

list部分传值失败了!

UVM_INFO taa.sv(17) @ 0: uvm_test_top [test_arg] input value =        1231
UVM_INFO taa.sv(25) @ 0: uvm_test_top [test_arg] input value =        1231
UVM_INFO @ 0: reporter [RNTST] Running test hello_world...
my rc: 1
my value : 111
my value_list : '{}

posted @ 2023-05-21 19:50  大浪淘沙、  阅读(173)  评论(0)    收藏  举报