本實用新型專利技術公開了一種FFT處理器。其基2蝶式運算單元至少包括:指數對齊電路、運算單元以及規格化電路。所述指數對齊電路將指數對齊后的浮點輸入數據的統一的指數部分傳輸至所述規格化電路;所述運算單元接收指數對齊后的浮點輸入數據的基數部分并執行對應的FFT運算;所述規格化電路根據所述指數部分,對所述運算單元的運算結果執行指數規格化處理以生成浮點輸出數據;所述運算單元包括一個或多個定點加法器、定點乘法器和/或定點減法器。該偽浮點運算結構,不需要多個數據共享指數字段,計算的精度較高,而且前置的對齊運算的顆粒度較小,運算的規模和時間延遲均遠小于現有的塊浮點結構,更適合應用于流水結構實現。
【技術實現步驟摘要】
一種FFT處理器
本技術涉及電子通信
,尤其涉及一種FFT處理器。
技術介紹
快速離散傅里葉變換(FFT)/快速反傅里葉變換(IFFT)是離散傅里葉變換(DFT)/離散反傅里葉變換(IDFT)的快速實現方式,是數字信號處理中常用的技術。由于DFT/FFT運算和IDFT/IFFT運算過程基本一致,因此FFT和IFFT可以采用相同的電路實現方法。Cooley和Tukey技術了FFT算法,FFT的的基本思想是將原有N點序列分解成兩個或更多的較短序列并重新組合成原序列的DFT,使間接算法的運算次數比直接計算DFT的運算次數少得多,從而提高DFT的計算速度。一方面,FFT/IFFT的分解運算基本可分為兩類:一類是將時間序列x(n)進行逐次分解,稱為按時間抽取算法(DecimationInTime,DIT);另一類將傅立葉變換序列X(k)進行分解,稱為按頻率抽取算法(DecimationInFrequency,DIF)。而按照FFT分解的短序列的個數M,可以將FFT/IFFT算法可以分為若干種,一般稱為基-M算法。例如,基2FFT算法可以將N點DFT運算分解成個2點DFT運算過程;基4FFT算法可以將N點DFT運算分解成個4點DFT運算過程;基8FFT算法可以將N點DFT運算分解成個8點DFT運算過程。另一方面,當前FFT處理器的硬件實現結構包括遞歸結構、流水線結構和全并行結構。遞歸結構又叫共享內存結構,所占硬件資源最少,只有一個運算處理單元,但所需運算時間較長,不能連續處理FFT計算請求,只適應于偶爾需要FFT運算的場合;流水線結構采用多級運算單元,前一級運算單元將結果送入下一級運算單元后可計算下一次FFT而無需等待FFT運算完成,流水線結構可連續計算前后數據不重疊的N點FFT;對于前后數據重疊的連續FFT計算,只能采用全并行結構,該結構每一級運算針對點數N設置對應的運算單元,每一級運算時延可低至單個系統時鐘周期,可實現任意N點FFT的連續計算,但占用硬件資源巨大。實際應用中需要作任意N點FFT連續計算的場合非常少,因此采用流水線設計FFT處理器最為普遍。上述FFT處理器的流水線結構主要有3類:單路延時轉接器結構(Single-pathDelayCommutator,SDC)、多路延時轉接器結構(Multi-pathDelayCommutator,MDC)和單路延時反饋轉接器結構(Single-pathDelayFeedback,SDF)。因為基2SDC(R2SDC)結構在基2蝶形分解運算時與R2SDF相比沒有優勢,所以基2FFT處理器主要采用基2MDC(R2MDC)和基2SDF(R2SDF)結構。基2MDC和基2SDF結構都具有控制簡單易于實現的特點,占用的電路資源也相差不大,其中基2SDF結構需要的存儲器少一點,而基2MDC結構的計算時延更短一些。但基2MDC和基2SDF結構的復數乘法器的利用率較低(只有50%),因此整個FFT處理器需要的乘法器數量較多。由于FFT/IFFT運算由復數乘法和復數加法運算構成,乘法運算遠比加法運算復雜,因此FFT處理器的電路規模主要由復數乘法器決定。基2MDC和基2SDF結構會因為復數乘法器利用率過低導致電路資源占用較大。又一方面,FFT處理器的數據格式目前主要有定點格式、浮點格式和塊浮點格式。定點格式計算簡單,但是需要考慮數據溢出檢測和處理機制,數據動態范圍小;浮點格式計算精度高,能處理的數據動態范圍大,還能有效減少計算的累積誤差,但占用的電路資源巨大且功耗較高。常用的塊浮點結構由于利用共享指數,因此可以基于定點運算模塊處理較大的數據動態范圍,但是每一級運算需要塊浮點整理單元調整共享指數,而塊浮點整理單元需要作統計運算處理,其數據格式并不適合流水式的電路結構。因此,現有技術還有待發展。
技術實現思路
鑒于上述現有技術的不足之處,本技術的目的在于提供一種FFT處理器,旨在解決現有FFT處理器占用電路資源大,數據格式與流水式電路結構不匹配的問題。為了達到上述目的,本技術采取了以下技術方案:一種FFT處理器,包括輸入模塊、運算模塊以及輸出模塊,所述運算模塊包括基2蝶式運算單元,其中,所述基2蝶式運算單元至少包括一個用于統一浮點輸入數據指數的指數對齊電路、用于執行定點數據運算的運算單元以及用于執行指數規格化處理的規格化電路;所述指數對齊電路將指數對齊后的浮點輸入數據的統一的指數部分傳輸至所述規格化電路;所述運算單元接收指數對齊后的浮點輸入數據的基數部分并執行對應的FFT運算;所述規格化電路根據所述指數部分,對所述運算單元的運算結果執行指數規格化處理以生成浮點輸出數據;所述運算單元包括一個或多個定點加法器、定點乘法器和/或定點減法器。所述的FFT處理器,其中,所述運算模塊包括:輸入級運算模塊和若干遞歸運算模塊;所述遞歸運算模塊至少包括延時單元、用于替換轉接器的緩存單元以及所述基2蝶式運算單元;所述緩存單元在預定的時鐘周期內,根據對應的控制信號,輸入第一輸入信號或第二輸入信號至所述基2蝶式運算單元中;所述第一輸入信號為原始輸入信號,所述第二輸入信號為原始輸入信號經過第一階段的基2蝶式運算的運算結果。所述的FFT處理器,其中,所述運算模塊包括:第一輸入級運算模塊;所述第一輸入級運算模塊包括至少一個延時單元、用于保存參與第一級基2蝶式運算的旋轉因子的旋轉因子保存單元以及所述基2蝶式運算單元;所述第一輸入級運算模塊接收輸入模塊的輸入信號,執行FFT運算的第一級基2蝶式運算。所述的FFT處理器,其中,所述緩存單元包括:數據選擇器、輸入控制電路、輸出控制電路以及至少兩個雙接口RAM;所述數據選擇器根據預定的切換控制信號,輸入對應的輸入信號至所述輸入控制電路;所述輸入控制電路將數據緩存在所述雙接口RAM中,并由所述輸出控制電路調用存儲在所述雙接口RAM中的緩存數據。所述的FFT處理器,其中,所述輸入控制電路包括至少一個第一計數器;所述輸入控制電路接收緩存數據并通過所述第一計數器,令遞歸運算模塊執行對應的第一級蝶式運算或第二級蝶式運算。所述的FFT處理器,其中,所述輸出控制電路至少包括一個第二計數器;所述第二計數器根據輸入信號,輸出控制所述遞歸運算模塊執行對應的蝶式運算的浮點信號。所述的FFT處理器,其中,所述輸入模塊為串并轉換模塊;所述串并轉換模塊包括兩個延時器;至少一個所述延時器用于并行輸出FFT運算的時域輸入數據以及與所述時域輸入數據延遲對應個采樣點的延時信號。所述的FFT處理器,其中,所述運算模塊還包括:第二輸入級運算模塊;所述第二輸入級運算模塊至少包括一個延時轉換器和數據選擇器;所述第二輸入級運算模塊通過所述數據選擇器,在預定的時鐘周期,控制所述基2蝶式運算單元執行第一級基2蝶式運算或第二級基2蝶式運算。所述的FFT處理器,其中,通過如下算式計算判斷值:;其中,L為判斷值,N為FFT運算的采樣點數量,為向上取整函數;在判斷值為奇數時,通過第一輸入級運算模塊執行輸入級運算;在判斷值為偶數時,通過第二輸入級運算模塊執行輸入級運算。所述的FFT處理器,其中,根據如下算式計算所述遞歸運算模塊的數量:在判斷值為奇數時,;其中,L為判斷值,S為遞歸運算模塊的數量;在本文檔來自技高網...

