15th LSI Design Contests・in Okinawa  Design Specification - 4-1-1

4-1-1. N=4 の場合のFFT回路設計

(1) 回路設計

Radix-2アルゴリズムにより、1) N=4 のFFT演算の概念図は図3のようになる。

Figure 3

図3:  4点FFTの概念図

図3の概念図に従い、 N=4 のFFT回路は4個のバタフライ演算回路で実現できる。

概念的ブロック図を図4に示す。

Figure 4

図4:  4点FFTの概念的ブロック図

図3の赤線により表されたバタフライ演算を図4の赤枠で表されたバタフライ演算回路へと変換する。 他の演算も同様である。

設計した回路を図5に示す。

Figure 5

図5:  パラレル入力に対する4点FFT回路

各サブシステムの内部を以下に示す。


a)radix2

ここではradix2_0から3までの演算回路を示す。 2つの複素数を入力し、2つの複素数を出力する回路であるため、実数と虚数を分けて入力し、実数は実数同士、 虚数は虚数同士で加減算を行う回路である。構成は図4に示す。

図3のサブシステムradix-2_1、 radix-2_2、radix-2_3はradix2_0と同一の構成であるため省略する。

Figure 6

図6:  サブシステムradix-2_0のモデル

Figure 7  Figure 8

図7:  AddSubのパラメータ                           図8:  AddSub2のパラメータ

図6のAddSub1はAddSubと同一の構成であるため省略する。

同様にAddSub3はAddSub2と同一の構成であるため省略する。


b) MULT

ここではMULT0から3までの演算回路を示す。 MULTは回転因子乗算回路である。 複素数 Symbol 1Symbol 2 の乗算は、 Symbol 3 と記述できる。

この過程に従って実数と虚数の2つの入力に対し、回転因子の実数と虚数を乗算する。 図5のサブシステムMULTのモデルを図9に示す。 図5のサブシステムMULT、MULT1、MULT2、MULT3のモデルはconstantブロックのパラメータ以外同一の構成のため、省略する。

Figure 9

図9:  サブシステムMULTのモデル

図9のAddSubは図6のAddSub2と同一の構成であるため省略する。

同様に図9のAddSub3は図6のAddSubと同一の構成であるため省略する。

図9のMULTのパラメータを図10に示す。

Figure 10

図10:  Multのパラメータ

図9のMult1、Mult2、Mult3はMultと同一の構成であるため省略する。

このとき回転因子はSymbol 4Symbol 5であるため、MULT、MULT1、MULT2、MULT3内の回転因子を表すconstantブロックのパラメータは表1のようになる。

表1:  回転因子のパラメータ

Table 1

サブシステムMULTは、複素数の入力信号に対して、複素数の回転因子を乗算し、出力する回路である。

(2) 検証

図5の回路に表2に示す値を入力して計算を行うと表2の X[0]〜X[3] を得た。

MATLABにおける演算結果(図11参照)と一致していることが確認できる。

表2:  MATLABにおける演算結果との誤差

Table 2
Figure 11

図11:  MATLABにおけるFFT演算結果

また、この回路の入力と出力をScopeを用いて確認すると、図12、13のようになる。

これからパラレル入力の場合のFFTのLatencyは 0 であることが確認できる。

Figure 12  Figure 13

図12:  出力 X[0]_real と入力 x[0]_real              図13:  出力 X[1]_real と入力x[1]