モデルのインプリメンテーションを制御します。
説明
Vitis Model Composer Hub ブロックは、Vitis Model Composer の動作を制御します。
生成された出力のターゲット デザイン フロー、出力のディレクトリ パス、および必要なデバイスとデザイン クロック周波数は、次のページで指定できます。
- Hardware Selection ページ: デバイスまたはボードを選択します。
- Code Generation ページ: [Subsystem] を選択して Code directory を指定することにより、出力フローを選択します。サブシステムが HDL、HLS、AIE のいずれをターゲットにしているかによって、異なるオプションが表示されます。
- [Settings] パネルでは、デザインのその他の設定を指定します。
Library
AI Engine/Tools、HLS/Tools、Utilities/Code Generation。
データ型サポート
Vitis Model Composer Hub ブロックには、データ型は関係しません。
パラメーター
図 1.
Vitis Model Composer Hub ブロックのパラメーター
Vitis Model Composer Hub ブロックの各ページで設定可能なオプションは、次のとおりです。
- [Hardware Selection]
- 参照ボタン (…) をクリックして Device Chooser ダイアログ ボックスを開き、デザインでターゲットとするパーツ、ボード、またはプラットフォーム選択します。Vitis Model Composer は、Vivado のデータベースからボードおよびデバイス データを取得します。
- コード生成
- 左のリストから、コードを生成するサブシステム名を選択します。実行するコード生成のタイプ (HDL、HLS、AI エンジン) によって、異なる設定項目が表示されます。
- [AIE Settings]
-
- [AIE Compiler Options]
- AIE コンパイラに追加のコマンド ライン オプション (デバッグ オプション、実行ターゲット オプションなど) を渡ことができます。
- [AIE Simulator Options]
- AIE シミュレータに追加のコマンド ライン オプションを渡すことができます。
- [Create Testbench]
- Vitis Model Composer でコードを生成中にテスト ベクターが生成されるように指定します。
- [Run cycle-approximate AIE Simulation (SystemC) after code generation]
- このオプションは、Create testbench がオンの場合にのみ設定可能です。コード生成後に AIE シミュレーションを実行します。
- [Simulation timeout (cycles)]
- AIE シミュレーションを実行するサイクル数を指定します。デフォルト値は 50000 です。
- [Collect profiling statistics and enable 'printf' for debugging]
- 解析用にプロファイリング データを取得します。
- [Collect trace data for Vitis analyzer and viewing internal signals]
- AI エンジン デザイン内の信号のトレース データを収集し、Vitis アナライザーまたは Simulation Data Inspector でそれらのデータを表示します。
- [View AIE Simulation output and throughput]
- Simulation Data Inspector を起動し、AIE シミュレータでシミュレーションされた AI エンジン サブシステムの出力をプロットします。
- [Open Vitis Analyzer]
- クリックで Vitis アナライザーを起動します。このオプションは、[Collect Data for Vitis Analyzer] をオンにして AI エンジン シミュレーションを少なくとも 1 回実行した後にのみ設定可能です。
- [AIE Hardware Flow]
-
- [Generate for Hardware]
- このオプションをオンにして、[Generate] をクリックすると、次の設定に応じて libadf.a またはハードウェア検証コードが生成されます。
- [Generate libadf.a]
- オンにすると、Model Composer が AIE サブシステムのグラフ コードを生成し、AIE コンパイラでコンパイルして .libadf.a を生成します。
- [Generate Hardware Validation Code]
- オンにすると、Vitis Model Composer がハードウェアの検証に使用するコードを生成します。ハードウェア イメージを生成するには Target でプラットフォームを指定し、[AIE Settings] パネルで Create Testbench をオンにします。
- [HW System Type]
- 検証フロー ([Baremetal] または [Linux]) を選択します。
- [Target]
- ハードウェア検証フローのターゲットを指定します。
- [Common SW Dir]
- PetaLinux の共通イメージが格納されているフォルダーのパスを指定します。このオプションは、[Linux HW System Type] が選択されている場合にのみ有効になります。
- [Target SDK Dir]
- ターゲット SDK を含むフォルダーへのパスを指定します。このオプションは、[Linux HW System Type] が選択されている場合にのみ有効になります。
- [Run hardware emulation after code generation]
- オンにすると、コード生成後すぐにハードウェア エミュレーションが実行されます。
- [HDL Settings]
-
- [Compilation Type]
- コード生成を実行したときに生成するコンパイル結果のタイプを指定します。デフォルト コンパイル タイプは [IP Catalog] です。[IP Catalog] が選択されている場合、[Settings] ボタンをクリックすると、ダイアログ ボックスが開き、IP カタログに配置される IP の説明を追加できます。
- [Hardware Description]
- デザインのコンパイルで使用する HDL 言語を指定します。[VHDL] または [Verilog] を選択できます。
- [VHDL library]
- コードを生成する VHDL work ライブラリを指定します。デフォルト名は xil_defaultlib です。
- [Use STD_LOGIC type for Boolean or 1 bit wide gateways]
- デザインのハードウェア記述言語 (HDL) が VHDL の場合、このオプションをオンにすると、ブールまたは 1 ビット ポート (Gateway In または Gateway Out) が STD-LOGIC 型として宣言されます。このオプションをオフにすると、ブールまたは 1 ビット ポートは Vitis Model Composer でベクターとして解釈されます。 注記: このオプションをオンにしてコードの生成を実行し、ビヘイビアー シミュレーションを Vivado で実行しようとすると、エラボレーション段階でエラーが発生することがあります。
- [Synthesis strategy]
- ドロップダウン リストの定義済みストラテジから合成ストラテジを選択します。
- [Implementation strategy]
- ドロップダウン リストの定義済みストラテジからインプリメンテーション ストラテジを選択します。
- [Create testbench]
-
Vitis Model Composer で HDL テストベンチを作成するよう指定します。HDL シミュレータでテストベンチをシミュレーションし、コンパイルされたデザインのシミュレーション結果を Simulink シミュレーション結果と比較します。Vitis Model Composer では、デザインを Simulink でシミュレーションし、Gateway ブロックで検出される値を保存することにより、テスト ベクターを作成します。テストベンチの最上位 HDL ファイルの名前は、<name>_testbench.vhd/.v (<name> はテストするデザイン部分から導出された名前) です。 注記: ゲートウェイ (Gateway In または Gateway Out) が AXI4-Lite インターフェイスとして設定されているデザインに対しては、テストベンチ生成はサポートされません。
- [HDL Clock Settings]
-
- [Enable multiple clocks]
- デザインに複数のクロックがある場合、オンにする必要があります。オンにすると、コード生成エンジンにより、さまざまなサブシステムのクロック情報が該当するクロック タブから取得されます。オフの場合、デザインはシングル クロック デザインとして処理されます。
- [Number of clocks]
- デザインのクロック数を定義します。表示されるクロック タブの数は、クロックの数と同じになります。クロック タブごとに、サブシステムを選択し、そのサブシステムのクロック設定をする必要があります。
- [FPGA clock period (ns)]
-
システム クロックの周期を ns で指定します。値は整数である必要はありません。ここで指定した周期は、制約ファイルでグローバル PERIOD 制約として設定され、AMD インプリメンテーション ツールに渡されます。マルチサイクル パスは、この値の整数倍に制約されます。
- [Simulink system period (sec)]
- Simulink システム周期を秒で指定します。Simulink システム周期は、モデルに含まれるサンプル周期の最大公約数です。これらのサンプル周期は、ブロックのダイアログ ボックスで明示的に設定、Simulink の伝搬ルールに基づいて自動設定、またはこのオプションを使用してブロックのハードウェア オーバーサンプリング レートにより暗示的に設定します。最後のケースの場合、暗示されるサンプル時間は、Simulink のブロックで計測されるシミュレーション サンプル時間より高速になります。ハードウェアでは、オーバーサンプリング レートが 1 より大きいブロックは、その入力をデータよりも高速に処理します。たとえば、オーバーサンプリング レートが 8 の配列型乗算器ブロックでは、(Simulink) サンプル周期は Simulink の乗算器ブロックの実際のサンプル時間の 8 分の 1 になります。このパラメーターは、マスター ブロックでのみ変更できます。
- [Clock pin location]
- ハードウェア クロックのピン ロケーションを指定します。この情報は、制約ファイルを介して AMD インプリメンテーション ツールに渡されます。Vitis Model Composer デザインを大型 HDL デザインに組み込む場合は、このオプションを指定しないでください。
- [Provide clock enable clear pin]
-
Vitis Model Composer で最上位クロック ラッパーに
ce_clr
ポートが含められるよう指定します。ce_clr
信号は、クロック イネーブル生成ロジックをリセットするために使用されます。クロック イネーブル生成ロジックをリセットする機能により、デザインでデータパス サンプリングの開始の指定を動的に制御できます。
- [HDL Analysis]
-
- [Block icon display]
- コンパイルが完了した後でモデルの各ブロック アイコンに表示されるようにする情報のタイプを指定します。次に、さまざまな表示オプションについて説明します。
- デフォルト
- モデルの各ブロックにデフォルト ブロック アイコン情報が表示されます。ブロックのデフォルト アイコンは、xbsIndex ライブラリからのものです。図 2. [Default Block Icon]
- [Normalized Sample Periods]
- 各ブロックにすべての入力および出力ポートに対する正規化サンプル周期が表示されます。たとえば、Simulink システム周期が 4 に設定されており、ブロック ポートに伝搬されるサンプル周期が 4 の場合、このブロック ポートに表示される正規化周期は 1 になります。また、ブロック ポートに伝搬されるサンプル周期が 8 の場合、表示される正規化周期は 2 になります。このように、値が大きいほどレートが低速になります。図 3. [Normalized Sample Periods Icon]
- Sample frequencies (MHz)
- 各ブロックのサンプリング周波数を表示します。
- Pipeline stages
- 各ブロックの入力ポートからのレイテンシ情報を表示します。特定の上位ブロック (FFT、RS エンコーダー/デコーダー、Viterbi デコーダーなど) では、表示されるパイプライン段が正しくないことがあります。このような場合は、表示されるパイプライン情報を使用して、ブロックに入力から出力への組み合わせパスがあるかどうかを判断できます。たとえば、次の図の Up Sample ブロックには、入力から出力ポートへの組み合わせパスがあります。図 4. [Pipeline Stages]
- HDL port names
- モデルの各ブロックに各ポートの HDL ポート名が表示されます。
- Input data types
- モデルの各ブロックに各入力ポートのデータ型が表示されます。
- Output data types
- モデルの各ブロックに各出力ポートのデータ型が表示されます。
- [Update the model]
- 選択した [Block Icon type] を表示するようにモデルを更新します。
- [Perform Analysis]
- コンパイル時に解析 (タイミングまたはリソース) を Vitis Model Composer デザインで実行するかどうかを指定します。None を選択すると、タイミング解析またはリソース解析は実行されません。Post Synthesis を選択すると、デザインが Vivado ツールセットで合成された後に解析が実行されます。Post Implementation を選択すると、デザインが Vivado ツールセットでインプリメントされた後に解析が実行されます。
- [Analysis Type]
- 2 つの選択肢 (Timing および Resource) があります。生成が完了すると、[Timing Analyzer] ウィンドウまたは [Resource Analyzer] ウィンドウが開きます。
- [Launch]
- Analyzer type での選択に基づいて、[Timing Analyzer] ウィンドウまたは [Resource Analyzer] ウィンドウを開きます。Simulink モデルで解析を既に実行していて、Simulink モデルを前回の実行から変更していない場合にのみ、この操作が可能です。
- [Remote IP cache]
- Vitis Model Composer コンパイルの一部として Vivado 合成が実行されるたびに、デザインで IP キャッシュにアクセスします。コンパイルで合成用に IP インスタンスが生成され、Vivado 合成ツールで合成出力ファイルが生成されたときに、キャッシュ エリアにエントリが作成されます。IP を新しくカスタマイズしたときに同じプロパティが使用されていれば、IP インスタンスを再度合成する代わりに、キャッシュ内の合成出力ファイルがデザインの出力ディレクトリにコピーされます。ディスク キャッシュにアクセスすることで、デザイン プロセスの繰り返し実行にかかる時間を短縮できます。IP キャッシュは、HDL ライブラリで説明されています。
- [Create interface document]
- オンにして Generate ボタンをクリックすると、Vitis Model Composer でネットリストを生成するデザインを記述する HTM ファイルが作成されます。このファイルは、netlist フォルダーの documentation に含まれます。
- [Clear cache]
- リモート IP キャッシュをクリアします。デザインで多くの IP モジュールが使用されている場合は特に、IP キャッシュのサイズが大きくなる可能性があるため、キャッシュをクリアすることでディスク スペースを節約できます。
- [HDL Hardware Flow]
-
- [Generate for Hardware]
- このオプションをオンにして、[Generate] をクリックすると、次の設定に応じて .xo またはハードウェア検証コードが生成されます。
- [Generate .xo]
- オンにすると、Vitis Model Composer が HDL サブシステムのコードを生成し、Vitis HLS を使用して .xo にコンパイルします。
- [Generate Hardware Validation Code]
- オンにすると、Vitis Model Composer がハードウェアの検証に使用するコードを生成します。ハードウェア イメージを生成するには Target でプラットフォームを指定し、HDL Settings パネルで Create Testbench をオンにします。[HDL Hardware Flow] は AMD Versal™ デバイスでのみサポートされます。
- [HW System Type]
- 検証フロー ([Baremetal] または [Linux]) を選択します。
- [Target]
- ハードウェア検証フローのターゲットを指定します。
- [Common SW Dir]
- PetaLinux の共通イメージが格納されているフォルダーのパスを指定します。このオプションは、[Linux HW System Type] が選択されている場合にのみ有効になります。
- [Target SDK Dir]
- ターゲット SDK を含むフォルダーへのパスを指定します。このオプションは、[Linux HW System Type] が選択されている場合にのみ有効になります。
- [Generate (BOOT.BIN/SD card image) after code generation]
- オンにすると、コード生成後に BOOT.BIN (ベアメタル HW システム用) または SD カード イメージ (Linux HW システム用) が生成されます。
- [HLS Settings]
-
- [Target]
- [IP Catalog] を選択すると、デザインを Vivado IP カタログにエクスポートできます。C/C++ コードの生成後、Vitis 高位合成 (HLS) が起動して C コードが合成され、IP として Vivado IP カタログにエクスポート可能なプロジェクトが作成されます。HLS C++ コードを選択すると、デザイン モデルが C++ コードにコンパイルされます。
- [FPGA clock frequency]
- ターゲット デバイスのクロック周波数を MHz で指定します。この周波数は、ダウンストリームのツール フローに渡されます。
- [Throughput Factor]
- スループットを増加するために、クロックごとに処理されるサンプル数を指定します。係数を大きくすると、ハードウェア リソースの使用量が増加します。スループット係数は 1 ~ 16 にする必要があります。
- [Create testbench and run (C simulation/RTL cosimulation)]
- Vitis Model Composer でシミュレーションを実行し、コード生成時にテスト ベクターを生成します。
- [Testbench stack size (MBytes)]
- スタック サイズを入力します。Create and run testbench をオンにすると、Testbench stack size で C シミュレーション (CSIM) 中のテストベンチ スタック フレームのサイズを指定できます。スタックに大型配列が割り当てられている場合やサブシステムの入れ子構造が深すぎる場合など、テストベンチの実行用に割り当てられたデフォルトの 10 MB ではテストの実行には不十分な場合があります。この場合、セグメンテーション エラーや関連するエラー メッセージが表示され、テストがエラーになります。このような場合は、スタック フレームのサイズを増加して、テストを再実行できます。
- [HLS Hardware Flow]
-
重要: HLS ライブラリ内のブロックから構築されたデザインでは、ハードウェア フローはサポートされていません。ただし、HLS カーネルブロックは例外です。1 つ以上の HLS カーネル ブロックと AI エンジン ブロックを持つデザインは、ハードウェア フローでサポートされています。
- [Generate for Hardware]
- このオプションをオンにして、[Generate] をクリックすると、次の設定に応じて .xo またはハードウェア検証コードが生成されます。
- [Generate .xo]
- オンにすると、Vitis Model Composer が HLS Kernel のコードを生成し、Vitis HLS を使用して .xo にコンパイルします。
- [Generate Hardware Validation Code]
- オンにすると、Vitis Model Composer がハードウェアの検証に使用するコードを生成します。ハードウェア イメージを生成するには Target でプラットフォームを指定し、[HLS Settings] パネルで Create Testbench をオンにします。
- [HW System Type]
- 検証フロー (Baremetal または Linux hardware) を選択します。
- [Target]
- ハードウェア検証フローのターゲットを指定します。
- [Common SW Dir]
- PetaLinux の共通イメージが格納されているフォルダーのパスを指定します。このオプションは、[Linux HW System Type] が選択されている場合にのみ有効になります。
- [Target SDK Dir]
- ターゲット SDK を含むフォルダーへのパスを指定します。このオプションは、[Linux HW System Type] が選択されている場合にのみ有効になります。
- [Generate (BOOT.BIN/SD card image) after code generation]
- オンにすると、コード生成後に BOOT.BIN (ベアメタル HW システム用) または SD カード イメージ (Linux HW システム用) が生成されます。
- コード生成
- AI エンジン、HDL、または HLS ブロックセットからのブロックを含むサブシステムを選択し、対応する Code Directory を指定します。[Code Directory] は、完全なディレクトリ パスを入力するか、[Browse] ボタンをクリックしてパスを指定します。
- 設定
- Model Composer Hub ブロックで、モデルをレガシ System Generator デザインとして扱うかどうかを指定します。