vivado2024与vcs2023、verdi2023联合仿真尝试

发布于 2025-03-26  1123 次阅读


vcs与vivado联合仿真

系统:redhat8.10
软件版本:vivado2024.2,vcs-2023.12-SP2,verdi-2023.12-SP2

前言

一直听说vcs仿真非常之快(传言大型工程可以比moldesim快上4~5倍),还能够直接抓取所有波形,不用繁琐的手动添加重新仿真,verdi的界面也十分人性化,加之实在想摆脱vivado自带的仿真器,便有了这次折腾
vcs和verdi安装资料教程在创芯网有非常多,不同vivado版本适配的vcs版本也不同,不再赘述安装教程

基础环境

vcs2023要求使用gcc9.2编译vivado2024.2的IP库,gcctool中gcc9默认版本为gcc9.3.1,安装gcc9.2只能手动下载编译

安装gcc9_2

参考以下文章
Linux安装GCC 9.2.0-CSDN博客
安装后使用which gcc命令查看gcc9.2.0安装路径,然后将该地址复制到vivado编译IP库的gcc路径,如下图所示
其中预编译库路径vcs_lib 选项需要自己创建文件
Pasted image 20250326223231
安装以上配置完成IP库的编译

注意:在哪个路径打开的vivado,编译IP库后会在该路径生成一个synopsys_sim.setup文件,该文件非常重要,之后不管在哪个路径打开vivado,都需要拷贝一份在该路径下,不然会报错找不到预编译库的路径,这里博主踩了很久的坑!!

联合仿真教程

本次使用的参考工程为vcs内自带的test同步fifo工程,路径如下/home/yian/Synopsys/vcs/V-2023.12-SP2/doc/examples/basic-hdl/verilog/syn_fifo
只有一个hdl和一个bench文件,代码贴在最后,其中bench文件做了修改,在最后加入如下代码,生成verdi所需的fsdb文件

initial
begin
    $fsdbDumpfile("fifo.fsdb");
    $fsdbDumpvars(0,"tb_fifo","+all");//第一个参数表示dump所有层级的信号,第二个表示测试bench的名称,第三个表示dump进入fsdb中信息的种类,前两个参数实测可以缺省
end

创建vivado工程,将两个文件加入

基础配置

打开一个任意工程
进入设置,从上到下分别设置vcs的安装路径,gcc的安装路径,预编译库的路径
Pasted image 20250326223756

仿真配置

进入仿真配置界面,配置如下,其他选项保持默认
Pasted image 20250326224210
Pasted image 20250326224240
Pasted image 20250326224254

导出脚本

不知什么原因,vivado GUI界面直接launch可以运行不报错,但是却不能生成fsdb文件,因此采用脚本导出的方式,这种方式可以实现后期全脚本化仿真

在打开的工程中选择File–>Export Simulation,进行如下配置
Pasted image 20250326225729

仿真

将脚本导出来后,发现工程目录下多了一个VCS文件夹;
在VCS目录下有一个*.sh脚本文件,仿真直接执行该脚本,此时成功生成fsdb文件,执行命令

verdi -ssf fifo.fsdb &

打开verdi并且自动导入fsdb文件,界面如下
Pasted image 20250326230034
点击该按钮添加波形
Pasted image 20250326230110
点击左边的按钮全选波形,点击右边的按钮添加波形
Pasted image 20250326230238
效果如下,仿真成功
Pasted image 20250326230350

添加代码仿真

Verdi有一个非常强大的功能,就是可以根据代码定位波形,但是我们导入的波形里却没有代码,是因为没有filelist文件
查看vivado自带的shell脚本,发现里面有对应的filelist,在"compile()"之后的字符都是对应的RTL文件,将其copy出来,创建一个file.f文件,再拷贝进去即可。
Pasted image 20250326230836
执行命令

# -f为添加filelist
verdi -f file.f -ssf fifo.fsdb &

得到verdi的完全体
Pasted image 20250326230813

总结

经过以上操作,配合makefile和tcl脚本,我们可以实现全脚本化仿真编译等操作,无GUI的vivado运行比带GUI的快很多,vcs➕verdi还有非常多强大的功能,后续再探索吧。

分享一些十分优质的学习博文
VCS+DVE+Verdi+Makefile使用 - 咸鱼IC - 博客园
[VCS]VCS常用命令詳解_vcs -y-CSDN博客

最后更新于 2025-03-27