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