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