專利名稱:基于fpga實現的數字濾波器的制作方法
技術領域:
本實用新型涉及一種數字濾波器,尤其是涉及一種基于現場可編程門陣列(FPGA,Field — Programmable Gate Array)實現的數字濾波器。
背景技術:
在數字信號處理領域中,數字濾波器分為有限脈沖響應(FIR)和無限脈沖響應(IIR)兩大類。FIR濾波器具有線性和穩定兩大優點,在當今的數字信號處理系統中,采用FIR濾波器的應用很廣泛。數字濾波器的實現方案大致有如下幾種1、采用DSP芯片實現;2、采用專用芯片實現;3、采用現場可編程門陣列(FPGA, Field — Programmable Gate Array)來實現。而FPGA對于實現濾波器具有廣泛的靈活性,且具有極高的并行處理能力,并可以較大的提高產品研發和生產的速度,所以通過FPGA來實現濾波器是目前數字信號處理領域實現集成化的重要方向。FPGA是可以由用戶進行編程來實現各種數字邏輯功能的數字集成電路,利用其內部的邏輯結構實現任何的布爾表達式、寄存器函數及各種時序控制。目前,隨著FPGA技術的發展,FPGA集成度越來越高(器件內部可用邏輯門可達數千萬門),運行速度快(管腳間的延時小,僅幾個ns)。各大生產廠商利用自己器件的優勢,再配合軟件構建了許多常用的知識產權(IP),用它來設計數字電路可以簡化系統設計,縮小數據規模,提高系統的穩定性。現在,越來越多的設計人員,將系統設計模塊化,并將經過優化驗證的模塊代碼設計進行重用,為設計帶來了快捷和方便。這種方法極大的提高開發效率,降低研發費用,縮短研發周期,減少產品的上市時間。現有的FPGA廠商隨著技術的進步,在優化FPGA結構、增加內部緩存資源及增加各類可定制IP方面加大投入,使硬件設計人員有更大范圍更好的借用其成熟的技術平臺開發產品,比如=Xilinx的某些邏輯器件將其結構單元的Slice支持兩個附加的功能,即用分布式RAM存儲數據和用32位寄存器進行數據移位,加大內部RAM的容量,增加可用于信號處理的硬IP,等等。在目前的數字濾波器的實現方案中,大都停留在常規的優化方向減少關鍵路徑的邏輯級數、資源共享、流水線、復制電路等方法去減少邏輯資源及改善時序,這種實現方案在芯片邏輯資源比較緊張的情況下將會引起時序問題,對系統穩定性產生不良的后果。具體來說,目前數字濾波器的實現方案中以下一方面或多方面的缺陷I、未充分利用邏輯器件內部的特殊結構,這樣就會無形的浪費了部分邏輯資源,從而增加邏輯資源的占有率,引起產品的性能、價格方面的弱勢。2、通過寄存器移位進行數據延時,采用查找表(LUT)進行打拍延時,如果移位信號小于或大于一個查找表(LUT)的輸入位寬的話,那么數據延時將會成倍的增加查找表(LUT)的使用數量。從而造成資源的浪費。[0011]3、采用資源共享的方法來優化邏輯資源,但造成了模塊處理數據速率降低,使模塊的數據吞吐下降。4、采用復制電路來減小關鍵路徑的扇出,從而達到改善時序的目的,但會造成邏輯資源的增加。5、優化模塊內部的運算模塊,使加法器和乘法器運行速度更快或者使其占用的邏輯資源下降
實用新型內容
為解決現有數字濾波器的不足,本實用新型提出一種基于FPGA實現的數字濾波器,占用FPGA內部的邏輯資源較少、系統穩定且實現成本低。本實用新型采用如下技術方案實現一種基于FPGA實現的數字濾波器,其包括用于存儲待處理的濾波數據的濾波數據存儲器;用于存儲濾波系數的濾波系數存儲器;用于控制濾波數據、濾波系數分別存入濾波數據存儲器、濾波系數存儲器,并控制濾波數據存儲器和濾波系數存儲器進行緩存移位操作,按序分別讀出濾波數據和相應的濾波系數的讀寫控制單元,其分別連接濾波數據存儲器和濾波系數存儲器;用于控制運算單元進行濾波運算的運算控制單元;用于對濾波數據和相應的濾波系數進行濾波運算,輸出濾波運算結果的運算單元,其分別連接濾波數據存儲器、濾波系數存儲器和運算控制單元。其中,所述數字濾波器還包括用于將濾波數據輸入單元輸出的多路的濾波數據通過分時復用,輸出I路濾波數據至濾波數據存儲器的第一分時復用電路,其連接在濾波數據輸入單元與濾波數據存儲器之間。其中,所述數字濾波器還包括在運算單元的輸出端連接第二分時復用電路。其中,所述數字濾波器還包括與濾波系數存儲器連接的濾波系數輸入單元。與現有技術相比,本實用新型具有如下有益效果本實用新型是從算法去優化數字濾波器,即采用某些邏輯器件的特殊結構實現緩存區(RAM)及寄存器的移位操作,并采用時分復用的方法來提高濾波器的數據吞吐率,以達到降低FPGA芯片內部邏輯資源的占用率,提高了 FPGA芯片邏輯資源的利用率,并使數字濾波器的系統時序進行改善,從而提高數字濾波器的穩定性。
圖I是本實用新型的結構示意圖;圖2是圖I中濾波數據存儲器的存儲示意圖;圖3是圖I中運算單元對濾波數據、濾波系數進行運算的示意圖;圖4是RAMH、RAMD中的數據排列示意圖;圖5是一個優選實施例中運算單元對濾波數據、濾波系數進行運算的示意圖。
具體實施方式
本實用新型提出的數字濾波器是基于FPGA芯片實現的,利用FPGA芯片內部的邏輯器件,采用RAM數據位的移位操作來實現數字濾波器。如圖I所示,本實用新型提出的數字濾波器包括用于輸入待濾波數據的濾波數據輸入單元11,其可以為一個或多個并行的數據輸出電路;用于在濾波數據輸入單元11為多個并行輸出的數據輸出電路時,將輸出的并行數據通過分時復用為串行數據的第一分時復用電路12 ;連接第一分時復用電路12輸出端,用于存儲待處理的濾波數據的濾波數據存儲器13 ;用于輸出濾波系數的濾波系數輸入單元14,其輸出濾波系數至濾波系數存儲器15 ;分別連接濾波數據存儲器13和濾波系數存儲器15的讀寫控制單元16,并控制濾波數據、濾波系數按照讀寫控制單元16內部的循環寄存器值M進行讀寫操作;由運算控制單元17控制進行濾波運算的運算單元18,運算單元18分別連接運算控制單元17、濾波數據存儲器13和濾波系數存儲器15 ;依次連接在運算單元18輸出端的第二分時復用電路19和濾波數據輸出單元20,由第二分時復用電路19將運算單元18輸出的濾波結果分時復用,由串行數據轉換成并行的多路數據從濾波數據輸出單元20輸出。其中,濾波數據存儲器13是根據濾波數據的輸入頻率與濾波器的運行頻率確定濾波器循環寄存器值M(Mmin=l)、濾波器的階數N以及從濾波數據輸入單元11輸入的濾波 數據D的位寬Db來定義,濾波數據存儲器13存放與階數相同個數的濾波數據。其中,濾波系數存儲器15是根據濾波器的階數N及循環寄存器值M來定義,濾波系數存儲器15中存儲系數為濾波器階數的1/2,即N/2的深度。當濾波數據從濾波數據輸入單元11輸入之前,濾波器參數(因FIR濾波器的參數是對稱的,所以可以只存儲一半的參數即可)通過按照設計的順序寫入到濾波數據存儲器13。當濾波數據從濾波數據輸入單元11輸入時,讀寫控制單元16將根據循環寄存器M將濾波數據存入濾波數據存儲器13。并隨著數據的增加,數據存儲區的地址也隨著增加,直至將階數相同個數的濾波數據存儲完畢,存儲示意圖如圖2所示。其中,RAM表示的濾波數據存儲器13,N為存儲系數,也就是數字濾波器的階數。同時,由讀寫控制單元16控制當濾波數據被讀出的時候,濾波參數也要相應被讀出,并且是對應的關系。如圖3所示,具體來說,由讀寫控制單元16控制將第I組濾波數據從濾波數據存儲器13讀出、將第I組濾波參數從濾波系數存儲器15讀出,將第I組濾波數據、第I組濾波參數送入運算單元18,在運算控制單元17的控制下進行運算,此時將會得出第I個濾波
運算結果。當第2組濾波數據從濾波數據存儲器13被讀出,并且此時第2組濾波參數也從濾波系數存儲器15被讀出,將兩者在運算單元18中進行濾波運算,得出第2個濾波運算結果,此時,第2個結果與第I個結果進行在運算控制單元17的控制下,由運算單元18中的累加器進行累加操作如圖4所示。依次類推,當第M組濾波數據與第M組濾波參數在運算單元18進行濾波運算,最終得出一個濾波器將要輸出的值。隨著濾波數據不斷的輸入,濾波器將不斷的輸出結果數據如圖3所示。至此,整個數字濾波器開始隨著輸入數據進行濾波結果輸出。如果輸入的濾波數據是并行的多組數據通道,也可以采用該結構實現,不同在于建立濾波數據的濾波數據存儲器13的存儲深度不同,輸入濾波數據需要通過第一分時復用電路12存入濾波數據存儲器13,在濾波數據輸出時則需要通過第二分時復用電路19采用分時復用將數據再還原為輸入時的并行結構即可。以某設備的采用Xilinx公司Spartan-6系列器件去實現降采樣(抽取)濾波器為例,說明本實用新型技術方案。該設備的降采樣(抽取)濾波器參數為系統時鐘為120Mhz,濾波數據的輸入頻率為30Mhz,濾波器階數為16階,輸入濾波器的數據為單通道(18bit),濾波系數為9bit。RAMH表示濾波數據存儲器13,濾波系數輸入是HO,Hl,H2,……,H8 RAMD表示濾波系數存儲器15,需要進行濾波處理的輸入濾波數據輸入是DO,Dl,D2,……,D15。其中,RAMH, RAMD中的數據排列示意圖如圖4。如圖5在RAMD中輸入到D15,而D16到來時,D16準備存入RAMD的最高位,此時RAMD 輸出的數據為D15, D14, D13, D12, Dll, DIO, D9, D8, D7, D6, D5, D4, D3, D2, Dl,DO。這時,運算單元 18 中的運算包括D0+D15, D1+D14, D2+D13, D3+D12, D4+D11, D5+D10, D6+D9,D7+D8。又因為RAMH此時的輸出數據為H0,HI, H2,H3,H4,H5,H6,H7。至此,對應的濾波數據與濾波系數同時讀出來,在接下的節拍下進行乘積與累加得到濾波器的第I個有效值(濾波結果)。當D17到來時D17準備存入RAMD的最高位,并按D16相同方式進行運算操作,由運算單元18進行運算得到第2個有效值。依次類推,即隨著濾波數據的輸入,數字濾波器將會按照時鐘節拍來輸出上邊運算的結果,即流水線輸出濾波有效值。實驗證明,本實用新型的數字濾波器中,FPGA芯片中Slices從之前的216降到7 125 ;節省42. 1%, Slice Reg從之前的516降到了 291,節省43. 6% ; LUTs從之前的352降到了 235,節省33. 2% ;。因此,本實用新型提出的數字濾波器可以較好的減少FPGA器件的邏輯資源,實現優化濾波器的目的,提高了數據處理的吞吐率,使邏輯資源降的更低,時序改善的更好,增加了系統的穩定性。以上所述僅為本實用新型的較佳實施例而已,并不用以限制本實用新型,凡在本實用新型的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本實用新型的保護范圍之內。
權利要求1.一種基于FPGA實現的數字濾波器,其特征在于,所述數字濾波器包括 用于存儲待處理的濾波數據的濾波數據存儲器; 用于存儲濾波系數的濾波系數存儲器; 用于控制濾波數據、濾波系數分別存入濾波數據存儲器、濾波系數存儲器,并控制濾波數據存儲器和濾波系數存儲器進行緩存移位操作,按序分別讀出濾波數據和相應的濾波系數的讀寫控制單元,其分別連接濾波數據存儲器和濾波系數存儲器; 用于控制運算單元進行濾波運算的運算控制單元; 用于對濾波數據和相應的濾波系數進行濾波運算,輸出濾波運算結果的運算單元,其分別連接濾波數據存儲器、濾波系數存儲器和運算控制單元。
2.根據權利要求I所述基于FPGA實現的數字濾波器,其特征在于,所述數字濾波器還包括用于將濾波數據輸入單元輸出的多路的濾波數據通過分時復用,輸出I路濾波數據至濾波數據存儲器的第一分時復用電路,其連接在濾波數據輸入單元與濾波數據存儲器之間。
3.根據權利要求2所述基于FPGA實現的數字濾波器,其特征在于,所述數字濾波器還包括在運算單元的輸出端連接第二分時復用電路。
4.根據權利要求I所述基于FPGA實現的數字濾波器,其特征在于,所述數字濾波器還包括與濾波系數存儲器連接的濾波系數輸入單元。
專利摘要本實用新型公開一種基于FPGA實現的數字濾波器,其包括濾波數據存儲器;濾波系數存儲器;用于控制濾波數據、濾波系數分別存入濾波數據存儲器、濾波系數存儲器,并控制濾波數據存儲器和濾波系數存儲器進行緩存移位操作,按序分別讀出濾波數據和相應的濾波系數的讀寫控制單元,其分別連接濾波數據存儲器和濾波系數存儲器;運算控制單元;用于對濾波數據和相應的濾波系數進行濾波運算,輸出濾波運算結果的運算單元,其分別連接濾波數據存儲器、濾波系數存儲器和運算控制單元。本實用新型降低FPGA芯片內部邏輯資源的占用率,提高了FPGA芯片邏輯資源的利用率,并使數字濾波器的系統時序進行改善,從而提高數字濾波器的穩定性。
文檔編號H03H17/02GK202385063SQ201120363468
公開日2012年8月15日 申請日期2011年9月27日 優先權日2011年9月27日
發明者傅勇, 史照輝 申請人:深圳市藍韻實業有限公司