• 検索結果がありません。

IFFT

ドキュメント内 Model Composer ユーザー ガイド (ページ 140-147)

入力データに対して逆高速フーリエ変換 (IFFT) を実行し、自然な順序の全精度出力データを生成します。このブロッ クは、出力データをスケーリングし、ビット増加を回避するために使用できます。ビット順が逆の出力を生成するこ ともできます。FFT インプリメンテーションは、パフォーマンスを向上するよう最適化するか、またはリソースを削 減するよう最適化できます。IFFT の変換長は、23 ~ 216 の範囲内の 2 のべき乗にする必要があります。

ライブラリ

Digital Signal Processing

説明

IFFT ブロックは、入力配列の最初の次元で N ポイント逆離散フーリエ変換 (DFT) を実行します。IFFT の変換長 N は、入力配列の要素数と同じになります。N の値は、8 ~ 65536 の範囲の 2 のべき乗にする必要があります。入力デ ータは N 複素値のベクターで、それぞれの値が 2 の補数 (実数および虚数) として記述されます。このブロックでは、

固定小数点型の入力のみがサポートされます。

IFFT ブロックの出力データは、自然な順序またはビット逆順で生成できます。出力を自然な順序にすると、メモリが 多く必要になるか、実行時間が長くなります。

このブロックは、逆 DFT を計算するため、周波数間引き (DIF) の基数 2 の分解を使用します。Radix-2 分解を使用し た N ポイント IFFT には log2 (N) 段あり、各段に N/2 Radix-2 バタフライが含まれます。N 要素の出力ベクターは、

実数および虚数の 2 の補数数で表されます。入力データは常に自然な順序で、出力データはビットが逆順または自然 な順序のいずれかになります。

アルゴリズム

IFFT は、サンプル サイズ N の逆離散フーリエ変換 (DFT) を計算するのに効率的なアルゴリズムです。

逆 DFT (Discrete Fourier Transform) は次の計算式で定義されます。

X

n

= ∑

k = 0N - 1

x

k

e - 2xi N nk,

k は 0 ~ N - 1 の範囲の整数です。

基数 2 の N ポイント IFFT アルゴリズムでは、逆 DFT が長さが N/2 の 2 つの逆 DFT に分割され、次のように反復さ れます。

S(k) = S

0

(k) + W

kN

. S

1

(k), k = 0 … N2 - 1;

S

0

(k)

S

1

(k)

S (k)

S (k+ ) N 2

Nk

W

+ + + _

S

0

(k)

S

1

(k)

S (k)

S (k+ ) N 2

Nk

W

X23162-082719

データ型サポート

• 入力:

入力には、ベクター (N) または行行列 [1 x N] を使用できます。入力の要素数は 2 のべき乗で、8 ~ 65536 間にす る必要があります。

入力は、自然な順序であると想定されます。

IFFT ブロックでは、符号付き固定小数点型を使用して表記した複素型の入力データのみがサポートされます。入 力データを複素数にする必要があるのは、インプリメンテーションのためではなく、IFFT アルゴリズムのためで す。

• 出力:

出力は、入力と同じ次元およびデータ型の複素型の値になります。

このブロックは、スケーリングされていない全精度の出力データ、またはビット増加のないようにスケーリング された出力データを生成します。ビット増加を回避するには、[Divide output by (2 * transform length)] パラメータ ーを選択します。

出力データは、自然な順序またはビット逆順になります。

パラメーター

• [Output in bit-reversed order]: 出力を自然な順序ではなくビット逆順にします。自然な順序のデータにすると、パ イプライン ストリーミング I/O アーキテクチャの場合はメモリ使用量が増え、基数 2 のバースト I/O アーキテク チャの場合は実行時間が長くなります。

• [Divide output by (2 * transform length)]: このオプションを選択すると、入力データと比較してビット増加がない ように出力データがスケーリングされます。出力スケーリングは、データを (2 * 変換長) で除算すると達成されま す。

• [Optimize for Performance or Resources]: IFFT アルゴリズムは、パフォーマンスを向上するため、デフォルトでは パイプライン ストリーミング I/O アーキテクチャを使用してインプリメントされますが、パフォーマンスを上げ るとリソース使用量が増加します。FFT を基数 2 のバースト I/O アーキテクチャを使用してインプリメントし、

リソースを削減するよう最適化することもできます。

Integral Image

入力の積分画像を計算します。各出力ピクセルは、入力画像の対応するピクセルとその上および左にあるピクセルの 合計になります。

付録 B: Model Composer ブロック ライブラリ

ライブラリ 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 の合計) に置き換えます。

データ型サポート

入力は、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] のいずれかのプロトコ ルを使用してインプリメントできます。

• ビデオ信号は、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 つの出力ポートを含むサブシステムがサポ ートされています。

データ型サポート

付録 B: Model Composer ブロック ライブラリ

パラメーター

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 プロトコルを指定します。

[Mode] パラメーターの設定は、次のとおりです。

表 52: [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 プロトコルを指定します。

[Mode] パラメーターの設定は、次のとおりです。

表 53: [Mode] パラメーター

設定 説明

[Default] ポートがスカラーの場合は [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] です。

付録 B: Model Composer ブロック ライブラリ

表 53: [Mode] パラメーター (続き)

設定 説明

[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] は次のようになります。オプションの各 OS の手順は次のと

おりです。

表 54: [Video Component] オプション

[Video Format] ビデオの色成分オプション

[Mono] なし

[YUV 4:2:2] [Y]、[U]、[V]

[YUV 4:4:4] [Y]、[U]、[V]

[RGB] [R]、[G]、[B]

ドキュメント内 Model Composer ユーザー ガイド (ページ 140-147)