0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

VCS 仿真option 解析

sanyue7758 来源:处芯积律 2024-01-06 10:19 次阅读

VCS的仿真选项分编译(compile-time)选项和运行(run-time)选项。编译选项用于RTL/TB的编译,一遍是编译了就定了,不能在仿真中更改其特性,例如define等等。而仿真选项常用于仿真过程中控制仿真过程的选项,例如波形dump,testplusargs等等。

1.1VCS常用的编译选项

选项 说明
-assertdumpoff|enable_diag|filter_past 定义SystemVerilog断言(SVA)
dumpoff:禁止将SVA信息DUMP到VPD中
enable_diag:使能SVA结果报告由运行选项进一步控制
filter_past:忽略$past中的子序列
-cm 指定覆盖率的类型,包括:line(行覆盖)、cond(条件覆盖)、fsm(状态机覆盖)、tgl(翻转率覆盖)、path(路径覆盖)、branch(分支覆盖)和assert(断言覆盖)。
如果包括两种或以上的覆盖率类型,可用“+”,如-cm line+cond+fsm+tgl
-cm_assert_hier 将SVA覆盖率统计限定在文件列表中指定的module层次。
-cm_cond 进一步细化条件覆盖率的统计方式,包括:basic,std,full,allops,event,anywidth,for,tf,sop等选项。
-cm_count 在统计是否覆盖的基础上,进一步统计覆盖的次数
-cm_dir 指定覆盖率统计结果的存放路径,默认是simv.cm
-cm_hier 指定覆盖率统计的范围,范围在文件中定义,可以指定module名、层次名和源文件等。
-cm_log 指定仿真过程中记录覆盖率的log文件名
-cm_name 指定保存覆盖率结果的文本文件的名称
-cm obc 使能可观察(observed)覆盖率的编译。传统的覆盖率跟功能的正确性毫无关联,可观察覆盖率通过设置观察点,一定程度上将代码行覆盖率与功能正确性关联起来。
-comp64 在64-bit模式下对设计进行编译,并生成32-bit格式的可执行文件用于32-bit模式仿真
-debug或-debug_all 使能UCLI命令行
-e 指定PLI应用时main()程序的名称
-f 指定文件列表的文件名,文件中可包括源代码文件的路径和名称,也可以包括编译选项参数
-file filename 类似于-f,但文件内容更灵活,可以包含PLI选项和对象文件,可以使用转义字符等
-full64 在64-bit模式下编译,生成64-bit模式仿真的可执行文件
-h or -help 列举常用的编译选项和运行选项的参数
-I 交互模式的编译,让VCS自动包括+cli,-P virsims.tab选项,并支持VirSim后处理模式下生成VCD+文件。
-ID 显示及其的hostid或dongle ID
-ignore 屏蔽SV中unique/priority型的if或case语句的告警信息,参数包括:unique_checks、priority_checks、all。
-j 设定并行编译的进程数,“j”后面没有空格
-l 指定记录VCS编译和运行信息的log文件名
-line 使能VriSim中的单步运行
-lmc-swift 使能LMC SWIFT接口
-Mdir= 指定一个目录让VCS存储编译产生的文件,默认是csrc
-Mlib= 指定一个目录让VCS搜索某个模块是否需要重新编译。
与-Mdir配合,可以实现不同模块的增量编译。
-Mmakeprogram= 指定用于make对象的程序,默认是make
-Mupdate[=0] 默认情况下,VCS编译时会覆盖上次编译生成的makefile。如果想保留上次的makefile,使用-Mupdate=0;如果不带=0,则进行增量编译,并覆盖上次的makefile。
-noIncrComp 关闭增量编译
-notice 显示详细的诊断信息
-ntb 使能ntb(Native TestBench),支持OpenVera验证平台语言结构。
-o 指定编译生成的可执行文件的名称,默认是simv
-timescale=/ 源代码文件中有的包括`timescale编译指令,有的不包括,如果在VCS命令行中,不包括`timescale的源代码文件在最前面,VCS会停止编译。使用-timescale选项为这些在前面且又没有`timescale的源文件指定timescale
-override_timescale=/ 让源文件统一使用指定的timescale
-P 指定PLI表文件
-pvalues+= 改变指定参数的值
-parameters 通过文件的方式改变参数的值,参数的路径和改变的值均在文件中定义
-q 安静模式,屏蔽VCS的编译信息
-R 在编译之后立即执行产生的可执行文件
-s 刚开始仿真时即停止,一般与-R和+cli配合使用
-V 使能verbose模式
-v 指定verilog库文件
-y 指定verilog库路径
+libext+ 让VCS在verilog库路径下搜索指定的扩展名文件,与-y配合
-vera 指定标准的Vera PLI表文件和对象库
+acc+1|2|3|4 使能PLI中的ACC(PLI 1.0的一种方式)
+cli+[=]1|2|3|4 使能CLI调试功能
+autoprotect[] 生成一个加密的源文件
+protect[] 生成一个加密的源文件,只加密`protect/`endprotect部分
+putprotect+ 指定加密文件存放的目录
+csdf+precompile 在VCS编译源代码时预先SDF文件
+define+= 定义一个文本宏,与源文件中的`ifdef配合
+error+ 将编译时运行的NTB错误增加到N
+incdir+ 指定VCS搜索`include指令使用的包含文件的目录,可以用“+”定义多个目录。
+maxdelays 使用SDF文件中的max值
+mindelays 使用SDF文件中的min值
+typdelays 使用SDF文件中的typ值
+nbaopt 删除非阻塞赋值语句中的延时
+neg_tchk 使能时序检查中的负延时
+nospecify 屏蔽specify块中的路径延时和时序检查
+notimingcheck 屏蔽specify块中的时序检查
+nowarnTFMPC 屏蔽编译时的“Too few module port connections”告警信息
+no_notifier 屏蔽一些时序检查系统任务中定义的notifier寄存器的翻转(toggling),但不影响时序violation的报告
+no_tchk_msg 屏蔽时序检查的告警信息,但不关闭时序检查时notifier寄存器的翻转(toggling)
+optconfigfile+ 指定Radiant技术和二态仿真用到的配置文件名
+prof 让VCS在仿真过程中生成一个vcs.prof文件,记录设计中最耗CPU时间的module、层次和verilog结构
+race 让VCS在仿真过程中生成一个race.out文件,记录设计中所有的竞争冒险
+radincr 增量编译时使能Radiant技术
+sdf_nocheck_celltype SDF反标时不检查SDF文件中的CELLTYPE的一致性
+sdfverbose 显示SDF反标时的详细告警和错误信息
+v2k 支持Verilog-2001标准
+vc[+abstract][+allhdrs][+list] 使用DirectC接口时,使能verilog直接调用C/C++函数
+vcs+flush+log 加速编译仿真时log文件缓存的刷新频率
+vcs+flush+all +vcs+flush+log,+vcs+flush+dump和+vcs+flush+fopen的集合
+vcs+initmem+0|1|x|z 初始化设计中所有存储器的值
+vcs+initreg+0|1|x|z 初始化设计中所有寄存器的值
+vcs+lic+wait 一直等待license
+vpi 使能VPI
+warn=[no]ID|none|all,... 使能或关闭告警信息

1.2VCS常用的运行选项

选项 说明
-a 将仿真显示的log信息附件在指定文件尾部
-E 执行指定的程序用来显示生成simv可执行文件时VCS使用的编译选项
-i 指定一个VCS执行仿真时包含CLI命令的文件,一般与-ucli配合
-k | off 指定一个文件,用来记录VCS仿真过程中的CLI和VirSim交互命令,默认是vcs.key,off选项是关闭记录。
-sverilog 支持SystemVerilog
-ucli 使能UCLI命令
-vcd 指定VCD波形文件名,默认是verilog.dump,会被源代码文件中的$dumpfile覆盖
+vcs+learn+pli 追踪当前仿真的ACC选项,记录在pli_learn.tab文件中,下次仿真时可以用+applylearn来重新编译。
+vcs+nostdout 关闭所有$monitor和$display的文本输出,但依然会记录在-l的log文件中。
+vera_load= 定义Vera对象文件
+vera_mload= 定义一个包括多个Vera对象文件的文本文件

1.3VCS调试模式常用选项

选项 说明
-RI 编译完成之后马上启动VirSim,进入交互模式
-RIG 不编译,启动VirSim使用已有的可执行文件,进入交互调试模式。
+sim+ 指定使用的可执行文件名,与-RIG配合
-RPP 运行后处理(Post-Processing)模式:启动VirSim,使用VCD+文件
-PP 支持在源代码文件中调用$vcdpluson生成VPD文件
+cfgfile+ 定义一个VCS使用的已建好的场景配置文件
+vslogfile[+] 保存一个VirSim命令的log文件,默认是VirSim.log

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59770
  • VCS
    VCS
    +关注

    关注

    0

    文章

    79

    浏览量

    9603

原文标题:VCS 仿真option 解析

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    vcs实用技巧

    VCS是编译型verilog仿真器,VCS先将verilog/systemverilog文件转化为C文件,在linux下编译生成的可执行文./simv即可得到仿真结果。
    的头像 发表于 10-25 17:22 1097次阅读
    <b class='flag-5'>vcs</b>实用技巧

    VCS仿真指南(第二版).pdf

    VCS-verilog compiled simulator是synopsys公司的产品.其仿真速度相当快,而且支持多种调用方式;使用的步骤和modelsim类似,都要先做编译,再调用仿真.V
    发表于 12-15 10:27

    VCS DVE 仿真工具讲解

    VCS是Synopsys公司的数字逻辑仿真工具,DVE是一个图形界面,便于调试RTL代码,查看波形。本视频简要介绍VCS的常用概念。 欢迎大家加入启芯SoC QQ群: 275855756。共同交流和学习SoC芯片威廉希尔官方网站 。
    发表于 10-04 13:07

    萌新求助关于VCS仿真指南

    VCS有哪几种调试模式?萌新求助关于VCS仿真指南
    发表于 04-29 06:52

    nanosim和vcs混合仿真的过程是怎样的?

    nanosim和vcs为什么可以联合起来进行数字模拟混合仿真?nanosim和vcs混合仿真的过程是怎样的?
    发表于 06-18 08:28

    基于linux系统的VCS使用及仿真说明

    最近在学习VCS,现将VCS的一些使用心得记录下来。VCS是synopsys的仿真verilog的仿真器。基于linux系统。有命令行模式和
    发表于 07-18 16:18

    基于linux系统实现的vivado调用VCS仿真教程

    在linux系统上实现vivado调用VCS仿真教程 作用:vivado调用VCS仿真可以加快工程的仿真和调试,提高效率。 前期准备:确认安
    的头像 发表于 07-05 03:30 1.1w次阅读
    基于linux系统实现的vivado调用<b class='flag-5'>VCS</b><b class='flag-5'>仿真</b>教程

    如何使用Synopsys VCS仿真器进行ZYNQ BFM IPI设计仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用ZYNQ BFM IPI设计运行仿真。 我们将演示如何编译仿真库,为IP或整个项目生成
    的头像 发表于 11-29 06:59 4943次阅读

    如何使用Vivado中的Synopsys VCS仿真器进行仿真

    了解如何使用Vivado中的Synopsys VCS仿真器使用MicrBlaze IPI设计运行仿真。 我们将演示如何编译仿真库,为IP或整个项目生成
    的头像 发表于 11-29 06:57 7430次阅读

    SpinalHDL运行VCS+Vivado相关仿真

    本篇文章来源于微信群中的网友,分享下在SpinalHDL里如何丝滑的运行VCS跑Vivado相关仿真。自此仿真设计一体化不是问题。
    的头像 发表于 08-10 09:15 2494次阅读

    使用VCS仿真Vivado IP核时遇到的问题及解决方案

    前年,发表了一篇文章《VCS独立仿真Vivado IP核的一些方法总结》(链接在参考资料1),里面简单讲述了使用VCS仿真Vivado IP核时遇到的一些问题及解决方案,发表之后经过一
    的头像 发表于 08-29 14:41 2500次阅读

    浅谈VCS的两种仿真flow

    几乎所有的芯片设计、芯片验证工程师,每天都在和VCS打交道,但是由于验证环境的统一化管理,一般将不同的编译仿真选项集成在一个文件里,只需要一两个人维护即可。所以大部分人比较少有机会去深入地学习VCS
    的头像 发表于 01-10 11:20 3750次阅读

    如何用vcs+verdi仿真Verilog文件

    我们以一个简单的加法器为例,来看下如何用vcs+verdi仿真Verilog文件并查看波形。 源文件内容如下:
    的头像 发表于 05-11 17:03 1920次阅读
    如何用<b class='flag-5'>vcs</b>+verdi<b class='flag-5'>仿真</b>Verilog文件

    VCS实用技巧分享

    VCS是编译型verilog仿真器,VCS先将verilog/systemverilog文件转化为C文件,在linux下编译生成的可执行文./simv即可得到仿真结果。
    的头像 发表于 05-30 09:26 1412次阅读
    <b class='flag-5'>VCS</b>实用技巧分享

    记录VCS仿真的IP核只有VHDL文件的解决方法

    使用VCS仿真Vivado里面的IP核时,如果Vivado的IP核的仿真文件只有VHDL时,仿真将变得有些困难,VCS不能直接
    的头像 发表于 06-06 11:15 2235次阅读
    记录<b class='flag-5'>VCS</b><b class='flag-5'>仿真</b>的IP核只有VHDL文件的解决方法