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