IDFT または IFFT は、入力サンプル レート Fs で M = 16 点の変換をする必要があります。デザインは SSR = 8 を使用しているので、完全な変換は M/SSR = 16/8 = 2 サイクルに 1 回実行される必要があります。M = 16 変換が 4 段階の Radix-2 バタフライ (合計 32) または 2 段階の Radix-4 バタフライ (合計 8) を含むので、これはかなり高いスループット率です。これは、FFT ソリューションに必要なバタフライ アドレスのオーバーヘッドを考えると、変換あたり 2 サイクルの持続的なレートで達成するのは困難です。
この場合、IDFT を直接計算する直接的な「行列乗算」アプローチにより、実行可能な解決策が提供されます。このデザインで採用されている cint16 データ型では、AI エンジンは 1 サイクルあたり 1 つの [1x2] x [2x4] ベクターと行列の積「OP」を実行できます。M = 16 の IDFT は [1x16]x[16x16] のベクターと行列の積を必要とし、これは 32 個の OP に相当します。つまり、IDFT 行列積を 2 サイクルで実行するには、16 個の AI エンジン タイルが必要となります。
この 100% 効率的な計算バウンドをサポートするには、各タイルが 2 つの入力ストリームを使用し、ストールすることなく毎サイクル 1 つの OP を計算する必要があります。最終的な出力タイルは、2 サイクルごとに 4 つのサンプルを供給して、必要なスループットを達成する必要があります。デザインの詳細は、次で説明します。