文章目录
- 1.1 VCS 编译环境
- 1.1.1 Complie Design
- 1.1.2 simv 仿真
- 1.2 VCS 波形生成及查看
- 1.2.1 verdi 命令介绍
- 1.2.2 verdi 波形查看
1.1 VCS 编译环境
VCS 全称是 Verilog Compiler Simulator,是 Synopsys 公司的,类似于windows环境下的 questasim 或 modelsim,只不过 vcs 是 linux 环境下的工具。编译之前首先检查编译环境是否准备完善,一般是通过 module list
命令来检查,module 常见的一些指令如下:
module help # 显示帮助信息
module avail # 显示已经安装的软件环境
module load # 导入相应的软件环境
module unload # 删除相应的软件环境
module list # 列出已经导入的软件环境
module purge # 清除所有已经导入的软件环境
module switch [mod1] mod2 # 删除mod1并导入mod2
可以通过 module list
检查是否 load 了 vcs 及 verdi,如果没有,可以通过 module load xxx/xxx
进行加载。
1.1.1 Complie Design
首先是编译,主要完成语法检查和文件联编,并生成可执行的仿真文件
可直接在 Linux 终端执行,格式如下:
vcs [选项] [文件]
其中选项是可选的,下面给出一些常用选项
-full64
: 支持64位系统;-l
[文件名]: 创建文件,用于记录编译日志;-f
[文件名]: 在某文件中索引要编译的文件路径,以及其他编译选项;-o
[文件名]: 重命名仿真文件;-debug_acc+all
: 支持UCLI调试;+incdir
+[目录]: 为`include指定索引目录;+define
+[宏]: 宏定义;-notice
: 更加冗长的编译信息,便于调试;-timescale=1ns/1ps
:时间单位和时间精度;+v2k
: 开启verilog 2001架构;-sverilog
: 开启systemverilog 架构。
编译完成后生成的文件如下:
1.1.2 simv 仿真
上图中 文件 simv 就是用于仿真的文件,生成 simv 文件之后就可以使用 DVE 进行仿真了
命令格式
simv [选项]
选项如下
-l
[文件]: 仿真日志;
-gui
: 开启GUI界面,否则就在 linux 终端显示 transcript 的内容;
-ucli
: 在 linux 终端使用 TCL 控制仿真进程;
-i
[文件名].tcl: 启动DVE后,在 UCLI 要启动的 TCL 命令;
1.2 VCS 波形生成及查看
VCS
对应的 waveform 工具有 DVE 和 Verdi, DVE 因为是原生的,所以 VCS 对 DVE 非常友好。但 DVE 已经过时了,其对 uvm 等新 feature 支持的不好。
Verdi 是 Debussy 公司的产品,已 Synopsy 收购并, 如果要支持 Verdi,需要设置好 NOVAS_LIB_PATH
的环境变量,并且在命令行中添加 -kdb 的 option,knowledge database
(kdb)是VCS支持Verdi时的重要概念。另外,VCS 支持 VPD 和 FSDB 两个格式的 dump wave, fsdb 的文件相对比较小。
若想用 Verdi 观察波形,需要在仿真时生成 fsdb 文件,而 fsdb 在 vcs 或者 modelsim 中的生成是通过两个系统调用 $fsdbDumpfile
$fsdbDumpvars
来实现的。而这两个系统调用并不是 Verilog 中规定的,是 Verdi 以 PLI(Programming Language Interface)的方式实现的。这就需要让 vcs 编译时能找到相应的库。首先在 testbench 中需加入以下语句:
`ifdef DUMP_FSDB
initialbegin
//$fsdbDumpon; 打开波形保存功能
//$fsdbDumpoff; 关闭波形保存功能
$fsdbDumpfile("test.fsdb"); // 指定波形文件名为test.fsdb
$fsdbDumpvars;
end
`endif
DUMP_FSDB 编译开关在 vcs 编译时加入+define+DUMP_FSDB
选项就可以打开(也可以在 define.v
文件中定义 DUMP_FSDB 这个宏), 生成的 fsdb 文件如上图中 test.fsdb 文件。
1.2.1 verdi 命令介绍
verdi
的命令可直接在 Linux 终端执行,格式如下:
verdi [选项] [文件]
其中选项是可选的,下面给出一些常用选项:
- -f [文件名]: 在某文件中索引工程包含的文件路径;
- -top [名称]: 工程名称,后接的是tb文件的 Module 名字;
- -nologo: 无欢迎界面;
- -ssf [文件名].fsdb: 指定已有的波形文件。
1.2.2 verdi 波形查看
verid 波形查看命令:
bsub verdi -elab ./simv.daidir/kdb.elab++ -ssf test.fsdb
关于 bsub 的使用请参考:https://blog.csdn.net/sinat_32960911/article/details/129976200
推荐阅读:
http://www.taodudu.cc/news/show-5437615.html
https://download.csdn.net/download/dxydxzsxzg/11216049