verilog系统函数:$value$plusargs、$test$plusargs

这篇博客介绍了Verilog中用于命令行输入参数的两个系统函数:$test$plusargs和$value$plusargs。$test$plusargs用于检查是否在命令行输入了特定字符串,而$value$plusargs不仅能检查字符串是否存在,还能将匹配的字符串转换为指定的数值类型。通过这两个函数,开发者可以在仿真时传递额外信息,如模块名称或数值参数。文中给出了具体的代码示例和Modelsim仿真的输出结果,展示了如何使用这两个函数进行参数匹配和转换。

命令行输入

读取文件以获取用于模拟的信息的另一种方法是使用调用仿真器的命令来指定信息。该信息以**可选参数(plusargs)**的形式提供给仿真器。这些参数形式上与其他仿真器参数不同,因为它们以加号(+)字符开头。

作用:运行仿真时输入参数

$test$plusargs (string)

*用于只输入字符串时

系统函数$test$plusarg搜索用户指定的plusarg_stringplusargs列表。字符串在系统函数的参数中指定为字符串或被解释为字符串的非实数变量。这个字符串不包含命令行参数的前导加号(+)。按照提供的顺序搜索命令行上的plusargs。如果提供的一个plusargs的前缀匹配提供的字符串中的所有字符,则函数返回一个非零整数。如果命令行中没有匹配提供的字符串的plusarg,函数将返回整数值0。

例如:
运行仿真器时添加命令: +HELLO

有如下Verilog代码:

`timescale 1ns/1ps  
module test ();
initial begin
    if ($test$plusargs("HELLO")) $display("Hello argument found.");
    if ($test$plusargs("HE")) $display("The HE subset string is detected.");
    if ($test$plusargs("H")) $display("Argument starting with H found.");
    if ($test$plusargs("HELLO_HERE"))$display("Long argument.");
    if ($test$plusargs("HI")) $display(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值