直交周波数分割多重 (OFDM) は、DVB (Digital Video Broadcasting) 規格から最新の 5G NR (New Radio) アクセス ネットワーク ( 3GPP Std TS 38.211 ) まで、多くのワイヤレス通信システムに採用されています。最近のワイヤレス システムでは多くの場合、各アンテナにさまざまなサブキャリア間隔のコンポーネント キャリアが動的に割り当てられす。そのため、FFT のサイズをブロックごとに設定できる必要があります。また、システム帯域幅の要件を満たすために、FFT には十分に高いスループットが必要です。2 つの 100MHz キャリアおよび 200MHz の占有帯域幅を使用する 64 アンテナの 5G NR システムでは、1792 回の 4096 ポイント FFT を 0.5ms 以内に実行する必要があります。この処理能力は、1792 x 4096/0.5ms = 14.68GSPS の最小スループットに相当します。491MHz で動作するプログラマブル ロジック (PL) 内の完全にパイプライン化されたアーキテクチャを使用した場合、FFT でこのスループットを達成するには、少なくとも 14.68GSPS/491.52MSPS = 30 インスタンスが必要です。この場合、大量のロジック リソースが FFT によって占有されます。
AI エンジンは、5G ワイヤレスを含むさまざまなユース ケースにおける大量の演算処理に対応するよう設計されています。1 つの AI エンジン タイルは、1 つの AI エンジン、32KB のデータ メモリ、および自動データ転送用の 2 つの DMA エンジンで構成されます。各 AI エンジンは、1 クロック サイクルで 32 回の実数×実数 16 ビット積和 (MAC) 演算を実行できるベクター プロセッサを備えています。AI エンジン内のメモリ アクセス ユニットは、ベクター プロセッサの処理能力に合わせて、512 ビットのオペランドの読み出しと 256 ビットの演算結果の書き込みを 1 クロック サイクルで実行します。1 つの Versal AI コア デバイスは、コンパイル時にユーザーが指定するデータフローに従ってカスケード接続バスを介して相互接続される、数百個の AI エンジン タイル、AXI ストリーム、および共有ローカル メモリを備えています。AI エンジンの詳細は、 『ザイリンクスの AI エンジンとそのアプリケーション』 (WP506: 英語版、日本語版) を参照してください。
このアプリケーション ノートでは、5 つの AI エンジンと 20 個のメモリ バンクにスループット 1.85GSPS の FFT を実装する方法を説明します。入力は、それぞれ 1024 個のサンプルからなる 4 つのデータ ブロックと、実行動作を指定する 3 ビットの制御ワードで構成されます (次の表参照)。
制御ワード | 動作 | FFT/IFFT のサイズ | データ ブロックの数 |
---|---|---|---|
000 | FFT | 4096 | 1 |
001 | FFT | 2048 | 2 |
010 | FFT | 1024 | 4 |
011 | FFT | 512 | 8 |
100 | IFFT | 4096 | 1 |
101 | IFFT | 2048 | 2 |
110 | IFFT | 1024 | 4 |
111 | IFFT | 512 | 8 |
パケット スイッチングを使用して、すべての入力データ ブロックを、PL から AI エンジンへの 2 本の 1GSPS AXI ストリームにマルチプレクスします。出力は、FFT の 1.85GSPS のスループットに合わせて、2 本の 1GSPS AXI ストリーム上で PL に戻されます。詳細な入力および出力フォーマットを、それぞれ 図 1 と 図 3 に示します。2 つの FFT モジュールは 5x2 AI エンジン アレイに格納でき、大規模なシステムで高い拡張性を確保できます。上記の 64 アンテナ 200MHz 5G NR システムの例で、14.68GSPS のスループットを達成するには 5x8=40 個の AI エンジン タイルの配列内に 8 つの FFT モジュールが必要ですが、これはザイリンクス VC1902 デバイスで利用可能なリソースのわずか 10% にすぎず、ランダム アクセス チャネル処理、ビームフォーミング、チャネル フィルタリングなど、高い演算処理能力を必要とするその他の機能にも問題なく対応できます。
AI エンジン デザインは Versal AI コア デバイスで最小 1GHz で動作することが確認されており、タイミング クロージャについて心配する必要はありません。また、AI エンジン リファレンス デザインの C 関数を変更することで、遅延および位相補正、搬送波抽出、サブキャリア マップなど、より多くの機能を AI エンジンに統合できます。