音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

一種基于FPGA硬件求解函數(shù)的簡(jiǎn)化方法

出處:電子科學(xué)技術(shù)2015年9月第 發(fā)布于:2017-11-17 15:39:40

摘 要:本文研究了一種運(yùn)用FPGA進(jìn)行數(shù)據(jù)處理的方法,包括:提取輸入數(shù)據(jù)的高log2M個(gè)比特位的數(shù)據(jù),作為高有效位,根據(jù)預(yù)先設(shè)置的目標(biāo)函數(shù)的計(jì)算表格,查找所述高有效位對(duì)應(yīng)的目標(biāo)函數(shù)值y(n)以及高有效位+1對(duì)應(yīng)的目標(biāo)函數(shù)值y(n+1);提取輸入數(shù)據(jù)的剩余比特位數(shù)據(jù),作為低有效位,并將所述低有效位與y(n)和y(n+1)的差值相乘,得到偏移值off(n),將該偏移值與所述高有效位對(duì)應(yīng)的目標(biāo)函數(shù)值y(n)相加,將計(jì)算結(jié)果作為所述輸入數(shù)據(jù)對(duì)應(yīng)的目標(biāo)函數(shù)值。本方法具有控制簡(jiǎn)單、結(jié)構(gòu)規(guī)則、單運(yùn)算周期、計(jì)算較高的特點(diǎn),適合于FPGA的數(shù)據(jù)處理實(shí)現(xiàn)。

引言
現(xiàn)場(chǎng)可編程門陣列(FPGA)芯片在許多領(lǐng)域均有廣泛的應(yīng)用,尤其是在無(wú)線通信領(lǐng)域。FPGA具有極強(qiáng)的實(shí)時(shí)性和并行處理能力,這使其對(duì)信號(hào)進(jìn)行實(shí)時(shí)處理成為可能。FPGA內(nèi)部一般都包含邏輯單元(查找表/觸發(fā)器)、存儲(chǔ)單元(BRAM)、乘加單元(MAC)和一些其他的時(shí)鐘、引腳單元等[1-3]。

現(xiàn)代數(shù)字信號(hào)處理的主要發(fā)展趨勢(shì)是:算法結(jié)構(gòu)日趨復(fù)雜,計(jì)算量大,實(shí)時(shí)性要求高,并且包含大量的三角函數(shù)、開方、對(duì)數(shù)等復(fù)雜函數(shù)的計(jì)算。但FPGA內(nèi)部的乘加單元并不適合直接進(jìn)行此類函數(shù)的計(jì)算,需要把各種復(fù)雜函數(shù)分解為簡(jiǎn)單的移位、加法和乘法結(jié)構(gòu),進(jìn)而在FPGA中實(shí)現(xiàn)[4]。

當(dāng)前,在FPGA上實(shí)現(xiàn)三角函數(shù)、開方、對(duì)數(shù)等復(fù)雜函數(shù)的計(jì)算,技術(shù)領(lǐng)域常見的是除法,其次為開方和三角函數(shù),很少涉及對(duì)數(shù)和其他復(fù)雜一些的函數(shù)。而在FPGA具體的實(shí)現(xiàn)上,此類函數(shù)一般采用直接查表法或冪級(jí)數(shù)展開法,對(duì)于三角函數(shù)和開方的計(jì)算,也會(huì)采用CORDIC的計(jì)算方法,但這三種方法的應(yīng)用都有一定的局限性[4]。

一種基于FPGA硬件求解函數(shù)的簡(jiǎn)化方法

1 現(xiàn)有的FPGA實(shí)現(xiàn)方法
(1)在FPGA上采用直接查表方法,來(lái)實(shí)現(xiàn)函數(shù)的計(jì)算,具有:
優(yōu)點(diǎn)——通用性強(qiáng)、結(jié)構(gòu)簡(jiǎn)單;
缺點(diǎn)——隨著輸入位寬的增加,內(nèi)部存儲(chǔ)量的消耗呈指數(shù)性增長(zhǎng)。
表1給出了不同輸入輸出位寬所需要的存儲(chǔ)單元(BRAM)。

