パイプラインFFTプロセッサ 回路ソースコード


  電子情報通信学会(IEICE)基礎・境界ソサエティ Fundamentals Review Vol. 7 No. 2 (2013年10月号)で発表した解説論文に関する資料を公開します.

 解説論文タイトル

  吉澤真吾,宮永喜一,”無線通信用FFTプロセッサのハードウェア実装,” IEICE Fundamentals Review, vol. 7, no. 2, Oct. 2013.
  (Shingo Yoshizawa, Yoshikazu Miyanaga, ”Hardware Implementation of FFT Processors for Wireless Communications,"
  IEICE Fundamentals Review,vol. 7, no. 2, Oct. 2013.)


 回路ソースコード

   FFT_V2_2.zip (20KB)
   FFT_V2_6.zip (68KB 高クロック動作版 下部の補足説明を参照)
   FFT_V3_3.zip (220KB Efinix FPGA対応版)

 動作環境

   MATLABもしくはOctave
   Cadence NC-VerilogもしくはIcarus Verilog (Windows版)

 使用方法

   1. フォルダ「matlab」内にある「fft_hw_test.m」の以下の行をエディタ等で編集する.

   % FFTポイント数(2の累乗,ただし,4以上16384以下)
   p.N=64;
   % 固定小数点ビット長(符号ビット+小数部ビット)
   p.Wordlength = 16;
   % 繰り返し回数
   p.Iteration = 3;

   2. MATLABもしくはOctaveで「fft_hw_test.m」を実行すると,フォルダ「verilog」に以下のファイルが
   生成される.

   definition.v (Verilogソースコード)
   FFT.v (同上)
   FFT_BUTTERFLY.v (同上)
   FFT_FIFO.v (同上)
   FFT_TWIDDLE.v (同上)
   fft_input.txt (テストパターンデータ)
   fft_output.txt (期待値照合用データ)

   3. Cadence NC-Verilog環境(Linux OS)の場合はフォルダ「verilog」内にある「Makefile」ファイル
   を利用して,「make FFT」を実行し,Verilogシミュレーションを行う.
   Icarus Verilog環境(Windows OS)の場合は「Sim_icarus.cmd」ファイルを利用して
   コマンドプロンプト上で「Sim_icarus」を実行し,Verilogシミュレーションを行う.

 高クロック動作版 V2_6版の補足説明

   V2_6版はV2_2版と比べて約3倍のクロック周波数で動作します.
   (Altera EP4CGX50CF23C6の配置配線後の見積もりでは76.7MHzに対して225.5MHz)
   回路ソースコード生成後、MUL.vをAlteraやXilinxのIP生成ツールで生成した符号付き乗算器に
   置き換えて下さい.乗算器のパイプラインステージ数は2段として下さい.