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