表の 2 行目は開始間隔 (II) を示しています。クロック周波数 300 MHz でスループット係数 4 および 8 の場合、デザ インの開始感間隔は、スループット係数 1 の場合の開始間隔と比較すると、約 4 および約 8 の除数でそれぞれ削減さ れます。このため、スループット係数が増加すると、リソース使用量が増加します。
スループット係数が 1 の場合、II は 41,848 です。このデザインの入力は 200x200 ピクセル画像フレームで、II の値 はフレーム全体を処理するクロック数を示します。このような場合、1 ピクセルを処理するのにかかるクロック サイ クルは 1 を少し超えます。スループット係数を増加すると、1 フレームを処理する II が低下するので、アプリケーシ ョンがクロックサイクルごとに 1 ピクセル以上処理するようになります。
表 6: スループット制御に制限のある Computer Vision ブロック (続き)
ブロック名 スループット制御の制限
Sobel Filter フィルター サイズが 3x3 および 5x5 の場合、スループット係数
に 1、2、4、8 を使用できます。フィルター サイズが 7x7 の場 合、スループット係数はサポートされません。
Stereo Block Matching サポートされません。
Warp Transform サポートされません。
インターフェイス仕様の定義
Simulink®環境内では、デザインの入力と出力は Inport ブロックおよび Outport ブロックを使用して定義されます。
ただし、ソフトウェア アルゴリズムからハードウェアの RTL インプリメンテーションに移動する際に、特定の入力/
出力 (I/O) プロトコルを使用して、これらの入力および出力ポートをデザインインターフェイスのポートにマップす
る必要があり、実際には通常遅延が発生します。デザインの開発の一部として、デザインがその他のデザインやシス テム内の IP とどのように通信するかを指定します。これには、デザインのインターフェイスを指定し、数個の標準 I/
O プロトコルから選択します。
Model Composer では、インターフェイス仕様 (Interface Spec) ブロックを使用して、この I/O プロトコルを定義する 必要があります。
インターフェイス合成は、デザイン内の最上位サブシステム モジュールでのみサポートされ、Model Composer で C ++ コードが生成されます。次の図では、Edge Detection モジュールが最上位サブシステム モジュールで、Interface Spec ブロックをこのモジュール内にインスタンシエートする必要があります。
ヒント: その他のサブシステム モジュールや入れ子のサブシステム モジュールにインスタンシエートされた Interface Spec ブロックは無視されます。
第 4 章: 出力の生成
図 26: 最上位サブシステム モジュール
Interface Spec ブロックでは、デザインにインスタンシエートするインターフェイスを制御できます。Interface Spec ブロックは出力のコード生成にのみ影響し、デザインの Simulink シミュレーションには影響しません。Interface Spec ブロックをサブシステム モジュールに追加しない場合、Model Composer でデフォルト インターフェイスが割り当て られますが、ターゲット プラットフォームまたはデバイスには適切でないことがあります。このため、Interface Spec ブロックを使用して、サブシステム モジュールの要件を定義することをお勧めします。制御信号を指定するデフォル トの関数レベルのプロトコルは Handshake で、関数の戻り値のプロトコルは AXI4-Lite Slave です。デフォルトの I/O プロトコルは、スカラー ポートの場合は AXI4-Lite Slave、スカラー以外のポートの場合は AXI4-Stream です。
Interface Spec ブロックでは、インターフェイス合成で関数定義からどのように RTL ポートを作成するかを指定しま
す。RTL インプリメンテーションのポートは次のものから導出されます。
• モジュールの制御信号を定義する関数レベルのプロトコル。
• 関数入力および出力引数、および戻り値。
• 関数によりアクセスされ、スコープ外部で定義されるグローバル変数。
注記: グローバル変数がアクセスされても、すべての読み出しおよび書き込みがサブシステムのローカルである場 合は、リソースがデザイン内に作成されるので、ポートを定義する必要はありません。
第 4 章: 出力の生成
図 27: Interface Spec ブロック
Interface Spec ブロックには、次の 3 つのタブが含まれます。
• [Function Protocol]: ブロック レベルのインターフェイス プロトコルで、IP にデータ処理を開始するタイミングを
指示する信号ポートをサブシステムに追加します。IP では、新しいデータを受信するのか、演算を終了したのか、
アイドル状態なのかを示すためにも使用されます。
• [Input Ports]: サブシステム内の入力ポートが検出され、これらのポートのインターフェイス プロトコルを指定で きます。
• [Output Ports]: サブシステム内の出力ポートが検出され、これらのポートのインターフェイス プロトコルを指定
できます。
重要: Interface Spec ブロックでは、現在のところ、サブシステム モジュールに入力ポート 8 つ、出力ポート 8 つまで 含めることができます。
Interface Spec ブロックが表示され、次の関数または I/O ポート プロトコルの機能またはパラメーターを設定できる ようになります。
表 7: [Function Protocol] タブ
属性 説明
Mode サブシステム モジュールに制御信号を追加するためのブロック レベルのプロトコル を指定します。サポートされるブロック レベルのプロトコルは、次のとおりです。
• [AXI4-Lite Slave]: 戻り値のポートを AXI4-Lite Slave インタースレーブフェイス としてインプリメントし、Handshake プロトコルで定義されたブロック レベルの 制御ポートを追加します。これはデフォルトの関数プロトコルです。
• [Handshake]: 入力処理の start、デザインの idle、done ステート、新しい入
力データの ready など、関数のブロック レベルの制御ポートを定義します。
• [No block-level I/O protocol]: サブシステムに制御ポートは追加されません。
Bundle AXI4-Lite Slave モードの場合にのみ有効になります。複数のポートを同じインターフ
ェイスにまとめることを示します。<name> で指定します (スペースおよび特殊文字 は使用不可)。
表 8: [Input ports]/[Output ports] タブ
属性 説明
Name ポート名が表示されます。ここからは変更できません。
第 4 章: 出力の生成
表 8: [Input ports]/[Output ports] タブ (続き)
属性 説明
Mode ポートレベル I/O プロトコルを指定します。サポートされるポート レベルのプロト コルは、次のとおりです。
• [Default]: スカラー ポートの場合は AXI4-Lite Slave インターフェイス、スカラー 以外のポートの場合は AXI4-Stream インターフェイスが使用されます。
• [AXI4-Stream]: 高速ストリーミング データ用にポートが AXI4-Stream インター フェイスとしてインプリメントされます。
• [AXI4-Stream (video)]: ポートが AXI4-Stream インターフェイスとしてインプリ メントされます。[Video Format] および [Video Component] 属性も指定できま す。
• [AXI4-Lite Slave]: ポートが AXI4-Lite Slave インターフェイスの一部としてイン プリメントされます。同じ名前の [Bundle] 名の入力ポートまたは出力ポートが AXI4-Lite Slave インタースレーブフェイスにまとめられます 。
• [FIFO]: ポートが標準 FIFO インターフェイスでインプリメントされ、アクティブ
Low FIFO の empty および full 制御信号が関連付けられたデータ入力および出力 がまとめられます。
注記: [FIFO] インターフェイスは、メモリ エレメントへのアクセスが常に順次で、
ランダム アクセスが不要な場合に最も効率的です。連続していないアドレス位置 から読み出す場合は、[Block RAM] インターフェイスを使用します。
• [Constant]: 入力ポートに適用されるデータは関数演算中は安定したままで変化
しませんが、最適化で削除可能な定数値ではありません。これを選択すると、内 部最適化で不要なレジスタを削除できるようになります。
• [Valid Port]: データ ポートを、データが読み出しまたは書き込みに対して有効に
なったことを示す valid ポートと共にインプリメントします。
• [No protocol]: プロトコルなし。入力データ信号にも出力データ信号にも、データ
の読み出しまたは書き込みをいつ実行するかを示す制御ポートは含まれません。
• [Block RAM]: 配列引数を標準 RAM インターフェイスとしてインプリメントしま
す。Vivado IP インテグレーターで生成された IP を使用する場合、メモリ インタ ーフェイスはシングル ポートとして表示されます。
Bundle 色成分が複数の [AXI4-Stream (video)] インターフェイスを使用する場合に設定でき
ます。この場合、色成分ごとに 1 つのポートがあり、ポートに同じバンドル名 (<name>) を指定して、同じ [AXI4-Stream (video)] インターフェイスにまとめられる ようにします。
AXI4-Lite Slave モードの場合も設定できます。同じバンドル名 (<name>) の付いたイ ンターフェイス ポートがすべて同じ AXI4-Lite Slave インターフェイスにまとめられ ます。
Offset AXI4-Lite Slave モードの場合にのみ有効になります。AXI4-Lite Slave アドレス マッ
プのポートに関連するアドレス オフセットを指定します。オフセットは負以外の整 数で指定します。デフォルト値は 0 です。
Video Format [AXI4-Stream (video)] モードの場合にのみ有効になります。このパラメーターでは、
ビデオ ストリームのカラー フォーマットを指定します。有効なフォーマットは、次の とおりです。
• [YUV 4:2:2]: 削減されたカラー コンテントの明るさ (輝度) および色 (クロミナン
ス) に基づくビデオ フォーマット。
• [YUV 4:4:4]: フル カラー コンテントの明るさ (輝度) および色 (クロミナンス) に 基づくビデオ フォーマット。
• [RGB]: 赤、青、緑の色信号に基づくビデオ フォーマット。
• [Mono]: ビデオのオーディオ フォーマット。
第 4 章: 出力の生成
表 8: [Input ports]/[Output ports] タブ (続き)
属性 説明
Video Component [AXI4-Stream (video)] モードの場合にのみ有効になります。複数の色成分を使用す
るビデオ フォーマットの色成分を指定します。有効な値は、次のとおりです。
• [Y, U, V]: YUV ビデオ フォーマットの成分の 1 つを指定します。
• [R, G, B]: RGB ビデオ フォーマットの成分の 1 つを指定します。
ポート レベルのインターフェイス プロトコルを選択する場合は、次に注意してください。
• スカラー ポートは、[Default]、[AXI4-Lite Slave]、[Constant]、[Valid Port]、[No protocol] のいずれかのプロトコ ルを使用してインプリメントできます。
• 大型配列または行列のポートでは、AXI4-Stream、FIFO、または AXI4-Stream (ビデオ) などのストリーミング プ ロトコルを使用する必要があります。
• ビデオ信号は、AXI4-Stream (ビデオ) インターフェイスを使用して転送できます。この場合は、ビデオ フォーマ ットを YUV 4:2:2、YUV 4:4:4、RGB、または Mono に指定する必要もあります。色成分が複数のビデオ フォーマ ットの場合は、複数のポートを同じ信号バンドルに割り当て、色成分を送信するポートを指定する必要がありま す。ビデオ信号を構成するポートすべては、1 つの AXI4-Stream インターフェイス (開始フレームと行末の側帯波 信号を含む) でインプリメントされます。詳細は、『AXI4-Stream Video IP およびシステム デザイン ガイド』
(UG934) を参照してください。