vcs常见用法

目录

一、前言

二、VCS的常用命令参数

2.1. 一步法

2.2. 两步法

2.3. 三步法

三、常见错误

四、参考资料

一、前言
以Makefile启动VCS为例来讲解如何使用命令参数,VCS编译文件会引入过多参数,试想如果我们每次都需要终端中敲击过多参数才能运行一次VCS,那么效率显然是很低的,于是通过脚本语言存储参数从而简化操作指令是必要的,于是Makefile派上了用场。

我们通常会将参数写入到Makefile中,然后通过脚本简化命令成make run_vcs来一步完成VCS的编译连接运行,这称为一步法(首参数是vcs)。
 

二、VCS的常用命令参数
命令参数    含义    补充
vlogan    分析verilog文件(如果是分析VHDL文件,类似的指令是vhdlan),编译常用    三步法中使用(见下文)
vcs    使用vcs编译文件    一步法或两步法中使用(见下文)
-sverilog    编译的文件中含sv语法,编译sv文件必加这一条    vcs -sverilog tb.sv 编译tb.sv文件
-full64    以64位模式编译且创建64位可执行文件可供模拟    如果是64位操作系统,则必须添加
-l compile.log    将编译内容写入到compile.log文件中    
+v2k(-v2k)    使用Verilog 1364-2001标准    广泛使用的标准
-f    编译覆盖.v文件和包含路径的文件    vcs -f ram.lst  编译ram的lst文件,在lst文件中可能包含路径比如/home/host/rtl/ram.v
-timescale=1ns/1ps    定义仿真的时间单位为1ns,精度为1ps    为不包含timescale编译器指令的文件指定时间表,并在包含时间表的文件前先指定时间表
+plusarg_save    使能传参功能,仿真时可将具体数值传入    
-ntb_opts    编译的时候加上一些选项    -ntb_opts uvm1.2表示加载uvm1.2库文件
+incdir+<directory>    指定包含使用`include 编译器指令指定的文件的目录,可以指定多个目录,用+字符分隔每个路径名称;    
-debug_all    启动所有调试功能,-debug部分调试,-debug_access+<option>(VCS2014版本后新增的debug可选功能)    
-nc    不打印synopsys的版权信息    加或不加都不影响仿真
-R    编译后立即启动仿真    一步法中使用
-sim_res    启用时间分辨率    
注意:incdir文件的时候,只能包含文件夹下的文件,而不包括下级文件夹的内容(如果要包含下级文件夹的内容,需要写+incdir+uvm/{test,test/basic_test},这样就包括了uvm下test文件中的文件,同时包含了uvm下test下basic_test中的文件) 

2.1. 一步法
对设计/验证文件用VCS做编译检查时,可以只用一些简单的VCS指令来实现。以下操作适合不涉及仿真,仅仅检查当前写的文件是否有错时使用。

命令    结果
vcs +v2k -full64 file1.v  file2.v    编译Verilog文件
vcs +v2k -full64 -sverilog file1.v  file2.v  file3.sv  file4.sv    编译可包含SV语法的文件
vcs +v2k -full64 -f file1.lst     编译lst文件,文件中包含路径的文件信息
如果在编译后还需要启动仿真(前提:具备验证环境),且文件繁多,且需要添加更多的控制参数,那么需要使用Makefile,以下是一步法的Makefile编写示例

一步法Makefile编写示例:

通过-R选项将编译与仿真操作合并,从而实现一步法

2.2. 两步法
我们有时会将编译与仿真拆分,在编译完成生成simv文件后,再运行仿真执行simv文件,称为两步法。

两步法Makefile编写示例:

与一步法相比,将其拆分成两个步骤,同时不使用-R参数

补充:-gui参数是可选的,控制打开图形化界面,可以打开verdi或dve,dve是vcs原生的,而verdi用的比较广泛

2.3. 三步法
三步法相比于两步法将编译(compile)拆分成了分析(analysis)和细化(elaborate),一般是在面对多文件类型编译时(比如有verilog也有VHDL)用到。实际上这是按照VCS实际运行过程来划分步骤的,VCS运行的过程是将编译通过的文件临时存储,然后通过细化成为可执行的文件.simv,最后通过执行.simv文件即可完成文件的编译与仿真。

在Makefile中先实现分析命令(首参数是vlogan或vhdlan,分别编译verilog和VHDL文件,这里的an是analysis的缩写),再实现细化命令(首参数是vcs),最后实现仿真命令。

三步法Makefile编译示例

三、常见错误
cannot find vcs compiler

不用Makefile编译,时常会少打一些编译参数,比如缺少-full64,则会报cannot find vcs compiler。另外如果编译sv文件,不加-sverilog则会报syntax error(语法错误)

四、参考资料
关于VCS仿真的详细流程:

VCS仿真流程_甲六乙的博客-CSDN博客_vcs vlogan

Makefile详细编写实例:

【数字IC快速入门】Makefile脚本了解_Thomas-w的博客-CSDN博客_makefile脚本

Makefile中的=,:=,+=的用法

Makefile中:=, =, ?=和+=的含义_keep_forward的博客-CSDN博客_makefile中:=

debug选项

Synopsys VCS 编译时,启用debug选项_XtremeDV的博客-CSDN博客
 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值