Vitis ツールは、Alveo データセンター アクセラレータ カードや Versal および Zynq UltraScale+ MPSoC エンベデッド プラットフォームを含むすべてのプラットフォームのデフォルト シミュレータとして Vivado ロジック シミュレータ (xsim
) を使用します。ただし、xilinx_vck190_base
のような Versal エンベデッド プラットフォーム (または類似のカスタム プラットフォーム) の場合は、Vitis ツールでハードウェア エミュレーション用のサードパーティー シミュレータ (Mentor Graphics 社の Questa Advanced Simulator、Xcelium、および VCS) の使用もサポートされます。サポートされるシミュレータのバージョンは、Vivado Design Suite でサポートされるバージョンと同じです。
サードパーティー シミュレータをイネーブルするには、デバイス バイナリ (.xclbin) およびサポートされる Tcl スクリプトの生成時に、追加でコンフィギュレーション オプションをインプリメントする必要があります。各シミュレータの要件については、次に説明します。また、Vitis でこれらのシミュレータを使用する前に、サードパーティ シミュレータの Vivado 設定を実行する必要があります。具体的には、compile_sim_lib
Tcl コマンドを使用してシミュレーション モデルをプリコンパイルする必要があります。サードパーティのシミュレータ設定の詳細は、
『Vivado Design Suite ユーザー ガイド: ロジック シミュレーション』 (UG900) を参照してください。
- Questa
- リンク中に使用する次の詳細パラメーターと Vivado プロパティをコンフィギュレーション ファイルに追加します。
## Final set of additional options required for running simulation using Questa Simulator [advanced] param=hw_emu.simulator=QUESTA [vivado] prop=project.__CURRENT__.simulator.questa_install_dir=/tools/gensys/questa/2020.4/bin/ prop=project.__CURRENT__.compxlib.questa_compiled_library_dir=<install_dir>/clibs/questa/2020.4/lin64/lib/ prop=fileset.sim_1.questa.compile.sccom.cores={4}
コンフィギュレーション ファイルを生成したら、次のようにv++
コマンド ラインで使用できます。v++ -link --config questa_sim.cfg
- Xcelium
- リンク中に使用する次の詳細パラメーターと Vivado プロパティをコンフィギュレーション ファイルに追加します。
## Final set of additional options required for running simulation using Xcelium Simulator [advanced] param=hw_emu.simulator=XCELIUM [vivado] prop=project.__CURRENT__.simulator.xcelium_install_dir=/tools/dist/xlm/20.09.006/tools.lnx86/xcelium/bin/ prop=project.__CURRENT__.compxlib.xcelium_compiled_library_dir=/clibs/xcelium/20.09.006/lin64/lib/ prop=fileset.sim_1.xcelium.elaborate.xmelab.more_options={-timescale 1ns/1ps}
コンフィギュレーション ファイルを生成したら、次のようにv++
コマンド ラインで使用できます。v++ -link --config xcelium.cfg
- VCS
- リンク中に使用する次の詳細パラメーターと Vivado プロパティをコンフィギュレーション ファイルに追加します。
## Final set of additional options required for running simulation using VCS Simulator [advanced] param=hw_emu.simulator=VCS [vivado] prop=project.__CURRENT__.simulator.vcs_install_dir=/tools/gensys/vcs/R-2020.12/bin/ prop=project.__CURRENT__.compxlib.vcs_compiled_library_dir=/clibs/vcs/R-2020.12/lin64/lib/ prop=project.__CURRENT__.simulator.vcs_gcc_install_dir=/tools/installs/synopsys/vg_gnu/2019.06/amd64/gcc-6.2.0_64/bin
コンフィギュレーション ファイルを生成したら、次のようにv++
コマンド ラインで使用できます。v++ -link --config vcs_sim.cfg
launch_emulator.py
コマンドに -user-pre-sim-script
オプションおよび -user-post-sim-script
オプションを使用すると、シミュレーションの開始前またはシミュレーションの完了後に実行する Tcl スクリプトを指定できます。たとえば、これらのスクリプトでは、$cwd
コマンドを使用してシミュレータの実行ディレクトリを取得し、シミュレーションの前に必要なファイルをコピーしたり、シミュレーションの最後に生成された出力ファイルをコピーしたりできます。
ハードウェア エミュレーションをイネーブルにするには、Vivado Design Suite でシミュレーション用の環境を設定する必要があります。重要なのは、シミュレータで使用する RTL および SystemC モデルをプリコンパイルしておくことです。これには、Vivado ツールで compile_sim_lib
コマンドを実行する必要があります。シミュレーション モデルのプリコンパイルの詳細は、
『Vivado Design Suite ユーザー ガイド: ロジック シミュレーション』 (UG900) を参照してください。
シミュレーション準備が整った Versal プラットフォームを作成すると、Vivado ツールでシミュレーション ラッパーが生成されます。このラッパーは、シミュレーション テストベンチにインスタンシエートする必要があります。そのため、デザイン モジュールの最上位が <top>
である場合、Vivado ツールで launch_simulation
を呼び出すと、<top>_sim_wrapper
モジュールが生成され、xlnoc.bd も生成されます。これらのファイルはシミュレーション専用のソースとして生成され、Vivado ツールで launch_simulation
が呼び出されるたびに上書きされます。プラットフォーム開発者は、独自の <top>
モジュールではなく、このモジュールをテストベンチにインスタンシエートする必要があります。