.MI文件是當(dāng)你實(shí)例化一個(gè)ROM或RAM中的示意圖或AHDL文件,你必須與一些默認(rèn)的數(shù)據(jù)預(yù)加載的EAB選項(xiàng)來指定.MIF文件。
.MIF File Generator Utility將生成MIF文件正弦或余弦數(shù)字波形。您可以選擇指定幾個(gè)參數(shù),如振幅,偏移角度范圍等。
mif文件就是存儲(chǔ)器初始化文件,即memory initialization file,用來配置RAM或ROM中的數(shù)據(jù)。生成QuartusII11.0可用的mif文件,有如下幾種方式:
利用Quartus自帶的mif編輯器:
優(yōu)點(diǎn):對(duì)于小容量RAM可以快速方便的完成mif文件的編輯工作,不需要第三方軟件的編輯;
缺點(diǎn):一旦數(shù)據(jù)量過大,一個(gè)一個(gè)的輸入會(huì)使人崩潰;
使用方法:在quartus中,【file】/【new】,選擇Memory Initialization file,彈出如下窗口:
Number of words:可尋址的存儲(chǔ)單元數(shù),對(duì)于8bit地址線,此處選擇256;
words size:存儲(chǔ)單元寬度,8bit;
然后點(diǎn)擊“OK”.
在表格中輸入初始化數(shù)據(jù);
右鍵單擊左側(cè)地址值,可以修改地址和數(shù)據(jù)的顯示格式;
表中任一數(shù)據(jù)的地址=列值+行值,如圖中藍(lán)色單元的地址=24+4=28;
對(duì)每個(gè)單元填寫初始值之后,將文件保存即可。
利用mif軟件來生成:
無論使用什么編輯器,必須保證mif文件的格式如下:冒號(hào)左邊是地址,右邊是數(shù)據(jù);分號(hào)結(jié)尾;
DEPTH = 256;
WIDTH = 8;
ADDRESS_RADIX = HEX;
DATA_RADIX = HEX;
CONTENT
BEGIN
0000 : 0000;
0001 : 0000;
0002 : 0000;
……(此處省略一千字*.*)
00FA : 00FF;
00FB : 00FF;
00FC : 00FF;
00FD : 00FF;
00FE : 00FF;
00FF : 00FF;
END;
這里推薦一款mif生成器:Mif_Maker2010.exe,可以百度下載;
使用高級(jí)語言:
用C語言或者matlab語言等來生成,C語言生成代碼如下:本代碼生成一個(gè)正弦波的數(shù)據(jù)波形,保存在TestMif.mif中。
#include <stdio.h>
#include <math.h> #define PI 3.141592 #define DEPTH 128 /*數(shù)據(jù)深度,即存儲(chǔ)單元的個(gè)數(shù)*/ #define WIDTH 8 /*存儲(chǔ)單元的寬度*/ int main(void) { int i,temp; float s; FILE *fp; fp = fopen("TestMif.mif","w"); /*文件名隨意,但擴(kuò)展名必須為.mif*/ if(NULL==fp) printf("Can not creat file!\r\n"); else { printf("File created successfully!\n"); /* * 生成文件頭:注意不要忘了“;” */ fprintf(fp,"DEPTH = %d;\n",DEPTH); fprintf(fp,"WIDTH = %d;\n",WIDTH); fprintf(fp,"ADDRESS_RADIX = HEX;\n"); fprintf(fp,"DATA_RADIX = HEX;\n"); fprintf(fp,"CONTENT\n"); fprintf(fp,"BEGIN\n"); /* * 以十六進(jìn)制輸出地址和數(shù)據(jù) */ for(i=0;i<DEPTH;i++) { /*周期為128個(gè)點(diǎn)的正弦波*/ s = sin(PI*i/64); /*將-1~1之間的正弦波的值擴(kuò)展到0-255之間*/ temp = (int)((s+1)*255/2); /*以十六進(jìn)制輸出地址和數(shù)據(jù)*/ fprintf(fp,"%x\t:\t%x;\n",i,temp); }//end for fprintf(fp,"END;\n"); fclose(fp); } }
驗(yàn)證生成的數(shù)據(jù)是否正確:用記事本打開生成的mif文件,同時(shí)用Quartus打開mif文件,內(nèi)容如下:
能成功導(dǎo)入,且數(shù)據(jù)一致,說明生成正確。