分布式算法(distributed arithmetic,DA)是一種以實(shí)現(xiàn)乘法運(yùn)算為目的的運(yùn)算方法。它與傳統(tǒng)實(shí)現(xiàn)乘法運(yùn)算的不同之處在于:執(zhí)行部分積運(yùn)算的先后順序不同。簡(jiǎn)單地說(shuō),分布式算法在完成乘加功能時(shí)時(shí)通過(guò)將各輸入數(shù)據(jù)每一對(duì)應(yīng)位產(chǎn)生的部分積預(yù)先進(jìn)行相加形成相應(yīng)部分積,然后再對(duì)各部分積進(jìn)行累加形成最終結(jié)果;而傳統(tǒng)算法是等到所以乘積產(chǎn)生之后再進(jìn)行相加來(lái)完成乘加運(yùn)算的。與傳統(tǒng)算法相比,分布式算法可以極大地減少硬件電路規(guī)模,很容易實(shí)現(xiàn)流水線處理,提高電路的執(zhí)行速度。
分布式算法(distributed arithmetic,DA)是一項(xiàng)重要的FPGA技術(shù), 被廣泛運(yùn)用于計(jì)算機(jī)的乘法運(yùn)算中。該算法將乘法運(yùn)算轉(zhuǎn)換成加法以及移位運(yùn)算,能夠高速完成大量的乘法運(yùn)算,極大地提高了芯片的使用效率。 為了方便分析,將濾波器表達(dá)式改為:
假設(shè)h(n)都是已知常數(shù),x(n)是變量。無(wú)符號(hào)數(shù)x(n)的表達(dá)式為:
式中: 表示第n個(gè)采樣值,b表示x(n)的第b位,則y可以表示為:
變換求和次序,重新求和得:
化簡(jiǎn)成如下形式:
式中:xb(n)表示第n個(gè)數(shù)據(jù)的第b位。由于x(n)為有限位數(shù)據(jù),且xb(n)的取值為[0,1],故 有2^N種不同的取值,又因?yàn)橐阎钥梢酝ㄟ^(guò)查表的方法來(lái)實(shí)現(xiàn)f(h(n,xb(n)))。再通過(guò)相應(yīng)的二次冪加權(quán)并累加,就可得到內(nèi)積y的結(jié)果。
實(shí)現(xiàn)框圖如下:
圖中a為傳統(tǒng)算法,b為分布式DA算法。
根據(jù)DA算法原理,可以實(shí)現(xiàn)FIR濾波器。濾波器系數(shù)可由matlab求得,然后根據(jù)濾波器輸入數(shù)據(jù)位寬,對(duì)系數(shù)進(jìn)行合適的放大,在實(shí)現(xiàn)過(guò)程中對(duì)累加值進(jìn)行右移,最終得到濾波器的輸出。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21746瀏覽量
603751 -
濾波器
+關(guān)注
關(guān)注
161文章
7832瀏覽量
178226 -
分布式算法
+關(guān)注
關(guān)注
0文章
4瀏覽量
7299
原文標(biāo)題:分布式算法原理
文章出處:【微信號(hào):ALIFPGA,微信公眾號(hào):FPGA極客空間】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論