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