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.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.