<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的64點FFT處理器設計

          基于FPGA的64點FFT處理器設計

          作者: 時間:2009-08-25 來源:網(wǎng)絡 收藏

          不同于以往的基-4 算法,這里是將輸入的64點數(shù)據(jù)以8位輸入數(shù)據(jù)為一組,共分成8組的方式輸入給運算單元進行運算的。完整的FFT蝶形運算共分6級,經(jīng)歷196個循環(huán)狀態(tài)。將來自存儲單元的數(shù)據(jù)輸入到FFT運算單元中,前三級是按8位1組的方法,分為8組進行運算;后三級是將前三級運算所得到的中間數(shù)據(jù)送入運算單元進行運算。經(jīng)過FFT運算后,將所得到運算結(jié)果寫入存儲單元中保存。結(jié)果以倒位序方式輸出,需要經(jīng)過調(diào)整位序變換成為自然順序輸出。

          本文引用地址:http://www.ex-cimer.com/article/191949.htm

          2 FFT運算器設計
          2.1 系統(tǒng)的整體結(jié)構(gòu)
          一個完整的FFT運算單元應該包括以下幾個組成部分:
          全局控制單元包括控制器和地址產(chǎn)生單元,用于調(diào)控整個FFT運算系統(tǒng),生成蝶形運算單元以及其他子單元所需的地址,控制各子單元時序,保證其正常有序地工作;
          蝶形運算器單元 由蝶形運算器和旋轉(zhuǎn)因子存儲單元(ROM)組成,負責將送入的輸人數(shù)據(jù)進行蝶形運算,是FFT運算器的核心單元;
          存儲寄存器單元 采用兩個RAM乒乓通信,通過通信接口單元接收總線控制信號,負責存儲輸入數(shù)據(jù)、中間數(shù)據(jù)和運算所得最終結(jié)果。
          系統(tǒng)整體框圖如圖1所示。

          3 實驗結(jié)果驗證
          這里的FFT運算器通過硬件描述語言VHDL代碼進行編寫,在ModelSimSE PLUS 6.1f環(huán)境下完成系統(tǒng)仿真,波形仿真如圖3所示。
          由波形仿真圖可以看出,地址控制單元以3位二進制編碼定義各子單元的地址,存儲的數(shù)據(jù)在時序信號和地址總線單元控制下進行FFT運算。實驗證明,當外部時鐘頻率為40 MHz時,可以對隨機生成的64點序列進行FFT定點運算,運算時間為10μs。

          4 結(jié) 語
          這里的FFT運算器采用定點數(shù)處理,當處理浮點數(shù)時,系統(tǒng)存在處理異常、數(shù)據(jù)溢出等問題。但是由于可以迅速處理多點數(shù)信號,因此在數(shù)字圖像處理、實時通信系統(tǒng)的調(diào)試和解調(diào)等方面具有一定的實際意義,達到了使用實現(xiàn)DSP算法的目的。
          本文在以下方面有所創(chuàng)新:
          (1)輸入的64位數(shù)據(jù)以8位共8組的方式并行輸入,將FFT運算流程分為6級,整個FFT運算過程清晰,結(jié)構(gòu)合理,提高了運行效率。
          (2)使用2塊雙口RAM作為存儲器,采用“乒乓操作”,在一個時鐘周期內(nèi)保證數(shù)據(jù)傳遞的單向性,減少了數(shù)據(jù)傳輸?shù)娜哂?,提高了精度?br /> (3)將整個FFT運算器進行模塊化設計,在控制模塊的調(diào)配下,各個子模塊準確工作,保證了運算的可靠性。


          上一頁 1 2 下一頁

          關(guān)鍵詞: FPGA FFT 處理器

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();