基于FPGA的移位寄存器流水線結構FFT處理器_第1頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于fpga的移位寄存器流水線結構fft處理器迅速傅里葉變換(fft)在雷達、通信和對抗等領域有廣泛應用。近年來現(xiàn)場可編程門陣列()的飛快進展,與技術相比,因為其并行信號處理結構,使得fpga能夠很好地適用于高速信號處理系統(tǒng)。因為等公司研制的fft ip核,價錢昂貴,不適合大規(guī)模應用,在特定領域中,設計適合于自己領域需要的fft處理器是較為實際的挑選。本文設計的fft處理器,基于fpga技術,因為采納移位寄存器流水線結構,實現(xiàn)了兩路數據的同時輸入,相比傳統(tǒng)的級聯(lián)結構,提高了蝶形運算單元的運算效率,減小了輸出延時,降低了芯片資源的用法。在ofdm系統(tǒng)的實際應用中,因它可以采納迅速傅里葉變換,能便

2、利快捷地實現(xiàn)調制和解調,故結合mimo技術,設計的fft處理器結構,可以很好地應用于2根天線的mimo-ofdm系統(tǒng)中。1 fft處理的應用及dif fft算法原理圖1給出一個2根天線mimo-ofdm系統(tǒng)中fft的用法。迅速傅里葉變換算法基本上分為兩大類:時域抽取(dit)和頻域抽取(dif),這里設計的fft處理器采納基-2 dif算法。對于n點序列x(n),其傅里葉變換將x(n)分成上、下兩部分,得:這樣將兩個n點的dft分成兩個n2點的dft,分的辦法是將x(k)按序號k的奇、偶分開。通過這種方式繼續(xù)分下去,直到得到兩點的dft。采納dif辦法設計的fft,其輸入是正序,輸出是根據奇偶

3、分開的倒序。2 移位寄存器流水線結構的fft在傳統(tǒng)流水線結構的fft中,需要將所有數據輸入寄存器后,可開頭蝶形運算。在基-2 dif算法中可以發(fā)覺,當前n2個數據進入寄存器后,運算便可以開頭,此后進入的第n2+1個數據與寄存器第一個數據舉行蝶形運算,以此類推。因為采納頻域抽取法,不需要對輸入的數據舉行倒序處理,簡化了地址控制,這樣,可以采納移位寄存器的方式,依次將前n2個數據移入移位寄存器,在n2+l時刻,第一個數據移出移位寄存器,參加運算。相對于傳統(tǒng)的ram讀寫方式,采納移位寄存器存儲結構綜合后的最大工作頻率為500 mhz,遠大于ram方式的166 mhz。當移位寄存器相繼有數據移出時,在

4、移位寄存器中會浮現(xiàn)空白位。此時,引入其次路數據,在第一路數據依次移出舉行蝶算時,其次路數據依次補充到移位寄存器的空白位中,為運算做預備。通過這樣一種類似“乒乓操作”的結構,可以使蝶形運算模塊中的數據不間斷地輸入,運算效率達到100。不同于傳統(tǒng)的“乒乓操作”結構,因為用法移位寄存器,不需要兩塊ram,可以省掉一半的寄存器。圖2為256點fft處理器的第一級結構?;谏鲜龌驹?,將這種移位寄存器結構擴展到囫圇fft系統(tǒng)的各級,可以發(fā)覺各級用法的移位寄存器數量是遞減的。現(xiàn)用法一個8點結構來舉行解釋。3所示,數據由輸入l和輸入2進入第一級。通過開關舉行選通控制。因為是n=8的運算,所以各級分離加入4

