首页 > 其他分享 >value_plusargs和.get_arg_value

value_plusargs和.get_arg_value

时间:2023-05-21 19:55:05浏览次数:51  
标签:get value uvm arg test my UVM

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%0d", this.arg)) begin
                `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

输出

数组部分获取数值失败,然后是uvm这种方法和sv提供的方法除了传入是不是格式化字符串,还有其它一点区别,要不然前两行输出是一样的。

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

标签:get,value,uvm,arg,test,my,UVM
From: https://www.cnblogs.com/bai2022/p/17419056.html

相关文章

  • requests: 基本使用、get、post、代理、cookie案例、超级鹰打码api
    1、requests_1_基本使用""".-''-..--._..._.'.-.)|__|......
  • Wordpress自定义小工具(Widget)简单案例
    在主题对应目录创建文件如widgets.php<?php//继承了WP_Widget这个类来创建新的小工具(Widget):可在后台外观-小工具中添加此自定义小工具到页面具体位置classmy_widgetextendsWP_Widget{publicfunction__construct() { //$widget_ops可以给小工具进......
  • Do not forget to use Gzip for Express.js
     http://inspiredjw.com/do-not-forget-to-use-gzip-for-express/ Whenagzipcompatiblebrowserrequeststoawebserver,webservercancompresstheresponsetothebrowserbackandthebrowsercandecompresstheresponseandfinallythebrowsergettheori......
  • Python多进程编程-进程间共享数据(Value、Array、Manager)
    转载:(14条消息)Python多进程编程-进程间共享数据(Value、Array、Manager)_managervalue_Loadinggggg的博客-CSDN博客Value、Array是通过共享内存的方式共享数据Manager是通过共享进程的方式共享数据。Value\Array实例代码:importmultiprocessing#Value/Arraydeffunc1(a,arr......
  • 整理:各个浏览器及web服务器对URL(get)长度的限制
     http1.1协议中对url的长度是不受限制的:TheHTTPprotocoldoesnotplaceanyapriorilimitonthelengthofaURI.ServersMUSTbeabletohandletheURIofanyresourcetheyserve,andSHOULDbeabletohandleURIsofunboundedlengthiftheyprovideGET-......
  • ABP模块签入GitLab后自动打包并推送到ProGet
    #1、添加一个名为下划线的解决方案文件夹#2、把解决方案根目录下的几个必要的文件添加到上述文件夹下#3、修改NuGet.Config,添加私有NuGet服务器的网址,并配置用户名和密码:ABPSuite模板生成的NuGet.Config是这样的:添加一行自己服务器的配置,另外有对应的节点设置用户名和密码:#4、......
  • servJump extends HttpServlet //request.getRequestDispatcher //response.sendRed
    packagecom.test;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.HashMap;importjava.util.Map;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;impo......
  • Get-MMagent 是一个命令,通常用于查询与 Microsoft Management Agent (MMAgent) 相关的
    Get-MMagent是一个命令,通常用于查询与MicrosoftManagementAgent(MMAgent)相关的属性和配置信息。MMAgent是一款基于云计算技术的软件代理程序,用于帮助配置管理、安全性和监视方案。在Windows平台上,MMAgent通常用于实现高效的云端管理和自动化操作,包括AzureMonitor等相......
  • GET和POST请求的区别
    GET和POST请求的区别:get把请求的数据放在url上,即HTTP协议头上,其格式为:以?分割URL和传输数据,参数之间以&相连。数据如果是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,及“%”加上“字符串的16进制ASCII码”。post把数据放在HTTP的包体内......
  • 1094 The Largest Generation
    题目:Afamilyhierarchyisusuallypresentedbyapedigreetreewhereallthenodesonthesamelevelbelongtothesamegeneration.Yourtaskistofindthegenerationwiththelargestpopulation.InputSpecification:Eachinputfilecontainsonetestcas......