vcs参数汇总

参考资料

https://zhuanlan.zhihu.com/p/717433547
https://www.cnblogs.com/xianyuIC/p/17473754.html
https://blog.csdn.net/shu_0223/article/details/93711396 这篇写的比较细致

基础编译选项

-full64

选项用于指示 VCS 在 64 位模式下进行编译和仿真。在 64 位模式下,VCS 会充分利用 64 位操作系统和硬件平台的特性,比如更大的内存寻址空间等,从而对编译和仿真过程进行优化。

  • 要使用 -full64 选项,你的操作系统必须是 64 位的,并且硬件平台也要支持 64 位运算。如果在 32 位系统上使用该选项,会导致编译或仿真出错。
  • 部分 VCS 许可证可能对 64 位模式的使用有特定限制。在使用 -full64 选项之前,要确保你的许可证允许在 64 位模式下运行 VCS。

-debug_all、-debug_access

控制调试信息的等级。详见:https://www.cnblogs.com/waafio/p/18705518

+v2k

加上 +v2k 选项,就意味着告诉 VCS 编译器,要按照 Verilog 2001 标准来解析和编译你的代码。这样,你就可以在代码中使用 Verilog 2001 标准所支持的各种新特性。

-sverilog

打开对Systemverilog的支持,编译Systemverilog文件时使用。

-timescale=1ns/1ps

设置仿真精度,如果有些代码文件没有表明timescale,则必须在vcs命令中加入此选项才不报错。

+incdir+

当编译器遇到 include 指令时,它会在指定的搜索路径中查找对应的头文件。+incdir 选项的作用就是告诉 VCS 在哪些目录下搜索这些被包含的文件。详见:https://www.cnblogs.com/waafio/p/18701766

-f/-F/-file file.f

编译文件过多,可以写进一个filelist文件里,然后用-f吃这个文件。详见:https://www.cnblogs.com/waafio/p/18701792

+define+macro=value+

定义一个宏,这个宏可以被`ifdef识别。详见:https://www.cnblogs.com/waafio/p/18701814

-o simv_name

默认产生的可执行文件为simv,可以用-o选项给它改名。

+mupdate

源文件有修改时,只重新编译有改动的.v文件,节约编译时间。详见:https://www.cnblogs.com/waafio/p/18703243

-l

用于指定编译log的文件名。详见:https://www.cnblogs.com/waafio/p/18703376

-R

编译完成后立即执行可执行文件

-v file.v

-v后面跟一个具体的库文件。告诉编译器要编译的库文件。

-y <file_path>

选项用于指定一个包含 Verilog 源文件的目录。VCS 会在这个指定的目录及其子目录中搜索 Verilog 源文件,并将这些文件作为编译的一部分。这对于管理大量的源文件非常方便,尤其是当你的设计由多个文件组成,并且这些文件存储在一个特定的目录结构中时。

-v和-y详见:https://www.cnblogs.com/waafio/p/18703302

-xzcheck

使能检查rtl代码中条件表达式的值在出现X/Z的情况下报警。详见:https://www.cnblogs.com/waafio/p/18705351

-cpp

用于指定在编译与 VCS 交互的 C++ 代码时所使用的 C++ 编译器及其编译选项。当你在仿真中使用 DPI(Direct Programming Interface)调用 C++ 代码,或者使用 SystemVerilog 与 C++ 进行混合编程时,就需要使用 -cpp 参数来确保 C++ 代码能被正确编译。详见:https://www.cnblogs.com/waafio/p/18705378

-cc

用于指定在编译与 VCS 交互的 C 代码时所使用的 C 编译器及其编译选项。与 -cpp 类似,当你使用 DPI 调用 C 代码或者进行 C 与 Verilog/SystemVerilog 的混合编程时,就需要用 -cc 来配置 C 编译器。详见:https://www.cnblogs.com/waafio/p/18705378

+lint

用于启用代码静态检查功能。详见:https://www.cnblogs.com/waafio/p/18705389

-top

当你的设计文件包含多个模块,并且有多个可能作为顶层模块的候选时,就需要使用 -top 选项明确指定要仿真的顶层模块。另外,如果你在编译多个文件时,这些文件里存在多个不同设计的顶层模块,使用 -top 选项可以确保 VCS 知道你要仿真的具体是哪个设计。

-lca

VCS会在编译阶段对设计进行深入的检查。详见:https://www.cnblogs.com/waafio/p/18705442

+vcs+initreg

该参数需要同时在编译选项和仿真选项中出现。详见:https://www.cnblogs.com/waafio/p/18706131


覆盖率相关编译选项

-cm

该选项允许用户在 编译(compile)和仿真(simulate)阶段 指定需要收集的覆盖率类型。详见:https://www.cnblogs.com/waafio/p/18703354

-cm_name cov_name

指定保存覆盖率结果文本文件的名称。

+vcs+lic+wait

编译阶段,如果获取不到lic,就无限期等待lic到达,不报错,不退出。

仿真选项

-l

和编译选项中的-l使用方法一致。详见:https://www.cnblogs.com/waafio/p/18703376

+vcs+lic+wait

仿真阶段,如果获取不到lic,就无限期等待到达,不报错,不退出。

+vcs+initreg

该参数需要同时在编译选项和仿真选项中出现。详见:https://www.cnblogs.com/waafio/p/18706131

+ntb_random_seed=xxx

指定仿真种子号。xx为种子号。

+ntb_random_seed_automatic

每次仿真使用不同的随机种子。

+UVM_TESTNAME=tc_name

指定仿真运行的uvm_test用例。

+UVM_VERBOSITY=UVM_LOW/UVM_MEDIUM/UVM_HIGH/UVM_DEBUG

指定UVM环境的log打印级别。

posted @   MKYC  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示