systemverilog仿真时候传递参数

news2024/11/27 23:48:22

$test$plusargs和$value$plusarg的区别和使用
本文参考的文章vcs2021 user guiger 别的版本可能会有不一样
纯学习笔记
文章原文
t e s t test testplusargs)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在运行时启用调试功能
在“ifdef”编译器指令的位置使用 t e s t test testplusargs系统函数。 t e s t test testplusargs系统函数检查simv命令行上是否有plusarg运行时选项。
注意:
加号(+)符号作为前缀的选项称为plusarg选项。
t e s t test testplusargs系统函数的示例如下:
initial
if ( t e s t test testplusargs(“postprocess”))
begin
$vcdpluson(0,design_1);
$vcdplusdeltacycleon;
v c d p l u s g l i t c h o n ; e n d 在这种技术中,您不需要在 v c s 命令行上包含 + d e f i n e 编译时参数。相反,您将系统任务编译到测试台中,然后使用 vcdplusglitchon; end 在这种技术中,您不需要在vcs命令行上包含+define编译时参数。相反,您将系统任务编译到测试台中,然后使用 vcdplusglitchon;end在这种技术中,您不需要在vcs命令行上包含+define编译时参数。相反,您将系统任务编译到测试台中,然后使用test$plusargs系统函数的运行时参数启用系统任务的执行。因此,在这个示例中,simv命令行如下:
% simv +postprocess
在仿真期间,VCS根据这些系统任务指定的所有信息写入VPD文件。随后,您可以执行另一个不包含+postprocess运行时选项的simv命令行。因此,VCS不会写入VPD文件,因此运行速度更快。
这种技术存在一个陷阱。这个系统函数匹配任何具有函数参数作为前缀的plusarg。例如:

module top;
initial
begin
if ( t e s t test testplusargs(“a”) )
$display(“\n<<< Now a >>>\n”);
else if ( t e s t test testplusargs(“ab”) )
$display(“\n<<< Now ab >>>\n”);
else if ( t e s t test testplusargs(“abc”) )
$display(“\n<<< Now abc >>>\n”);
end
endmodule
无论您输入+a、+ab还是+abc plusarg,当您仿真可执行文件时,VCS始终显示以下内容:
<<< Now a >>>
为了避免这个陷阱,先输入最长的plusarg。例如,您可以将上面的示例修改如下:

module top;
initial
begin
if ( t e s t test testplusargs(“abc”) )
$display(“\n<<< Now abc >>>\n”);
else if ( t e s t test testplusargs(“ab”) )
$display(“\n<<< Now ab >>>\n”);
else if ( t e s t test testplusargs(“a”) )
$display(“\n<<< Now a >>>\n”);
end
endmodule

优点和缺点
使用这种技术的优点是,您不必重新编译测试台,以停止VCS写入VPD文件。特别是在设计的早期开发周期中,当您正在修复许多错误并已经进行了大量重新编译时,这是值得考虑的技术。

这种技术的缺点相当明显。将这些写入文件的系统任务或任何写入文件的系统任务编译到测试台中,需要VCS编译simv可执行文件,以便在命令行中包含运行时选项时能够写入VPD文件。这意味着与不将这些系统任务编译到测试台中相比,仿真运行速度要慢得多。即使在simv命令行上不包含运行时选项时,性能影响仍然存在。
使用 t e s t test testplusargs系统函数会迫使VCS考虑最坏情况——在运行时使用plusargs——并且VCS会生成带有相应开销的simv可执行文件,以准备处理这些plusargs。VCS在编译时获得的固定信息越多,VCS就能够更好地优化simv,以实现高效的仿真。或者,用户在运行时控制得越多,VCS在simv中添加运行时选项的开销就越大,仿真效率就越低。
因此,Synopsys建议如果使用这种技术,应计划在开发周期的早期放弃它,并切换到用于编写仿真历史文件的条件编译技术,或两种技术的组合。


$value$plusargs

在这里插入图片描述


测试文件

module dut;
//$test$plusargs
  initial
    if ($test$plusargs("postprocess"))
      begin
          $display("postprocess");
      end