表1 不同輸入輸出位寬所需要的存儲(chǔ)單元

表1 不同輸入輸出位寬所需要的存儲(chǔ)單元

可以看出,輸入輸出位寬較小時(shí),直接查表法可以滿足實(shí)現(xiàn)要求,但在數(shù)字信號(hào)處理領(lǐng)域,輸入輸出一般都在16bits以上,這時(shí)采用直接查表法就很難滿足實(shí)現(xiàn)需求。

這里以開方算法為例進(jìn)行說(shuō)明。采用直接查表法進(jìn)行開方計(jì)算有2種方式。

方式一:在完全保證的條件下,采用直接查表法。若開方為16bits輸入16bits輸出,在完全保證的條件下,F(xiàn)PGA就需要存儲(chǔ)216深度的數(shù)據(jù),需要64塊18k BRAM的存儲(chǔ)空間。而一片中等FPGA一般包含幾十塊到幾百塊的18k BRAM存儲(chǔ)單元,此時(shí)計(jì)算就要用掉大部分的存儲(chǔ)單元,顯然不滿足實(shí)現(xiàn)的資源需求。

方式二:降低,減少輸入位寬,采用直接查表法。

表2 直接查表法開方誤差表

表2 直接查表法開方誤差表

可以看出,隨著實(shí)際有效輸入的增加,計(jì)算變大,很難滿足計(jì)算的誤差要求。

(2)在FPGA上采用冪級(jí)數(shù)展開法計(jì)算函數(shù)。
優(yōu)點(diǎn)——計(jì)算可控,多級(jí)展開可以達(dá)到較高的計(jì)算;
缺點(diǎn)——冪級(jí)數(shù)展開法為了達(dá)到較高的,需要多級(jí)展開,這樣就需要采用較多的資源來(lái)實(shí)現(xiàn)。
以exp為例(0~π/4范圍內(nèi)),采用三角函數(shù)冪級(jí)數(shù)展開法:

一種基于FPGA硬件求解函數(shù)的簡(jiǎn)化方法

 

若輸入為16bits,采用冪級(jí)數(shù)展開法的計(jì)算框圖如圖1。
從資源方面考慮,三角函數(shù)冪級(jí)數(shù)展開法在FPGA中的實(shí)現(xiàn)需要5級(jí)乘法和3級(jí)加法,考慮每級(jí)乘法位寬需要擴(kuò)展,實(shí)際需要FPGA的12個(gè)乘法器
(18bits&mes;18bits)資源。此外從誤差方面考慮,0~π/4范圍內(nèi),cosΦ的誤差為0.046%, sinΦ的誤差為0.35%。

圖 1 冪級(jí)數(shù)展開法實(shí)現(xiàn)exp計(jì)算

 

圖 1 冪級(jí)數(shù)展開法實(shí)現(xiàn)exp計(jì)算

此外冪級(jí)數(shù)展開法的應(yīng)用范圍也比較有限,開方、倒數(shù)、對(duì)數(shù)、三角函數(shù)的計(jì)算可以采用冪級(jí)數(shù)展開法,但對(duì)于等較復(fù)雜的函數(shù)計(jì)算就不再適合用此方法進(jìn)行計(jì)算。

(3)在FPGA上采用CORDIC法來(lái)實(shí)現(xiàn)函數(shù)的計(jì)算。
優(yōu)點(diǎn):將復(fù)雜的運(yùn)算分解為簡(jiǎn)單移位、加迭代
運(yùn)算,結(jié)構(gòu)規(guī)則,運(yùn)算周期可以預(yù)測(cè),比較適合于FPGA實(shí)現(xiàn);
缺點(diǎn):一般使用多周期方式,單周期方式資源消耗較高,并且計(jì)算僅限于向量旋轉(zhuǎn)、開方等有限的范圍。
采用CORCIC計(jì)算三角函數(shù),16bits輸入,在多周期條件下需要500個(gè)左右的LUT/FFs,在單周期條件下,需要1000個(gè)左右的LUT/FFs。

