System Generator トークンを使用したコンパイルおよびシミュレーション - 2021.2 日本語

Vitis Model Composer ユーザー ガイド (UG1483)

Document ID
UG1483
Release Date
2021-10-22
Version
2021.2 日本語

Model Composer モデルではデザインが自動的に下位表記にコンパイルされますが、デザインをコンパイルまたはシミュレーションするには、System Generator トークンを使用します。このセクションでは、このトークンの使用法を説明します。

System Generator トークンは、ザイリンクス HDL ブロックセットの Tools ライブラリに含まれています。

デザインには、System Generator トークンを 1 つ以上含める必要があり、複数の System Generator トークンを異なるレベルに含めることが可能です (レベルごとに 1 つ)。上位にほかの System Generator トークンがあるものはスレーブ、上位にほかの System Generator トークンがないものはマスターです。1 つの System Generator トークンの適用範囲は、トークンが挿入されているレベルと、その下にあるすべてのサブシステムです。Simulink System Period などの一部のパラメーターは、マスターでしか指定できません。

System Generator トークンを追加したら、コードの生成および合成の処理方法を指定できます。次の図に、System Generator トークンのパラメーター ダイアログ ボックスを示します。

図 1. System Generator トークンのパラメーター ダイアログ ボックス

コンパイル タイプと [Generate] ボタン

Generate ボタンをクリックすると、Model Composer でデザインの一部が等価の低級言語表現にコンパイルされます。コンパイルされる部分は、ブロックを含むサブシステムがルートとなっている部分です。デザイン全体をコンパイルするには、System Generator トークンをデザインの最上位に配置します。コンパイル タイプ (Compilation) は、生成する結果のタイプを指定します。次のオプションがあります。

  • IP Catalog: デザインを Vivado IP カタログに追加して別のデザインで使用できる IP コアとしてパッケージします。
  • Hardware Co-Simulation (JTAG): ハードウェアのアルゴリズムを検証するハードウェア協調シミュレーション ブロックを生成します。
  • Synthesized Checkpoint: Vivado IDE プロジェクトで使用できる合成済みチェックポイント ファイル (synth_1.dcp) を作成します。
  • HDL Netlist: VHDL または Verilog RTL デザインを生成します。
表 1. System Generator トークンのパラメーター ダイアログ ボックスのオプション
GUI 説明
Board

デザインをテストするのに使用するザイリンクス パートナーまたはカスタム ボードを指定します。

パートナー ボードまたはカスタム ボードが [Board] リストに表示されるようにするには、ボードを記述するボード ファイルにアクセスするように Model Composer を設定する必要があります。Model Composer でのボード サポートについては、Model Composer HDL ブロックセットでのボード サポートの指定 を参照してください。

Board を選択すると、Part フィールドに Board で選択したボード上にあるザイリンクス デバイスの名前が表示されます。このパーツ名は変更できません。

Part 使用するザイリンクス デバイスを指定します。Board を選択すると、Part フィールドに Board で選択したボード上のザイリンクス デバイスの名前が表示されます。このパーツ名は変更できません。
Hardware description language デザインの 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 ビット ポートは Model Composer でベクターとして変換されます。
Target Directory Model Composer のコンパイル結果を保存するディレクトリを指定します。Model Composer および FPGA インプリメンテーション ツールでは多数のファイルが生成されるので、個別のディレクトリ (Simulink モデル ファイルが含まれるディレクトリとは別のディレクトリ) を作成することをお勧めします。ディレクトリは、絶対パス (c:\netlist など) またはモデルを含むディレクトリを基準とした相対パス (netlist など) で指定できます。
Synthesis strategy ドロップダウン リストの定義済みストラテジから合成ストラテジを選択します。
Implementation strategy ドロップダウン リストの定義済みストラテジからインプリメンテーション ストラテジを選択します。
Create interface document オンにして [Generate] ボタンをクリックすると、Model Composer でネットリスト記述されるデザインを示す HTM ファイルが作成されます。このファイルは、ネットリスト フォルダーに含まれます。
Create testbench Model Composer で HDL テストベンチを作成するよう指定します。HDL シミュレータでテストベンチをシミュレーションし、コンパイルされたデザインのシミュレーション結果を Simulink シミュレーション結果と比較します。Model Composer では、デザインを Simulink でシミュレーションし、Gateway ブロックで検出される値を保存することにより、テスト ベクターを作成します。テストベンチの最上位 HDL ファイルの名前は、<name>_tb.vhd/.v となります (<name> はテストするデザインの部分から導出された名前、拡張子はハードウェア記述言語により異なる)。
FPGA clock period システム クロックの周期を ns で指定します。値は整数である必要はありません。ここで指定した周期は、制約ファイルでグローバル PERIOD 制約として設定され、ザイリンクス インプリメンテーション ツールに渡されます。マルチサイクル パスは、この値の整数倍に制約されます。
Clock pin location ハードウェア クロックのピン ロケーションを指定します。この情報は、制約ファイルを介してザイリンクス インプリメンテーション ツールに渡されます。

Simulink システム周期

System Generator ブロックのパラメーター ダイアログ ボックスで、Simulink システム周期 (Simulink system period) を指定する必要があります。この値は、デザインのシミュレーションを実行する基準レートを秒で指定します。Simulink システム周期は、デザインで使用されるすべてのサンプル周期の公約数にする必要があります。たとえば、サンプル周期 2、6、8 を使用するブロックを含むデザインでは、使用可能な最大の Simulink システム周期は 2 ですが、1 および 0.5 も使用可能です。サンプル周期は、明示的に指定するか、自動的に算出されるか、内部レートが変わるブロック内で暗示的に決まります。システム周期のハードウェア クロックへの影響については、タイミングとクロックを参照してください。

デザインをシミュレーションまたはコンパイルする前に、Model Composer でシステム周期がデザインのすべてのサンプル周期の公約数になっているかが検証されます。

周期を調整できないために、一貫性のない Model Composer モデルが作成される可能性もあります。たとえば、システム レートで動作する必要のあるブロックで Up Sample ブロックを駆動すると、一貫性のないモデルになります。システム周期をアップデートしても Model Composer で競合がレポートされる場合は、モデルに一貫性がないということであり、修正が必要です。

周期は階層で制御されます。詳細は、階層制御 を参照してください。

ブロック アイコンの表示

モデルに表示するブロックのアイコンの表示を制御します。モデルをコンパイルした後 (生成またはシミュレーションを実行、あるいは Ctrl-D を押す)、ブロックの情報がこのオプションでの選択に応じて表示されます。

[Default]
ポートの方向に関する基本的な情報が表示されます。
[Sample rates]
正規化サンプル周期やサンプル周波数 (MHz) など、各ポートのサンプル レートが表示されます。
[Pipeline stages]
パイプライン段数が表示されます。
[HDL port names]
ポート名が表示されます。
[Input data types]
各ポートの入力データ型が表示されます。
[Output data types]
各ポートの出力データ型が表示されます。

階層制御

System Generator トークンの [Simulink system period] オプション (Simulink システム周期を参照) は、階層で制御されます。System Generator トークンの設定はそのトークンのスコープに適用されますが、下位にある System Generator トークンの設定で変更できます。たとえば、デザインの最上位にある System Generator トークンで [Simulink system period] が設定されており、サブシステム S に配置されている System Generator トークンで別の値が設定されている場合、サブシステムでは 2 番目のシステム周期が使用されますが、デザインのその他の部分では最上位の System Generator トークンで設定されたシステム周期が使用されます。