VCS2 VCS仿真的基础

1、基础知识

VCS2 VCS仿真的基础_第1张图片

VCS2 VCS仿真的基础_第2张图片

编译流程:

VCS2 VCS仿真的基础_第3张图片

VCS2 VCS仿真的基础_第4张图片

-Mupdate :增量编译,作用是将需要修改的某个文件修改后重新编译,其.o文件再与其他文件相链接。

-R :编译后立马执行。

-gui :打开DVE的实时GUI。

-l :把编译过程中产生的一些信息写入日志文件中,便于日后调试、错误定位等。

-sverilog:表示支持SystemVerilog语言。

+v2k:编译支持Verilog 2001标准

VCS2 VCS仿真的基础_第5张图片

 1)厂商提供的工艺库调用

-v :找哪个工艺库文件

-y :从哪个路径搜索需要的工艺库文件或文件夹等

+libext+lib_ext:

+incdir+inc_dir:

2)-f :把多个文件整合到一个文件中

3)-o foo:修改默认生成的二进制执行文件,将原来的simv替换为foo文件

4)+define+=:定义一个宏的值是多少

VCS2 VCS仿真的基础_第6张图片

VCS2 VCS仿真的基础_第7张图片

 VCS2 VCS仿真的基础_第8张图片

VCS2 VCS仿真的基础_第9张图片

 -s:从什么时候开始仿真,什么时候结束仿真

$plusargs():

-userswitch :怎么动态的从键盘或者脚本中接收参数。

 -l logfile :将真个编译仿真过程中产生的参数等等信息全部写入文件中,工程中经常使用。通常是通过logfile文件+wave文件结合完成功能验证。

仿真案例:

VCS2 VCS仿真的基础_第10张图片

怎么调用一个库?实例:调用软件自带的DesignWare Library这个库

VCS2 VCS仿真的基础_第11张图片

这个文件存在于VCS的安装目录中,是自带的库,其内部是一些RTL级别的代码,与厂商等提供的工艺库不相关,可以在代码中直接例化使用。

 编译流程:

非增量编译:

VCS2 VCS仿真的基础_第12张图片

 make clean:清除后产生的一些文件

vcs ./tb/fsm_top.v  ./rtl/fsm_moore.v  +v2k  -debug_all:编译指令,下面是编译产生的文件的文件夹。

VCS2 VCS仿真的基础_第13张图片

编译结束:

VCS2 VCS仿真的基础_第14张图片

 csrc:编译过程中产生的c文件,文件夹内部的Makefile是用来维护增量编译的。

simv:二进制可执行文件

simv_daidir:

 增量编译:命令末尾加 -Mupdate

VCS2 VCS仿真的基础_第15张图片

再次运行带增量维护的编译指令:

VCS2 VCS仿真的基础_第16张图片

编译结束:

VCS2 VCS仿真的基础_第17张图片

通过检测文件状态后,如果没有修改则提示不需要再编译。

 由于本身产生的文件,记录的信息有限,使用log记录更过的信息。

使用log文件记录信息:

VCS2 VCS仿真的基础_第18张图片

 编译结束,产生一个.log文件:

VCS2 VCS仿真的基础_第19张图片

使用gvim打开.log文件,进行查看。

 编译仿真同时进行 -R , 启动gui   -gui 

VCS2 VCS仿真的基础_第20张图片

 自定义二进制执行文件名字

 定义在.v文件中的一些变量存放在其他文件中时,需要添加划线指令,

定义一个宏的方式:三种

1)原文件中进行定义

 2)头文件中定义,并链接头文件查找

3)在头文件中定义宏后,然后在命令行中加  +define+宏名

你可能感兴趣的:(IC仿真工具,fpga开发)