在modelsim中仿真rom初始化文件问题解决之法(altera篇)近来要对quartus7.2的megafuntion生成的ROM进行初期的功能仿真,看时序是不是满足我的设计要求。在网上找了很多办法都不能成功初始化ROM,仿真处理的都看不到 ROM的数据有输出结果。经过本人大半天的摸索,加上去 Altera网站下了几个参考设计,终于搞定了 ROM初始化的问题。:-)现在就把我操作的工程详细介绍一下。先介绍一下我的软件环境:AlteraQuartus7.2Modelsimseplus6.1d例子程序的产生1.先新建一个工程 rom_test,器件我选的是EP1C3T144C8,内部带 M4K。2.先点击 file/new在选中里面的otherfiles文件类型选里面的memoryinitializationfiles,设置好你的ROM初始化文件的长度,数据宽度。我选的32个字节的数据 8bit数据宽度。就给了几个数据测试一下就好了。文件名我存的是:inirom.mif3.然后在quartus的tool里选 megawizardplug_inmanager,产生一个 ROM。具体过程看下图:这样产出的零件名字我的是:initrom,文件类型 veriloghdl。我就会 veriloghdl,感觉上手很快。看一下生成的元件的操作时序如下:4.根据上面的时序图写测试代码,代码如下:很简单的。文件名字:test_initrom.v//testinitrom`timescale10ns/10nsmoduletest_initrom;reg[4:0]address;regclock;wire[7:0]q;initromu0(.address(address),.clock(clock),.q(q));always#1clock=~clock;initialbeginclock=0;address=0;#9address=1;#9address=2;#9address=3;#9address=4;#45$finish;endendmodule纯粹的功能仿真1.先按照altera的一篇应用指南AN316的超简单说明做一下设置。先拷贝convert_hex2ver.dll这个文件到你的modelsim的安装目录下的win32目录下。2.在你的modelsim的安装目录下找到 modelsim.ini这个文件。安全起见先把你的这个文件备份一下。然后把这个文件去掉只读属性。用记事本打开找到下面的这段文字:;ListofdynamicallyloadedobjectsforVerilogPLIapplications在下面的一行加上Veriuser=convert_hex2ver.dll改成这样就好。这样做是让 modelsim能调用这个文件把我们的初始化文件.mif转换到 modelsim能够认识的.ver格式的文件。改好后把文件属性改回只读就好。注意:Veriuser前面没;号的。3.打开 modelsim并新建工程,我的比较简单在 D:\testrom操作如下图:4.关键一步把你的ROM初始化文件inirom.mif拷贝到你的仿真目录下面,如下图.5.接着就是compileall。如图编译成功就全部是勾勾了。6.点击mod...