xmcImportFunctionSettings コマンドでは、Model Composer のインポート関数機能のオプションを設定しま す。オプションは、名前と値を組み合わせた形式で指定します。現在のオプションは、次のとおりです。
• build: Model Composer のビルド環境を指定します。有効な値は次のとおりです。
○ release: デフォルトのビルド モード。指定した出力を生成し、シミュレーションを実行できるようにしま
す。
○ debug: サードパーティのコンパイラに統合して、インポートした C/C++ 関数を標準的なデバッグ機能を使用 してステップスルーして確認できるようにします。
• compiler: デバッグ目的に使用するサードパーティ コンパイラを指定します。有効な値は、次のとおりです。
○ default: GCC または MinGW コンパイラでコンパイルして、GDB デバッガーでデバッグします。GCC また は MinGW、および GDB は、Model Composer の標準インストールに含まれます。
○ Visual Studio: Visual Studio で C/C++ コードをコンパイルおよびデバッグします。
• blocks: デバッグ プロセス中に確認するブロックを指定します。オプションを指定しない場合は、現在のデザイ
ンにインポートした関数ブロックのすべてがデバッグに含まれます。次のコマンド形式を使用すると、任意の数 のブロックを指定できます。
xmcImportFunctionSettings('blocks', {'block1','block2', ...})
第 3 章: C/C++ コードのカスタム ブロックとしてのインポート
次のコマンド形式を使用すると、ブロックの選択を解除することもできます。
xmcImportFunctionSettings('blocks', {})
MATLAB の gcb コマンドを使用すると、特定ブロックのブロック パスを取得できます。ブロックは、1 つしか指
定していなかったとしても、リストとして指定する必要があります。次に例を示します。
xmcImportFunctionSettings('blocks', {'xmc_optical_flow/Lucas-Kanade'})
• Visual Studio Location: Visual Studio ツールへのパスを指定します。Model Composer ではデフォルトで 標準ディレクトリから Visual Studio を自動的に検索しますが、インストール ディレクトリが標準ディレクトリに ない場合は、このオプションでディレクトリを指定することもできます。
• vcvars: コマンド ライン処理用の Visual Studio 環境を設定するのに使用する vcvarsall.bat ファイルのディ レクトリを指定します。このオプションは、Visual Studio Locationオプションで標準ディレクトリにない ツールのディレクトリを指定した場合に、vcvarsall.bat ファイルを指定するために使用します。
ヒント: xmcImportFunctionSettings で指定した設定は、Model Composer を終了するまで設定されたままにな ります。変更する場合は、xmcImportFunctionSettings を使用します。
第 3 章: C/C++ コードのカスタム ブロックとしてのインポート
第 4 章
出力の生成
概要
重要: Model Composer モデルから出力を生成するには、デザインの最上位にインスタンシエートされたサブシステム に Xilinx Model Composer ブロックとサポートされている Simulink ブロックセットのみを使用可能です。Model
Composer の出力生成に使用可能な Simulink ブロックは、Xilinx Model Composer ブロック ライブラリに含まれます。
リストの内容は、サポートされる Simulink ブロックを参照してください。
Model Composer モデルではデザインが自動的に下位表記にコンパイルされますが、コンパイルを設定して出力を生 成するには、Model Composer モデルに Model Composer Hub ブロックを追加する必要があります。Model
Composer では次の 3 つの出力タイプを作成でき、これは Model Composer Hub ブロックの [Export type] 設定で定義 できます。
• IP カタログ
• System Generator
• C++ コード
Model Composer Hub ブロックの追加
Model Composer Hub ブロックはザイリンクス Model Composer ライブラリの [Tools] ブロックセットに含まれ、ライ ブラリ ブラウザーから Simulink® Editor のキャンバスにドラッグ アンド ドロップするとモデルに追加できます。
Model Composer Hub ブロックは、Simulink® 環境では仮想ブロックであり、物理的な目的はなく、コンパイルおよ
び出力用の指示子を指定するために使用します。
Model Composer Hub ブロックのブロック パラメーター ダイアログ ボックスは次のとおりです。
第 4 章: 出力の生成
図 22: Model Composer Hub ブロック
Model Composer Hub ブロックのダイアログ ボックスには、次の 3 つのタブが含まれています。
• [Compilation] タブ
○ [Target directory]: コンパイルされた結果を書き込む出力フォルダーを指定します。Model Composer で生成さ
れる出力には、多数のフォルダーおよびファイルが含まれることがあり、これらはすべて指定したディレクト リに書き込まれます。フォルダーは絶対パス (例: C:/Data/Code) か、現在の Model Composer モデルに相対的 なパス (例: ./code) で指定できます。
重要: Windows オペレーティング システムの場合は、[Target directory] のディレクトリにスペースを 含めることはで きません。
○ [Subsystem name]: 出力を生成するのに必要なモデルの最上位に含まれる Model Composer サブシステムの名
前を指定します。詳細は、最上位サブシステム モジュールの作成を参照してください。サブシステムには、イ ンターフェイス仕様の定義で説明するように、Interface Spec ブロックも必要です。このサブシステム名が生 成される出力ファイルの名前になります (例: subsystem_name.cpp、subsystem_name.h)。
ヒント: Interface Spec ブロックは、出力生成に必ず必要なわけではありませんが、デザインのインターフェイス仕様 を完全に制御するためには推奨されます。
○ [Export type]: Model Composer から出力可能なファイル タイプの 1 つを選択します。選択肢には、Vivado
Design Suite IP カタログに追加できる IP パッケージ、RTL ブロック デザインで使用できる System Generator ブロック、Vivado HLS で使用できる C++ コードがあります。
○ [Create and execute testbench]: シミュレーション テストベンチを作成して起動します。シミュレーションで
は、Simulink からの問題のなかった結果と新しくコンパイルしたデザインからの結果が比較されます。詳細 は、第 5 章: デザインのシミュレーションおよび検証を参照してください。
第 4 章: 出力の生成
- [Testbench stack size]: [Create and execute testbench] をオンにしている場合に、C シミュレーション (CSIM) で使用されるテストベンチ スタック フレームのサイズ (MB) を指定します。
ヒント: スタックに大型信号配列が割り当てられている場合やサブシステムの入れ子構造が深すぎる場合など、テス トベンチの実行用に割り当てられたデフォルトの 10 MB ではテストの実行には不十分な場合があります。この場 合、セグメントエラーや関連するエラーメッセージが表示され、テストがエラーになります。このような場合は、
スタック フレームのサイズを増加して、テストを再実行してください。
○ [Generate]: Model Composer モデルからの出力をコンパイルして書き出します。
• [Hardware] タブ
○ [Project device]: Model Composer モデルの現在のターゲット パーツまたはボード プラットフォームを定義し
ます。
○ 参照ボタン ([…]): [Device Chooser] ダイアログ ボックスを表示します。詳細は、[Device Chooser] ダイアログ ボックス を参照してください。
○ [FPGA Clock Frequency]: ザイリンクス デバイスのクロック周波数を MHz で指定します。この周波数は、ダウ
ンストリームのツール フローに渡されます。
○ [Throughput factor]: アプリケーションのデータ スループット要件を指定します。ハードウェアに関数をイン
プリメントするのに使用されるデータ リソース量が影響を受けます。
• [Feedback] タブ
○ [Connect]: ザイリンクス Model Composer ツールに関するフィードバックを送信したり、問題や困難な点を知
らせたり、ツールに対する改善点を提案したり、Model Composer ライブラリに新しいブロックを推奨したり できます。
ターゲット ディレクトリ、サブシステム モジュール、エクスポート タイプを指定したら、[Generate] ボタンをクリ ックして指定した出力を作成します。Model Composer では、C++ コードだけでなく、コードを検証するのに必要な ファイルおよび RTL への高位コードを合成するのに必要な指示子も生成されます。
ヒント: Model Composer Hub ブロックの設定を変更した場合は、[Apply] をクリックしてから [Generate] をクリック する必要があります。
インプリメンテーションのスループットの制御
概要
システムのスループットは、最も重要なデザイン条件の 1 つです。たとえば、High Definition ビデオ フレーム (1920x1080) を毎秒 30 フレームで処理するシステムを設計する場合、アプリケーションに必要なスループットは毎 秒 62,208,000 ピクセル (1920x1080x30) です。毎クロック 1 ピクセルを処理する場合 (ハードウェア用語では開始 間隔 (II) = 1 のこと)、デバイスには 62.2 MHz を超えるクロックが必要です。要件が変わって、4K ビデオ フレームを 毎秒 60 フレームで処理する必要がある場合、アプリケーションに必要なスループットは毎秒 497,664,000 ピクセル (3840x2160x60) で、デバイスには 497 MHz を超えるクロックが必要です。
ただし、実際には開始間隔 1 (II=1) は達成できない可能性があるので、必要なスループットを達成するためには、デ バイスのクロックをより高いレートにする必要があります。ワイヤレス通信などのその他のアプリケーションでは、
必要なスループットを達成するために必要なクロック周波数がデバイスで許容される最大クロック周波数を簡単に超 えることがあります。
第 4 章: 出力の生成
デバイスが動作するクロック周波数を増加せずにデザインのスループットを増加する必要がある場合 (デバイスで使 用可能な最大周波数よりも低いクロック周波数で動作する目的または消費電力を削減する目的で)、ザイリンクス FPGA のプログラマブル ロジックの利点を生かして、毎クロックでより多くのサンプルが処理される並列手法が使用 されます。Model Composer でスループット制御をすると、Simulink でデザインに構造的な変更を加えなくても、ユ ーザーがそれを実行できます。