与传统的计算机语言一样,VHDL的各种表达式由操作符组成,其中,操作数是各种运算的对象,而操作符则规定运算的方式。VHDL操作符包括逻辑操作符、关系操作符、算术操作符和符号操作符4类。作为操作符所操作对象的操作数,其类型应该和操作符所要求的类型一致。另外,运算操作符是有优先级的区别的,例如,逻辑非运算符在所有逻辑操作符中优先级最高。表4-2给出了所有操作符的优先级次序排列。
表4-2 VHDL操作符优先级
VHDL中的逻辑运算符的操作对象可以是“STD_LOGIC”和“BIT”等逻辑型数据,以及“STD_LOGIC_VECTOR”逻辑型数组及布尔型数据等。必须注意到运算符的左边和右边以及代入信号的数据类型必须是一致的,否则编译时会给出出错的警告。
算术运算中,对于一元运算符的操作符(正、负)可以为任何数据类型(比如整数、实数、物理量等)。加法和减法的操作数必须具有相同的数据类型,而乘、除法的操作数可以同为整数或实数。物理量经整数或实数相乘或相除,其结果仍为一个物理量。求模和取余的操作数必须是属于同一整数类型数据。对于一个指数的运算符来说,它左边的操作数可以是任意整数或实数,而右边的操作数则应为一个整数。
关系运算符两边是运算操作数,不同的关系运算符对两边操作数的数据类型有不同的要求。它们可使用于整数和实数、位等枚举类型以及位矢量等数组类型的关系运算,其中,等号和不等号可以适用于所有类型的数据。在进行关系运算时,左、右两边操作数的类型必须一致,但是位长度可以不相同。在利用关系运算符对位矢量数据进行比较时,比较过程是从最左边的位开始的,依照自左至右按位进行比较。(www.xing528.com)
并置运算符“&”的作用是进行位的连接。例如,将8个位并置运算符连接起来可以构成1个具有8位长度的位矢量,而两个8位的位矢量用并置运算符连接起来可以构成1个16位长度的位矢量。
例如:
在上例中,把x、y两个4位的矢量并置在一起形成8位的矢量,并赋予q。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。