新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA的移位寄存器流水線結構FFT處理器

        基于FPGA的移位寄存器流水線結構FFT處理器

        作者: 時間:2010-07-19 來源:網絡 收藏


          第三級的運算與第二級和第一級類似,即移入1級寄存器的數據與其后一個數據進行碟算,同時使前一級寄存器的輸出數據進入后一級寄存器的空白位中,然后開關打到位置②,對下路輸出數據進行碟算。

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

        256點FFT的具體運算輸入和輸出時序圖

          由于采用結梅,各級寄存器使用的數量都是固定的,即為N/2+N/4。其中,N為該級DFT運算的點數,各級使用的深度逐級遞減,從而大大降低了寄存器的使用數量。

          此外,由于各級結構固定,所以大點數只是小點數基礎上級數的增加,而且由于的輸出相對于RAM而言不需要復雜的地址控制,所以這種結構的FFT處理器具有非常好的可擴展性。比如需要實現512點的FFT,只需要在256點的基礎上增加一級即可。

          3 具體模塊的設計

          3.1 控制與地址產生模塊

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

          對于移位寄存器,在實現時,各級的前級移位寄存器深度為N/2-1,從本質而言,是使運算開始的時鐘上升沿到來時,數據已經出現在碟算模塊輸入線上,而不需要下一個時鐘的驅動來移出寄存器,比如第二級移位寄存器的級數為63。這樣,運算周期正好是2的倍數,從而方便使用計數器的各位直接對開關進行控制。

          同時,計數器還可以用來產生所需旋轉因子的RAM地址。根據各級蝶形運算所需旋轉因子的規(guī)律,可以利用計數器的高位補零來產生查找表的地址。比如,對于第一級,因為需要在最低位第一次出現1時提供,第二次出現1時提供,…,以此類推,周期為128,所以可以使用計數器的低七位作為地址。對于第二級,由于所需要的地址為偶數,可以由計數器的[6:1]和最低位置O產生。表l為8點時使用三位計數器輸出旋轉因子的地址情況。

        8點時使用三位計數器輸出旋轉因子的地址情況

          控制和地址產生模塊的仿真結果如圖5所示,其中sel代表開關控制,addr代表產生的地址。

        控制和地址產生模塊的仿真結果



        關鍵詞: FPGA FFT 移位寄存器

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 焉耆| 卢龙县| 济南市| 台东市| 黄大仙区| 茂名市| 博野县| 东乡县| 体育| 灵璧县| 绥宁县| 泽州县| 育儿| 晋中市| 塘沽区| 宜春市| 雅江县| 奉新县| 抚顺县| 高青县| 双城市| 怀柔区| 兴仁县| 衡阳市| 朝阳市| 布拖县| 东乌珠穆沁旗| 涞源县| 诸城市| 措美县| 汪清县| 璧山县| 台中市| 海宁市| 共和县| 平顺县| 南陵县| 武宁县| 皋兰县| 榆中县| 嘉黎县|