5.7 断言语句(ASSERT)
有些电路系统需要遵守一定的条件才能正常工作,比如RS触发器就要求R与S端不能同时为“1”。VHDL提供一个断言语句ASSERT,用以监测电路模型是否正常工作。ASSERT语句主要用于程序仿真,调试中的人机对话,它可以输出字符串作为警告或出错信息。
ASSERT语句的基本语法格式为:
ASSERT〈条件表达式〉REPORT〈出错信息〉SEVERITY〈错误级别〉;
ASSERT语句中〈条件表达式〉是正常工作的条件。当仿真时执行到此断言语句,首先就当前的情况对此条件表达式求值。如果值为真,表示正常,于是跳过REPORT和SEVERITY两子句;如果值为假,表示出错,于是执行报错子句REPORT,在标准输出设备上输出指定的出错信息,再根据SEVERITY指定的该错误的错误级别,错误级别可取以下四种之一:注意(Note),警告(Warning),错误(Error),失败(Failure)。如例5-29所示。
【例5-29】带有断言语句的RS触发器
上例是RS触发器的VHDL源程序,在该例的进程语句中含有断言语句“ASSERT NOT(s='1'AND r ='1')REPORT"both s and r equal to'1'"SEVERITY ERROR;”,若仿真时,程序执行到PROCESS中的ASSERT语句时,出现s和r同时为1的情况,断言条件值为假,则会在标准输出设备上将报告一条信息“ERROR:both s and r equal to'1'”,提示设计者采取措施,这对调试程序是很有帮助的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。