[Scope] ウィンドウ - 2023.2 日本語

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

Document ID
UG900
Release Date
2023-10-18
Version
2023.2 日本語

スコープとは HDL デザインを階層に分けたものです。デザイン ユニットをインスタンシエートするたび、またはプロセス、ブロック、パッケージ、サブプログラムを定義するたびに、スコープが作成されます。

次の図に示すように、Scope ウィンドウにはデザイン階層が表示されます。Scope ウィンドウでスコープを選択すると、Objects ウィンドウにそのスコープの HDL オブジェクトがすべて表示されます。Objects ウィンドウで HDL オブジェクトを選択し、それを波形ビューアーに追加できます。

図 1. Scope ウィンドウ

スコープのフィルター

  • [Scope] ウィンドウの右上にある Settings ボタンをクリックすると、スコープ タイプの表示/非表示を切り替えることができます。
    ヒント: Setting ボタンをクリックして表示されるオプションを使用してスコープを非表示にすると、スコープの種類に関係なく、そのスコープ内のすべてのスコープが非表示になります。たとえば、上の図で、すべての Verilog モジュール スコープを非表示にするため Verilog モジュールのボタンをクリックすると、bft_tb スコープだけでなく、uut は VHDL エンティティ スコープですが、uut も非表示になります。
  • 特定の文字列を含むスコープに表示を限定するには、Search ボタン をクリックし、テキスト ボックスに文字列を入力します。

Objects ウィンドウに表示されるオブジェクトは、選択しているスコープによって異なります。スコープを変更すると、Objects ウィンドウに異なるオブジェクトが表示されます。

スコープを右クリックすると、次の図に示すメニューが表示されます。

図 2. Scope ウィンドウのオプション

  • Add to Wave Window: 選択したスコープの表示可能な HDL オブジェクトすべてを波形設定に追加します。
    ヒント: ビット幅の大きな HDL オブジェクトを波形ビューアーに追加すると、表示に時間がかかります。Add to Wave Window コマンドを実行する前に、波形設定で表示制限を設定すると、そのようなオブジェクトが表示されないようにできます。それには、set_property DISPLAY_LIMIT <maximum bit width> [current_wave_config] という Tcl コマンドを使用します。

    Add to Wave Window コマンドを使用すると、Objects ウィンドウに表示ている HDL オブジェクトとは異なる HDL オブジェクトが追加されることがあります。Scope ウィンドウでスコープを選択すると、Objects ウィンドウに選択されたスコープで直接定義されているオブジェクトだけでなく、そのスコープに含まれる HDL オブジェクトも表示されることがあります。Add to Wave Window コマンドの場合は、選択したスコープのオブジェクトのみが追加されます。

    または、オブジェクトを Objects ウィンドウから波形ウィンドウの [Name] 列にドラッグ アンド ドロップする方法もあります。

    重要: 波形ウィンドウには、オブジェクトが追加されたシミュレーション時間から、そのオブジェクトの値の変化が表示されます。
    ヒント: オブジェクト挿入以前のオブジェクト値を表示するには、シミュレーションを実行し直す必要があります。シミュレーション run を開始するときに、log_wave -r / Tcl コマンドを実行してデザインの表示可能な HDL オブジェクトすべての値を取り込んでおけば、値を表示するためにシミュレーションを実行し直さなくてすみます。詳細は、Tcl コマンド log_wave の使用 を参照してください。

    波形設定の作成や HDL オブジェクトの追加などの波形設定への変更は、WCFG ファイルを保存しないと失われます。

  • Go To Source Code: ソース コードの選択したスコープ定義の部分を開きます。
  • Go To Instantiation Source Code: Verilog モジュールおよび VHDL エンティティ インスタンスに対し、インスタンシエーション時点のソース コードを開きます。
  • Set Current Scope to Active: 現在のスコープを選択したスコープに設定します。選択したスコープがアクティブ シミュレーション スコープになります (例: get_property active_scope [current_sim])。アクティブ シミュレーション スコープはその HDL プロセスのスコープであり、シミュレーションは現時点で一時停止されています。設定で follow active scope をオフにすると、Vivado シミュレータでシミュレーションが進んだ場合でも、最後の current_scope の選択が記録されます。ブレークポイントに到達すると、current_scope が最後のスコープをポイントしたままになり、アクティブ スコープとして設定されます。
  • Log to Wave Database: 次のいずれかをログに記録します。
    • 現在のスコープのオブジェクト。
    • 現在のスコープおよびその下にあるすべてのスコープのオブジェクト。
    ヒント: デフォルトでは、Vivado シミュレータのログに大型の HDL オブジェクトは記録されません。ログに記録されるオブジェクトのサイズ制限を変更するには、set_property trace_limit <size> [current_sim] Tcl コマンドを使用してください。<size> には、HDL オブジェクトのスカラー エレメントの数を指定します。

    ソース コード テキスト エディターでコードの識別子にカーソルを置くと値が表示されます ([Scope] ウィンドウ)。

    重要: この機能を使用するには、Scope ウィンドウで選択したソース コードにスコープが関連付けられていることを確認してください。
    ヒント: 上の図では、最上位モジュールがインスタンシエートされていないため、最上位モジュールを右クリックしても、Go to Instantiation Source Code は淡色表示になっています。
    ヒント: 現在のスコープとそれ以下のスコープのオブジェクトをログに記録するには、log_wave を使用します。シミュレーション後は、波形に任意のオブジェクトを追加して、時間 0 から現在のシミュレーション時間までの値を確認できます。
    図 3. 識別子の値が表示されたソース コード

その他のスコープおよびソース オプション

Scope ウィンドウおよび Sources ウィンドウで Show Search ボタン をクリックすると、検索フィールが表示されます。

Scope および Objects ウィンドウを使用する代わりに、Tcl コンソールに次を入力して HDL デザインを表示することもできます。

get_scopes 
current_scope 
report_scopes
report_values
ヒント: ソース ファイルを編集するには、[Scope] ウィンドウ に示すように、Scope ウィンドウまたは Objects ウィンドウでを右クリックし、Go to Source Code をクリックしてファイルを開きます。
図 4. Scope ウィンドウのコンテキスト メニュー

ヒント: ソース コードを編集してファイルを保存したら、[Relaunch] ボタン をクリックすると、シミュレーションを閉じて再び開かずに、シミュレーションを再コンパイルおよび再実行できます。