VHDLアサート文がフェイルした場合、シミュレーションをどうやって停止しますか?

概要

エラーが通知された時シミュレーションを中断し、エラーの解析を行い何が起きているのか確認したいです。

VHDLソースコード例:

assert (data = check)
report "ERROR: Data readback not as expected."
severity error;

対応方法

Active-HDL

コンソールに下記のようにタイプして、reakassertlevel変数値を2に設定します。別の方法としては、Tools | Preferences | Simulation にて、Break on assertionバーを使ってアサーションのセベリティレベルを設定します。

set breakassertlevel 2

デフォルトではこの値はフェイルの最低セベリティレベルである3に設定されています。2が設定されると、エラーセベリティレベルのアサーションが発生した場合にシミュレーションが停止し、ユーザはその時点からシミュレーションを再開することができます。1が設定されると、ワーニングセベリティレベルのアサーションが発生した場合にシミュレーションが停止します。デフォルト3の場合は、エラーメッセージが通知されてもシミュレーションは続行します。

Riviera-PRO

下記のようにコンソールに、vhdlassert.breakコマンドとerrorオプションをタイプします。別の方法としては、Tools | Preferences | Simulation | VHDL | Assertion にて、Break on VHDL assertionボタンを使ってアサーションのセベリティレベルを設定します。デフォルトではセベリティレベルはfailureに設定されています。

vhdlassert.break error

errorオプションが設定されると、エラーセベリティレベルのアサーションが発生した場合に、シミュレーションを停止します。failureやwarningオプションが設定された場合もフェイルやワーニングセベリティレベルのアサーションが発生するとシミュレーションは停止します。



Printed version of site: www.aldec.com/jp/support/resources/documentation/faq/1070