+运算符和+函数有什么区别是vhdl?

时间:2016-08-21 07:18:59

标签: vhdl vhd

vhdl中有+运算符加法运算那么为什么我们需要添加ieee.std_logic_unsigned,并且在这个库中有+的函数,那么为什么在vhdl中已经有+运算符的情况下定义了该函数?

1 个答案:

答案 0 :(得分:1)

与所有VHDL运算符一样,+运算符也具有功能表示法。 a+b"+"(a,b)完全相同。这方面的好处是您可以重载VHDL运算符以对默认情况下未定义的类型进行操作。只需定义一个"+"函数,它接受您自己类型my_type和voilà的两个参数。您现在可以使用a+b ab my_type类型的+

默认情况下,类型std_ulogic_vectorstd_logic_vector未定义ieee.std_logic_unsigned运算符。这是事实。您可以不同意这一点,但它是VHDL标准。因此,如果您想将它与这些类型一起使用,您需要以某种方式定义它。

ieee包重载算术运算符。它是标准包,并且在标准化ieee.numeric_std库中有使用它。而是使用标准unsigned来声明类型signedieee.numeric_std_unsigned并重载算术运算符。

请注意,正如user1155120所述,VHDL 2008引入了几个新的综合包。其中一个是std_ulogic_vector,它会重载let date = NSDate() let calendar = NSCalendar.currentCalendar() let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute, fromDate: date) let hour = components.hour let minutes = components.minute 类型的算术运算符,将其视为无符号自然整数。