通过命令行输入参数控制激励

1)在命令行的仿真参数(SIM_OPT)加上:“+var_a=100  +var_b=99”

2)在环境中调用:

$test$plusargs("var_a");如果命令行存在这个字符,返回1,否则返回0;

$value$plusargs("var_a=%0d",tc_var_a);就可以把命令行var_a的参数100提取出来到tc_var_a变量了


sv中$test$plusargs和$value$plusargs的用法小结(转载自博客园from nanoty)_sv $value$plusaegs-优快云博客

 $test$plusargs和$value$plusargs作为进行Verilog和SystemVerilog仿真运行时调用的系统函数,可以在仿真命令直接进行赋值,并且不局限于不同仿真器对于参数在仿真命令中定义格式不同的限制,也避免了调换参数带来的频繁编译等问题。

可以使用$test$plusargs和$value$plusargs进行解决,该函数的调用发生在仿真运行(run)阶段。这样仅需要对设计进行一次编译即可,如果需要改变相应的条件,可以在run的时候动态指定,这样有利于脚本处理进行回归的验证,同时也有利于object的动态construct。
————————————————

$test$plusargs

    在运行(run)仿真时指定要选择的条件,即只需要在仿真运行命令(run-options)中指定参数需要选择的条件即可。当仿真运行时,$test$plusargs会在命令行中搜索指定的字符,若找到相应字符,在函数返回“1”,否则返回“0”。

$value$plusargs
$value$plusargs可以讲运行命令(run-options)中的参数值传递给指定的信号或者字符,其语法格式如下:

Integer=$value$plusargs(“string”,signalname);

其中string=”plusarg_format”+”format_string”,”plusarg_format”指定了用户定义的要进行传递的值,”format_string”指定了要传递的值的格式(类似$display中定义的%s、%h、etc.),并且string中”plusarg_format”和”format_string”格式应该为”plusarg_format”(=/+)”format_string”。如果转换后的位宽和传递的值不一致,则按照如下规则转换:

实例:


典型应用场景:

性能验证场景:可能要测试很多不同的场景下的性能。

通过参数化控制,如果回归脚本吃的回归列表刚好可以吃不同的命令行参数,就可以实现一个base_perf_tc,然后回归列表里面配置不同参数对应不同场景以及不同的检查标准等。

另外一种做法就是通过控制base_perf_tc里面的参数实现不同用例。本质上是一回事,只是可以不用依赖脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值