2 本文提出的方法
本文在FPGA上采用兩級(jí)方法進(jìn)行函數(shù)計(jì)算:級(jí),直接利用輸入數(shù)據(jù)的高有效位確定計(jì)算結(jié)果的有效范圍;第二級(jí),直接利用輸入數(shù)據(jù)的低有效位進(jìn)行計(jì)算結(jié)果的誤差調(diào)整。本研究方法充分利用FPGA內(nèi)部的各種邏輯資源、乘加器(或乘法器)資源和BRAM資源:可以根據(jù)FPGA內(nèi)部BRAM資源的大小采用相應(yīng)深度的數(shù)據(jù)表存儲(chǔ)級(jí)數(shù)據(jù)的有效范圍;采用FPGA內(nèi)部的乘加器(或乘法器)資源進(jìn)行乘加操作。此方法具有控制簡(jiǎn)單,結(jié)構(gòu)規(guī)則,單運(yùn)算周期,計(jì)算較高的特點(diǎn),適合于FPGA的算法實(shí)現(xiàn)。

此外,采用本研究方法的兩級(jí)計(jì)算的方法,不同函數(shù)的計(jì)算實(shí)現(xiàn)方法一致,只要修改級(jí)計(jì)算高有效位數(shù)據(jù)表格中的數(shù)據(jù),就可以復(fù)用設(shè)計(jì),有利于資源共享和模塊化實(shí)現(xiàn)。

圖2 FPGA兩級(jí)法進(jìn)行函數(shù)的計(jì)算

圖2 FPGA兩級(jí)法進(jìn)行函數(shù)的計(jì)算

同現(xiàn)有方案的比較分析:
(1)同直接查表法比較
以開方為例進(jìn)行,資源和誤差的列表如表3??梢钥闯?,在資源和誤差方面,本研究方法在FPGA上實(shí)現(xiàn)函數(shù)計(jì)算優(yōu)勢(shì)明顯。此外,F(xiàn)PGA可以通過增加存儲(chǔ)單元和擴(kuò)展輸出位寬來(lái)進(jìn)一步提高計(jì)算。

表3 兩級(jí)計(jì)算法開方同直接查表法誤差比較表

表3 兩級(jí)計(jì)算法開方同直接查表法誤差比較表

(2)同冪級(jí)數(shù)展開法的比較
首先,本問題出的新方法比冪級(jí)數(shù)展開法的應(yīng)用范圍更廣泛。其次,在同樣的函數(shù)下,以exp的計(jì)算為例,本文提出的新方法資源更好,誤差更小。在資源方面,F(xiàn)PGA上采用的兩級(jí)計(jì)算方法, 同時(shí)計(jì)算只需要2個(gè)乘法器即可,遠(yuǎn)遠(yuǎn)少于冪級(jí)數(shù)展開法的資源消耗;在誤差方面,0~π/4范圍內(nèi),16bits輸入,cosΦ和sinΦ的誤差都小于10-5,因此此方法誤差比冪級(jí)數(shù)展開法誤差要小。

(3)同CORDIC方法比較
首先,本文提出的新方法比冪級(jí)數(shù)展開法的應(yīng)用范圍更廣泛。其次,在同樣的函數(shù)下,以exp的計(jì)算為例,新方法資源消耗相對(duì)較少,cosΦ和sinΦ同時(shí)計(jì)算只需要300個(gè)左右的LUT/FFs即可。而且,新方法采用的是單運(yùn)算周期模式,運(yùn)算速度更高。

