来源:http://bbs.eetop.cn/thread-39016-1-1.html
modelsim:将HEX文件直接读入RAM/ROM
verilog只支持readmemh,在设计mcu时,如果要调试程序,需要先转换格式,很麻烦
这个程序可以将编译后HEX格式的文件直接读入ROM中,省去转换环节。稍微改改就可以嵌入到你的程序里了。参照此程序就可以在仿真时读入其它格式的文件了。
来源:http://bbs.ednchina.com/BLOG_ARTICLE_3002036.HTM
mif文件是用来给Quautus综合网表用的,而hex可以被用来作为modelsim仿真的数据输入用。换句话说modelisim对mif文件不支持,而只对hex文件支持。
用modelsim做功能仿真FPGA的IP核ROM的时候,ROM里面需要存hex格式文件;而用门级或者时序仿真的时候这不需要,只需要直接给mif文件就行。我们应该都清楚,功能仿真是只仿的.v文件,也就是设计文件,而门级或者时序仿真这是仿真综合后的网表文件。
同时需要注意的点是对hex文件的路径需要注意,如果放在FPGA工程里无法读取则需放到modelsim的工程根目录下,这样modelsim才会正确的读取数据源头。不然会无法初始化数据,也就是读取不到原始数据源。
在QuartusII中打开MIF文件可直接保存为HEX文件,此时可供Modelsim仿真。
MIF文件格式如链接所示http://bbs.ednchina.com/BLOG_ARTICLE_195488.HTM
Debussy与modelsim结合学习网址
http://home.educities.edu.tw/oldfriend/page55.htm#2.
http://blog.ednchina.com/Label/Debussy.aspx
debussy软件包下载网址
一、手动操作
手动操作Modelsim使之产生*.fsdb,然后在Debussy中打开*.fsdb,该方法较繁琐,推荐采用批处理的方法!!!
该方法可以参考PDF文档《手动操作Debussy_Modelsim.pdf》
Debussy使用注意事项:
(1)在打开.fsdb文件之前,先在nTrace窗口Import Design一下,选择From File,Add所有相关的设计源文件和testbench文件,否则在nWave窗口打开.fsdb文件,用Get Signal添加信号后会显示NF。
(2)另外,在Get Signal之前请将ModelSim关掉,否则好像还是会显示NF。其中在nTrace窗口Tools下New Waveform,再在nWave窗口file打开*.fsdb文件,最后Signal中选择Get all Signals即可看到波形。
二、 自动操作
*.v的注释是“//”或者“/* */”
*.vhdl的注释是“--”
注意:(1)modelsim.ini的注释符号是“;”,如
http://www.cnblogs.com/oomusou/archive/2011/02/05/debussy_modelsim.html
真OO无双的博客园
(2)run.bat的注释符号是“::”,如
http://www.cnblogs.com/yuphone/archive/2010/05/31/1747871.html
张亚峰的博客园
这边采用“真OO无双”的方法,在执行deb.bat,没有打开debussy和仿真波形,不清楚是什么原因造成。
原因:在run.bat /mod.bat /deb.bat中要设置好modelsim和debussy和路径
GOOD!
在进行Debussy仿真时,不一定要打开modelsim进行操作,可以通过mod.bat来进行批处理得到*.fsdb,然后再通过deb.bat进行批处理,得到仿真波形!!也可以将这两个步骤合起来写run.bat。
run.bat是mod.bat和deb.bat的整合!
mod.bat是modelsim的批处理文件!
deb.batt是debussy的批处理文件!
解答:在run.bat /mod.bat /deb.bat中要设置好modelsim和debussy和路径,添加如下指令:
在Verilog_add4这个文件夹里面,Verilog的程序非常的奇怪!!!我从没见过这样写的,而且还可以编译通过,值得学习!
在看《Debussy 教程1.doc》时,遇到好多问题,不明白是什么意思?
问题一:1-1 启动Debussy:% Debussy% & (此处的D大小写都可以,但其它指令的大小写可能就有差别)
这个命令如何输入,在哪输入?
答:在run.bat里输入,这是个批处理文件
问题二:Debussy.cmd纪录所有import的档案与之后所有的执行程序。我们可以直接引用这个档案来执行上一次我们做过的一连串程序(refer to 1-5)。
这个打开了Debussy.cmd,没反应???
1-5 结束程序:File \ Exit
1-6 快速启动执行序
把DebussyLog目录下的指令记录文件Debussy.cmd复制到目前工作目录下,重新编辑此档 (删掉最后一行的"debExit"然后储存),引用它来开启Debussy可重复之前同样的动作程序
% Debussy -play Debussy.cmd & (结果相当于从步骤1-1做到1-4)
1-7 其它启动Debussy的方法
% Debussy -f xxx.f (类似开启一个事先编写的批次档,可以同时一次加载多个.v)
% Debussy -vhdl -f xxx.f (类似开启一个事先编写的批次档,可以同时一次加载多个.vhd)
以上都是属于Import design from file的方法,另外还有一种方法是Import design from library。两者的差异在于:
Import design from file是将design compile to RAM,而Import design from library则是将design compile to library
(default lib. is "work")。
对于比较大的project,为了避免每次使用Debussy都要花时间compile,建议采用Import design from library的方法,而且mixed-language design一定要用Import design from library的方法。
Ex. for Verilog files:%vericom -inc -f run.f
%Debussy -lib work -top xxx &
Ex. for VHDL files:%vhdlcom -93 -f run.f
%Debussy -lib work -top xxx &
详细请参考“真OO无双”写的博客!!!
其中注意:testbench若为verilog,则用novas.dll,若为VHDL,则用novas_fli.dll,下面这段是将modelsim.ini改成适合verilog的形式。
问题三:开始执行模拟:Simulation \ Run/Continue (仿真结束工作目录下就会产生dump_i.fsdb )
我运行后出现下方这个现象!
实例下载:Verilog_add4.zip
相关文档下载:参考文档.zip