1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. ModelSimの使用方法~補足1 波形保存指定と波形表示カラー設定編~

TECHブログ

ModelSimの使用方法~補足1 波形保存指定と波形表示カラー設定編~

ModelSimの使用方法~補足1 波形保存指定と波形表示カラー設定編~

ModelSim/QuestaSimではシミュレーション実行前に波形保存指定が必要になります。
波形保存指定には複数のコマンドやコマンドオプションがあり、柔軟に指定することができます。また、波形表示を行うときにカラー指定も可能です。

本シリーズは3回にわたりModelSim/QuestaSimの使用方法についてお伝えします。
ModelSimの詳細については別途こちらをご確認ください。

なお、本ブログの内容はModelSim DE/PE/SEやQuesta Simでもご利用可能です。
さらにModelSim Intel Edition、MicroSemi Edition、Lattice Edition、Questa Intel FPGA Edition、Questa Intel FPGA Starter Editionでもご利用いただくことができます。

目次

オプティマイズ設定

ModelSimではなく、QuestaSimをお使いの場合、波形保存を行うにはオプティマイズ設定が必要になります。指定を行わないと波形保存ができませんのでご注意ください。

バッチ実行の場合

vsimコマンドに-voptargs=”+acc”オプションを追加し、シミュレーションを実行します。

左右にスクロールしてご覧ください
	vsim -c tb_top -voptargs=”+acc” …

GUI実行の場合

Start SimulationメニューからOptimization Optionsをクリックし、Apply full visibility to all modulesを選択してシミュレーションを実行します。

2種類の波形保存コマンド

波形保存には2種類のコマンドを使用できます。

add waveコマンド 主にGUIで使用する波形保存コマンドです。
add log コマンド 主にバッチ実行で使用する波形保存コマンドです。

add waveコマンドで波形保存指定を行った場合、シミュレーション実行において一定期間で波形を再表示しながら処理が進みます。
add logコマンドで波形保存指定を行った場合、波形表示は行わずシミュレーション実行後に波形ウインドに該当信号を追加し表示を行います。

波形保存コマンド詳細

add wave/add logには多数のオプションが存在しますが、両コマンド共通で使用することが可能です。

特定の信号やポートを保存したい場合

左右にスクロールしてご覧ください
	add wave {/tb_top/dut_top/clk_30m}
	add log  {/tb_top/dut_top/rst_x}
	add log  {/tb_top/dut_top/u_cfgreg/reg_*}

信号やポートを階層表記付きで指定します。ワイルドカード指定も可能です。

指定階層下すべての信号やポートを保存したい場合

左右にスクロールしてご覧ください
	add wave -r {/tb_top/dut_top/*}
	add log  -r {/tb_top/dut_top/*}

オプション-rはリカーシブ指定となります。その後で指定されるデザイン階層下すべてを対象とすることができます。
テストベンチを含めデザイン全体の信号を保存したい場合は以下のように指定を行います。

左右にスクロールしてご覧ください
	add wave -r {/*}
	add log  -r {/*]

デザイン全体の信号やポートを保存対象とした場合には、シミュレーションパフォーマンスが大きく損なわれる恐れもありますので、使用にはご注意ください。

GUIで指定を行う場合、階層の深いインスタンスや信号を設定すると文字数が長くなり入力ミスが発生することがあります。

そのような場合、transcriptウインドにadd log/add waveコマンド入力後、波形保存を行うインスタンスをドラッグ&ドロップすることで入力を容易にすることもできます。

指定インスタンスのポートのみ波形保存したい場合

左右にスクロールしてご覧ください
	add wave -ports {/tb_top/dut_top/*}
	add log  -ports {/tb_top/dut_top/*}

また、-rと合わせ階層段数を指定することもできます。

左右にスクロールしてご覧ください
	add wave -r -ports -depth 2 {/tb_top/*}

この指定では/tb_topを含めず、その下の2階層の信号やポートが対象になります。

左右にスクロールしてご覧ください
	/tb_top/*
	/tb_top/xxx1/*
	/tb_top/xxx1/yyy2/* 

また、-in/-out/-inoutオプションを指定することで特定方向のポートのみ指定することも可能です。

左右にスクロールしてご覧ください
	add wave -in  {/tb_top/dut_top/*}
	add log  -out {/tb_top/dut_top/*}

特定インスタンスのポート以外を波形保存したい場合

左右にスクロールしてご覧ください
	add wave -internals {/tb_top/*}
	add log  -internals {/tb_top/*}

オプション-internalsでポート以外の信号を波形保存することが可能です。

波形表示のカラー設定

add waveコマンドで波形表示を行う場合にカラー指定が行えます。add logコマンドでは使用できませんのでご注意ください。

add wave -color 波形ウインドの波形自体の表示色を設定できます。
add wave -itemcolor 波形ウインドの信号名と信号値の表示色を設定できます。

add wave -color red -itemcolor pink で波形表示を行った例は次の通りです。

Window Pane分割をしない初期状態でも個々の波形に色を設定できますので、注目したい信号のカラーを変え、より見やすい波形表示をすることができます。

まとめ

いかがでしたでしょうか。
ModelSim/QuestaSimの波形保存指定コマンドには多くのコマンドオプションがあり、使いこなすことで柔軟な保存指定を簡単に行うことができます。また、波形表示カラーを変更することでより見やすい波形表示を行うこともでき、長時間にわたる波形確認を効率よく行うことができます。

次回は波形ウインド分割の変更方法をお伝えします。お楽しみに。

Siemens EDAに関するお問い合わせはこちらから

関連ブログ

ModelSimの使い方シリーズ

FPGAテストベンチ/検証ノウハウシリーズ

その他関連ブログ