马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 catannie 于 2017-12-25 19:19 编辑
【说明:前一次发的内容不完整,在这里重新发完整的版本】
在VCS仿真器中使用FSDB
FSDB(Fast SignalDatabase)是Verdi支持的文件格式,用于保存仿真产生的信号波形。据Verdi文档说明,FSDB比标准的VCD格式节省磁盘空间,处理速度更快。要用VCS仿真器生成FSDB文件,就要调用Verdi提供的FSDB dumping命令,较常用的方法是在Testbench中调用。
首先要把FSDB dumper库的路径添加到LD_LIBRARY_PATH环境变量,32位Linux环境使用的C Shell命令格式如下:
- if ($?LD_LIBRARY_PATH) then
- setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${NOVAS_HOME}/share/PLI/VCS/LINUX
- elsesetenv LD_LIBRARY_PATH ${NOVAS_HOME}/share/PLI/VCS/LINUX
- endif
复制代码 注意:如果使用的是64位Linux,需要把LINUX替换成LINUX64,其他操作系统参考Verdi文档。后面步骤使用的路径也要做同样的替换。
1) Testbench和设计文件都用Verilog
Verilog中常用的FSDB dumping命令包括$fsdbDumpfile和$fsdbDumpvars等,调用格式如下:
- $fsdbDumpfile("test.fsdb");
- $fsdbDumpvars(1,Testbench.inst);
复制代码
用VCS仿真时,需要使用-P选项调用FSDBdumper,命令格式如下:
- vcs +v2k -R -nc -debug_pp -LDFLAGS -rdynamic -P ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.tab ${NOVAS_HOME}/share/PLI/VCS/LINUX/pli.a Testbench.v Counter.v
复制代码 其中+v2k表示使用Verilog-2001标准,-R表示自动运行仿真,-nc表示不显示版权信息,-debug_pp和-LDFLAGS -rdynamic是Verdi要求的选项。
用如下命令启动Verdi查看波形:
- verdi -2001 Testbench.v Counter.v -ssf test.fsdb -sswr test.rc
复制代码 其中-2001表示使用Verilog-2001标准,-ssf用于指定FSDB文件,-sswr用于指定一个配置文件,包含要显示那些信号以及显示格式等,该配置文件可以在Verdi中配置完波形后生成。 示例文件下载:
verdi_verilog.zip
(1.99 KB, 下载次数: 18 )
2) Testbench和设计文件都用VHDL
VHDL中常用的FSDB dumping命令包括fsdbDumpfile和fsdbDumpvars等,调用前需要引用Novas程序包,调用格式如下:
- USE Work.Novas.ALL;
- fsdbDumpfile("test.fsdb");
- fsdbDumpvars(1, "Testbench:Inst");
复制代码 在VCS中仿真VHDL需要在当前目录有一个synopsys_sim.setup文件,格式如下:
- -- Mapping default work directory
- WORK > DEFAULT
- DEFAULT : ./work
- -- Library Mapping
- IEEE : $VCS_HOME/linux/packages/IEEE/lib
- SYNOPSYS : $VCS_HOME/linux/packages/synopsys/lib
- --Simulation variables
- ASSERT_STOP = ERROR
- TIMEBASE = ns
- TIME_RESOLUTION = 1 ps
复制代码 其中./work是WORK库对应的路径,默认情况下编译到WORK库中。也可以使用不同的路径,需要将./work修改为你使用的路径。
用VCS仿真时,需要先编译novas.vhd,该文件中的Novas程序包声明了FSDB dumping命令及其使用的库,因此不需要在命令行使用特别的选项,然后编译VHDL文件,最后执行仿真,命令格式如下:
- if (! -d work) mkdir work # Create work directory if not exist
- vhdlan -nc ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.vhd
- vhdlan -nc Testbench.vhd Counter.vhd
- vcs -R -nc -debug_pp
- Testbench__Arch
复制代码 分步仿真VHDL需要在最后一步调用vcs时指定顶层配置/实体/架构,一种格式为“实体名__架构名”,用两个下划线分隔,如果只有一个架构,则可以省略架构名。包含VHDL文件时必须指定顶层配置/实体/架构。
用如下命令启动Verdi查看波形:
- verdi -vhdl -93 ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.vhd Testbench.vhd Counter.vhd -top "Testbench(Arch)" -ssf test.fsdb -sswr test.rc
复制代码 其中-vhdl选项表示使用VHDL文件,-93表示使用VHDL-1993标准,-top用于指定顶层实体/架构,格式为“实体名(架构名)”,如果只有一个架构,则可以省略架构名。 示例文件下载:
verdi_vhdl.zip
(2.6 KB, 下载次数: 10 )
3) Testbench和设计文件都用SystemVerilog
SystemVerilog的FSDB dumping命令与Verilog相同。
用VCS仿真的命令格式与Verilog类似,只是把+v2k替换成-sverilog,格式如下:
- vcs -sverilog -R -nc -debug_pp -LDFLAGS -rdynamic -P ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.tab ${NOVAS_HOME}/share/PLI/VCS/LINUX/pli.a Testbench.sv Counter.sv CounterItf.sv
复制代码
其中-sverilog表示仿真SystemVerilog文件。
用如下命令启动Verdi查看波形:
- verdi -sv Testbench.sv Counter.sv CounterItf.sv -ssf test.fsdb -sswr test.rc
复制代码
其中-sv表示使用SystemVerilog文件。
VCS混合语言仿真需要先分别编译HDL文件,然后执行仿真,如果包含VHDL文件,则需要synopsys_sim.setup文件,并且需要先编译novas.vhd。
Verdi调试混合语言设计也要先分别编译HDL文件到同一个库,然后打开该库进行调试。 示例文件下载:
verdi_sv.zip
(2.21 KB, 下载次数: 9 )
4) Testbench用Verilog,设计文件用VHDL
VCS仿真命令格式如下:
- if (! -d work) mkdir work # Create work directory if not exist
- vlogan -nc +v2k Testbench.v
- vhdlan -nc Counter.vhd
- vcs -R -nc -debug_pp -LDFLAGS -rdynamic -P ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.tab ${NOVAS_HOME}/share/PLI/VCS/LINUX/pli.a Testbench
复制代码
包含VHDL文件时必须指定顶层配置/实体/架构,这里使用了只指定实体名不指定架构名的格式。
用如下命令启动Verdi查看波形:
- vhdlcom -93 Counter.vhd
- vericom -2001 Testbench.v
- verdi -lib work -top Testbench -ssf test.fsdb -sswr test.rc
复制代码 其中-lib用于指定要调试的库,vhdlcom和vericom默认编译到work库中。 示例文件下载:
verdi_ver_tb.zip
(2.44 KB, 下载次数: 10 )
5) Testbench用VHDL,设计文件用Verilog
VCS仿真命令格式如下:
- if (! -d work) mkdir work # Create work directory if not exist
- vhdlan -nc ${NOVAS_HOME}/share/PLI/VCS/LINUX/novas.vhd
- vhdlan -nc Testbench.vhd
- vlogan -nc +v2k Counter.v
- vcs -R -nc -debug_pp Testbench__Arch
复制代码 用如下命令启动Verdi查看波形:
- vhdlcom -93${N OVAS_HOME}/share/PLI/VCS/LINUX/novas.vhd Testbench.vhd
- vericom -2001 Counter.v
- verdi -lib work -top "Testbench(Arch)" -ssf test.fsdb -sswr test.rc
复制代码 示例文件下载:
verdi_vhd_tb.zip
(2.59 KB, 下载次数: 7 )
|