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