存档

‘FPGA’ 分类的存档

verilog仿真环境的搭建3:Debussy的设置

2009年7月5日
没有评论 已浏览:232次

Debussy是Novas公司出品的调试工具,在5.4V9版之后就只发行Linux了,在这里使用的是Win32上的最后一个版本。

在前面文章中,已经可以调用modelsim进行仿真了,要配合Debussy使用的话,就需要在仿真中生成波形文件供调试。Debussy可以使用.fsdb文件,大小要比.vcd文件要小不少。

 

波形文件的生成

首先,将Debussy安装目录下share\PLI\modelsim_pli54\WINNT目录中的Novas.dll文件复制到modelsim安装目录下。

然后,在modelsim.ini的[vsim]标签下增加一行,用来在仿真时以供调用。

   1: Veriuser = novas.dll

接着,在仿真的顶层模块中添加如下语句:

   1: initial
   2: begin
   3: $fsdbDumpfile("wave_out.fsdb");
   4: $fsdbDumpvars;
   5: end    

这样,在仿真时就会在script目录生成wave_out.fsdb波形文件。

如果波形文件比较大的话,打开时会占用很多内存,这时可以把波形文件分段输出,调试时只要载入指定时间段的波形文件就可以了,将第三行语句替换为如下语句:

   1: $fsdbAutoSwitchDumpfile(25, "test.fsdb", 150);

这条语句表示将fsdb文件分成每个大小为25MB的文件,最多输出150个文件。每个文件的仿真时间范围记录在test.log文件中。

 

调用Debussy

启动Debussy时,可以使用命令行方式,同时载入项目文件。结合命令行调用Modelsim,可以写出如下的两个批处理文件。

sim.bat

   1: d:/program/Modeltech_6.3c/win32/vsim.exe -c -do sim.do
   2: d:/program/Novas/Debussy/bin/debussy.exe  -f  run.f 

vsim中的-c参数是指定采用命令行模式,-do则是制定采用.do脚本模式。debussy的-f参数是在debussy启动时就调入run.f中指定的文件。

sim2.bat则是去掉了第二行,只是调用modelsim进行仿真。然后在已经启动的debussy中使用Shift+L快捷键重新调入波形文件就可以了。

 

Debussy的使用

Debussy有较强的单步调试的功能,我曾经尝试过,但没有能够使用的起来。现在使用的主要是波形文件的查看以及源代码的分析。

点击图片看大图

在如图所示的代码界面,双击信号名就会在下面列出驱动这个信号的信号以及信号的负载列表,如果只有一个信号驱动这个信号的话,那就会直接进行跳转,并能通过工具栏中的按钮寻找定义信号的位置以及信号的调用位置。这样,在查看代码时,可以很快的查看到信号的流向了。

点击工具栏中的"New Waveform”按钮,可以调出波形分析工具。用工具栏中的打开文件按钮打开波形文件,并利用"Get Signal”按钮选择需要查看的信号(或者直接从选择对话框中拖入,甚至可以从代码界面的源程序中直接拖入,拖得时候是按鼠标中键,而不是左键或右键),就会显示生成的信号了。如下图所示:

verilog6

点击图片看大图

在波形界面中,可以利用一些简单的快捷键来方便的查看波形,其中z和Z是放大缩小,c是改变信号的显示颜色,Shift+L是重新载入波形。其他还有很多功能有待探索。

 

Debussy是个很强悍的工具,我用到的可能只有它的一小部分功能,如果有其他使用经验的话,欢迎一起分享。

第一次来这里?欢迎订阅我博客,可以看到我的最新更新!点击订阅RSS.

作者: 封 俊 分类: FPGA 标签: ,

verilog仿真环境的搭建2: modelsim的设置

2009年6月24日
2 条评论 已浏览:310次
1.证书设置

modelsim安装后,如果默认没有设置证书目录,那还需要手动进行设置。

在“系统属性”-》“高级”-》“环境变量”中的用户变量里,加上LM_LICENSE_FILE变量值,为证书所在的目录。值得一提的是,如果有其他软件也需要使用这个变量的话,那变量值以分号分隔。以我的设置为例:

   1: 变量名:LM_LICENSE_FILE
   2: 变量值:D:/program/Modeltech_6.3c/LICENSE.TXT;d:/program/Synplicity/synplctyd.lic

 

2.仿真库的编译

xilinx的仿真库可以用命令提示符进行编译,也可以在ISE内图形界面下编译。

以ISE10.1为例,新建工程后,在source工具栏中选中器件,在Processes中右击"Compile HDL Simlulation Library”,如下图所示,选择"Properties…”,会出现设置对话框,如下下图所示。基本按默认设置就可以了,如需更改,第一项为编译的语言选择,第二项为编译后库的存放目录,第三项为仿真器(modelsim)的存在目录。

点击图片看大图

 

点击图片看大图

设置好后,还需要更改modelsim安装目录下的modelsim.ini设置文件,指定仿真库的目录,否则在仿真其他项目时会提示找不到仿真库。修改前去除modelsim.ini的只读属性,然后在[Library]项下添加类似如下的目录指定语句(无需行号)。

   1: Simprims_ver = D:/Xilinx/ise/ISE/verilog/mti_se/simprims_ver
   2: unisims_ver = D:/Xilinx/ise/ISE/verilog/mti_se/unisims_ver
   3: XilinxCoreLib_ver = D:/Xilinx/ise/ISE/verilog/mti_se/XilinxCoreLib_ver
   4: XilinxCoreLib = D:/Xilinx/ise/ISE/vhdl/mti_se/XilinxCoreLib
   5: simprim= D:/Xilinx/ise/ISE/vhdl/mti_se/simprim
   6: unisim =D:/Xilinx/ise/ISE/vhdl/mti_se/unisim

 

