首页 > 其他分享 >【UVM】 【source_code】 uvm_cmdline_processor

【UVM】 【source_code】 uvm_cmdline_processor

时间:2024-03-06 15:26:33浏览次数:25  
标签:code string cmdline get source values uvm arg

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

标签:code,string,cmdline,get,source,values,uvm,arg
From: https://www.cnblogs.com/camellia3371----/p/18056660

相关文章

  • leetcode-15. 三数之和 - 双指针问题
    classSolution:defthreeSum(self,nums:List[int])->List[List[int]]:nums.sort()res=[]mem=set()foriinrange(len(nums)):ifnums[i]>0:breakifi>0andnum......
  • LeetCode75 1768.交替合并字符串
    1768.交替合并字符串https://leetcode.cn/problems/merge-strings-alternately/description/?envType=study-plan-v2&envId=leetcode-75publicStringmergeAlternately(Stringword1,Stringword2){intlen1=word1.length();intlen2=word2.length()......
  • Codeforces Round 932 (Div. 2)
    CodeforcesRound932(Div.2)A-EntertainmentinMAC解题思路:如果翻转字符小于原字符,那么一直翻转即可。否则,翻转\(n-1\)次,然后添加一次。代码:#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;usingpii=pair<ll,ll>;typedefdoubledb;......
  • VSCode 发布时报error MSB4018: “CreateAppHost”任务意外失败
    大概率是杀毒软件问题,我的问题是有360杀毒导致的网上的方案有如下,也都进行了尝试:重启VisualStudio以管理员身份运行VisualStudio清理解决方案删除bin目录下的所有文件均无效,无奈之下继续寻找解决方案,发现用ProcessMonitor来监控到底是谁在搞鬼。通过下载ProcessMo......
  • leedcode 位1的数量
    自己写的classSolution:defhammingWeight(self,n:int)->int:#将整数n转换为二进制字符串,去除前缀'0b'n_str=bin(n)[2:]#用于存储'1'的列表res_li=[]#遍历二进制字符串的每一位foriinn_str:......
  • leedcode 颠倒二进制
    使用bin函数classSolution:defreverseBits(self,n:int)->int:#将整数n转换为二进制字符串,并用左0填充至32位binary_str=bin(n)[2:].zfill(32)#反转二进制字符串reversed_str=binary_str[::-1]#将反转后的......
  • vscode中如何对vue文件代码进行格式化
    vscode中如何对vue文件代码进行格式化1.通过vscode的Extensions插件市场,搜索Vetur插件。Vetur是一个专门为Vue开发提供支持的插件,它提供了代码高亮、智能提示、语法检查等功能2.找到vscode的设置Settings,然后在搜索栏中输入:“Editor:DefaultFormatter”,选择"Vetur"作为默认的......
  • leetcode--901. 股票价格跨度(单调栈)
    记录10:002024-3-6https://leetcode.cn/problems/online-stock-span/维护一个单调递减的栈s,并且也要一个记录个数的栈count每次来一个数据,这个数据如果比s栈顶数据小,就直接放入s,并在count中记录下它的个数1如果这个数据比s栈顶数据大,就需要弹出s和count的top,来保证s是递减的......
  • code top push
    `typeIntHeapstruct{sort.IntSlice}func(h*IntHeap)Push(vinterface{}){h.IntSlice=append(h.IntSlice,v.(int))}func(h*IntHeap)push(vint){heap.Push(h,v)}func(h*IntHeap)Pop()interface{}{n:=len(h.IntSlice)-1num:=h.IntSlice[n......
  • Autowired和Resource的区别
    @Autowired是Spring框架中的注解,它可以用来标注字段、构造函数、方法等,表示需要自动装配。它可以用来注入依赖的bean。如果有多个bean符合条件,可能会抛出异常。@Resource是Java自带的注解,它可以用来标注字段、方法等,表示需要自动装配。它可以用来注入依赖的bean。如果有多个bean......