QuartusII使用.mif文件初始化FPGA片内ram后,mif文件被修改的解决办法
Quartus发布的版本比较多,在项目的开发和升级过程中很肯能使用了不同版本,可能有此带来不同的问题。QuartusII8.1中使用.mif文件初始化FPGA片内ram后,mif文件被QuartusII自动的修改。
最近在Quartus8.1中使用了片内的双口RAM,但在用mif文件初始化的时候遇到了很大的问题,我放在工程文件下的mif文件经编译后总是会被Quartus修改,且最高几位都被修改成FFFF,很是郁闷。 所建工程如下,即以双口RAM和一产生读地址的计数器,双口RAM初始化中选择image8.mif文件进行初始化:
在双口RAM初始化中的mif文件内容如下所示:
WIDTH=8;
DEPTH=8192;
ADDRESS_RADIX=HEX;
DATA_RADIX=HEX;
CONTENT BEGIN
0:0;
1:1;
2:2;
3:3;
4:4;
5:5;
6:6;
7:7;
8:8;
9:9;
A:A;
B:B;
C:C;
D:D;
E:E;
F:F;
10:10;
11:11;
12:12;
13:13;
14:14;
15:15;
16:16;
17:17;
END;
但经Quartus编译后了,mif文件内容变为:
-- Clearbox generated Memory Initialization File (.mif)
WIDTH=8;
DEPTH=8192;
ADDRESS_RADIX=HEX;
DATA_RADIX=HEX;
CONTENT BEGIN
0000 : F0;
0001 : F1;
0002 : F2;
0003 : F3;
0004 : F4;
0005 : F5;
0006 : F6;
0007 : F7;
0008 : F8;
0009 : F9;
000a : FA;
000b : FB;
000c : FC;
000d : FD;
这样编译后初始化RAM的波形肯定不对。这个问题困恼了我数日,最后将初始化数据存贮的mif文件属性改为只读。
这样编译后的mif文件的内容就不在变化,最后仿真的波形图如下图所示:
这样这个问题才得以解决。