5、級、2級和1級的移位寄存器。分兩路來解釋運算過程:將k1打到位置,第一路數據進入移位寄存器,待第一路的前4個數據存入4級移位寄存器后,第一路進入的第5個數據與移位寄存器移出的第1個數據舉行蝶形運算。因為輸出結果有上下兩路,其次級是一個四點的dft,所以對于上路的輸出結果x0(0)+x0(4)類似于第一級,挺直存入下一級寄存器,為四點運算做預備,下路的輸出,先存入本級2級移位寄存器中,等到上路的四點運算開頭,其次級的移位寄存器有空白位時,移入其次級,為下路的四點運算做預備。所以第一級蝶形運算上路輸出前n4=2個進入下一級寄存器,下路輸出的數據依次存入本級移位寄存器中。當第一級的輸出前n4=2個數

6、據x0(0)+x0(4)和x0(1)+x0(5)存入其次級移位寄存器時,運算便可以開頭,這時開關k2打到位置,此時第一級上路輸出的數據x0(2)+x0(6),即第一級上路輸出的第三個數據與其次級移位寄存器移出的第一個數據,即x0(o)+x0(4)舉行蝶形運算,輸出的第四個數據x0(3)+x0(7)與x0(1)+x0(5)舉行蝶算。在這個運算過程中,第一級的2級移位寄存器移出數據依次移位存入到其次級的移位寄存器產生的空白位中。兩個時鐘后,第一級上路輸出的四個數據完成了蝶形運算,k2打到位置,在接下來的兩個時鐘里,第一級中2級移位寄存器的輸出依次與此時其次級中2級移位寄存器的輸出數據舉行蝶形運算,

7、即與,與完成第一級下路輸出的四個數據的蝶形運算。此時,第一路在第一級運算后的輸出數據,在其次級完成了所有的蝶形運算。其次級的輸出結果同第一級一樣,蝶形運算的上路輸出前n8=1個進入下一級寄存器,后一個數據挺直進入后一級舉行碟算,下路輸出的數據存入本級移位寄存器中。第三級的運算與其次級和第一級類似,即移入1級寄存器的數據與其后一個數據舉行碟算,同時使前一級寄存器的輸出數據進入后一級寄存器的空白位中,然后開關打到位置,對下路輸出數據舉行碟算。對于其次路數據,通過開關控制,在其次級中,待第一路第一級下路輸出數據舉行蝶形運算時,移入寄存器的空白位,為運算做預備,因為前級運算周期是后級運周期的兩倍,對于

8、其次級碟算模塊而言,數據仍然是不間斷輸入的。通過這樣兩路數據的交替運算和存儲,實現(xiàn)“乒乓操作”,從而提高了蝶形運算模塊的運算效率。圖4是256點fft的詳細運算輸入和輸出時序圖。對于惟獨一路數據的應用場合,可以在前級加入,門控開關和數據緩沖寄存器分成兩路數據,實現(xiàn)一路數據的不間斷讀入。因為采納移位寄存器結梅,各級寄存器用法的數量都是固定的,即為n2+n4。其中,n為該級dft運算的點數,各級用法的移位寄存器深度逐級遞減,從而大大降低了寄存器的用法數量。此外,因為各級結構固定,所以大點數fft只是小點數fft基礎上級數的增強,而且因為移位寄存器的輸出相對于ram而言不需要復雜的地址控制,所以這種

9、結構的fft處理器具有十分好的可擴展性。比如需要實現(xiàn)512點的fft,只需要在256點的基礎上增強一級即可。3 詳細模塊的設計31 控制與地址產生模塊因為兩路數據同時輸入,為了防止發(fā)生兩路數據間的串擾,對數據的控制顯得極其關鍵。從上面的算法結構分析中知道,因為后級的dft運算點數是前一級的一半,所以后一級的開關轉換周期也是前一級的一半,基于這種關系,可以用法一個8位計數器的每一位狀態(tài)來對各級開關舉行控制。最高位控制第一級,同時因為上一級數據進入下一級需要一個時鐘,所以下一級的開關轉換時刻要比上一級延遲一個時鐘周期。對于移位寄存器,在實現(xiàn)時,各級的前級移位寄存器深度為n2-1,從本質而言,是使運

