含まれる機能 - 2023.2 日本語

Vivado Design Suite チュートリアル: ロジック シミュレーション (UG937)

Document ID
UG937
Release Date
2023-11-01
Version
2023.2 日本語
GTM-Wizard には次の機能が含まれます。
  1. PAM4 信号を使用したデザイン、GTM_DUAL デザインおよび自動生成バイパス モジュール (xil_dut_bypass) をインスタンシエートするデザインの検出。
  2. バイパス モジュールをインスタンシエートする必要があるデザインの単純なサニティ チェック。
  3. XSim の波形ビューアーで PAM4 信号を表示するメカニズム。
  4. エクスポート シミュレーション フローのバイパス モジュールを生成する方法を提供。

このチュートリアルでは、PAM4 信号を使用する GTM-Wizard のサンプル デザインを生成します。これを生成する手順は、次のとおりです。

  1. ソース/制約ファイルを追加せずに、Vivado 2023.1 でプロジェクトを作成します。Create project > next > next > next > next > next をクリックします。
  2. 次の図のように、Default Part ページで Virtex UltraScale+ 58G を選択し、パーツを選択して Next をクリックします。

  3. サマリ レポートを確認して、Finish をクリックします。

  4. Project ManagerIP Catalog をクリックし、gtm_wizard を検索して Virtex UltraScale+ FPGAs Transceivers Wizard をダブルクリックします。

  5. デフォルト設定で OK をクリックし、Generate Output Product ダイアログ ボックスで Skip をクリックします。

  6. Sources ウィンドウで、生成された XCI ファイルを右クリックし、Open IP Example Design をクリックして、ディレクトリを指定します。

    この段階では、シミュレーションを実行可能なサンプル例があります。

シミュレーションに進む前に、PAM4 の視点からいくつか説明します。

  1. xil_dut_bypass モジュール定義はツールで実行時に生成され、GTM_DUAL への階層参照を含みます。

  2. この xil_dut_bypass モジュールの生成は、Configure Design for Hierarchical Access オプションで制御できます (デフォルトでオン)。

    注記: 以前の動作に戻す場合は、Configure Design for Hierarchical Access チェック ボックスをオフにします。

    デザインが作成されると、launch_simulation または export_simulation.のいずれかまで実行できます。

launch_simulation
  1. Run Behavioral Simulation をクリックします。これで Vivado シミュレータを使用してシミュレーションが実行されます。

  2. スナップショットが作成されて読み込まれると、シミュレーションは 1000 ns 後に停止します。では、xil_dut_bypass の定義について説明します。Scope ウィンドウで xil_dut_bypass をダブルクリックして、ソース コードを表示します。トップ モジュールからリーフ レベル インスタンスまでの階層参照に注目してください。

  3. xil_dut_bypass を右クリックして波形に追加します。

  4. Restart をクリックし、すべてを実行します。
  5. シミュレーションが完了したら、波形内の xil_dut_bypass のすべての信号を区切って、Waveform Style を右クリックして Analog を選択します。

  6. 波形スタイルのアナログ設定に移動し、次のように値を変更し、波形を改善します。

  7. 信号のアナログ値を観察します。

    注記: サードパーティのシミュレータを使用して同じデザインを実行する場合は、 『Vivado Design Suite ユーザー ガイド: ロジック シミュレーション』 (UG900) を参照してください。
export_simulation
次に、export_simulation の 2 つのフローを示します。
生成された xil_dut_bypass を使用してシミュレーションをエクスポート
  1. Vivado IDE で export_simulation -simulator xsim -generate_hier_access コマンドを実行します。

    これにより、<your_local_path>/export_sim/xsim にスクリプトが生成されます。

  2. 生成された vlog.prj で、xil_dut_bypass.sv を確認します。これは、launch_simulation が生成され、それがプロジェクトの一部として追加されたためです。

  3. gtm_wizard_ultrascale_0_example_top_sim.sh を実行すると、シミュレーションが実行されます。GUI モードで実行する場合は、else 部分の xsim コマンドに -gui を追加します。
  4. launch_simulation の手順 3 から 7 に従うと、launch_simulation と同じ波形と出力を確認できるようになります。
xil_dut_bypass を使用しない export_simulation
  1. gtm_wizard_ultrascale_0_example_top_sim.sh -gen_bypass を実行します。
  2. デルタ時間単位分のシミュレーションが実行され、ログ ファイルに階層パスが生成されます。
  3. 生成された simulate.log で xilinx_hier_bypass_ports:gtm_wizard_ultrascale_0_example_top_sim.u_e…. の部分を記録します。
  4. Vivado Tcl コンソールで generate_hier_access -log ./simulate.log を実行して xil_dut_bypass.sv を生成します。
  5. 現在のディレクトリに生成された xil_dut_bypass.sv を確認します。
  6. この xil_dut_bypass.svsv xil_defaultlib ./xil_dut_bypass.sv のように vlog.prj に追加します。
  7. gtm_wizard_ultrascale_0_example_top_sim.sh を実行すると、シミュレーションが実行されます。GUI モードで実行する場合は、else 部分の xsim コマンドに -gui を追加します。

  8. launch_simulation の手順 3 から 7 に従うと、launch_simulation と同じ波形と出力を確認できるようになります。
vivado 以外のプロジェクト用の xil_dut_bypass の生成
  1. デザイン (<design>.prj) のコンパイル順を作成します。
  2. XSim シミュレータ ツールを実行してシミュレータ ログ ファイルを生成します。
    1. xelab -prj <design>.prj -top <testbench-top>.
    2. xsim -R <testbench-top> --testplusarg GEN_BYPASS.
  3. 生成された <simulator>.log ファイルに階層パス情報を含む xilinx_hier_bypass_ports という文字列が含まれていることを確認します。次に例を示します。
    xilinx_hier_bypass_ports:tb.dut_i.gtmWiz_00.gtm_i in:integer:in1:in_var1 in:integer:in2:in_var2 
    out:integer:out1:out_var1 out:integer:out2:out_var2
  4. GitHub から generate_hier_access.tcl ユーティリティをダウンロードします。
    wget https://raw.githubusercontent.com/Xilinx/XilinxTclStore/2020.1-dev/tclapp/xilinx/projutils/generate_hier_access.tcl
  5. generate_hier_access.tcl を実行して、階層アクセス シミュレーションのソースを生成します。
    1. # /usr/bin/tclsh.
    2. source generate_hier_access.tcl.
    3. generate_hier_access -bypass dut_bypass -testbench <module> -directory <path> -log <simulator>.log.適切な接続を使用して、テストベンチにこの dut_bypass をインスタンシエートします。
  6. <design>.prj に <path>/dut_bypass.sv を追加します。
  7. シミュレータ ツールを実行し、<design>.prj のデザインをシミュレーションします。