3 實(shí)現(xiàn)流程
如圖3所示,本論文采取的實(shí)現(xiàn)方法如下:
步驟一:根據(jù)一維函數(shù)的計(jì)算,預(yù)先生成一定深度的計(jì)算表格;
步驟二:移位(可選),把數(shù)據(jù)的高有效位移位成1,增加較小數(shù)據(jù)的計(jì)算;
步驟三:提取數(shù)據(jù)的高bits,作為級(jí)數(shù)據(jù)表的地址,得到數(shù)據(jù)值y(n);
步驟四:提取數(shù)據(jù)的高bits,加1后作為級(jí)數(shù)據(jù)表的地址,得到下一個(gè)數(shù)據(jù)值y(n+1);
步驟五:計(jì)算差值diff(n)=y(n+1)-y(n);
步驟六:提取數(shù)據(jù)的低bits,作為有效的偏移數(shù)據(jù),同計(jì)算的差值相乘,得到偏移off(n)=data_lsb(n)*diff(n);
步驟七:高位查表數(shù)據(jù)值y(n)同偏移相加得到計(jì)算值out=y(n)+off(n);
步驟八:根據(jù)步驟一的移位逆操作(可選),得到實(shí)際輸出值。

圖3 FPGA兩級(jí)法求解函數(shù)的流程框圖

 

圖3 FPGA兩級(jí)法求解函數(shù)的流程框圖

如圖4所示,對(duì)本研究方法進(jìn)行進(jìn)一步的詳細(xì)說(shuō)明。

對(duì)于任意一個(gè)一維函數(shù),若采樣點(diǎn)足夠密集,那么任何2個(gè)采樣點(diǎn)之間可以看作是線性關(guān)系,可以通過插值的方法來(lái)計(jì)算。

一種基于FPGA硬件求解函數(shù)的簡(jiǎn)化方法

 

一種基于FPGA硬件求解函數(shù)的簡(jiǎn)化方法

 

圖4 FPGA兩級(jí)法求解函數(shù)的詳細(xì)說(shuō)明

 

圖4 FPGA兩級(jí)法求解函數(shù)的詳細(xì)說(shuō)明

一種基于FPGA硬件求解函數(shù)的簡(jiǎn)化方法

 

圖5 16bit輸入

 

一種基于FPGA硬件求解函數(shù)的簡(jiǎn)化方法

 

一種基于FPGA硬件求解函數(shù)的簡(jiǎn)化方法

 

由圖6可得出,兩極法的誤差范圍更小。

由圖6可得出,兩極法的誤差范圍更小。

4 結(jié)論
在現(xiàn)代數(shù)字信號(hào)處理方面,F(xiàn)PGA具有極強(qiáng)的實(shí)時(shí)性和并行處理能力[5]。在FPGA的實(shí)現(xiàn)上,本文介紹了現(xiàn)有的直接查表法、冪級(jí)數(shù)展開法、CORDIC計(jì)算方法的優(yōu)缺點(diǎn)。在此基礎(chǔ)上,本文研究了基于FPGA的兩極計(jì)算法,并把它和以上三種方法進(jìn)行比較,得出兩極算法具有控制簡(jiǎn)單、結(jié)構(gòu)規(guī)則、單運(yùn)算周期、計(jì)算較高的特點(diǎn)。此外,本文詳細(xì)介紹了兩極算法的實(shí)現(xiàn)流程,并舉例來(lái)進(jìn)行說(shuō)明,使讀者能夠更好地掌握兩極算法。

參考文獻(xiàn)
Xilinx-Virtex7 Data Sheets. 2014.11.
Xilinx-Virtex7 User Guides. 2014.11.
Altera-StraTIx V Device Datasheet. 2015.7.
貝耶爾.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)(第3版)[M].2011.
John G.Proakis,Dimitris G.Manolakis.數(shù)字信號(hào)處理――原理、算法與應(yīng)用(第四版)[M].

關(guān)鍵詞:fpga,觸發(fā)器,時(shí)鐘

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見,您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!