国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基2單路深度延時反饋的流水線構成fft處理器的實現(xiàn)方法

      文檔序號:6533876閱讀:764來源:國知局
      專利名稱:基2單路深度延時反饋的流水線構成fft處理器的實現(xiàn)方法
      技術領域
      本發(fā)明屬于工程技術類數(shù)字信號處理技術領域,具體涉及R2SD2F流水線構成FFT處理器的實現(xiàn)方法。該方法可以廣泛地用于信號分析、信號調(diào)制解調(diào)、信號壓縮、FFT相關等眾多數(shù)字信號處理環(huán)節(jié),在加快系統(tǒng)處理速度的同時簡化系統(tǒng)的軟硬件設計,是一項對國防武器現(xiàn)代化建設與國民經(jīng)濟發(fā)展都十分有價值的技術。
      背景技術
      FFT/IFFT(快速傅立葉變換/逆快速傅立葉變換)在數(shù)字信號處理中是一種非常重要的算法,F(xiàn)FT處理器是快速傅立葉變換的硬件實現(xiàn)形式。在現(xiàn)代數(shù)字通信系統(tǒng)和數(shù)字電視廣播系統(tǒng)中,如xDSL調(diào)制解調(diào)器、相位相關器、無線接收機等,各種具有不同優(yōu)缺點的專用FFT處理器已成為其中的關鍵部件。
      在現(xiàn)有的FFT處理器流水線結構設計中,采用基4蝶形處理單元(BF4)的結構一般可以比采用基2蝶形處理單元(BF2)節(jié)省約一半的乘法器,但如果采用傳統(tǒng)的基4蝶形單元實現(xiàn)方式,所需的加法器是后者的兩倍。R22SDF(基22單路延時反饋)和R4SDC(基4單路延時轉(zhuǎn)換)結構是兩種較優(yōu)秀的創(chuàng)新結構。在R22SDF結構中,BF4由兩個級連的BF2實現(xiàn),與傳統(tǒng)結構相比,在保持相同數(shù)目乘法器和寄存器的基礎上,將加法器的數(shù)目減少一半,使處理單元的效率從25%提高到50%。在G.A.Bi的研究中,他提出的R4SDC結構巧妙地安排了進入運算單元的數(shù)據(jù)流,使BF4所需的加法器降到了3個,而傳統(tǒng)結構與R22SDF結構中BF4所需的加法器分別是8個和4個。但R4SDC結構的蝶形處理單元沒有考慮蝶形運算的重復性,另外相對R22SDF而言,增加了一倍的寄存器資源。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于,提供一種R2SD2F(基2單路深度延時反饋)的流水線構成FFT處理器的實現(xiàn)方法。
      實現(xiàn)上述目的的技術解決方案是,基2單路深度延時反饋的流水線構成FFT處理器的實現(xiàn)方法,其特征在于,流水線的結構由四個復數(shù)加法器和一個復數(shù)乘法器以及兩個蝶形處理單元組成,運算數(shù)據(jù)順序流入,運算結果順序流出;上述蝶形處理單元是模式可編程的,根據(jù)需要選擇基4、基2或直通模式,使長度為16的R2SD2F流水線能夠分別用于計算基16、基8、基4和基2蝶形運算;在流水線的每一級,均有三組延時寄存器,對于第p級來說,三組延時分別為一組N/(2×4p-1)拍延時(Delay A),另外兩組為N/4p拍延時(DelayB&amp;C),在這里N等于16;即第一蝶形處理單元的輸出分別經(jīng)過8、4、和4拍的延時反饋輸入到其輸入端,而第二蝶形處理單元的輸出端分別經(jīng)過8、4、和4拍的延時反饋輸入到同一蝶形處理單元的輸入端;第一蝶形處理單元的輸出經(jīng)過乘法器與旋轉(zhuǎn)因子相乘后進入第二蝶形處理單元的一個輸入端口,將兩個蝶形處理單元聯(lián)系起來構成一完整的流水線,待處理數(shù)據(jù)從第一蝶形處理單元的一個端口流入,最終結果從第二蝶形處理單元輸出端口流出。
      本發(fā)明的方法通過更加合理地調(diào)度計算資源和減少重復運算,可以進一步提高運算單元的使用效率,減少資源需求。


      圖1是16點DFT的R2SD2F流水結構圖;圖2是R2SD2F流水結構中的蝶形處理單元圖3是BPE I中的數(shù)據(jù)流,BPE I工作模式基4蝶形運算;流水線工作模式基16蝶形運算;圖4是BPE I中的數(shù)據(jù)流,BPE I工作模式基2蝶形運算;流水線工作模式基8蝶形運算;圖5是BPE I中的數(shù)據(jù)流,BPE I工作模式直通模式。
      以下結合附圖對本發(fā)明作進一步詳細說明。
      具體實施例方式
      R2SD2F(Radix-2 Single“Deep”Delay Feedback,基2單路深度延時反饋)這種結構中,基16蝶形運算流水線僅由四個復數(shù)加法器和一個復數(shù)乘法器以及相應的蝶形處理單元組成,運算數(shù)據(jù)順序流入,運算結果順序流出,運算模塊的效率達到100%。而且,R2SD2F結構中的流水線中相應的蝶形處理單元是模式可編程的,可以根據(jù)需要選擇基4、基2或直通模式,因此長度為16的R2SD2F流水線能夠分別用于計算基16、基8、基4和基2蝶形運算。
      N點的離散傅立葉變換由式(1)定義Xk=&Sigma;n=0N-1xnWNnk---(1)]]>如果將式(1)中的n,k分解成n=8n2+4n1+n0和k=4k0+2k1+k2,其中0≤n0,k0≤3,0≤n1,n2,k1,k2≤1,那么16點的離散傅立葉變換可寫成X4k0+2k1+k2=&Sigma;n0=03(&Sigma;n1=01(&Sigma;n2=01x8n2+4n1+n0W2n2k2)W4n1k2W2n1k1)W16n0k1W4n0k0---(2)]]>式(2)可以進一步表述成Y8k2+4n1+n0=&Sigma;n2=01x8n2+4n1+n0W2n2k2---(3)]]>
      Z8k2+4k1+n0=&Sigma;n1=01Y8k2+4n1+n0W4n1k2W2n1k1---(4)]]>X4k0+2k1+k2=&Sigma;n0=03(Z8k2+4k1+n0)W16n0k1W4n0k0---(5)]]>在R2SDF和R22SDF結構中運行16點離散傅立葉變換時,由于串行讀取的關系,在以每16拍組成的一個周期內(nèi),第一個蝶形處理單元在每次的前半個周期均處于空閑狀態(tài),而對于第二個蝶形處理單元,也是分別只有兩個1/4周期是有用的。換而言之,如此結構中的蝶形處理單元效率只有50%。然而,如果能夠?qū)⑦\算結果適時地反饋回第一個蝶形處理單元的輸入端,使之能夠用原來的空閑時間來完成又一次蝶形運算,這樣能夠節(jié)省一個蝶形處理單元,使處理單元效率達到100%。
      16點的R2SD2F(Radix-2 Single“Deep”Delay Feedback,基2單路深度延時反饋)流水線結構由兩個蝶形處理單元(BPE-I和BPE-II)以及相應的延時存儲單元(Delay(n),n表示延時拍數(shù))構成,如圖1所示。
      在流水線的每一級,均有三組延時寄存器,對于第p級來說,三組延時分別為一組N/(2×4p-1)拍延時(Delay A),另外兩組為N/4p拍延時(DelayB&amp;C),在這里N等于16。即蝶形處理單元BPE-I的輸出Fouta、Foutb、和Foutc分別經(jīng)過8、4、和4拍的延時反饋輸入到Fina、Finb、和Finc,而蝶形處理單元BPE-II的輸出Fouta、Foutb、和Foutc分別經(jīng)過8、4、和4拍的延時反饋輸入到同一蝶形處理單元的Fina、Finb、和Finc。
      蝶形處理單元BPE-I的Dout輸出經(jīng)過乘法器與旋轉(zhuǎn)因子相乘后進入BPE-II的Din將兩個蝶形處理單元聯(lián)系起來構成一完整的流水線,待處理數(shù)據(jù)從蝶形處理單元BPE-I的Din端口流入,最終結果從蝶形處理單元BPE-II的Dout端口流出。
      流水線中的蝶形處理單元設計如圖2。它包括一個復數(shù)加法器、一個復屬減法器、10組二選一轉(zhuǎn)換開關及相應的連線組成。輸入連接信號有Din連至轉(zhuǎn)換開關S9的1輸入端和S5的0輸入端,F(xiàn)ina分別連至S1的1輸入端、S0的1輸入端和S2的0輸入端,F(xiàn)inb分別連至S1的0輸入端、S3的1輸入端和S6的1輸入端,F(xiàn)inc連至S0的0輸入端和S7的1輸入端;中間連接信號有S1的輸出連至S9的0輸入端,S5的輸出及輸出乘上-j的結果分別連至S8的0輸入端和1輸入端,S2的輸出連至S3的0輸入端,S6的輸出連至S7的0輸入端;加減法器的輸入輸出連接關系為S0的輸出Bina連至加法器的被加數(shù)端和減法器的被減數(shù)端,S9的輸出Binb連至加法器的加數(shù)端和減法器的減數(shù)端,加法器的輸出分別連至S2的1輸入端、S4的1輸入端和S6的0輸入端,減法器的輸出連至S4的0輸入端和S5的1輸入端;輸出信號的連接關系為Fouta連至S8的輸出端,F(xiàn)outb連至S4的輸出端,F(xiàn)outc連至S3的輸出端,Dout連至S7的輸出端。
      在上述方法中,Delay A(圖1中的Delay(2)和Delay(8))的作用與R2SDF和R22SDF中延時單元的作用是相同的,在每個周期的前半階段用來實現(xiàn)對操作數(shù)的延時,后半階段則用來實現(xiàn)對操作結果的延時,使基2蝶形運算后并行輸出的結果再次串行化。與R2SDF和R22SDF結構不同的是,基2蝶形運算的結果并沒有直接流入下一個蝶形處理單元,而是在經(jīng)過Delay B&amp;C(圖1中的兩個Delay(4)和兩個Delay(1))后返回同一個蝶形處理單元的輸入端,我們稱之為“深”反饋(“deep”feedback),這第二次的基2蝶形運算結果還是經(jīng)過Delay B&amp;C再次實現(xiàn)串行化。
      目前已知的FFT處理器流水線在完成N點DFT運算時資源需求見表1。
      表1 不同流水線結構的資源需求比較

      在所有這些流水線設計中,這項發(fā)明專利中提出的R2SD2F結構運算部件(乘法器與加法器)資源需求最少,但是在寄存器和轉(zhuǎn)換開關需求上有所增加。與R22SDF結構相比,轉(zhuǎn)換開關增加了一倍,寄存器數(shù)目增加了1/3。
      一般來說,加法器和乘法器在實現(xiàn)時比寄存器與轉(zhuǎn)換開關需要更多的晶體管資源,特別是對于較高精度的應用來說,相同位長的加法器和寄存器組(或是轉(zhuǎn)換開關組)所需的資源比率能達到4.5~15倍。因此,通過增加少量的存儲資源和轉(zhuǎn)換開關來換取運算部件數(shù)目的減少通常是可取的。
      根據(jù)一般通用數(shù)據(jù),基本電路的資源需求如下表

      對于一個字長為9位的16點FFT流水線,R2SD2F、R4SDC和R22SDF幾種算法在加法器、存儲器和轉(zhuǎn)換開關上的資源比較見下表

      隨著設計中運算字長的增加,加法器所需的門電路資源數(shù)將以比存儲器和開關快得多的速度增長,在此時,尤其是采用浮點加法器時,R2SD2F流水線及相應FFT處理器設計實現(xiàn)將更有吸引力。
      基2蝶形運算流水線結構由第一蝶形處理單元和第二蝶形處理單元及相應的延時存儲單元Delay(n)構成,n表示延時拍數(shù);上述兩個蝶形處理單元均包括一個復數(shù)加法器、一個復數(shù)減法器、10組二選一轉(zhuǎn)換開關及相應的連線組成;②第一蝶形處理單元的工作步驟第一蝶形處理單元處于直通工作模式,各轉(zhuǎn)換器控制輸入數(shù)據(jù)進入延時存儲單元Delay(n),此時的n=8,經(jīng)過8拍延時后再經(jīng)進入延時單元Delay(n),此時的n=4,最后輸出,經(jīng)過與相應旋轉(zhuǎn)因子的乘以后進入第二蝶形處理單元;③第二蝶形處理單元的工作步驟第二蝶形處理單元處于基2蝶形運算工作模式,步驟如下(3.1)流水第0~11拍等待數(shù)據(jù)到達;
      (3.2)流水第12~13拍處理數(shù)據(jù)經(jīng)過第一蝶形處理單元后到達,控制輸入數(shù)據(jù)進入延時單元Delay(n),此時的n=2,整個流水過程中一直如此;(3.3)流水第14拍控制經(jīng)過2拍延時后的第一個數(shù)據(jù)進下面的延時單元Delay(n),實現(xiàn)基2蝶形運算操作數(shù)的對齊;(3.4)流水第15拍控制輸入數(shù)據(jù)進入加減法器,開始基2蝶形運算,加法器運算結果輸出到Dout,減法器運算結果經(jīng)中間的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出到Dout。
      (3.5)即從第15拍開始流水建立,這以后操作按(3.3),(3.4)操作以每兩拍為一個循環(huán)進行,每拍從BPE-II的Dout端口順序流出一個基2蝶形運算結果。
      基4蝶形運算①按照圖1與圖2建立硬件資源和數(shù)據(jù)流的連接;②BPE-I的工作步驟BPE-I處于直通工作模式,與基2蝶形運算中②所述一致;③BPE-II的工作步驟BPE-II處于基4蝶形運算工作模式。
      (3.1)流水第0~11拍等待數(shù)據(jù)到達;(3.2)流水第12~13拍處理數(shù)據(jù)經(jīng)過BPE-I后到達??刂戚斎霐?shù)據(jù)經(jīng)由Fouta進入延時單元Delay(2),實現(xiàn)第一級基2蝶形運算操作數(shù)的對齊;(3.3)流水第14拍控制輸入數(shù)據(jù)進入加減法器,開始第一級基2蝶形運算,加法器輸出進入中間的延時單元Delay(1),減法器輸出進入延時單元Delay(2),為第二級的基2蝶形運算準備數(shù)據(jù);(3.4)流水第15拍輸入數(shù)據(jù)繼續(xù)進入加減法器,第一級基2蝶形運算繼續(xù)進行中。加法器輸出繼續(xù)進入中間的延時單元Delay(1),移出的數(shù)據(jù)經(jīng)由Finb與Foutc進入圖1中下面的延時單元Delay(1),實現(xiàn)第二級基2蝶形運算第一對數(shù)據(jù)的對齊。減法器輸出繼續(xù)進入延時單元Delay(2);(3.5)流水第16拍這時BPE-II的Din端的數(shù)據(jù)已是第二批次的待處理數(shù)據(jù),經(jīng)由Fouta進入延時單元Delay(2),準備開始又一次的流水操作,此時BPE-II的加減法器在兩個批次的第一級基2蝶形運算間有2拍的處理時間,可以用來計算第一批次數(shù)據(jù)的第二級基2蝶形運算,加法器運算結果輸出到Dout,減法器運算結果經(jīng)中間的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出到Dout。
      (3.6)流水第17拍BPE-II的加減法器計算該處理單元第一批次第二級的第二次基2蝶形運算,加法器運算結果由Foutc進入圖l中下面的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出到Dout,而減法器結果則經(jīng)由Foutb進入中間的延時單元Delay(1)后在經(jīng)由Foutc進入圖1中下面的延時單元Delay(1)實現(xiàn)串行化在第19拍輸出到Dout。
      (3.7)從第16拍開始流水建立,這以后操作按(3.3),(3.4),(3.5),(3.6)操作以每四拍為一個循環(huán)進行,每拍從BPE-II的Dout端口順序流出一個基4蝶形運算結果。
      基8蝶形運算①按照圖1與圖2建立硬件資源和數(shù)據(jù)流的連接;②BPE-I的工作步驟BPE-I處于基2蝶形運算工作模式。
      (2.1)流水第0~7拍控制Din輸入數(shù)據(jù)經(jīng)由Fouta進入延時單元Delay(8),整個流水過程中一直如此;(2.2)流水第8~1l拍控制經(jīng)過8拍延時后的前四個數(shù)據(jù)經(jīng)Foutc進入圖l中下面的延時單元Delay(4),實現(xiàn)第一級基2蝶形運算操作數(shù)的對齊;(2.3)流水第12~15拍控制輸入數(shù)據(jù)進入加減法器,開始第一級基2蝶形運算,加法器運算結果輸出到Dout,經(jīng)過與相應旋轉(zhuǎn)因子的乘以后進入BPE-II,減法器運算結果經(jīng)中間的延時單元Delay(4)實現(xiàn)串行化在下一個四拍輸出到Dout;(2.4)從第12拍開始,BPE-I流水建立,這以后操作按(2.2),(2.3)操作以每八拍為一個循環(huán)進行,每拍從BPE-I的Dout端口順序流出一個第一級基2蝶形運算結果。
      ③BPE-II的工作步驟BPE-II處于基4蝶形運算工作模式。
      (3.1)~3.6)操作與基4蝶形運算③中(3.1)~(3.6)所述一致,只是此時進行的分別是基8蝶形運算中的第二級與第三級;(3.7)從第16拍開始整個流水線流水建立,這以后BPE-II操作按(3.3),(3.4),(3.5),(3.6)操作以每四拍為一個循環(huán)進行,每拍從BPE-II的Dout端口順序流出一個基8蝶形運算結果。
      基16蝶形運算①按照圖1與圖2建立硬件資源和數(shù)據(jù)流的連接;②BPE-I的工作步驟BPE-I處于基4蝶形運算工作模式。
      (2.1)流水第0~7拍控制輸入數(shù)據(jù)進入延時單元Delay(8),實現(xiàn)第一級基2蝶形運算操作數(shù)的對齊;(2.2)流水第8~11拍控制輸入數(shù)據(jù)進入加減法器,開始第一級基2蝶形運算,加法器輸出進入中間的延時單元Delay(4),減法器輸出進入延時單元Delay(8),為第二級的基2蝶形運算準備數(shù)據(jù);(2.3)流水第12~15拍輸入數(shù)據(jù)繼續(xù)進入加減法器,第一級基2蝶形運算繼續(xù)進行中。加法器輸出繼續(xù)進入中間的延時單元Delay(4),移出的數(shù)據(jù)經(jīng)由Finb與Foutc進入圖1中下面的延時單元Delay(4),實現(xiàn)第二級基2蝶形運算前四對數(shù)據(jù)的對齊。減法器輸出繼續(xù)進入延時單元Delay(8);
      (2.4)流水第16~19拍這時BPE-I的Din端的數(shù)據(jù)已是第二批次的待處理數(shù)據(jù),經(jīng)由Fouta進入延時單元Delay(8),準備開始又一次的流水操作。此時BPE-I的加減法器在兩個批次的第一級基2蝶形運算間有8拍的處理時間,可以用來計算第一批次數(shù)據(jù)的第二級基2蝶形運算,加法器運算結果輸出到Dout,經(jīng)過與相應旋轉(zhuǎn)因子的乘以后進入BPE-II,減法器運算結果經(jīng)中間的延時單元Delay(4)實現(xiàn)串行化在下一個四拍輸出到Dout。
      (2.5)流水第20~23拍BPE-I的加減法器計算第一批次第二級的后四次基2蝶形運算,加法器運算結果由Foutc進入圖1中下面的延時單元Delay(4)實現(xiàn)串行化在下一個四拍輸出到Dout,而減法器結果則經(jīng)由Foutb進入中間的延時單元Delay(4)后在經(jīng)由Foutc進入圖1中下面的延時單元Delay(4)實現(xiàn)串行化在第28~31拍輸出到Dout。
      (2.6)從第16拍開始,流水建立,BPE-I流水建立,這以后操作按(2.2),(2.3),(2.4),(2.5)操作以每十六拍為一個循環(huán)進行,每拍從BPE-I的Dout端口順序流出一個基4蝶形運算結果。
      ③BPE-II的工作步驟BPE-II處于基4蝶形運算工作模式。
      (3.1)流水第0~15拍等待數(shù)據(jù)到達;(3.2)流水第16~17拍處理數(shù)據(jù)經(jīng)過BPE-I后到達。控制輸入數(shù)據(jù)經(jīng)由Fouta進入延時單元Delay(2),實現(xiàn)第三級基2蝶形運算操作數(shù)的對齊;(3.3)流水第18拍控制輸入數(shù)據(jù)進入加減法器,開始第三級基2蝶形運算,加法器輸出進入中間的延時單元Delay(1),減法器輸出進入延時單元Delay(2),為第四級的基2蝶形運算準備數(shù)據(jù);(3.4)流水第19拍輸入數(shù)據(jù)繼續(xù)進入加減法器,第三級基2蝶形運算繼續(xù)進行中。加法器輸出繼續(xù)進入中間的延時單元Delay(1),移出的數(shù)據(jù)經(jīng)由Finb與Foutc進入圖1中下面的延時單元Delay(1),實現(xiàn)第四級基2蝶形運算第一對數(shù)據(jù)的對齊。減法器輸出繼續(xù)進入延時單元Delay(2);(3.5)流水第20拍這時BPE-II的Din端的數(shù)據(jù)已是該處理單元第二批次的待處理數(shù)據(jù),經(jīng)由Fouta進入延時單元Delay(2),準備開始又一次的流水操作。此時BPE-II的加減法器在兩個批次的第三級基2蝶形運算間有2拍的處理時間,可以用來計算該處理單元第一批次數(shù)據(jù)的第四級基2蝶形運算,加法器運算結果輸出到Dout,減法器運算結果經(jīng)中間的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出到Dout。
      (3.6)流水第21拍BPE-II的加減法器計算該處理單元第一批次第二級的第二次基2蝶形運算,加法器運算結果由Foutc進入圖1中下面的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出到Dout,而減法器結果則經(jīng)由Foutb進入中間的延時單元Delay(1)后在經(jīng)由Foutc進入圖1中下面的延時單元Delay(1)實現(xiàn)串行化在第23拍輸出到Dout。
      (3.7)從第20拍開始整個流水線流水建立,這以后BPE-II操作按(3.3),(3.4),(3.5),(3.6)操作以每四拍為一個循環(huán)進行,每拍從BPE-II的Dout端口順序流出一個基16蝶形運算結果。
      R2SD2F流水線及相應FFT處理器設計實現(xiàn)的可綜合VHDL代碼描述如下(代碼中調(diào)用的模塊Delay為通用延時單元,BF2為通用基2蝶形運算模塊,MPYCF為通用旋轉(zhuǎn)因子乘模塊,它們不屬于本發(fā)明專利創(chuàng)新范圍,故不在此給出實現(xiàn)代碼)library IEEE;use IEEE.std_logic_1164.all;entity FFTPPL isgeneric(DWinteger=16;DLinteger=64;log4DLinteger=3
      );port(Din in std_logic_vector(2*DW-1 downto 0);rst in std_logic;clk in std_logic;Frenin std_logic;Doutout std_logic_vector(2*DW-1 downto 0));end FFTPPL;architecture FFTPPL_arch of FFTPPL iscomponent LPPLBFgeneric(DW integer=16;DLF integer=1);port(Din in std_logic_vector(2*DW-l downto 0);clk in std_logic;S in std_logic_vector(9 downto 0);Doutout std_logic_vector(2*DW-1 downto 0));end component;eomponent MPYCFport(Din in std_logic vector(2*DW-1 downto 0);clk in std_logic;Doutout std_logic vector(2*DW-1 downto 0));end component;component Ctrlport(rst in std_logic;clk in std_logic;Frenin std_logic;S out std_logic_vector(9 downto 0));end component;type Dat_Array is array(0 to log4DL-1)of std_logic_vector(2*DW-1 downto 0);signal Din_Dat,Dout_DatDat_Array;signal Sstd_logic_vector(9 downto 0);beginlp0for I in 0 to log4DL-1 generate
      lp1ifi=0 generateDin_Dat(I)<=Din;lp1_0LPPLBF generic map(DLF=>DL/(4**(i+1)))port map(Din=>Din Dat(I),clk=>clk,s=>s,Dout=>Dout_Dat(I));end generate;lp2ifi>0 generatelp2_1MPYCF port map(Din=>Dout_Dat(I-1),clk=>clk,Dout=>Din_Dat(I));lp2_0LPPLBF generic map(DLF=>DL/(4**(i+1)))port map(Din=>Din_Dat(I),clk=>clk,s=>s,Dout=>Dout_Dat(I));end generate;end generate;u_ctrlCtrl port map(rst=>rst,clk=>clk,F(xiàn)ren=>Fren,S=>S);end FFTPPL_arch;library IEEE;use IEEE.std_logic_1164.all;entity LPPLBF isgeneric(DW integer=16;DLFinteger=1);port(Din in std_logic_vector(2*DW-1 downto 0);clk in std_logic;S in std_logic_vector(9 downto 0);Doutout std_logic_vector(2*DW-1 downto 0));end LPPLBF;architecture LPPLBF_arch of LPPLBF issignal Fouta,F(xiàn)outb,F(xiàn)outcstd_logic_vector(2*DW-1 downto 0);signal Fina,F(xiàn)inb,F(xiàn)incstd_logic_vector(2*DW-1 downto 0);signal Bina,Binb,Bouta,Boutbstd_logic_vector(2*DW-1 downto 0);
      signal tmp0,tmpl,tmp2,tmp3std_logic_vector(2*DW-1 downto 0);----------------------------------------------------------Function of BF2--when Sel=0--Bouta(2*DW-1 downto DW)=Bina(2*DW-1 downto DW)+Binb(2*DW-1downto DW);--Bouta(DW-1 downto 0)=Bina(DW-1 downto 0)+Binb(DW-1downto 0);--Boutb(2*DW-1 downto DW)=Bina(2*DW-1 downto DW)-Binb(2*DW-1downto DW);--Boutb(DW-1 downto 0)=Bina(DW-1 downto 0)-Binb(DW-1downto 0);--when Sel=1--Bouta(2*DW-1 downto DW)=Bina(2*DW-1 downto DW)+Binb(2*DW-1downto DW);--Bouta(DW-l downto 0)=Bina(DW-l downto 0)-Binb(DW-1downto 0);--Boutb(2*DW-1 downto DW)=Bina(2*DW-1 downto DW)-Binb(2*DW-1downto DW);--Boutb(DW-1 downto 0)=Bina(DW-1 downto 0)+Binb(DW-1downto 0);component BF2port(Bina in std_logic_vector(2*Dw-1 downto 0);Binb in std_logic_vector(2*DW-1 downto 0);Sel in std_logic;Boutaout std_logic_vector(2*DW-1 downto 0);Boutbout std_logic_vector(2*DW-1 downto 0));end component;------------------------------------------------component Delaygeneric(DLFinteger=1);port(Din in std_logic_vector(2*DW-1 downto 0);clk in std_logic;Doutout std_logic_vector(2*DW-1 downto 0));end component;
      beginBina <=Finc when s(0)=′0′else Fina;Binb <=tmp0 when s(0)=′0′else Din;tmp0 <=Finb when s(1)=′0′else Fina;tmp1 <=Fina when s(2)=′0′else Bouta;Foutc<=tmp1 when s(3)=′0′else Finb;Foutb<=Boutb when s(4)=′0′else Bouta;tmp2 <=Din when s(5)=′0′else Boutb;tmp3 <=Bouta when s(6)=′0′else Finb;Dout <=tmp3 when s(7)=′0′else Finc;Fouta<=tmp2 when s(8)=′0′else tmp2(DW-1 downto 0)&amp;tmp2(2*DW-1 downtoDW);u0BF2 port map(Bina =>Bina,Binb =>Binb,Sel =>s(9),Bouta=>Bouta,Boutb=>Boutb);DelayADelay generic map(DLF=>DLF*2)port map(Din=>Fouta,clk=>clk,Dout=>Fina);DelayBDelay generic map(DLF=>DLF)port map(Din=>Foutb,clk=>clk,Dout=>Finb);DelayCDelay generic map(DLF=>DLF)port map(Din=>Foutc,clk=>clk,Dout=>Finc);end LPPLBF_arch;FFTPPL為頂層源代碼,它包含三個參數(shù),分別是DW、DL、log4DL,分別表示數(shù)據(jù)寬度、變換長度和變換長度以4為底的對數(shù)。Ctrl模塊是生成選通信號S的控制模塊,它根據(jù)變換長度生成控制LPPLBF模塊的選通信號,可根據(jù)需要按圖3、4、5完成。
      權利要求
      1.基2單路深度延時反饋的流水線構成FFT處理器的實現(xiàn)方法,其特征在于,流水線的結構由四個復數(shù)加法器和一個復數(shù)乘法器以及兩個蝶形處理單元組成,運算數(shù)據(jù)順序流入,運算結果順序流出;上述蝶形處理單元是模式可編程的,根據(jù)需要選擇基4、基2或直通模式,使長度為16的R2SD2F流水線能夠分別用于計算基16、基8、基4和基2蝶形運算;在流水線的每一級,均有三組延時寄存器,對于第p級來說,三組延時分別為一組N/(2×4p-1)拍延時(Delay A,另外兩組為N/4p拍延時Delay B&amp;C,在這里N等于16;即第一蝶形處理單元的輸出分別經(jīng)過8、4、和4拍的延時反饋輸入到其輸入端,而第二蝶形處理單元的輸出端分別經(jīng)過8、4、和4拍的延時反饋輸入到同一蝶形處理單元的輸入端;第一蝶形處理單元的輸出經(jīng)過乘法器與旋轉(zhuǎn)因子相乘后進入第二蝶形處理單元的一個輸入端口,將兩個蝶形處理單元聯(lián)系起來構成一完整的流水線,待處理數(shù)據(jù)從第一蝶形處理單元的一個端口流入,最終結果從第二蝶形處理單元輸出端口流出。
      2.如權利要求1所述的方法,其特征在于,所述的蝶形處理單元對基2蝶形運算按下列步驟進行①流水線結構由第一蝶形處理單元和第二蝶形處理單元及相應的延時存儲單元Delay(n)構成,n表示延時拍數(shù);上述兩個蝶形處理單元均包括一個復數(shù)加法器、一個復數(shù)減法器、10組二選一轉(zhuǎn)換開關及相應的連線組成;②第一蝶形處理單元的工作步驟第一蝶形處理單元處于直通工作模式,各轉(zhuǎn)換器控制輸入數(shù)據(jù)進入延時存儲單元Delay(n),此時的n=8,經(jīng)過8拍延時后再經(jīng)進入延時單元Delay(n),此時的n=4,最后輸出,經(jīng)過與相應旋轉(zhuǎn)因子的乘以后進入第二蝶形處理單元;③第二蝶形處理單元的工作步驟第二蝶形處理單元處于基2蝶形運算工作模式,步驟如下流水第0~11拍等待數(shù)據(jù)到達;流水第12~13拍處理數(shù)據(jù)經(jīng)過第一蝶形處理單元后到達,控制輸入數(shù)據(jù)進入延時單元Delay(n),此時的n=2,整個流水過程中一直如此;流水第14拍控制經(jīng)過2拍延時后的第一個數(shù)據(jù)進下面的延時單元Delay(n),實現(xiàn)基2蝶形運算操作數(shù)的對齊;流水第15拍控制輸入數(shù)據(jù)進入加減法器,開始基2蝶形運算,加法器運算結果輸出,減法器運算結果經(jīng)中間的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出;即從第15拍開始流水建立,這以后操作按以每兩拍為一個循環(huán)進行,每拍從第二蝶形處理單元的端口順序流出一個基2蝶形運算結果。
      3.如權利要求1所述的方法,其特征在于,所述的蝶形處理單元對基4蝶形運算按下列步驟進行①流水線結構由第一蝶形處理單元和第二蝶形處理單元及相應的延時存儲單元Delay(n)構成,n表示延時拍數(shù);上述兩個蝶形處理單元均包括一個復數(shù)加法器、一個復數(shù)減法器、10組二選一轉(zhuǎn)換開關及相應的連線組成;②第一蝶形處理單元的工作步驟第一蝶形處理單元處于直通工作模式,各轉(zhuǎn)換器控制輸入數(shù)據(jù)進入延時存儲單元Delay(n),此時的n=8,經(jīng)過8拍延時后再經(jīng)進入延時單元Delay(n),此時的n=4,最后輸出,經(jīng)過與相應旋轉(zhuǎn)因子的乘以后進入第二蝶形處理單元;③第二蝶形處理單元的工作步驟第二蝶形處理單元處于基4蝶形運算工作模式流水第0~11拍等待數(shù)據(jù)到達;流水第12~13拍處理數(shù)據(jù)經(jīng)過BPE-I后到達??刂戚斎霐?shù)據(jù)進入延時單元Delay(2),實現(xiàn)第一級基2蝶形運算操作數(shù)的對齊;流水第14拍控制輸入數(shù)據(jù)進入加減法器,開始第一級基2蝶形運算,加法器輸出進入中間的延時單元Delay(1),減法器輸出進入延時單元Delay(2),為第二級的基2蝶形運算準備數(shù)據(jù);流水第15拍輸入數(shù)據(jù)繼續(xù)進入加減法器,第一級基2蝶形運算繼續(xù)進行中,加法器輸出繼續(xù)進入中間的延時單元Delay(1),移出的數(shù)據(jù)進入延時單元Delay(1),實現(xiàn)第二級基2蝶形運算第一對數(shù)據(jù)的對齊,減法器輸出繼續(xù)進入延時單元Delay(2);流水第16拍這時第二蝶形處理單元的數(shù)據(jù)已是第二批次的待處理數(shù)據(jù),進入延時單元Delay(2),準備開始又一次的流水操作,此時第二蝶形處理單元的加減法器在兩個批次的第一級基2蝶形運算間有2拍的處理時間,可以用來計算第一批次數(shù)據(jù)的第二級基2蝶形運算,加法器運算結果輸出,減法器運算結果經(jīng)中間的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出;流水第17拍第二蝶形處理單元的加減法器計算該處理單元第一批次第二級的第二次基2蝶形運算,加法器運算結果進入延時單元Delay(1)實現(xiàn)串行化在下一拍輸出,而減法器結果則進入中間的延時單元Delay(1)后在進入延時單元Delay(1)實現(xiàn)串行化在第19拍輸出;從第16拍開始流水建立,這以后操作以每四拍為一個循環(huán)進行,每拍從第二蝶形處理單元的端口順序流出一個基4蝶形運算結果。
      4.如權利要求1所述的方法,其特征在于,所述的蝶形處理單元對基8蝶形運算按下列步驟進行①流水線結構由第一蝶形處理單元和第二蝶形處理單元及相應的延時存儲單元Delay(n)構成,n表示延時拍數(shù);上述兩個蝶形處理單元均包括一個復數(shù)加法器、一個復數(shù)減法器、10組二選一轉(zhuǎn)換開關及相應的連線組成;②第一蝶形處理單元的工作步驟第一蝶形處理單元處于基2蝶形運算工作模式;流水第0~7拍控制輸入數(shù)據(jù)進入延時單元Delay(8),整個流水過程中一直如此;流水第8~11拍控制經(jīng)過8拍延時后的前四個數(shù)據(jù)進入延時單元Delay(4),實現(xiàn)第一級基2蝶形運算操作數(shù)的對齊;流水第12~15拍控制輸入數(shù)據(jù)進入加減法器,開始第一級基2蝶形運算,加法器運算結果輸出,經(jīng)過與相應旋轉(zhuǎn)因子的乘以后進入第二蝶形處理單元,減法器運算結果經(jīng)中間的延時單元Delay(4)實現(xiàn)串行化在下一個四拍輸出;從第12拍開始,第一蝶形處理單元流水建立,這以后操作以每八拍為一個循環(huán)進行,每拍從第一蝶形處理單元的端口順序流出一個第一級基2蝶形運算結果;③第二蝶形處理單元的工作步驟第二蝶形處理單元處于基4蝶形運算工作模式流水第0~11拍等待數(shù)據(jù)到達;流水第12~13拍處理數(shù)據(jù)經(jīng)過第一蝶形處理單元后到達,控制輸入數(shù)據(jù)進入延時單元Delay(2),實現(xiàn)第一級基2蝶形運算操作數(shù)的對齊;流水第14拍控制輸入數(shù)據(jù)進入加減法器,開始第一級基2蝶形運算,加法器輸出進入中間的延時單元Delay(1),減法器輸出進入延時單元Delay(2),為第二級的基2蝶形運算準備數(shù)據(jù);流水第15拍輸入數(shù)據(jù)繼續(xù)進入加減法器,第一級基2蝶形運算繼續(xù)進行中,加法器輸出繼續(xù)進入中間的延時單元Delay(1),移出的數(shù)據(jù)經(jīng)由進入延時單元Delay(1),實現(xiàn)第二級基2蝶形運算第一對數(shù)據(jù)的對齊,減法器輸出繼續(xù)進入延時單元Delay(2);流水第16拍這時第二蝶形處理單元的數(shù)據(jù)已是第二批次的待處理數(shù)據(jù),進入延時單元Delay(2),準備開始又一次的流水操作,此時第二蝶形處理單元的加減法器在兩個批次的第一級基2蝶形運算間有2拍的處理時間,可以用來計算第一批次數(shù)據(jù)的第二級基2蝶形運算,加法器運算結果輸出到Dout,減法器運算結果經(jīng)中間的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出;流水第17拍第二蝶形處理單元的加減法器計算該處理單元第一批次第二級的第二次基2蝶形運算,加法器運算結果進入延時單元Delay(1)實現(xiàn)串行化在下一拍輸出,而減法器結果則進入中間的延時單元Delay(1)后進入延時單元Delay(1)實現(xiàn)串行化在第19拍輸出;從第16拍開始整個流水線流水建立,這以后第二蝶形處理單元操作以每四拍為一個循環(huán)進行,每拍從第二蝶形處理單元端口順序流出一個基8蝶形運算結果。
      5.如權利要求1所述的方法,其特征在于,所述的蝶形處理單元對基16蝶形運算按下列步驟進行①流水線結構由第一蝶形處理單元和第二蝶形處理單元及相應的延時存儲單元Delay(n)構成,n表示延時拍數(shù);上述兩個蝶形處理單元均包括一個復數(shù)加法器、一個復數(shù)減法器、10組二選一轉(zhuǎn)換開關及相應的連線組成;②第一蝶形處理單元的工作步驟第一蝶形處理單元處于基4蝶形運算工作模式;流水第0~7拍控制輸入數(shù)據(jù)進入延時單元Delay(8),實現(xiàn)第一級基2蝶形運算操作數(shù)的對齊;流水第8~11拍控制輸入數(shù)據(jù)進入加減法器,開始第一級基2蝶形運算,加法器輸出進入中間的延時單元Delay(4),減法器輸出進入延時單元Delay(8),為第二級的基2蝶形運算準備數(shù)據(jù);流水第12~15拍輸入數(shù)據(jù)繼續(xù)進入加減法器,第一級基2蝶形運算繼續(xù)進行中。加法器輸出繼續(xù)進入中間的延時單元Delay(4),移出的數(shù)據(jù)經(jīng)由Finb與Foutc進入圖1中下面的延時單元Delay(4),實現(xiàn)第二級基2蝶形運算前四對數(shù)據(jù)的對齊,減法器輸出繼續(xù)進入延時單元Delay(8);流水第16~19拍這時第一蝶形處理單元的數(shù)據(jù)已是第二批次的待處理數(shù)據(jù),進入延時單元Delay(8),準備開始又一次的流水操作,此時第一蝶形處理單元的加減法器在兩個批次的第一級基2蝶形運算間有8拍的處理時間,可以用來計算第一批次數(shù)據(jù)的第二級基2蝶形運算,加法器運算結果輸出,經(jīng)過與相應旋轉(zhuǎn)因子的乘以后進入第二蝶形處理單元,減法器運算結果經(jīng)中間的延時單元Delay(4)實現(xiàn)串行化在下一個四拍輸出;流水第20~23拍第一蝶形處理單元的加減法器計算第一批次第二級的后四次基2蝶形運算,加法器運算結果進入延時單元Delay(4)實現(xiàn)串行化在下一個四拍輸出到,而減法器結果則進入中間的延時單元Delay(4)后進入延時單元Delay(4)實現(xiàn)串行化在第28~31拍輸出到;從第16拍開始,流水建立,第一蝶形處理單元流水建立,這以后操作以每十六拍為一個循環(huán)進行,每拍從第一蝶形處理單元端口順序流出一個基4蝶形運算結果;③第二蝶形處理單元的工作步驟第二蝶形處理單元處于基4蝶形運算工作模式流水第0~15拍等待數(shù)據(jù)到達;流水第16~17拍處理數(shù)據(jù)經(jīng)過第一蝶形處理單元后到達,控制輸入數(shù)據(jù)進入延時單元Delay(2),實現(xiàn)第三級基2蝶形運算操作數(shù)的對齊;流水第18拍控制輸入數(shù)據(jù)進入加減法器,開始第三級基2蝶形運算,加法器輸出進入中間的延時單元Delay(1),減法器輸出進入延時單元Delay(2),為第四級的基2蝶形運算準備數(shù)據(jù);流水第19拍輸入數(shù)據(jù)繼續(xù)進入加減法器,第三級基2蝶形運算繼續(xù)進行中,加法器輸出繼續(xù)進入中間的延時單元Delay(1),移出的數(shù)據(jù)進入延時單元Delay(1),實現(xiàn)第四級基2蝶形運算第一對數(shù)據(jù)的對齊,減法器輸出繼續(xù)進入延時單元Delay(2);流水第20拍這時第二蝶形處理單元的數(shù)據(jù)已是該處理單元第二批次的待處理數(shù)據(jù),進入延時單元Delay(2),準備開始又一次的流水操作,此時第二蝶形處理單元的加減法器在兩個批次的第三級基2蝶形運算間有2拍的處理時間,可以用來計算該處理單元第一批次數(shù)據(jù)的第四級基2蝶形運算,加法器運算結果輸出,減法器運算結果經(jīng)中間的延時單元Delay(1)實現(xiàn)串行化在下一拍輸出。流水第21拍第二蝶形處理單元的加減法器計算該處理單元第一批次第二級的第二次基2蝶形運算,加法器運算結果進入延時單元Delay(1)實現(xiàn)串行化在下一拍輸出,而減法器結果則進入中間的延時單元Delay(1)后進入延時單元Delay(1)實現(xiàn)串行化在第23拍輸出到;從第20拍開始整個流水線流水建立,這以后第二蝶形處理單元以每四拍為一個循環(huán)進行,每拍從第二蝶形處理單元的端口順序流出一個基16蝶形運算結果。
      全文摘要
      本發(fā)明公開了一種基2單路深度延時反饋的流水線構成FFT處理器的實現(xiàn)方法,流水線的結構由四個復數(shù)加法器和一個復數(shù)乘法器以及兩個蝶形處理單元組成,運算數(shù)據(jù)順序流入,運算結果順序流出;蝶形處理單元是模式可編程的,根據(jù)需要選擇基4、基2或直通模式,因此長度為16的R2SD
      文檔編號G06F17/14GK1700203SQ200510042828
      公開日2005年11月23日 申請日期2005年6月16日 優(yōu)先權日2005年6月16日
      發(fā)明者楊靚, 黃士坦, 黃巾, 劉紅俠 申請人:中國航天時代電子公司第七七一研究所
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1