新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > FPGA學習筆記之mif文件生成方法總結(jié)

        FPGA學習筆記之mif文件生成方法總結(jié)

        作者: 時間:2017-04-05 來源:網(wǎng)絡(luò) 收藏

          方法1:利用Quartus自帶的編輯器

        本文引用地址:http://www.104case.com/article/201704/346203.htm

          優(yōu)點:對于小容量RAM可以快速方便的完成文件的編輯工作,不需要第三方軟件的編輯;

          缺點:一旦數(shù)據(jù)量過大,一個一個的輸入會使人崩潰;

          使用方法:在quartus中,【file】/【new】,選擇Memory Initialization file,彈出如下窗口:

          Number of words:可尋址的存儲單元數(shù),對于8bit地址線,此處選擇256;

          words size:存儲單元寬度,8bit;

          然后點擊“OK”.

          ? 在表格中輸入初始化數(shù)據(jù);

          ? 右鍵單擊左側(cè)地址值,可以修改地址和數(shù)據(jù)的顯示格式;

          ? 表中任一數(shù)據(jù)的地址=列值+行值,如圖中藍色單元的地址=24+4=28;

          對每個單元填寫初始值之后,將文件保存即可。

          方法2:利用軟件來生成

          無論使用什么編輯器,必須保證mif文件的格式如下:冒號左邊是地址,右邊是數(shù)據(jù);分號結(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: 高級語言 生成 C語言

          #include

          #include

          #define PI 3.141592

          #define DEPTH 128 /*數(shù)據(jù)深度,即存儲單元的個數(shù)*/

          #define WIDTH 8 /*存儲單元的寬度*/

          int main(void)

          {

          int i,temp;

          float s;

          FILE *fp;

          fp = fopen("TestMif.mif","w"); /*文件名隨意,但擴展名必須為.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");

          /*

          * 以十六進制輸出地址和數(shù)據(jù)

          */

          for(i=0;i

          {

          /*周期為128個點的正弦波*/

          s = sin(PI*i/64);

          /*將-1~1之間的正弦波的值擴展到0-255之間*/

          temp = (int)((s+1)*255/2);

          /*以十六進制輸出地址和數(shù)據(jù)*/

          fprintf(fp,"%xt:t%x;n",i,temp);

          }//end for

          fprintf(fp,"END;n");

          fclose(fp);

          }

          }





        關(guān)鍵詞: FPGA mif

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 克什克腾旗| 淮滨县| 肇庆市| 安达市| 贡山| 温宿县| 连平县| 贞丰县| 肃南| 建平县| 武城县| 江北区| 康定县| 扎囊县| 琼海市| 衡阳县| 通城县| 逊克县| 额尔古纳市| 登封市| 绥中县| 牙克石市| 读书| 许昌县| 长治市| 铜川市| 太康县| 广西| 胶州市| 渭源县| 兰溪市| 嘉禾县| 屯门区| 额济纳旗| 达州市| 赤水市| 长武县| 临夏市| 安新县| 望都县| 正定县|