分布式算法原理



分布式算法(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事業部,轉載請注明出處

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA極客空間 微信公眾號


掃描二維碼關注杭州卿萃科技FPGA極客空間


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM