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