新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的移位寄存器流水線結(jié)構(gòu)FFT處理器

基于FPGA的移位寄存器流水線結(jié)構(gòu)FFT處理器

作者: 時(shí)間:2010-07-19 來源:網(wǎng)絡(luò) 收藏


  第三級(jí)的運(yùn)算與第二級(jí)和第一級(jí)類似,即移入1級(jí)寄存器的數(shù)據(jù)與其后一個(gè)數(shù)據(jù)進(jìn)行碟算,同時(shí)使前一級(jí)寄存器的輸出數(shù)據(jù)進(jìn)入后一級(jí)寄存器的空白位中,然后開關(guān)打到位置②,對(duì)下路輸出數(shù)據(jù)進(jìn)行碟算。

  對(duì)于第二路數(shù)據(jù),通過開關(guān)控制,在第二級(jí)中,待第一路第一級(jí)下路輸出數(shù)據(jù)進(jìn)行蝶形運(yùn)算時(shí),移入寄存器的空白位,為運(yùn)算做準(zhǔn)備,由于前級(jí)運(yùn)算周期是后級(jí)運(yùn)周期的兩倍,對(duì)于第二級(jí)碟算模塊而言,數(shù)據(jù)仍然是不間斷輸入的。通過這樣兩路數(shù)據(jù)的交替運(yùn)算和存儲(chǔ),實(shí)現(xiàn)“乒乓操作”,從而提高了蝶形運(yùn)算模塊的運(yùn)算效率。圖4是256點(diǎn)的具體運(yùn)算輸入和輸出時(shí)序圖。對(duì)于只有一路數(shù)據(jù)的應(yīng)用場合,可以在前級(jí)加入,門控開關(guān)和數(shù)據(jù)緩沖寄存器分成兩路數(shù)據(jù),實(shí)現(xiàn)一路數(shù)據(jù)的不間斷讀入。

256點(diǎn)FFT的具體運(yùn)算輸入和輸出時(shí)序圖

  由于采用結(jié)梅,各級(jí)寄存器使用的數(shù)量都是固定的,即為N/2+N/4。其中,N為該級(jí)DFT運(yùn)算的點(diǎn)數(shù),各級(jí)使用的深度逐級(jí)遞減,從而大大降低了寄存器的使用數(shù)量。

  此外,由于各級(jí)結(jié)構(gòu)固定,所以大點(diǎn)數(shù)只是小點(diǎn)數(shù)基礎(chǔ)上級(jí)數(shù)的增加,而且由于的輸出相對(duì)于RAM而言不需要復(fù)雜的地址控制,所以這種結(jié)構(gòu)的FFT處理器具有非常好的可擴(kuò)展性。比如需要實(shí)現(xiàn)512點(diǎn)的FFT,只需要在256點(diǎn)的基礎(chǔ)上增加一級(jí)即可。

  3 具體模塊的設(shè)計(jì)

  3.1 控制與地址產(chǎn)生模塊

  由于兩路數(shù)據(jù)同時(shí)輸入,為了防止發(fā)生兩路數(shù)據(jù)間的串?dāng)_,對(duì)數(shù)據(jù)的控制顯得極其關(guān)鍵。從上面的算法結(jié)構(gòu)分析中知道,由于后級(jí)的DFT運(yùn)算點(diǎn)數(shù)是前一級(jí)的一半,所以后一級(jí)的開關(guān)轉(zhuǎn)換周期也是前一級(jí)的一半,基于這種關(guān)系,可以使用一個(gè)8位計(jì)數(shù)器的每一位狀態(tài)來對(duì)各級(jí)開關(guān)進(jìn)行控制。最高位控制第一級(jí),同時(shí)由于上一級(jí)數(shù)據(jù)進(jìn)入下一級(jí)需要一個(gè)時(shí)鐘,所以下一級(jí)的開關(guān)轉(zhuǎn)換時(shí)刻要比上一級(jí)延遲一個(gè)時(shí)鐘周期。

  對(duì)于移位寄存器,在實(shí)現(xiàn)時(shí),各級(jí)的前級(jí)移位寄存器深度為N/2-1,從本質(zhì)而言,是使運(yùn)算開始的時(shí)鐘上升沿到來時(shí),數(shù)據(jù)已經(jīng)出現(xiàn)在碟算模塊輸入線上,而不需要下一個(gè)時(shí)鐘的驅(qū)動(dòng)來移出寄存器,比如第二級(jí)移位寄存器的級(jí)數(shù)為63。這樣,運(yùn)算周期正好是2的倍數(shù),從而方便使用計(jì)數(shù)器的各位直接對(duì)開關(guān)進(jìn)行控制。

  同時(shí),計(jì)數(shù)器還可以用來產(chǎn)生所需旋轉(zhuǎn)因子的RAM地址。根據(jù)各級(jí)蝶形運(yùn)算所需旋轉(zhuǎn)因子的規(guī)律,可以利用計(jì)數(shù)器的高位補(bǔ)零來產(chǎn)生查找表的地址。比如,對(duì)于第一級(jí),因?yàn)樾枰谧畹臀坏谝淮纬霈F(xiàn)1時(shí)提供,第二次出現(xiàn)1時(shí)提供,…,以此類推,周期為128,所以可以使用計(jì)數(shù)器的低七位作為地址。對(duì)于第二級(jí),由于所需要的地址為偶數(shù),可以由計(jì)數(shù)器的[6:1]和最低位置O產(chǎn)生。表l為8點(diǎn)時(shí)使用三位計(jì)數(shù)器輸出旋轉(zhuǎn)因子的地址情況。

8點(diǎn)時(shí)使用三位計(jì)數(shù)器輸出旋轉(zhuǎn)因子的地址情況

  控制和地址產(chǎn)生模塊的仿真結(jié)果如圖5所示,其中sel代表開關(guān)控制,addr代表產(chǎn)生的地址。

控制和地址產(chǎn)生模塊的仿真結(jié)果



關(guān)鍵詞: FPGA FFT 移位寄存器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