10、算開頭的時鐘升高沿到來時,數據已經浮現(xiàn)在碟算模塊輸入線上,而不需要下一個時鐘的驅動來移出寄存器,比如其次級移位寄存器的級數為63。這樣,運算周期正巧是2的倍數,從而便利用法計數器的各位挺直對開關舉行控制。同時,計數器還可以用來產生所需旋轉因子的ram地址。按照各級蝶形運算所需旋轉因子的邏輯,可以利用計數器的高位補零來產生查找表的地址。比如,對于第一級,由于需要在最低位第一次浮現(xiàn)1時提供,其次次浮現(xiàn)1時提供,以此類推,周期為128,所以可以用法計數器的低七位作為地址。對于其次級,因為所需要的地址為偶數,可以由計數器的6:1和最低位置o產生。表l為8點時用法三位計數器輸出旋轉因子的地址狀況??刂坪?/p>

11、地址產生模塊的結果5所示,其中sel代表開關控制,addr代表產生的地址。32 蝶形運算模塊蝶算模塊由一個復數加法器,一個復數減法器和一個旋轉因子的復數乘法器構成,6所示。旋轉因子乘法器通常由4次實數乘法和2次加減法運算實現(xiàn),但由于cos和sin的值可以預先存儲,通過下面的算法可以簡化復數乘法器:(1)存儲如下三個系數:c,c+s,c-s(2)計算:e=x-y和z=c*e=c*(x-y)(3)用r=(c-s)*y+z,i=(c+s)*x-z,得到需要的結果。這種算法用法了3次乘法,1次加法和2次減法,但是需要用法存儲3個表的rom資源。設計中數據的輸入為16位復數,所以將旋轉因子cos(2kn

12、),sin(2kn)量化成帶符號數的16位二進制數后,存儲到rom中,因為值域不同,需要注重c+s和c-s的表要比c表多1位精度。運算后的結果需要除以量化時乘以的倍數16b011111llllllllll。詳細實現(xiàn)時因為除法運算在fpga器件需要消耗較多的資源,設計中采納二進制數移位的辦法來實現(xiàn)除法運算。為了防止數據溢出,設計對輸出結果除以2。圖7為蝶形運算模塊的rtl級結構圖。33 倒序輸出模塊由頻域抽取的基-2算法可知,運算結果需要倒序輸出??梢韵葘⒔Y果存儲到ram中,然后用法o255的二進制數倒序產生ram讀取地址,依次將結果讀出,其中實現(xiàn)一個8位二進制數倒序的算法如下:(1)將8位數字

13、的相鄰兩位交換位置;(2)將相鄰的兩位看作1組,相鄰兩組交換位置;(3)將相鄰的4位看作1組,相鄰兩組交換位置。經過這樣的交換位置后,輸出即為本來8位二進制數的倒序。舉例對于8位二進制數10110110來說,第一次交換位置的結果是01111001,其次次交換位置的結果是11010110,最后交換位置的結果是01101101??梢娬墒潜緛頂底值牡剐颉A硗?,因為設計的是兩路數據同時寫入,一路數據讀出,所以讀取的頻率是寫入頻率的2倍,用法pll實現(xiàn)原始時鐘的二倍頻,用來讀取ram。倒序模塊仿真結果8所示。終于生成的fft處理器模塊圖9所示。4 仿真結果各級間數據時序狀況10所示,設計的fft處理器仿真結果1l所示。采納一路階梯遞增信號和另一路:xxxx信號舉行仿真,通過與matlab計算結果舉行對照,結果基本全都,可以滿足系統(tǒng)要求。系統(tǒng)總的延時由延時最大的第一級打算,為第一級運算的延時加上倒序輸出的延時,總共是(256+128)×clk,相對于普通流水線結構(256×讀入周期+7×128×蝶算周期+128×讀入周期),系統(tǒng)延時大為削減。通過仿真可知,系統(tǒng)最大頻率由蝶形運算模塊的最大工作頻率打算。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論