鄒林甫席挺
1. 南京郵電大學通信與信息工程學院 2. 南京郵電大學電子科學與技術(shù)學院
基于MATLAB的mif文件生成
鄒林甫1席挺2
1. 南京郵電大學通信與信息工程學院 2. 南京郵電大學電子科學與技術(shù)學院
mif(Memory Initialization File)文件是通用數(shù)據(jù)交換格式,可導入多種平臺用于對特定單元賦值,為數(shù)字信號處理平臺提供方便。本文針對初學者,在FPGA設(shè)計中對mif文件使用的疑惑,詳細介紹了mif文件在MATLAB中的實現(xiàn)過程。以quartus開發(fā)平臺cyclone Ⅳ系列芯片的使用為例,生成am調(diào)制信號的mif文件數(shù)據(jù),通過FPGA輸出調(diào)制波形。
MATLAB mif文件 數(shù)字信號處理
在FPGA設(shè)計中ROM的應用是比較常見的,調(diào)用ROM時經(jīng)常要加載mif(Memory Initialization File)文件。盡管mif文件有多種生成方式,例如C程序,使用專門mif文件生成軟件等,基于MATLAB的生成方法依托其在數(shù)字信號分析、處理領(lǐng)域的強大功能,有著天然的優(yōu)勢。
MATLAB是MathWorks公司出品的數(shù)學軟件,主要包括MATLAB和Simulink兩大部分,主要用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算。自問世以來,歷經(jīng)了實踐的檢驗,逐漸成為科研工作者和高校師生信賴的仿真軟件。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析等領(lǐng)域。
3.1 簡介
mif(Memory Initialization File)文件是指定內(nèi)存塊(CAM,RAM或ROM)的初始內(nèi)容的ASCII文本文件(擴展名為.mif),即每個地址的初始值。該文件在項目編譯或模擬期間使用??梢栽趦?nèi)存編輯器,系統(tǒng)內(nèi)存內(nèi)容編輯器或Quartus II文本編輯器中創(chuàng)建內(nèi)存初始化文件。也可以使用十六進制(Intel-Format)文件(.hex)來提供內(nèi)存初始化數(shù)據(jù)。文件包含內(nèi)存中每個地址的初始值。每個內(nèi)存塊都需要單獨的文件。在內(nèi)存初始化文件中,必須指定內(nèi)存深度和寬度值。另外,您可以將數(shù)據(jù)基數(shù)指定為二進制(BIN),十六進制(HEX),八進制(OCT),有符號十進制(DEC)或無符號十進制(UNS),以顯示和解釋地址和數(shù)據(jù)值。數(shù)據(jù)值必須與指定的數(shù)據(jù)基數(shù)相匹配。
3.2 格式說明
創(chuàng)建文件時,必須以DEPTH,WIDTH,ADDRESS_RADIX和DATA_RADIX關(guān)鍵字開始??梢允褂谩癟ab”和“Space”字符作為分隔符,并用“%”百分比字符插入多行注釋,或者使用雙擊“—”字符的單行注釋。地址、數(shù)據(jù)對表示內(nèi)存地址中包含的數(shù)據(jù)內(nèi)容,以“:”間隔,必須將其放在CONTENT BEGIN和END關(guān)鍵字之間。
本文圍繞mif文件,介紹了其格式以及基于MATLAB的生成方法。今后對存儲塊的初始化,可依據(jù)此模板進行修改,通過MATLAB輸出波形檢驗輸出正確性,產(chǎn)生mif文件后,導入開發(fā)平臺相應單元中。
[1]張志涌,楊祖櫻.MATLAB教程R2012a[M].北京:北京航空航天大學出版社,2012:29
[2]王金明.數(shù)字系統(tǒng)設(shè)計與Verilog HDL[M].北京:電子工業(yè)出版社,2014:130-132