linux环境下vcs+verdi的使用

本文详细介绍VCS和Verdi在Linux环境下的使用方法,包括VCS的编译与仿真流程、常用指令、波形处理及与Verdi的集成,还介绍了如何在仿真环境中传递参数。


前言

今日感想:学习只能慢慢搭积木,想一步登天可不行啊


在vcs仿真时调用$dump函数dump出fsdb文件,随后verdi load filelist和fsdb文件来进行debug

一、vcs编译过程

1、vcs两步仿真:先编译文件,生成simv可执行文件;后进行仿真(compilation and simulation)
VCS:Verilog Compiler Simulator
问题一:当设计比较大的时候,每次都要全部重新编译一遍,比较浪费时间;
问题二:当设计中存在VHDL文件时,两步法就无法使用,因为VHDL文件需要单独处理。

在这里插入图片描述

2、vcs三步仿真:编译(compilation)、elaboration、和执行仿真(simulation)三步执行
elaboration:把各种资源进行整合链接,有些文章或书上说是建立层次关系,意思差不多,类似于c语言的link
适合于文件中存在多种语言,例如sv和vhdl同时存在

英文解释:Elaboration is the process of binding together the components of the design. Elaboration includes among other things creating instantiations, computing parameter values, resolving hierarchical names and connecting nets. Often when referring to the compilation and elaboration phases they are not distinguished but are generally referred to as compilation.

3、CLI and GUI界面
(1)VCS有命令行模式图形模式
图形模式使用的是DVE,命令交互模式使用的是Unified Command-line Interface (UCLI)
(2)vcs中要调用ucli接口,执行脚本,必须在compile的时候,加入debug的权限:-debug,-debug_pp,-debug_all,-debug_access,-debug_region。在run的时候,指定vcs -ucli [run_option],需要在编译时加入参数以开启ucli,否则ucli交互时只能使用简单的 ’run’、 ‘dump’、 'quit’命令。

4、带-号的,一般是编译时用的,编译工具自带的。(编译选项)
+号的,一般是插件,环境,验证语言等加的,可扩展、自定义的。

5、VCS和VCS_MX区别
VCS_MX为mixed hdl仿真器,支持vhdl+verilog+sv的混合仿真。VCS只支持verilog, sv。在feature上唯一的区别在于对vhdl的支持。如果没有vhdl的设计的话或许VCS好些,速度快些。

二、vcs常用指令

区分编译步骤和仿真步骤中加上的选项,添加错了位置选项就不起作用了

1、常用

which vcs  //查看vcs的安装路径
vcs -help  //查看vcs的编译选项

(1)编译文件

vlogan:vcs的编译指令,支持sv、v文件
vhdlan:vcs的编译指令,支持vhdl文件
-sverilog:支持SystemVerilog的语法

-f <filename>:指定源文件的路径名列表,文件中可包括源代码文件的路径名称,和编译选项参数
-l <filename>:指定vcs编译信息的存储文件
-ntb_opts uvm-1.2:表示要引入UVM1.2的包,当然也可以选择使用1.0或1.1版本的,但是要注意这个选项不可缺少
-full64:在64bit模式下编译、仿真,用于64位操作系统
-Mupdate :源文件有修改时,只重新编译有改动的.v文件,节约编译时间。
-top:设置顶层模块
+v2k:支持Verilog-2001标准
-gui:打开仿真的图形化界面
-o <name>:指定编译后产生的可执行文件名,默认编译后的文件名为simv
+incdir <directory>:指定包含include文件的文件夹,以方便后续编译文件时不用逐个写出所有文件的路径,只需将其在pkg中include一下即可。可以指定多个目录,用+字符分隔每个路径名称
在这里插入图片描述

vcs top.v              //编译verilog文件
vcs -sverilog top.sv   //编译system verilog文件,要加选项
vcs -f file.list       //按照顺序把源文件放到file.list里面,然后全部编译
vcs -sverilog  +incdir+filespath pkg.sv  //把相关的类定义放到一个package里面,pkg里面include源文件
vcs -l compile.log -sverilog top.sv   //指定编译信息存储到log文件
vcs –sverilog design.sv –top work.tb1  //设置顶层模块

-R:编译后立即进行仿真,如果不加这个会生成可执行文件后就退出了

-s:在simulation仿真刚开始时立即停止,并进入交互模式。一般与-R和+cli配合使用

vcs cpu.v +cli+3 -R -s

-ucli:在linux终端使用TCL控制仿真进程(统一命令行界面模式)
+vcs+lic+wait:一直等待licese
+vpi:verilog procedural interface,使能vpi,允许用户在仿真期间与环境进行通信和交互
+licwait 100:设置等待license的仿真超时时间
+memcbk:查看多维数组
+error <number>:编译器遇到n个错误之后就停止

(2)debug选项

-debug_all:支持所有调试
-debug_pp:同上,更加节约资源,可以dump fsdb和vpd,使能DVE、VERDI波形调试和UCLI命令行调试
-debug:使能dve、verdi波形调试和UCLI命令行调试
-debug_accessvcs -debug_access时,不需要再手动配置PLI的tab file verdi.tab 和静态库 pli.a,只需设置VERDI_HOME环境变量,vcs会自动查找所需文件,$fsdbDumpfile可以直接使用。
-de

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值