我何时/应该在VHDL中使用range关键字声明一个变量?

时间:2018-10-04 12:31:19

标签: optimization vhdl

我是VHDL的新手,可能有一个基本的问题,但是这里有:

声明变量时,说一个整数,

有什么好处?
variable count_baud  : integer range 0 to clk_freq/baud_rate - 1 := 0;

vs。

variable count_baud  : integer := 0;

仅使用 range 来限制CPLD / FPGA中合成资源的大小是否重要?

1 个答案:

答案 0 :(得分:2)

有两个很好的理由:

  1. 调试。如果您知道整数应保持在[min..max]范围内,请使用适当的范围声明将其告知模拟器。如果您的代码中有错误,并且您尝试分配一个超出范围的值,模拟器将通过一条非常有用的消息通知您。而如果您只是声明了integer,则错误可能会在伪分配后很长时间发生。

  2. 合成质量。默认情况下,逻辑合成器将为整数分配32位。取决于周围环境,它可能会发现更少的位就足够了……还是没有。因此,告诉合成器什么是实际范围,通常可以节省硬件,功耗并提高最终性能(速度),尤其是当实际范围可以用少于32位表示的时候。