我是VHDL的新手,可能有一个基本的问题,但是这里有:
声明变量时,说一个整数,
有什么好处?variable count_baud : integer range 0 to clk_freq/baud_rate - 1 := 0;
vs。
variable count_baud : integer := 0;
仅使用 range 来限制CPLD / FPGA中合成资源的大小是否重要?
答案 0 :(得分:2)
有两个很好的理由:
调试。如果您知道整数应保持在[min..max]
范围内,请使用适当的范围声明将其告知模拟器。如果您的代码中有错误,并且您尝试分配一个超出范围的值,模拟器将通过一条非常有用的消息通知您。而如果您只是声明了integer
,则错误可能会在伪分配后很长时间发生。
合成质量。默认情况下,逻辑合成器将为整数分配32位。取决于周围环境,它可能会发现更少的位就足够了……还是没有。因此,告诉合成器什么是实际范围,通常可以节省硬件,功耗并提高最终性能(速度),尤其是当实际范围可以用少于32位表示的时候。