发 帖  
原厂入驻New

【FPGA】VHDL 语言的运算符有哪些?计算的优先级是怎样的?

2018-9-12 09:51:50  3927 VHDL
分享
在 VHDL 语言中,常用的运算符有逻辑运算(Logic)、关系运算(Relational)、算术运算(Arithmetic)和移位运算(ShIFt),下面分别对它们进行介绍。

1.逻辑运算符

逻辑运算符可以对 bit 和 boolean 类型的值进行运算,也可对这些类型的一维数组进行运算。对数组型的运算,运算施加于数组中的每个元素,结果与原来数组长度相同。

逻辑判断的运算为“短路运算”,也就是说,条件表达式的左边成立时,就不再进行右边的判断。比如,IF (a=0) AND (b/a>2) THEN…这个判断运算,当 a=0 时,后面的判断不再继续,避免出现除数为 0 的运算。

VHDL 的逻辑运算符如表 2-6 所示。
1.jpeg
2.关系运算符

关系运算符两边必须为相同的类型,其结果为 boolean 类型。

等号(=)和不等号(/=)两边可以为任意类型的运算对象。其他关系运算符的运算对象必须为标量类型或离散类型的一维数组。对于复杂的运算对象,如数组,两个值相等意味着两个值的所有对应元素相等。VHDL 的关系运算符如表 2-7 所示。
2.jpg
3.算术运算符

算术运算符包括一些基本的算术运算,使用算术运算符需要注意的是乘方(**)运算的右边必须为整数。VHDL 的算术运算符如表 2-8 所示。
3.jpg
4.移位运算符

移位运算符为二元运算符,左边必须为一维数组,且元素类型为 bit 或 boolean 类型。右边运算数为整数,可以为负数,相当于反方向移位。一位移位与循环移位的语义示意如图 2-5所示。
4.jpg
VHDL 的移位运算符如表 2-9 所示。
5.jpg
除了上面介绍的,VHDL 中运算符还包括正号“+”、负号“-” 以及“&”。其中,连接符号(&)用于一维数组,这个数组的元素个数可以为 1,运算结果为右边数组连接在左边数组之后形成新数组,例如:





  1. sel <= a & b;

复制代码



假设 a 信号为“0”,b 信号为“1”,那么得到的 sel 信号就是“01”。

所有的 VHDL 运算符之间都有优先级的关系,各运算符优先级从最高到最低,顺序如表 2-10所示(同一行优先级相同)。
6.jpg
0
2018-9-12 09:51:50   评论 分享淘帖
1 个讨论
和C语言有什么区别
2018-9-12 13:44:21 评论

举报

只有小组成员才能发言,加入小组>>

279个成员聚集在这个小组

加入小组

热门话题

创建小组步骤

快速回复 返回顶部 返回列表