【技術保護點】
一種FFT處理器,包括輸入模塊、運算模塊以及輸出模塊,所述運算模塊包括基2蝶式運算單元,其特征在于,所述基2蝶式運算單元至少包括一個用于統一浮點輸入數據指數的指數對齊電路,用于執行定點數據運算的運算單元以及用于執行指數規格化處理的規格化電路;所述指數對齊電路將指數對齊后的浮點輸入數據的統一的指數部分傳輸至所述規格化電路;所述運算單元接收指數對齊后的浮點輸入數據的基數部分并執行對應的FFT運算;所述規格化電路根據所述指數部分,對所述運算單元的運算結果執行指數規格化處理以生成浮點輸出數據;所述運算單元包括一個或多個定點加法器、定點乘法器和/或定點減法器;所述運算模塊包括:輸入級運算模塊和若干遞歸運算模塊;所述遞歸運算模塊至少包括延時單元、用于替換轉接器的緩存單元以及所述基2蝶式運算單元;所述緩存單元在預定的時鐘周期內,根據對應的控制信號,輸入第一輸入信號或第二輸入信號至所述基2蝶式運算單元中;所述第一輸入信號為原始輸入信號,所述第二輸入信號為原始輸入信號經過第一階段的基2蝶式運算的運算結果;所述運算模塊包括:第一輸入級運算模塊;所述第一輸入級運算模塊包括至少一個延時單元、用于保存參與第一級基2蝶式運算的旋轉因子的旋轉因子保存單元以及所述基2蝶式運算單元;所述第一輸入級運算模塊接收輸入模塊的輸入信號,執行FFT運算的第一級基2蝶式運算;所述運算模塊還包括:第二輸入級運算模塊;所述第二輸入級運算模塊至少包括一個延時轉換器和數據選擇器;所述第二輸入級運算模塊通過所述數據選擇器,在預定的時鐘周期,控制所述基2蝶式運算單元執行第一級基2蝶式運算或第二級基2蝶式運算;所述第一輸入級運算模塊的輸入信號包括2路并行輸入的基2運算數據DataA和DataBase、數據使能信號Ena和幀同步信號Sync;該第一輸入級運算模塊的輸出信號包括:2路并行輸出的基2運算結果DataA和DataBase、輸出結果使能信號Ena和輸出幀同步信號Sync;所述基2蝶式運算單元用于基2蝶形運算,其輸入信號包括并行輸入運算數據DataA和DataBase、幀同步信號Sync、數據使能信號Ena和用于基2蝶形運算的旋轉因子;延時單元將輸入Sync和Ena信號延時輸出,保證輸出信號Sync和Ena與基2蝶式運算單元的輸出結果DataA和DataB配合使用;所述第二輸入級運算模塊,還包含了一個由延時轉接器和數據選擇器構成的反饋環路。...
【技術特征摘要】
1.一種FFT處理器,包括輸入模塊、運算模塊以及輸出模塊,所述運算模塊包括基2蝶式運算單元,其特征在于,所述基2蝶式運算單元至少包括一個用于統一浮點輸入數據指數的指數對齊電路,用于執行定點數據運算的運算單元以及用于執行指數規格化處理的規格化電路;所述指數對齊電路將指數對齊后的浮點輸入數據的統一的指數部分傳輸至所述規格化電路;所述運算單元接收指數對齊后的浮點輸入數據的基數部分并執行對應的FFT運算;所述規格化電路根據所述指數部分,對所述運算單元的運算結果執行指數規格化處理以生成浮點輸出數據;所述運算單元包括一個或多個定點加法器、定點乘法器和/或定點減法器;所述運算模塊包括:輸入級運算模塊和若干遞歸運算模塊;所述遞歸運算模塊至少包括延時單元、用于替換轉接器的緩存單元以及所述基2蝶式運算單元;所述緩存單元在預定的時鐘周期內,根據對應的控制信號,輸入第一輸入信號或第二輸入信號至所述基2蝶式運算單元中;所述第一輸入信號為原始輸入信號,所述第二輸入信號為原始輸入信號經過第一階段的基2蝶式運算的運算結果;所述運算模塊包括:第一輸入級運算模塊;所述第一輸入級運算模塊包括至少一個延時單元、用于保存參與第一級基2蝶式運算的旋轉因子的旋轉因子保存單元以及所述基2蝶式運算單元;所述第一輸入級運算模塊接收輸入模塊的輸入信號,執行FFT運算的第一級基2蝶式運算;所述運算模塊還包括:第二輸入級運算模塊;所述第二輸入級運算模塊至少包括一個延時轉換器和數據選擇器;所述第二輸入級運算模塊通過所述數據選擇器,在預定的時鐘周期,控制所述基2蝶式運算單元執行第一級基2蝶式運算或第二級基2蝶式運算;所述第一輸入級運算模塊的輸入信號包括2路并行輸入的基2運算數據DataA和DataBase、數據使能信號Ena和幀同步信號Sync;該第一輸入級運算模塊的輸出信號包括:2路并行輸出的基2運算結果DataA和DataBase、輸出結果使能信號Ena和輸出幀同步信號Sync;所述基2蝶式運算單元用于基2蝶形運算,其輸...
【專利技術屬性】
技術研發人員:何健標,馬曉明,
申請(專利權)人:深圳職業技術學院,
類型:新型
國別省市:廣東,44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。