基于Matlab和FPGA的FIR數(shù)字濾波器設(shè)計(jì)及實(shí)現(xiàn)
移位相加單元時(shí)序仿真:仿真結(jié)果如圖5所示,輸入一個(gè)階躍信號(hào)(8191),從圖5中可以看出,輸出數(shù)據(jù)從D_out_a到D_out_p依次有一個(gè)時(shí)鐘周期的時(shí)延,并且總的時(shí)延和濾波器階數(shù)(32)相等,最后輸出數(shù)據(jù)是16 382=8 191*2,和理論計(jì)算值相同。
4.2 與濾波器系數(shù)相乘
數(shù)據(jù)首尾相加輸出后與濾波器系數(shù)h(n)相乘,由于FIR濾波器的結(jié)構(gòu)是對(duì)稱的,因而只需16個(gè)乘法器即可。乘法器直接調(diào)用QuartusⅡ里面的參數(shù)化元件庫(kù),系數(shù)的位寬設(shè)為18。關(guān)鍵Verilog語(yǔ)句如下:
以上為一個(gè)乘法器設(shè)置方法,16個(gè)乘法器的整體模塊圖如圖6所示。
為了便于仿真測(cè)試,乘法器單元一開始只設(shè)置了4個(gè)輸入。其中h(0)=100,h(1)=200,h(2)=300,h(3)=400,a,b,c,d為4個(gè)輸入數(shù)據(jù),與h(n)相乘后對(duì)應(yīng)輸出分別為R_a,R_b,R_c和R_d。這樣設(shè)計(jì)不失一般性,仿真無(wú)誤后再擴(kuò)充到16個(gè)即可。仿真結(jié)果如圖7所示。
4.3 乘法器輸出結(jié)果相加
16路數(shù)據(jù)相加后位數(shù)被擴(kuò)為33+4=37,另外要在其輸出端加一寄存器,以消除毛刺。此模塊原理圖如圖8所示。
相加輸出模塊仿真:實(shí)際用到的是16輸入的加法器,為便于仿真測(cè)試.輸入先設(shè)為4路,仿真結(jié)果如圖9所示。
4.4 截位輸出
評(píng)論