verilog仿真——$test$plusargs 和 $value$plusargs
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相关推荐
- 交互系统函数$test$plusargs()与$value$plusargs ——字符串函数 $sformatf()与$sformat()的区别与用法
文章目录 1.\$test$plusargs()与\$value$plusargs()--TB与命令行交互 2.关于函数的使用说明 3.\$sformatf()/$sformat()--整理字符串 4 ...
- 认识系统函数$test$plusargs与$value$plusargs
说明:系统函数的介绍参考的是VCS User Guide和IEEE Verilog-2005标准,不同IDE可能不太一样. 1.$test$plusargs(string) 在对verilog代码进行 ...
- VCS dump fsdb 波形
文章目录 前言 一.testbench中控制dump fsdb 1.1 testbench中加入的代码 1.2.开启记录波形 二.vcs仿真命令控制dump fsdb 三.irun仿真命令控制dump ...
- 波形文件(wlf,vcd,fsdb,shm,vpd)的区别,及如何生成
在verilog和systemverilog等逻辑仿真的过程中,最关心的就是最后生成的波形是如何,我们才能根据波形去具体分析.但是往往会根据各个公司和各个平台工具的不同,会产生不同的波形文件,那么不同 ...
- SystemVerilog: 仿真验证知识点点滴滴
目录 1. 软件世界和硬件世界 2. 什么是package 3. import pkg::*是将pkg的所有都导入进来吗? 4. import vs include 5. 仿真时间和无限死循环 6. ...
- UART UVM验证平台平台搭建总结
UART UVM验证平台平台搭建总结 tb_top是整个UVM验证平台的最顶层:tb_top中例化dut,提供时钟和复位信号,定义接口以及设置driver和monitor的virual interfa ...
- 4选1多路选择器的Verilog描述及仿真
多路选择器的功能:在选择信号的控制下,从多个输入中选择一个输出. 真值表 符号 ...
- (多图) 基于Verilog HDL的FIR数字滤波器设计与仿真
引言:数字滤波器是语音与图像处理.模式识别.雷达信号处理.频谱分析等应用中的一种基本的处理部件,它能满足波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移.温度漂移和噪声等问题.有限冲 ...
- Verilog inout 双向口使用和仿真
Verilog inout 双向口使用和仿真 转载于:https://www.cnblogs.com/LittleTiger/p/4723500.html
最新文章
- 微信二次修改微信号_如何二次修改微信号?简单易懂教程
- C#中子线程操作主线程中窗体上控件的方法
- Maven(4)--POM配置
- java w3c xml_org.w3c.dom(java dom)解析XML文档
- 华三交换机配置access命令_H3C交换机配置命令大全
- 【Flink】Flink 检查点 Triggering checkpoint createBlockoutputstream no further info information
- DOS批处理删除重复行
- IE与firefox区别
- 由于找不到opencv_world412d.dll,无法继续执行代码
- 【系统分析师】2022选择题上午考点
- zheng项目系统简单的分析记录
- 计算机的发展阶段器件,计算机发展的四个阶段构成计算机的电子元器件分别是什么?...
- 培训2022年6月22日
- 用大白菜装centos7_u盘安装centos 卡住大白菜怎么用u盘装win7系统
- FC总线基础知识(2)——光纤交换机
- telnet协议的Wireshark抓包分析
- Java之lambda表达式
- 用HBuilder打包iOS App
- 关于游戏测试岗位的一些理解和建议
- 第一章、安装、登录CentOS7
热门文章
- Swift数据类型_整型和浮点型
- js设置奇偶行数样式
- Spring学习使用标签来标记资源(@Component、@Repository、 @Service和@Controller)和用法(包括如何jsp正在使用)...
- QMarkDowner编译
- Chapter 4 : 单行函数
- java类的结构:构造器 —(13)
- 前端开发掌握nginx常用功能之rewrite
- Windows Shell 编程 第六章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987951】...
- 计算方法之迭代法求方程根
- Nokia7610彩信设置