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オプションが設定された場合もフェイルやワーニングセベリティレベルのアサーションが発生するとシミュレーションは停止します。

Ask Us a Question
x

Ask Us a Question

x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.