VERILOG的参数可以用define和parameter的方式定义,这种方法要求我们在编译前将变量必须定义好,编译完成之后再也不能修改;

然而,有时候我们在进行仿真时,需要从外部传递参数,这个要求怎么满足呢?

我们来看下 $test$plusargs和$value$plusargs的功能,首先来看一个简单的例子:

`timescale 1ns/1psmodule tb;reg[255:0] testname;initial begin$display("**********************RESULT IS BELOW*********************");if($test$plusargs("TAISHAN"))$display("****************TAISHAN is selected******************");else$display("**********************$test$plusargs FAIL**************");if ($value$plusargs("TESTNAME=%s", testname[255:0]))  $display("*****************Running test %0s.********************", testname); else$display("**********************$value$plusargs FAIL**************");$finish;endendmodule

以synopsis的VCS工具为例,正常编译后,

在仿真时,不同命令的结果如下:

命令:simv
输出:
**********************$test$plusargs FAIL***************
**********************$value$plusargs FAIL**************命令:simv +TAISHAN
输出:
****************TAISHAN is selected******************
**********************$value$plusargs FAIL**************命令:simv +TAISHAN +TESTNAME=HUASHAN
输出:
****************TAISHAN is selected******************
*****************Running test HUASHAN.********************

跑完以上例子,对$test$plusargs和$value$plusargs已经有一个初步的了解。

注意,simv有一个bug,假如一段程序中有如下代码:

if($test$plusargs("TAISHAN")) begin。。。end

if($test$plusargs("TAISHANHAO")) begin。。。end

在仿真时,若采用命令

simv +TAISHANHAO

TAISHANHAO也会触发分支if($test$plusargs("TAISHAN")) begin。。。end

因此,建议大家在命名时前缀尽量不要一致。

verilog仿真——$test$plusargs 和 $value$plusargs相关推荐

  1. 交互系统函数$test$plusargs()与$value$plusargs ——字符串函数 $sformatf()与$sformat()的区别与用法

    文章目录 1.\$test$plusargs()与\$value$plusargs()--TB与命令行交互 2.关于函数的使用说明 3.\$sformatf()/$sformat()--整理字符串 4 ...

  2. 认识系统函数$test$plusargs与$value$plusargs

    说明:系统函数的介绍参考的是VCS User Guide和IEEE Verilog-2005标准,不同IDE可能不太一样. 1.$test$plusargs(string) 在对verilog代码进行 ...

  3. VCS dump fsdb 波形

    文章目录 前言 一.testbench中控制dump fsdb 1.1 testbench中加入的代码 1.2.开启记录波形 二.vcs仿真命令控制dump fsdb 三.irun仿真命令控制dump ...

  4. 波形文件(wlf,vcd,fsdb,shm,vpd)的区别,及如何生成

    在verilog和systemverilog等逻辑仿真的过程中,最关心的就是最后生成的波形是如何,我们才能根据波形去具体分析.但是往往会根据各个公司和各个平台工具的不同,会产生不同的波形文件,那么不同 ...

  5. SystemVerilog: 仿真验证知识点点滴滴

    目录 1. 软件世界和硬件世界 2. 什么是package 3. import pkg::*是将pkg的所有都导入进来吗? 4. import vs include 5. 仿真时间和无限死循环 6. ...

  6. UART UVM验证平台平台搭建总结

    UART UVM验证平台平台搭建总结 tb_top是整个UVM验证平台的最顶层:tb_top中例化dut,提供时钟和复位信号,定义接口以及设置driver和monitor的virual interfa ...

  7. 4选1多路选择器的Verilog描述及仿真

    多路选择器的功能:在选择信号的控制下,从多个输入中选择一个输出. 真值表                                                符号               ...

  8. (多图) 基于Verilog HDL的FIR数字滤波器设计与仿真

    引言:数字滤波器是语音与图像处理.模式识别.雷达信号处理.频谱分析等应用中的一种基本的处理部件,它能满足波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移.温度漂移和噪声等问题.有限冲 ...

  9. Verilog inout 双向口使用和仿真

    Verilog inout 双向口使用和仿真 转载于:https://www.cnblogs.com/LittleTiger/p/4723500.html

最新文章

  1. 微信二次修改微信号_如何二次修改微信号?简单易懂教程
  2. C#中子线程操作主线程中窗体上控件的方法
  3. Maven(4)--POM配置
  4. java w3c xml_org.w3c.dom(java dom)解析XML文档
  5. 华三交换机配置access命令_H3C交换机配置命令大全
  6. 【Flink】Flink 检查点 Triggering checkpoint createBlockoutputstream no further info information
  7. DOS批处理删除重复行
  8. IE与firefox区别
  9. 由于找不到opencv_world412d.dll,无法继续执行代码
  10. 【系统分析师】2022选择题上午考点
  11. zheng项目系统简单的分析记录
  12. 计算机的发展阶段器件,计算机发展的四个阶段构成计算机的电子元器件分别是什么?...
  13. 培训2022年6月22日
  14. 用大白菜装centos7_u盘安装centos 卡住大白菜怎么用u盘装win7系统
  15. FC总线基础知识(2)——光纤交换机
  16. telnet协议的Wireshark抓包分析
  17. Java之lambda表达式
  18. 用HBuilder打包iOS App
  19. 关于游戏测试岗位的一些理解和建议
  20. 第一章、安装、登录CentOS7

热门文章

  1. Swift数据类型_整型和浮点型
  2. js设置奇偶行数样式
  3. Spring学习使用标签来标记资源(@Component、@Repository、 @Service和@Controller)和用法(包括如何jsp正在使用)...
  4. QMarkDowner编译
  5. Chapter 4 : 单行函数
  6. java类的结构:构造器 —(13)
  7. 前端开发掌握nginx常用功能之rewrite
  8. Windows Shell 编程 第六章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987951】...
  9. 计算方法之迭代法求方程根
  10. Nokia7610彩信设置