基于FPGA的脈沖壓縮仿真與實現(xiàn)
3 邏輯設(shè)計和仿真
3.1 分布式算法的硬件結(jié)構(gòu)
根據(jù)分布式算法原理得出采用FPGA實現(xiàn)的分布式算法的硬件結(jié)構(gòu),如圖3所示。本文引用地址:http://m.butianyuan.cn/article/192017.htm
圖3中N為該模塊的濾波器階數(shù),那么DALUT有2N個存儲單元,如果濾波器抽頭數(shù)過多,查找表規(guī)模隨抽頭數(shù)的增加成指數(shù)遞增。因此實現(xiàn)高階濾波器時,要分割查找表。因為卷積運算是線性的,所以在將每個子表的輸出相加可得到總輸出。邏輯設(shè)計是基于Altera公司的Stratix系列FPGA為平臺,在OuartusII軟件中利用VHDL語言和原理圖進(jìn)行邏輯設(shè)計。
3.2 5階FIR濾波器設(shè)計
Stratix器件的LPM_ROM模塊最少有32(25)個存儲單元,所以設(shè)定濾波器模塊階數(shù)N=5。5階濾波器模塊設(shè)計如圖4所示,其中l(wèi)pm_dff0為12位鎖存器,5個鎖存器對輸入數(shù)據(jù)進(jìn)行移位寄存,firda5為分布式算法模塊,DATAS[11:0]輸出引腳是濾波器模塊最后一個鎖存器輸出,作為濾波器模塊級聯(lián)時不同濾波器模塊之間的數(shù)據(jù)移位。
分布式算法模塊firda5實現(xiàn)數(shù)據(jù)的并串轉(zhuǎn)換、DALUT查表、加權(quán)累加。設(shè)計中采用狀態(tài)機(jī)實現(xiàn)分布式算法的狀態(tài)轉(zhuǎn)移,這樣簡化計算過程,在實現(xiàn)算法時發(fā)揮關(guān)鍵作用。根據(jù)分布式算法的狀態(tài)轉(zhuǎn)移關(guān)系,每輸入一個數(shù)據(jù),在下一個數(shù)據(jù)輸入之前,需要在狀態(tài)s1停留12位數(shù)據(jù)寬度的時鐘時間和2個寄存的時鐘時間(在QuartusII軟件中,器件選用Stratix系列,利用LPM_ROM模塊,地址輸入是寄存輸入,數(shù)據(jù)輸出也包含寄存器)以及一個數(shù)據(jù)輸出時鐘時間:所以系統(tǒng)時鐘必須為數(shù)據(jù)時鐘的16倍,圖中div 16實現(xiàn)16分頻。
3.3 50階匹配濾波器設(shè)計
由于匹配濾波器就是有限脈沖響應(yīng)(FIR)濾波器,具有線性特性,所以通過低階濾波器的直接級聯(lián)相加就可以實現(xiàn)高階濾波器,前一個濾波器的移位數(shù)據(jù)DATAS[11:0]作為下一個濾波器模塊的信號輸入,每個濾波器模塊都根據(jù)圖4設(shè)計,只需要根據(jù)不同的系數(shù)更改DALUT表中的數(shù)據(jù)。50階匹配濾波器的邏輯設(shè)計如圖5所示。其中,Imatch50模塊為匹配濾波器復(fù)系數(shù)實部對應(yīng)的50階濾波器,而Qmatch50模塊為匹配濾波器復(fù)系數(shù)虛部對應(yīng)的50階濾波器。輸出信號包括16位I信號和16位O信號。
評論