当前位置:   article > 正文

4、VHDL中的运算操作符_vhdl移位操作符

vhdl移位操作符

描述:

VHDL中有算术运算符、逻辑运算符、赋值运算符、移位运算符、关系运算符与并置运算符6中常见运算符。

具体介绍:

VHDL 中常见的算术运算符包括:

  1. 加法运算符(+):用于将两个数相加。
  2. 减法运算符(-):用于将两个数相减。
  3. 乘法运算符(*):用于将两个数相乘。
  4. 除法运算符(/):用于将两个数相除。
  5. 取模运算符(mod):用于求两个数相除的余数。
  6. 幂运算符(**):用于对一个数进行幂运算。

这些运算符可以用于各种数据类型,如整数、实数、浮点数、定点数等。在使用这些运算符时,需要注意数据类型的匹配和精度问题,以避免出现意外的结果。此外,还可以使用 VHDL 中的类型转换操作符(如 to_integer、to_unsigned 等)将数据类型转换为所需的类型。

VHDL 中常见的逻辑运算符包括:

  1. 与运算符(and):用于将两个条件同时满足,结果为真。
  2. 或运算符(or):用于将两个条件中至少有一个满足,结果为真。
  3. 非运算符(not):用于将一个条件取反,结果为真时为假,结果为假时为真。
  4. 异或运算符(xor):用于将两个条件中仅有一个满足,结果为真。

这些运算符可以用于各种数据类型,如 STD_LOGIC、BOOLEAN、INTEGER 等。在使用这些运算符时,需要注意数据类型的匹配和精度问题,以避免出现意外的结果。此外,还可以使用 VHDL 中的类型转换操作符(如 to_integer、to_unsigned 等)将数据类型转换为所需的类型。

VHDL 中常见的关系运算符包括:

VHDL 中常见的关系运算符包括:等于(=)、不等于(/=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)

VHDL 中常见的移位运算符包括:

格式如下:

                                                                                       <操作数>  <移位运算符> <位数>

  1. 左移位运算符:用符号“sll”表示,将操作数向左移指定的位数,右侧空出的位补零。

  2. 右移位运算符:用符号“srl”表示,将操作数向右移指定的位数,左侧空出的位补零。

  3. 循环逻辑左移位运算符:用符号“rol”表示,将操作数向左移指定的位数,右侧空出的位补零,左侧溢出的位移动到右侧。

  4. 循环逻辑右移位运算符:用符号“ror”表示,将操作数向右移指定的位数,左侧空出的位补零,右侧溢出的位移动到左侧。

  5. 算术左移位运算符:用符号“sla”表示,将操作数向左移指定的位数,右侧空出的位补零,左侧溢出的位移动到右侧,符号位不变。

  6. 算术右移位运算符:用符号“sra”表示,将操作数向右移指定的位数,左侧空出的位补符号位,右侧溢出的位移动到左侧,符号位不变。

VHDL中的赋值运算符包括:

1、":="表示的是非阻塞赋值,即在当前时刻完成赋值操作,不会受到任何其他信号的干扰。

2、"<="表示的是阻塞赋值,即在当前时刻完成赋值操作,但是如果有其他信号的变化,会立即停止赋值操作,等待信号变化后再继续执行。

3、"=>" 给矢量中的某位赋值,常用与others => '0'

VHDL中的并置运算符包括:

可以使用“&”或者( , , , )符号来进行并置运算。

  1. LIBRARY IEEE;
  2. USE IEEE.STD_LOGIC_1164.ALL;
  3. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  4. USE IEEE.STD_LOGIC_ARITH.ALL;
  5. ENTITY data IS
  6. PORT(
  7. a : IN STD_LOGIC;
  8. b : IN STD_LOGIC_VECTOR(6 DOWNTO 0);
  9. c : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
  10. d : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
  11. );
  12. END ENTITY;
  13. ARCHITECTURE rtl OF data IS
  14. BEGIN
  15. c <= a & b;
  16. d <= (a,'1','0');
  17. 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

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/432418
推荐阅读
相关标签
  

闽ICP备14008679号