VHDL中预定义的运算操作符

介绍

学习了VHDL语言后,我发现其中很多知识点和Verilog hdl还是有区别的,这篇文章主要介绍一下VHDL语言中的各种运算操作符。

在VHDL语言中不区分大小写奥。


运算操作符的类型

在VHDL语言中有6种运算操作符。


赋值运算符

赋值运算符用来给信号,变量和常数赋值。赋值运算符包括:

<=        :用于signal信号的赋值。

:=         :用于variable,constant和generic赋值,或者用于对信号赋初始值。

=>        :给矢量中的某些位赋值,或对某些位之外的其他位赋值。

                在编写顶层文件或者仿真文件中实例化也用在这个运算符。


逻辑运算符

逻辑运算符用来执行逻辑运算操作。执行逻辑运算的操作数必须是bit,bit_vector,std_logic,std_logic_vector类型的数据。

not         :取反。

and        :与。

or           :或。

nand      :与非。

nor         :或非。

xor         :异或。

xnor       :同或。

从上到下运算符的有限级顺序递减。


算术运算符

算术运算符用来执行算数运算操作。如果声明了ieee中的包集std_logic_signed和std_logic_unsigned,就可以对std_logic_vector类型的数据进行算术运算。

+        加。

-        减。

*        乘。

/        除。

**      指数运算。

mod   取模。

rem   取余。

abs  取绝对值。

mod和rem的区别:y mod x 运算结果是y除以x得到的余数,运算结果通过x信号返回。y rem x 运算结果是y除以x得到的余数,运算结果通过信号y返回。


关系运算符

关系运算符用来对两个操作数进行比较运算。关系运算符两侧的数据类型必须相同。

=         等于。

/=        不等于。

<         小于。

>          大于。

<=        小于等于。

>=        大于等于。


移位运算符

移位运算符用来对数据进行移位操作。

 其语法结构为:

        <左操作数><移位操作符><右操作数>

        左操作数必须是bit_vector类型,右操作数必须是integer类型的。

sll        逻辑左移

srl        逻辑右移

sla        算术左移

sra        算术右移

rol        循环逻辑左移

ror        循环逻辑右移


并置运算符

并置运算符用于位的拼接,操作数可以支持逻辑运算的任何数据类型。

&

(,,,)

例:z<= x &"1100" ;                  --如果x<='1',那么z<= "1110"

        z<=('1','1','0','0');


结语

VHDL中预定义的运算操作符大概就有这些吧,以后碰到其他的我在补充吧。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值