FPGA學(xué)習(xí)筆記之mif文件生成方法總結(jié)
方法1:利用Quartus自帶的mif編輯器
本文引用地址:http://2s4d.com/article/201704/346203.htm優(yōu)點(diǎn):對(duì)于小容量RAM可以快速方便的完成mif文件的編輯工作,不需要第三方軟件的編輯;
缺點(diǎn):一旦數(shù)據(jù)量過(guò)大,一個(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è)單元填寫(xiě)初始值之后,將文件保存即可。
方法2:利用mif軟件來(lái)生成
無(wú)論使用什么編輯器,必須保證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;
方法3: 高級(jí)語(yǔ)言 生成 C語(yǔ)言
#include
#include
#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!rn");
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,"CONTENTn");
fprintf(fp,"BEGINn");
/*
* 以十六進(jìn)制輸出地址和數(shù)據(jù)
*/
for(i=0;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,"%xt:t%x;n",i,temp);
}//end for
fprintf(fp,"END;n");
fclose(fp);
}
}
評(píng)論