タイミング シミュレーションの実行 - 2023.2 日本語

Vivado Design Suite ユーザー ガイド: ロジック シミュレーション (UG900)

Document ID
UG900
Release Date
2023-10-18
Version
2023.2 日本語
ヒント: 合成後のタイミング シミュレーションでは、デバイス モデルから見積もられたタイミング遅延が使用され、インターコネクト遅延は含まれません。インプリメンテーション後のタイミング シミュレーションでは実際のタイミング遅延が使用されます。

合成後およびインプリメンテーション後のタイミング シミュレーションを実行するとき、シミュレータには次のものが含まれます。

  • SIMPRIM ライブラリ コンポーネントを含むゲートレベルのネットリスト
  • SECUREIP
  • 標準遅延フォーマット (SDF) ファイル

デザインの全体的な機能は最初に定義しています。デザインがインプリメントされると、正確なタイミング情報が利用できるようになります。

ネットリストおよび SDF を作成するため、Vivado Design Suite は次の処理を実行します。

  • write_verilog オプションを使用してネットリスト ライターの -mode timesim、および write_sdf (SDF アノテーター) を呼び出します。
  • 生成されたネットリストをターゲット シミュレータに送ります。

これらのオプションを変更するには、シミュレーション設定で説明されているように、[Settings] ダイアログ ボックスの [Simulation] ページを使用します。

重要: 合成後とインプリメンテーション後のタイミング シミュレーションは、Verilog でのみサポートされます。VHDL のタイミング シミュレーションはサポートされません。VHDL を使用する場合、合成後およびインプリメンテーション後の論理シミュレーションを実行できます。この場合、SDF アノテーションは必要なく、シミュレーション ネットリストで UNISIM ライブラリが使用されます。ネットリストは write_vhdl Tcl コマンドを使用して作成できます。使用情報は、 『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835) を参照してください。
重要: Vivado シミュレータ モデルではインターコネクト遅延が使用されるので、タイミング シミュレーションが正しく実行されるようにするには、-transport_int_delays -pulse_r 0 -pulse_int_r 0 オプションを追加する必要があります。

合成後のタイミング シミュレーション

合成 run が正常に完了すると、Run Simulation > Post-Synthesis Timing Simulation を実行できるようになります。

合成後は、汎用ロジック デザインがデバイス特定のプリミティブに合成され、配線遅延およびコンポーネント遅延の見積もり値が利用できます。合成後のタイミング シミュレーションを実行することにより、インプリメンテーション段階で時間を費やす前に、タイミング クリティカル パスがないかを確認できます。合成後のタイミング シミュレーションを選択すると、タイミング ネットリストと SDF ファイルの見積もり遅延が生成されます。シミュレータで生成された SDF ファイルが含められるよう、ネットリスト ファイルには $sdf_annotate コマンドが含まれます。

インプリメンテーション後のタイミング シミュレーション

インプリメンテーション run が完了すると、Run Simulation > Post-Implementation Timing Simulation を実行できるようになります。

インプリメンテーション後は、デザインはハードウェアにインプリメントおよび配線されています。この段階でタイミング シミュレーションを実行すると、正確なタイミング遅延を使用して、指定速度でデザインが機能しているかどうかを確認できます。このシミュレーションは、制約が設定されていないパスや、非同期パスのタイミング エラー (リセットで発生するエラーなど) を検出するのに便利です。インプリメンテーション後のタイミング シミュレーションを選択すると、タイミング ネットリストと SDF ファイルが生成されます。ネットリスト ファイルには $sdf_annotate コマンドが含まれるので、生成された SDF ファイルが自動的に指定されます。

シミュレーション設定を指定したときに、SDF ファイルを作成するかどうかと、プロセス コーナーをファーストまたはスローに設定しました。

ヒント: SDF ファイルのオプションの設定を確認するには、Vivado IDE の Flow Navigator で Simulation を右クリックし、Simulation Settings をクリックします。[Settings] ダイアログ ボックスの Simulation ページで、Netlist タブをクリックします。

SDF ファイルには、指定したプロセス コーナーに基づいて異なる min および max 値が含まれます。

2 つの異なるシミュレーションを実行して、セットアップおよびホールド違反をチェックをしてください。

セットアップ チェックを実行するには、[-process_corner] を [slow] に設定して SDF を作成し、SDF ファイルの max 列を使用します。

ホールド チェックを実行するには、[-process_corner] を [fast] に設定して SDF ファイルを作成し、SDF ファイルの min 列を使用します。使用する SDF 遅延フィールドの指定方法は、使用するシミュレーション ツールによって異なります。このオプションの設定方法は、ご使用のシミュレーション ツールの資料を参照してください。

4 つのタイミング シミュレーションすべてを実行するには、次のように指定します。

  • スロー コーナー: SDFMIN および SDFMAX
  • ファースト コーナー: SDFMIN および SDFMAX