【摘要】本文主要通過進行分析FPGA設(shè)計中存在的問題,并提出采用MATLAB中的Fixed-point Toolbox對FPGA測試數(shù)據(jù)進行分析,并通過具體的實例進行證明,在FPGA設(shè)計中采用MATLAB軟件能夠為FPGA的設(shè)計帶來巨大的方便。
【關(guān)鍵詞】MATLAB軟件現(xiàn)場可編門陣列設(shè)計應(yīng)用
隨著科學(xué)技術(shù)的發(fā)展,在網(wǎng)絡(luò)、圖像處理、視頻以及數(shù)字通信等領(lǐng)域中,F(xiàn)PGA技術(shù)已經(jīng)成為高性能數(shù)字信號處理系統(tǒng)的一項重要的元件。但是由于FPGA設(shè)計調(diào)試環(huán)境中只能直觀的顯示出仿真測試數(shù)據(jù)的時域波形,不能顯示數(shù)據(jù)的頻譜等特性,從而為設(shè)計和調(diào)式帶來困難。如果將FPGA設(shè)計環(huán)境中的測試數(shù)據(jù)通過文件格式傳給MATLAB軟件,并利用MATLAB軟件對數(shù)據(jù)進行處理,使測試結(jié)果更加容易判斷,并未為FPGA的設(shè)計和調(diào)式提供方便。下面具體進行分析此方法對FPGA設(shè)計是否方便有效。
1FPGA設(shè)計中存在的問題
FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)是可編程數(shù)字集成電路器件。目前隨著科學(xué)技術(shù)的進步,數(shù)字技術(shù)的快速發(fā)展,在電子工程設(shè)計中運用FPGA進行設(shè)計復(fù)雜的數(shù)字功能的次數(shù)越來越多,這對FPGA設(shè)計軟件的功能提出更大的要求。比如FPGA設(shè)計不僅能夠?qū)崿F(xiàn)FFT算法基礎(chǔ)上保保證其時序得到驗證,而且還需要對計算結(jié)果以及迭代的計算結(jié)果實現(xiàn)功能驗證。但是目前的FPGA不能滿足要求,并且具有非常大的局限性。
MATLAB是矩陣實驗室(Matrix Laboratory)的簡稱,是美國MathWorks公司推出的用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境的軟件,它是集自動控制、神經(jīng)系統(tǒng)、科學(xué)計算、圖像處理以及信號處理于一體并具有非常高的編程效率的軟件[1]。針對上述FPGA設(shè)計中存在的問題,下面具體進行分析FPGA設(shè)計中應(yīng)用MATLAB軟件強大的數(shù)據(jù)可視化功能和數(shù)據(jù)分析處理能力解決上述問題的有效性。
2MATLAB在FPGA中應(yīng)用實例分析
1. MATLAB中的Fixed-point Toolbox簡介
Fixed-point Toolbox在MATLAB中開發(fā)的定點算法,這種工具箱能夠?qū)崿F(xiàn)從2到65536bit的字長的數(shù)據(jù)類型,這種工具箱能夠在MATLAB工作區(qū)域中實現(xiàn)bit-trur操作,這種工具箱能夠不僅能夠?qū)崿F(xiàn)定點數(shù)據(jù)處理功能、提供完整的位操作系統(tǒng),并且還能夠輔助定點算法進的建模測試以及定點實現(xiàn)的驗證。這種工具箱不僅能夠為MATLAB提供定點數(shù)據(jù)類型,實現(xiàn)基本定點的算術(shù)運算,并且額能夠?qū)崿F(xiàn)MATLAB的定點函數(shù)的輸入輸出數(shù)據(jù)的處理,而且還能夠?qū)崿F(xiàn)Simulink模型的定點數(shù)據(jù)輸入輸出的管理,以實現(xiàn)定點數(shù)據(jù)IO。
2.硬件模型的建立
在FPGA設(shè)計中關(guān)注最多是時序的收斂和驗證,很多工程師在對設(shè)計方案確定之后,就直接在ISE上進行開發(fā),但是這很容易出現(xiàn)算法簡單、有限字長效應(yīng)等一些問題,從而造成硬件實現(xiàn)后其性能比湖綜合數(shù)學(xué)模型不能滿足設(shè)計要求。針對這些問題我們采用MATLAB中Fixed-point Toolbox進行建立FPGA硬件模型就能夠解決這些問題。
在系統(tǒng)中建立模型之后,還應(yīng)該將軟件中的語言轉(zhuǎn)換位VHDL等硬件語言的RTL代碼,最后在ISE上完成時序驗證。下面是乘法器的一個復(fù)乘的定點算法模型,如果在系統(tǒng)中輸入36bit的歸一化復(fù)數(shù),并且其旋轉(zhuǎn)因子為36bit的復(fù)數(shù),則他們的虛數(shù)和實數(shù)都是18bit,如果將復(fù)數(shù)的輸出為38bit,則實數(shù)和虛數(shù)為19bit[2]。復(fù)數(shù)的硬件模型:
設(shè)有兩個復(fù)數(shù)分別為X1和X2,令X1_temp=fi(X1,1,18,0),X2_temp=fi(X2,1,18,0)并令X1r、X1i、X2r、X2i分別為復(fù)數(shù)的實數(shù)部分和虛數(shù)部分,并采用Fixed-point Toolbox對實數(shù)欲的定點乘法進行計算,則結(jié)果應(yīng)該為36bits:
通過完成設(shè)計之后我們可以發(fā)現(xiàn)此結(jié)果與FPGA的輸出結(jié)果是一致的。
3.功能驗證
在FPGA設(shè)計軟件中ISE中我們可以采用文件IO進行讀取測試激勵,并且這些激勵也能夠在MATLAB中的生成,在測試結(jié)束之后我們還能夠采用MATLAB軟件進行分析測試結(jié)果,從而實現(xiàn)功能驗證。
3結(jié)論
由于FPGA設(shè)計調(diào)試環(huán)境中只能直觀的顯示出仿真測試數(shù)據(jù)的時域波形,不能顯示數(shù)據(jù)的頻譜等特性,從而為設(shè)計和調(diào)式帶來困難。而MATLAB集自動控制、神經(jīng)系統(tǒng)、科學(xué)計算、圖像處理以及信號處理于一體并具有非常高的編程效率的軟件。它在FPGA測試數(shù)據(jù)中分析不僅簡單方便,而且還能夠滿足FPGA在設(shè)計的過程中對數(shù)據(jù)的處理。從為FPGA的設(shè)計提供極大的方便。