32階FIR濾波器的FPGA實(shí)現
2 并行分布式算法原理及FPGA設計
32階FIR濾波器的差分方程表達式為:本文引用地址:http://dyxdggzs.com/article/188447.htm
式中:x(n)為輸入;y(n)為輸出;h(n)為濾波器系數。
設x(n)用二進(jìn)制可表示為:
其中,最高位為符號位。則式(7)可寫(xiě)為:
式(10)為并行分布式算法,由上可以看出并行分布式算法是將濾波器表達式重新排列,分別加權求和。與傳統算法最大的不同之處是在FPGA設計過(guò)程中以查找表代替乘法器,即根據輸入數據的不同,將對應的濾波器系數預先求和保存在ROM中,也就是將每一項的乘法求和通過(guò)并行結構查表尋值完成,提高運行速度。
具體FPGA實(shí)現時(shí),首先將12位的輸人數據并行輸入到12列32位移位寄存器分別寄存,然后以寄存器中的值為地址,對應于查找表的結果,按照式(10),每列進(jìn)行相應二次冪加權,最后各列累加,在第32個(gè)數據完全輸入之后得到正確的濾波器輸出。由于輸入數據的延遲,在此之前濾波器輸出會(huì )延遲或者產(chǎn)生不正確的結果,可以在實(shí)現過(guò)程中加入控制信號進(jìn)行輸出控制。由于查找表的規模是隨著(zhù)地址的增加呈指數增加的,可以將32位的查找表劃分為四個(gè)8位的查找表,從而降低對ROM的需求。
在本設計中可采用多級流水線(xiàn)技術(shù),也就是將在明顯制約系統速度的長(cháng)路徑上插入幾級寄存器,雖然流水線(xiàn)會(huì )影響器件資源的使用量,但它降低了寄存器間的傳播時(shí)延,允許維持高的系統時(shí)鐘速率。
評論