开发人员除了通过读取文件来获取仿真的信息外,还可以通过调用仿真器的命令来指定信息,这些信息是以可选参数的形式提供给仿真器的。这些参数以加号 ( + ) 字符开头,与其他仿真器参数有明显区别,这些参数在下文中称为plusargs。
实现命令行输入功能的函数有两个:
- $test$plusargs
该系统函数会在plusargs列表中搜索用户指定的plusarg字符串。该字符串在系统函数的参数中指定为字符串或可解释为字符串的非实数变量。该字符串不得包含命令行参数的前导加号。命令行中的 plusargs 将按照提供的顺序进行搜索。如果所提供的某个plusargs的前缀与所提供字符串中的所有字符匹配,函数将返回一个非零整数。如果命令行中没有任何plusarg与所提供的字符串匹配,函数返回的整数值为零。
例如:使用命令“+HELLO”运行仿真器时,如果有如下的verilog代码:
则仿真器会产生如下输出:
- $value$plusargs
$value$plusarg系统函数会在plusargs列表(类似于 $test$plusargs 系统函数)中搜索用户指定的plusarg字符串。该字符串在系统函数的第一个参数中指定为一个字符串或一个可解释为字符串的非实数变量,该字符串不应包括命令行参数的前导加号。命令行中的 plusargs 将按照提供的顺序进行搜索。如果提供的某个plusargs的前缀与提供的字符串中的所有字符匹配,函数将返回一个非零整数,字符串的剩余部分将转换为user_string中指定的类型,并将结果值存储到提供的变量中。如果没有找到匹配的字符串,函数将返回一个非零整数,并且不修改所提供的变量。函数返回0时不会产生警告。
在提供给仿真器的plusarg列表中,与指定的user_string的plusarg_string部分相匹配的第一个字符串,就是可供转换的plusarg字符串。匹配的plusarg的剩余字符串(剩余字符串是plusarg字符串中与用户plusarg_string匹配部分之后的部分)应从字符串转换为格式字符串所指示的格式,并存储在所提供的变量中。如果没有剩余的字符串,存储到变量中的值应为 0 或空字符串值。
点赞加关注博主(ID:FPGA小飞)的博文,咱们一起系统学习verilog最终标准IEEE Std 1364-2005吧!