新手教程03:通过makefile脚本使用VCS+Verdi进行联合仿真

目录

前言

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)


总结

以上就是利用makefile脚本方式使用 VCS+Verdi 联合仿真的方法,笔记如果有错误的地方,欢迎大家留言纠正~

猜你喜欢

转载自blog.csdn.net/weixin_43414549/article/details/128587922
今日推荐