VHDL中的数字具有什么数据类型

时间:2016-03-31 18:40:26

标签: vhdl

A <= 3 * B;

在上面的语句中3是整数或自然数。如果它是一个自然数,如果我在那里使用负数,该怎么办? VHDL是否将其识别为整数?

1 个答案:

答案 0 :(得分:3)

整数文字属于匿名预定义类型universal_integer。它们被隐式转换为所需的(子)类型,例如, integernatural,适用于您的运营商*。另见IEEE Std。 1076-2008,第5.2.3.1。

因此,如果指定术语-3,则将其解析为由减号-和抽象(十进制)文字3组成的简单表达式。数字3的类型为{ {1}},在应用符号运算符后,它仍然属于同一类型。 (感谢@ user1155120的澄清。) 之后,如果您的运营商需要universal_integer,则表达式-3的转换将失败。

同样适用于匿名预定义类型natural的浮点文字,另请参见para。 5.2.5.1。

任何整数类型的操作数都可以转换为任何浮点类型,反之亦然。从浮点到整数的转换使用舍入到最接近的整数来进行。小数部分为0.5的浮点值可以向上或向下舍入,另请参见para。 9.3.6。