A <= 3 * B;
在上面的语句中3
是整数或自然数。如果它是一个自然数,如果我在那里使用负数,该怎么办? VHDL是否将其识别为整数?
答案 0 :(得分:3)
整数文字属于匿名预定义类型universal_integer
。它们被隐式转换为所需的(子)类型,例如, integer
或natural
,适用于您的运营商*
。另见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。