入力の最初の次元で IFFT (Inverse Fast Fourier Transform) を計算します。IFFT インプリメンテーションには Radix-2 バーストまたはパイプラインフローを使用します。IFFT 長は 2 のべき乗にする必要があります。
ライブラリ
Digital Signal Processing
説明
N ポイント フォワード DFT (N は 2 のべき乗にする必要あり) を計算します。入力が固定小数点の場合、入力データ は実数および虚数の 2 の補数として記述される N 複素数値のベクターです。入力長によって、IFFT の変換長 (N) が決 まります。
このブロックは、逆 DFT を計算する DIF (Decimation in Frequency) 方法を使用した Radix-2 分解を使用します。
Radix-2 分解を使用した N ポイント IFFT には log2 (N) 段あり、各段に N/2 Radix-2 バタフライが含まれます。ビット 増加のない N 要素の出力ベクターは、実数および虚数の 2 の補数のコンポーネント数で示されます。入力データが自 然な順序の場合、出力データは自然な順序 (Natural Order) またはビット/桁が逆順 (Bit/Digit Reversed Order) のいず
付録 B: Model Composer ブロック ライブラリ
アルゴリズム
IFFT は、正の整数の 2 のべき乗であるサンプル サイズの逆 DFT (Discrete Fourier Transform) を計算する計算効率に 優れたアルゴリズムです。
逆 DFT (Discrete Fourier Transform) は次の計算式で定義されます。
k は 0 ~ N - 1 の範囲の整数です。
Radix-2 IFFT アルゴリズムでは、逆 DFT がそれぞれの長さが N/2 の 2 つの逆 DFT に分割され、次のように繰り返さ れます。
データ型サポート
• 次元: 入力は 1 次元行列またはベクターである必要があります。
• データ型: 入力では、符号付き固定小数点型の信号がサポートされます。その他のデータ型はサポートされませ ん。
• 複素数のサポート: あり
出力は入力と同じ次元とデータ型で、[2 * Divide by IFFT length] オプションに基づいて、ビット増加ありおよびなし になります。
付録 B: Model Composer ブロック ライブラリ
パラメーター
• 出力データは、[Bit/Digit Reversed Order] または [Natural Order] のいずれかになります。[Natural Order] を選択す ると、ブロックで使用されるメモリが増加します。
• [Pipeline] コンフィギュレーションを選択すると、パフォーマンスが向上しますが、パイプラインなしのオプショ ンに比べると、より多くのリソースが使用されます。
• [2* (Divide by IFFT length)] オプションを選択すると、出力ビット幅が入力ビット幅と同じになるほか、データ オ ーバーフローを処理するために保守的なスケーリングに設定されます。
このブロックの RTL 協調シミュレーションの詳細は、RTL IP ベースのブロック を参照してください。
Integral Image
入力の積分画像を計算します。各出力ピクセルは、入力画像の対応するピクセルとその上および左にあるピクセルの 合計になります。
ライブラリ Computer Vision
説明
Integral Image ブロックは、入力強度画像の積分画像 (unit8 型グレースケールの M x N 行列) を計算します。画像の部 分領域の合計を、領域のサイズにかかわらず、一定の時間で高速に計算できます。積分画像の各ピクセルは、入力画 像の対応するピクセルとその上および左にあるピクセルの合計になります。積分画像の使用例は、積分画像を顔認識 アプリケーション用の高速四角形計算機能に使用した『Robust Real-Time Face Detection』 (Paul Viola および Micheal J. Jones 著) という文献を参照してください。
図 53: Integral Image ブロック
上の図のデザインで入力の中央ピクセル 5 をテスト ピクセルとすると、その左と上のピクセルは 3、8、および 1 で す。Integral Image ブロックは、入力のピクセル 5 を出力で 17 (5、3、8、1 の合計) に置き換えます。
付録 B: Model Composer ブロック ライブラリ
データ型サポート
入力は、unit8 型の実数値および 2 次元データにする必要があります。出力のデータ型は unit21 で、次元は入力と同 じになります。
パラメーター
設定するパラメーターはありません。
Interface Spec
サブシステムの RTL インターフェイスを指定します。
ライブラリ Tools
説明
Interface Spec ブロックをサブシステムにインスタンシエートすると、そのサブシステムのポートに合成する RTL イ
ンターフェイスを指定できます。これは、Model Composer で生成された C++ モデルを Vivado® HLS で RTL モデル
(IP) に合成する際のコード生成と合成にのみ影響します。デザインの Simulink®シミュレーションには影響しませ
ん。デザインに Interface Spec ブロックがない場合は、Model Composer のデフォルトのインターフェイスが使用さ れます。インターフェイスの合成は、C++ コードを生成するサブシステムでのみサポートされます。そのため、C++
コードを生成するサブシステム内に組み込まれているサブシステムに Interface Spec ブロックがインスタンシエート されている場合、その Interface Spec ブロックは無視されます。
Interface Spec ブロックは、次のように使用します。
1. Interface Spec ブロックは、C++ コードを生成するサブシステムにインスタンシエートします。[Input ports] タブ
に、親サブシステムの各入力ポートがそれぞれの行に表示されます。同様に、[Output ports] タブにも親サブシ ステムの各出力ポートがそれぞれの行に表示されます。
2. [Function Protocol]、[Input ports]、および [Output ports] タブに値を入力します。
Interface Spec ブロックには、次の情報が含まれます。
• ブロック レベルのインターフェイス プロトコル。データ処理を開始するタイミングを IP に伝えるために使用し ます。IP では、新しいデータを受信するのか、演算を終了したのか、アイドル状態なのかを示すためにも使用さ れます。
• 親サブシステムの入力ポートごとのポート レベルのインターフェイス プロトコル。
• 親サブシステムの出力ポートごとのポート レベルのインターフェイス プロトコル。
ポート レベルのインターフェイス プロトコルを選択する場合は、次に注意してください。
• 大型配列または行列のポートでは、AXI4-Stream、FIFO、または AXI4-Stream (ビデオ) などのストリーミングプ ロトコルを使用する必要があります。
• スカラーポートは、[Default]、[AXI4-Lite Slave]、[Constant]、[Valid Port]、[No protocol] のいずれかのプロトコ ルを使用してインプリメントできます。
付録 B: Model Composer ブロック ライブラリ
• ビデオ信号は、AXI4-Stream (ビデオ) インターフェイスを使用して転送できます。この場合、ビデオフォーマッ トを YUV 4:2:2、YUV 4:4:4、RGB、または Mono に指定する必要もあります。ビデオ フォーマットの色成分が複 数ある場合は、どのポートでどの色成分を転送するかを指定し、これらの 3 つのポートの [Bundle] 属性に同じ名 前を割り当てる必要があります。ビデオ信号を構成するすべてのポート (3 または 1) は、開始フレームと行末側帯 波信号を含む 1 つの AXI4-Stream インターフェイスでインプリメントされます。『AXI4-Stream Video IP およびシ
ステムデザインガイド』 (UG934) に説明されている仕様に従ってください。
• AXI4-Lite Slave インタースレーブフェイスでは 、1 つまたは複数のポートをインプリメントできます。
• 詳細は、『Vivado Design Suite ユーザー ガイド: 高位合成』 (UG902) の「インターフェイス合成」を参照してくだ さい。
Interface Spec ブロックでは、現在のところ、最大 8 つの入力ポートと 8 つの出力ポートを含むサブシステムがサポ ートされています。
データ型サポート
Interface Spec ブロックでは、データ型は関係ありません。
パラメーター
Interface Spec ブロックのパラメーターは、次の 3 種類に分けることができます。
• 関数プロトコルに適用されるパラメーター。これらは、[Mode] や [Bundle] のことです。GUI のダイアログ ボック スでは、[Functional Protocol] タブに表示されます。
• 入力ポートに適用されるパラメーター。入力ポートごとに、[Mode]、[Bundle]、[Offset]、[Video Format]、および [Video Component] のパラメーター セットが 1 つずつあります。[Block Parameter] ダイアログ ボックスでは、こ れらのパラメーターは [Input ports] タブに表示されます。
• 出力ポートに適用されるパラメーター。出力ポートごとに、[Mode]、[Bundle]、[Offset]、[Video Format]、および [Video Component] のパラメーター セットが 1 つずつあります。GUI のダイアログ ボックスでは、[Output ports]
タブに表示されます。
図 54: [Function Protocol] パラメーター
[Function Protocol] タブのパラメーターは、次のとおりです。
• [Mode]:
[Mode] パラメーターは、ブロック レベルの I/O プロトコルを指定します。
付録 B: Model Composer ブロック ライブラリ
表 49: [Mode] パラメーター
設定 説明
AXI4-Lite Slave AXI4-Lite Slave をブロック レベルの I/O プロトコルとして指定しま
す。
Handshake ハンドシェイク プロトコルをブロック レベルの I/O プロトコルとし
て指定します。
No block-level I/O Protocol ブロック レベルの I/O プロトコルなしと指定します。
関数プロトコルのデフォルトは、[AXI4-Lite Slave] です。ただし、DUT にスカラー ポートがない場合は、
[Handshake] がデフォルトの関数プロトコルとして選択されます。
• [Bundle]:
[Bundle] パラメーターは AXI4-Lite Slave インタースレーブフェイスの 場合に使用し、複数のポートを同じインタ ーフェイスにまとめます。[Bundle] には、C 言語で有効な識別子を入力します (スペースおよび特殊文字は使用不 可)。
図 55: [Input ports] タブ
図 56: [Output ports] タブ
[Input ports] および [Output ports] タブのパラメーターは、次のとおりです。
• [Mode]:
[Mode] パラメーターは、入力ポートまたは出力ポートの I/O プロトコルを指定します。
付録 B: Model Composer ブロック ライブラリ
[Mode] パラメーターの設定は、次のとおりです。
表 50: [Mode] パラメーター
設定 説明
デフォルト ポートがスカラーの場合は [AXI4-Lite Slave]、スカラー以外の場合は [AXI4-Stream] が使用されます。
AXI4-Stream [AXI4-Stream] プロトコルが使用されます。
AXI4-Stream (video) [AXI4-Stream (video)] プロトコルが使用されます。指定できるパラメー
ターは、[Bundle]、[Video Format]、および [Video Component] です。
AXI4-Lite Slave [AXI4-Lite Slave] プロトコルが使用されます。指定できるパラメーター
は、[Bundle] および [Offset] です。
FIFO 要素が順次アクセスされる配列のプロトコルが使用されます。
Valid port Valid ポートのみを持つハンドシェイク プロトコルが使用されます。
Constant ポートに I/O プロトコルは追加されません。これは、デバイスがリセット
モードのときにのみ変化するコンフィギュレーション入力用のモードで す。
このモードは、[Input ports] にのみ適用されます。
No protocol ポートに I/O プロトコルは追加されません。
Block RAM [Block RAM] インターフェイス プロトコルが使用されます。
• [Bundle]:
[Bundle] パラメーターは入力ポートまたは出力ポートに適用され、色成分が複数ある [AXI4-Stream (video)] インタ ーフェイスを選択した場合に設定できます。色成分ごとに 1 つのポートがあるので、これらのポートの [Bundle]
属性に同じ名前を指定して、同じ [AXI4-Stream (video)] インターフェイスにまとめられるようにします。
このパラメーターは、[AXI4-Lite Slave] インターフェイスを指定した場合にも使用され、[Bundle] 属性に同じ名前 を指定したポートが同じ AXI4-Lite Slave インターフェイスにまとめられます。
[Bundle] には、C 言語で有効な識別子を入力します (スペースおよび特殊文字は使用不可)。
• [Offset]:
[Offset] パラメーターは入力ポートまたは出力ポートに適用され、[AXI4-Lite Slave] インターフェイスを指定した 場合に使用されます。[AXI4-Lite Slave] アドレス マップ内のポートのアドレス オフセットを指定します。
• [Video Format]:
[Video Format] パラメーターは入力ポートまたは出力ポートに適用され、ビデオ信号の色フォーマットを指定しま す。[AXI4-Stream (video)] インターフェイスの場合にのみ設定できます。オプションは、[Mono]、[YUV 4:2:2]、 [YUV 4:4:4]、および [RGB] です。
• [Video Component]:
[VideoComponent] パラメーターは、入力ポートまたは出力ポートに適用され、ビデオ信号の色成分を指定しま す。色成分が複数ある [Video Format] を使用する [AXI4-Stream (video)] インターフェイスにのみ適用されます。
オプションは、[Mono]、[YUV 4:2:2]、[YUV 4:4:4]、および [RGB] です。
[Video Format] の設定によって [Video Component] は次のようになります。
付録 B: Model Composer ブロック ライブラリ
表 51: [Video Component] オプション
[Video Format] [Video Component] オプション
Mono 該当なし
YUV 4:2:2 Y、U、V
YUV 4:4:4 Y、U、V
RGB R、G、B