//$value$plusargs
  reg [31:0] r1;
  integer status;
  initial
  begin
  $monitor("r1=%0d at %0t",r1,$time);
  #1 r1=0;
  #1 status=$value$plusargs("r1=%d",r1);
  end
  
endmodule

仿真指令
make comp
./simv +postprocess +r1=20
仿真结果

postprocess
r1=x at 0
r1=0 at 1
123
r1=20 at 2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/976262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web靶场——xss-labs靶机平台的搭建和代码审计

目录 一、web靶场-xss-labs靶机平台的搭建 1、将下载好的压缩包放置php的WWW根目录下 2、配置网站 3、启动MYSQL和Nginx 4、完成后我们就可以在浏览器输入127.0.0.1&#xff1a;8088进入靶场 二、xss-labs靶场通关攻略 第一关&#xff1a; 1、输入代码进行测试&#xf…

Linux——(第三章)Vi和Vim编辑器

目录 1.Vi和Vim的基本介绍 2.Vi和Vim三种模式的切换 3.一般模式 4.编辑模式 5.指令模式 1.Vi和Vim的基本介绍 Vi是Unix操作系统和类Unix操作系统中最通用的文本编辑器。 Vim编辑器是从Vi发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性&…

Python怎么实现更高效的数据结构和算法? - 易智编译EaseEditing

要实现更高效的数据结构和算法&#xff0c;你可以考虑以下几个方面的优化&#xff1a; 选择合适的数据结构&#xff1a; 选择最适合你问题的数据结构至关重要。例如&#xff0c;如果需要频繁插入和删除操作&#xff0c;可能链表比数组更合适。如果需要高效查找操作&#xff0…

加餐1|辞职问题:古人怎么写高端辞职信?

好诗相伴&#xff0c;千金不换。你好&#xff0c;我是天博。 我们这一讲是加餐&#xff0c;我想聊的是&#xff0c;古人是怎么处理我们现实生活里的一些难题的&#xff0c;比如古人是怎么面试的&#xff0c;怎么辞职的。在加餐里&#xff0c;我不会主讲某首诗&#xff0c;而是…

跨源资源共享(CORS)Access-Control-Allow-Origin

1、浏览器的同源安全策略 没错&#xff0c;就是这家伙干的&#xff0c;浏览器只允许请求当前域的资源&#xff0c;而对其他域的资源表示不信任。那怎么才算跨域呢&#xff1f; 请求协议http,https的不同域domain的不同端口port的不同 好好好&#xff0c;大概就是这么回事啦&…

高效能,一键批量剪辑,AI智剪让创作更轻松

在今天的数字化时代&#xff0c;视频制作已经成为各种行业和领域的必备技能。然而&#xff0c;视频剪辑过程往往繁琐且耗时&#xff0c;大大降低了我们的工作效率。幸运的是&#xff0c;随着人工智能技术的发展&#xff0c;我们有了新的解决方案——AI智剪软件。 AI智剪软件&am…

4年外包出来人废了,5个面试挂了4个....

我的情况 大概介绍一下个人情况&#xff0c;男&#xff0c;毕业于普通二本院校非计算机专业&#xff0c;18年跨专业入行测试&#xff0c;第一份工作在湖南某软件公司&#xff0c;做了接近4年的外包测试工程师&#xff0c;今年年初&#xff0c;感觉自己不能够再这样下去了&…

Spring源码解析-构造函数

1、构造函数概述 构造函数中&#xff0c;主要创建两个对象分别用来读取注解参数和classpath下的文件 AnnotatedBeanDefinitionReader 专门读取注解参数的Reader ClassPathBeanDefinitionScanner 专门读取classpath下的文件&#xff0c;例如yml、properties等。 AnnotationC…

hive指定字段插入数据,包含了分区表和非分区表

1、建表 语句如下&#xff1a; CREATE EXTERNAL TABLE ods_lineitem_full (l_shipdate date,l_orderkey bigint,l_linenumber int,l_partkey int,l_suppkey int,l_quantity decimal(15, 2),l_extendedprice decimal(15, 2),l_discount de…

专题:跨域数据管理

