Step1:配置环境变量
根据verdi和vcs安装的位置配置环境变量
实际的路径需要根据软件安装的实际位置做调整。(如果有其他人配置好的bashrc,可以直接赋值过来使用)
修改成功后,执行如下命令,让bashrc生效
Step2:编写Makefile脚本
Makefile脚本一般包含四个部分:
vcs编译
vcs仿真生成fsdb波形文件
verdi打开波形文件debug
clean部分,清除仿真中产生的文件,便于重新仿真
1. VCS 编译部分:
vcs:调用vcs软件
-sverilog:让vcs支持system verilog的文件
-debug_all: 生成fsdb波形的时候必须加上,不然无法产生波形
-l com.log: 生成log文件,用于保存仿真中出现的信息
+v2k:支持verilog2001
- P ${VERDI_HOME}/share/PLI/VCS/LINUX64/novas.tab ${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a : 使用verdi与vcs仿真的必要文件,生成verdi接口能够识别的文件
-f …/Source/file.list : 指定需要complie文件的路径,file.list是所有文件的集合(如下图)
file.list 可以使用find命令产生: find -name “*.v” > file.list
-top TopLevel_tb : 指定文件的顶层,一般为testbench. TopLevel_tb为使用的testbench module的module name,而不是testbench文件名,一定要区分开。如果写了文件名,打l开Verdi时会 错,出现unrecognized signal的错误,或者是log文件中出现指定错误的toplevel的错误
+vcs+lic+wait:如果没有可用的通知,则告诉VCS等待 络许可证;
补充说明:
- vcs还有其他编译选项,可以根据情况选择
- 碰到不知道的编译命令,可以使用vcs -full64 -help来查看帮助
- vcs安装目录下的doc中会有VCS的User Guide,可以查看User Guide
2. 仿真部分:
./simv : vcs complie后生成二进制可执行文件,执行二进制可执行文件
-l sim.log: 生成sim.log文件记录仿真中出现的信息
-ucli -i ./run.tcl : 仿真中使用tcl脚本,生成fsdb波形,相较于在testbench中使用系统函数,使用tcl更灵活方便
run.tcl 脚本
global env:表示使用global 的环境
fsdbDumpfile :用于指定生成fsdb文件的文件名
fsdbDumpvars([depth, instance][, “option”])*
depth表示要加载波形的层次;0表示当前instance下的所有变量一级其他module实例的波形,1表示当前instance中的变量的波形,不包括当前instance中的其他module实例的波形,2表示包含当前instance以及其中的第一级子instance的波形;以此类推。
instance指定要加载波形的module名。
option加载波形的选项,如:
+IO_Only – 只加载IO port信 ;
+Reg_Only – 只加载reg类型信 ;
+mda – 加载memory和MDA信 ;
+packedmda – 加载packed MDA;
+struct – 加载structs;
+parameter – 加载parameter;
run: 开始仿真
在testbench中添加了$finish信 及 #5000 用于控制仿真时间。也可直接使用run + 时间控制仿真
3. verdi的使用
verdi:生成fsdb文件后,使用make verdi打开verdi查看波形
-sv :支持system verilog
-f …/Source/file.list : 添加file.list中的文件
-nologo: 关闭打开软件的logo
-ssf TAGE.fsdb:自动加载波形
4. clean
使用rm -rf命令清除仿真中生成的文件
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!