当前位置:文档之家› 如何搭建完善的仿真环境

如何搭建完善的仿真环境

verilog仿真环境的搭建1:项目文件的组织 时间: 2009/06/20, 22:37, 作者: 封 俊, 分类: FPGA. 已浏览:315次 因为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的配置以及仿真库的编译。

verilog仿真环境的搭建2: modelsim的设置 时间: 2009/06/24, 20:43, 作者: 封 俊, 分类: FPGA. 已浏览:642次 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的设置。 第一次来这里?欢迎订阅我博客,可以看到我的最新更新!点击订阅RSS. 你可能还喜欢如下文章  2009/07/05 -- verilog仿真环境的搭建3:Debussy的设置 (0)  2009/06/20 -- verilog仿真环境的搭建1:项目文件的组织 (4)  2009/08/17 -- 代码如诗,代码如乐 (2)

verilog仿真环境的搭建3:Debussy的设置 时间: 2009/07/05, 21:10, 作者: 封 俊, 分类: FPGA. 已浏览:500次 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波形文件。

相关主题