目录
前言
makefile脚本的方式使用VCS
1. 自动生成 .fsdb 文件
2. 生成 filelist.f 文件
3. 书写 makefile 脚本
4. termial 中运行仿真
5. verdi 的快捷操作
总结
前言
零基础初学数字IC,学会什么写什么,与大家一起进步。
本文主要介绍如何通过makefile脚本的方式用VCS+Verdi进行联合仿真。
makefile脚本的方式使用VCS
1. 自动生成 .fsdb 文件
因为要使用verdi进行仿真,所以我们需要在进行仿真之前,在testbench文件中添加如下代码,以便生成 .fsdb 文件,以便 verdi 进行仿真。
'ifdef FSDB
initial begin
$fsdbDumpfile(XXX.fsdb);
$fsdbDumpvars(0);
$fsdbDumpMDA;
end
'endif
- $fsdbDumpfile(XXX.fsdb); : 用于定义 .fsdb 波形文件;
- $fsdbDumpvars; : 用于定义Dump 的变量;这里再详细介绍一下这一条命令,完整的格式应该是 $fsdbDumpvar(depth, instance, parameter);
- depth=0 表示dump instance下所有层次的信号,depth=1 表示只dump instance的信号;
- instance 可以指定dump 的 hierarchy;
- parameter 表示dump时可以选择的一些选项,"+mda" 表示dump memory 和 多维数组的数据;"+all" 表示 dump 所有信号;
- $fsdbDumpMDA; : 添加这一句可以用于查看寄存器变量,配合vcs命令使用。
当需要查看多维数组的数据的时候,可以参考如下所示的方法:
2. 生成 filelist.f 文件
find -name '*.v' > filelist.f
3. 书写 makefile 脚本
all: clean com sim verdi
clean:
rm -rf
com:
vcs -full64 -f filelist.f -R +v2k -debug_access+all -timescale=1ns/1ns -fsdb +define+FSDB -l com.log
sim:
./simv -l sim.log
verdi:
verdi -f filelist.f -ssf *.fsdb -nologo &
-full64:支持64位模式下的编译仿真;
-R:编译后立即执行仿真;
+v2k:支持2001 verilog标准;
-f filelist.f : 读入filelist.f 文件(包含文件列表的文件);
-debug_access+all:打开debug开关;
-timescale=1ns/1ns:定义仿真精度;
-fsdb :dump fsdb波形;
+define+FSDB:使用源代码中`ifdef所定义的宏;
-ssf *.fsdb : 打开 .fsdb 波形文件;
-nologo : 不显示软件欢迎界面;
& :在后台打开 verdi,不占用当前 terminal ;
4. termial 中运行仿真
命令运行之后,verdi 界面自动打开,如下:
5. verdi 的快捷操作
- 显示波形:鼠标拖动信号至nwave界面;模块界面按 ctrl+4;代码界面按 ctrl+w;
- ntrace 界面按 X,可以显示信号的具体值,方便 debug;
- 全局波形:F 放大波形:拖动鼠标 缩小波形:Z
- 显示信号结构:H;
- 标记时间节点:shift + M ;
- 信号保存:shift + S,信号恢复:r
6. 使用verdi进行debug
- 当我们使用verdi进行debug的过程中,难免会遇到需要修改代码的时候,如果在终端使用make all 命令时,会发现系统重新打开了一个verdi窗口,我们之前已经添加到波形窗口的波形全部消失不见了,又需要重新添加波形然后再进行分析,这样非常的繁琐。这里提供一个便捷的方法:不用关闭verdi窗口,修改设计后,输入如下所示的命令,然后在verdi窗口中按shift+L 进行刷新即可。
vcs -full64 -R -fsdb +define+FSDB -f filelist.f
参考文章:VCS与Verdi工具初体验 - 知乎 (zhihu.com)文章来源:https://www.toymoban.com/news/detail-641224.html
总结
以上就是利用makefile脚本方式使用 VCS+Verdi 联合仿真的方法,笔记如果有错误的地方,欢迎大家留言纠正~文章来源地址https://www.toymoban.com/news/detail-641224.html
到了这里,关于新手教程03:通过makefile脚本使用VCS+Verdi进行联合仿真的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!