描述:
VHDL中有算术运算符、逻辑运算符、赋值运算符、移位运算符、关系运算符与并置运算符6中常见运算符。
具体介绍:
VHDL 中常见的算术运算符包括:
- 加法运算符(+):用于将两个数相加。
- 减法运算符(-):用于将两个数相减。
- 乘法运算符(*):用于将两个数相乘。
- 除法运算符(/):用于将两个数相除。
- 取模运算符(mod):用于求两个数相除的余数。
- 幂运算符(**):用于对一个数进行幂运算。
这些运算符可以用于各种数据类型,如整数、实数、浮点数、定点数等。在使用这些运算符时,需要注意数据类型的匹配和精度问题,以避免出现意外的结果。此外,还可以使用 VHDL 中的类型转换操作符(如 to_integer、to_unsigned 等)将数据类型转换为所需的类型。
VHDL 中常见的逻辑运算符包括:
- 与运算符(and):用于将两个条件同时满足,结果为真。
- 或运算符(or):用于将两个条件中至少有一个满足,结果为真。
- 非运算符(not):用于将一个条件取反,结果为真时为假,结果为假时为真。
- 异或运算符(xor):用于将两个条件中仅有一个满足,结果为真。
这些运算符可以用于各种数据类型,如 STD_LOGIC、BOOLEAN、INTEGER 等。在使用这些运算符时,需要注意数据类型的匹配和精度问题,以避免出现意外的结果。此外,还可以使用 VHDL 中的类型转换操作符(如 to_integer、to_unsigned 等)将数据类型转换为所需的类型。
VHDL 中常见的关系运算符包括:
VHDL 中常见的关系运算符包括:等于(=)、不等于(/=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)
VHDL 中常见的移位运算符包括:
格式如下:
<操作数> <移位运算符> <位数>
-
左移位运算符:用符号“sll”表示,将操作数向左移指定的位数,右侧空出的位补零。
-
右移位运算符:用符号“srl”表示,将操作数向右移指定的位数,左侧空出的位补零。
-
循环逻辑左移位运算符:用符号“rol”表示,将操作数向左移指定的位数,右侧空出的位补零,左侧溢出的位移动到右侧。
-
循环逻辑右移位运算符:用符号“ror”表示,将操作数向右移指定的位数,左侧空出的位补零,右侧溢出的位移动到左侧。
-
算术左移位运算符:用符号“sla”表示,将操作数向左移指定的位数,右侧空出的位补零,左侧溢出的位移动到右侧,符号位不变。
-
算术右移位运算符:用符号“sra”表示,将操作数向右移指定的位数,左侧空出的位补符号位,右侧溢出的位移动到左侧,符号位不变。
VHDL中的赋值运算符包括:
1、":="表示的是非阻塞赋值,即在当前时刻完成赋值操作,不会受到任何其他信号的干扰。
2、"<="表示的是阻塞赋值,即在当前时刻完成赋值操作,但是如果有其他信号的变化,会立即停止赋值操作,等待信号变化后再继续执行。
3、"=>" 给矢量中的某位赋值,常用与others => '0'
VHDL中的并置运算符包括:
可以使用“&”或者( , , , )符号来进行并置运算。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY data IS
PORT(
a : IN STD_LOGIC;
b : IN STD_LOGIC_VECTOR(6 DOWNTO 0);
c : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
d : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
);
END ENTITY;
ARCHITECTURE rtl OF data IS
BEGIN
c <= a & b;
d <= (a,'1','0');
END rtl;
运算符 | 支持类型 |
算术运算符 + - * / mod ** | integer、signed、unsigned std_logic_vector使用算术运算符必须申明use std_logic_unsigned.all包 std_logic、bit、bit_vector需要进行数据类型转换 |
逻辑运算符 and or not xor xnor nand nor | bit、bit_vector、 std_logic、std_logic_vector、 std_ulogic、std_unlogic_vector |
关系运算符 = /= > < >= <= | 任意类型 |
移位运算符 sll srl rol ror sla sra | 格式:<操作数> <移位运算符> <位数> <操作数> 必须为:bit_vector <位数>必须为:integer |
赋值运算符 <= = => | 任意类型 |
并置运算符 & (,,,) | bit_vector、 std_logic、std_logic_vector、 std_ulogic、std_unlogic_vector signed、unsigned |