4、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中的并置运算符包括:

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

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

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA一只小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值