3.仿真器的批处理调用

仿真未必需要使用modelsim的图形界面,可以使用批处理文件调用命令提示符方式实现全自动的仿真。不需要重复的设置而且可以节省仿真时的内存占用。

sim2.bat文件

调用modelsim中仿真器的批处理文件,以我项目目录中script目录下的sim2.bat为例,内容为(无需行号):

   1: d:\program\Modeltech_6.3c\win32\vsim.exe -c -do sim.do
   2: exit

sim.do文件

还需要在同一目录下建立modelsim仿真的脚本文件,文件为sim.do,内容如下(无需行号):

   1: vlib work
   2: vlog -f  run.f -incr
   3: vsim -L xilinxcorelib_ver -L unisims_ver -lib work updater_test glbl
   4: run 100us
   5: quit

第一行建立一个项目库。

第二行载入仿真所需文件,-incr参数为增量编译方式,每次运行时没有改动的文件可以不用重新编译,节省编译时间。

第三行为仿真命令:-L参数载入仿真库;-lib 指定项目库;updater_test为顶层的模块名,根据自己项目的情况更改;glbl为全局信号模块的名字,一般不用改。

第四行指定仿真运行时间。

第五行退出脚本。

run.f文件

在上述的脚本中,第二行为载入项目仿真所需文件,这需要手动指定,或者利用脚本或者批处理来生成,内容其实相当简单,就是一个文件及其路径的列表,类似于这样(无需行号):

   1: e:/project/parameters.v
   2: e:/project/rtl/counter.v
   3: e:/project/rtl/updater.v
   4: e:/project/rtl/updater_test.v

在仿真前就会按照顺序调入这些文件并进行编译了。

 

这样,modelsim所需的设置就基本完成了,用命令行方式调用仿真器在实践中可以方便很多,而且更利于脚本化的处理。

第三篇将介绍调试的利器Debussy的设置。

作者: 封 俊 分类: FPGA 标签: ,

verilog仿真环境的搭建1:项目文件的组织

2009年6月20日
4 条评论 已浏览:155次

因为ISE内置的仿真工具功能比较弱(或者是我没有善于发掘?),所以大多数的仿真都是交给第三方工具的,比如说modelsim以及NC verilog。就我使用的工具来说,只有布局布线之后才是交给ISE来完成,之前的流程都可以有更为方便的工具来替代。现在我所使用的仿真及调试环境主要由vim+nlint+modelsim+debussy构成,使用起来还是相当方便的。需要说明的是,我是在windows下面使用这些工具的,如果linux下使用的话,可能可以更加强大。

首先介绍下project目录下文件的组织方法。

点击图片看大图

 
左侧的项目主目录

test目录:主要用来存放子模块仿真所需文件,每个子模块目录内的结构跟project目录下大致相同。

syn目录:存放综合的项目文件及其产生的文件。

sim目录:存放rtl仿真所使用的testbench。

script目录:用来存放仿真所需要运行的脚本(主要还是批处理文件)。

rtl目录:用来存放rtl代码。

planahead:用来存放planahead工程文件及产生的文件。

others目录:存放一时难以归类的文件。

ise目录:用来存放ise的项目文件以及产生的文件,包括布局布线所需的文件以及可供下载的二进制bit文件。

doc目录:用来存放项目所需的参考文档。

core目录:用来存放项目所需的核相关的文件。

c目录:用来存放c语言程序。

backup目录:用来存放临时备份。

tags文件:vim中自动生成的tag索引文件。

syncToy文件:用于Microsoft Synctoy工具的文件,该工具主要用来进行不同计算机的文件同步。

parameters.v:用于存放项目所需的参数。

右侧的script子目录

Debussy.exeLog与work目录:分别是Debussy与modelsim产生的文件。

transcript文件:modelsim的生成的日志文件。

deb.bat:调用Debussy并载入项目中的rtl文件。

nlint.bat:调用nlint进行项目中rtl文件的规则检查。

sim.bat:调用modelsim进行仿真,并在仿真结束后启动debussy观察波形。

sim2.bat:调用modelsim进行仿真,但并不启动debussy。

sim.do:modelsim的仿真脚本。

run.f:项目中rtl的文件列表。

fsdb文件:modelsim仿真生成的波形文件。

*.log:仿真时产生的日志文件,再将波形文件分割为多个文件时产生。后面会有介绍。

bram.mif:Block Ram核初始化所需的数据文件。

novas.rc:debussy的配置文件。

sig.rc:在debussy中察看波形时选择的信号列表。

.swp:vim编辑时产生的临时文件。

vsim.wlf:modelsim产生的波形文件,不过这个文件一般不用。

glbl.v:仿真所使用的全局信号初始化文件。

其中,文件名加下划线标志的文件为手动生成的。其他的文件为软件生成的文件。

这其中的部分文件,特别是script目录中的文件,以后会有介绍的。

将项目文件分类存档,便于进行项目的管理,避免不同流程下的文件聚集在一个目录下,同时也可以使误操作的损失控制在较小的范围内。

下一篇文章,将要介绍modelsim的配置以及仿真库的编译。

作者: 封 俊 分类: FPGA 标签: ,