点击上方蓝字关注我们 2023年2月&#xff0c;中共中央、国务院印发《数字中国建设整体布局规划》&#xff0c;指出建设数字中国是数字时代推进中国式现代化的重要引擎&#xff0c;加快数字中国建设&#xff0c;对全面建设社会主义现代化国家、全面推进中华民族伟大复兴具有重要…

JVM详细教程

JVM 前言 还在完善中先发布 JVM虚拟机厂家多钟多样&#xff0c;具体实现细节可能不一样&#xff0c;这里主要讲的是虚拟机的规范&#xff0c;以下内容融合了各个平台发布的内容和周志明老师的《深入理解java虚拟机》 JVM概述 如何理解jvm跨平台&#xff1f; 编译成汇编代码…

供应商多样性:减少电子元器件供应链风险

供应商多样性是为了减少电子元器件供应链风险而采取的一项重要战略。以下是一些关于如何通过供应商多样性来降低风险的方法&#xff1a; 多供应商采购策略&#xff1a; 不要依赖于单一供应商&#xff0c;而是寻找多个可靠的供应商。这有助于分散风险&#xff0c;当一个供应商出…

大数据的关键技术之——大数据采集

大数据的关键技术之——大数据采集 本文目录&#xff1a; 一、写在前面的话 二、大数据采集概念 三、大数据采集步骤 3.1、大数据采集步骤&#xff08;总体角度&#xff09; 3.2、大数据采集步骤&#xff08;数据集角度&#xff09; 3.3、大数据采集步骤&#xff08;数据…

PyQt5报错Process finished with exit code -1073740791 (0xC0000409)

点击按钮之后&#xff0c;就直接退出程序&#xff0c;控制台出现一个提示&#xff1a;解决办法&#xff1a; 在PyCharm中打开Run菜单&#xff0c;找到Edit Configurations进入&#xff0c;勾选Emulate terminal in output console即可。 然后再运行一下程序&#xff0c;就可以…

贴片排阻的基本原理和应用

贴片排阻&#xff08;Surface Mount Resistor&#xff0c;简称SMD Resistor&#xff09;是一种用于控制电流、电压、分压信号、限制电流等的电子元件&#xff0c;它的基本原理是根据欧姆定律&#xff0c;电阻与电流和电压之间的关系&#xff0c;通过电阻值来控制电路中的电流和…

【腾讯云 Cloud Studio 实战训练营】使用python爬虫和数据可视化对比“泸州老窖和五粮液4年内股票变化”

Cloud Studio 简介 Cloud Studio是腾讯云发布的云端开发者工具&#xff0c;支持开发者利用Web IDE&#xff08;集成开发环境&#xff09;&#xff0c;实现远程协作开发和应用部署。 现在的Cloud Studio已经全面支持Java Spring Boot、Python、Node.js等多种开发模板示例库&am…

正中优配:证券账户除了炒股还可以干啥?

大部分出资者开一个证券账户是用来买卖股票的&#xff0c;殊不知&#xff0c;证券账户除了买卖股票之外&#xff0c;还能够干许多其他的出资&#xff0c;下面正中优配为大家准备了相关内容&#xff0c;以供参阅。 证券账户除了炒股之外还能够干以下出资&#xff1a; 1、购买基…

智能电力监控平台

智能电力监控平台依托电易云-智慧电力物联网&#xff0c;综合采用物联网、云计算、边缘计算&#xff0c;人工智能等”现代化信息技术将配电室进行远程集中监控&#xff0c;实时监测配电室设备运行状态、电参量、配电室环境等&#xff0c;可以有效降低隐患风险。 智能电力监控平…

这么近,那么美,到天津看大爷跳水

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 小黑 运营 / SandLiu 卷圈 监制 / 姝琦 现场采访 / 朱峰、姝琦 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 日前&#xff0c;天津局部持续下“大爷”。连续多日的下“大爷”让天津这座城市接棒淄博烧烤&#xff0c…

算法 数据结构 什么是递归 递归解决阶乘 阶乘递归代码 递归解决问题 递归反向打印字符串 数据结构(七)

递 归&#xff1a; 计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集 In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instan…