ユーザが指定した時間までシミュレーションデータを取得しないでシミュレーションを実行する方法はありますか?
スクリプトファイルで、次のような変更が可能です。
Example: asim +access+r top log UUT/* run 100 ns asdbdump -off run 10 us asdbdump -on run 200 ns
上記例では asim コマンドでシミュレーションをイニシャライズし、log コマンドで UUT階層の全信号のログを取ります。ログの取得は runコマンドにより 100ns 続き、asdbdump -off コマンドにより 10us間無効になります。それから asdbdump -on コマンドにより再度 200ns間有効になります。
高速表示波形には、ログが無効になっている信号が表示されています。波形に表示されている値は、ログが無効になった時の値です。
スクリプトで次のように実行します。
Example: run 5 ms log UUT/* run 5 ms
上記例では、シミュレーションを 5 ms 実行し、log コマンドで UUT階層の全信号のログを取ります。シミュレーションを 5 ms 再実行します。5ms後にはログの取得が無効になった信号が高速表示波形上に表示されています。波形に表示されている値は、ログが無効になった時点で保存された値です。
log コマンドには次にような使い方もあります。
例 1 log -ports UUT/*
UUT デザイン階層で宣言されている全ポートをトレースします。
例 2 log -mem -rec UUT/*
UUTデザイン階層下で宣言されている、Verilog メモリを含む全信号をトレースします。
例 3 log CLK RST
現在選択している階層の CLK と RST 信号をトレースします。