描述
我在VHDL中有以下代码,包括信号clk_count,其范围定义为整数范围0到4。
仿真时该信号超出范围。但是,Vivado Simulator在仿真阶段不显示任何错误消息。
————————————————–
signal clk_count:INTEGER范围0到4;
clk_gen_adc:进程(clk,reset)
开始
如果(reset =?1?)那么
clk_count< = 0;
elsif rising_edge(clk)开始
如果clk_count = 9那么
clk_count< = 0;
其他
clk_count< = clk_count + 1;
万一;
万一;
结束过程;
————————————————
解
Vivado Simulator确实有一个rangecheck选项,但默认情况下它被禁用。
您需要在仿真设置中启用rangecheck选项,如下面的屏幕截图所示,以打开错误消息。
启用上面突出显示的rangecheck选项后,Vivado仿真器在值达到5时停止,并显示以下错误消息:
错误:运行时范围检查值5超出有效范围0到4。
注意:默认情况下,rangecheck开关被禁用,因为它会导致编译器为范围检查生成额外的代码并减慢仿真速度。
它作为一个选项提供,可以在您希望工具执行范围检查的特定情况下打开。
没有回复内容