3.5 运算符基础概念_第1页
3.5 运算符基础概念_第2页
3.5 运算符基础概念_第3页
3.5 运算符基础概念_第4页
3.5 运算符基础概念_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章硬件描述语言VerilogHDL运算符05Part5运算符运算符是构成表达式的重要组成部分,VerilogHDL提供的运算符按照功能可分为9类:算术运算符位运算符缩位运算符逻辑运算符赋值运算符关系运算符移位运算符条件运算符拼接运算符5运算符5.1运算符类型根据运算符所带操作数的数量不同,运算符又可分为三种:单目运算符、双目运算符和三目运算符。单目运算符可以带一个操作数,操作数放在运算符的右边。格式为:变量=<运算符>操作数;双目运算符可以带二个操作数,操作数放在运算符的两边。格式为:变量=操作数1<运算符>操作数2;三目运算符可以带三个操作数,用三目运算符的组合符号分隔开。5运算符5.1运算符类型类型符号功能说明类型符号功能说明算术运算符(双目运算符)+-*/%二进制加二进制减二进制乘二进制除求模关系运算符(双目运算符)>

<

>=<===!=大于小于大于或等于小于或等于等于不等于逻辑运算符(双目运算符)!&&||逻辑非逻辑与逻辑或位运算符(双目运算符)~&|^^~或~^按位取反按位与按位或按位异或按位同或缩位运算符(单目运算符)&~&|~|^^~或~^缩位与缩位与非缩位或缩位或非缩位异或缩位同或移位运算符(双目运算符)>>

<<

右移左移条件运算符(三目运算符)?

:条件运算拼接运算符{}拼接运算赋值运算符=<=阻塞赋值非阻塞赋值

5运算符5.2运算符优先级运算符的优先级影响到表达式的计算顺序,从而影响到计算结果的正确性。在VerilogHDL中,括号()的优先级高。运算符的优先级低高5运算符5.2运算符优先级在设计电路时,如果要改变运算的优先级,可以结合括号()使用。如算式a&&b||c,运算顺序为先与后或,改成a&&(b||c)运算顺序是先或再与。5运算符算术运算符在Verilog-1995标准中定义了5种算术运算符:加(+)、减(-)、乘(*)、除(/)、取余(%)名称符号说明加a+b两个数相加减a-b两个数相减,或者取1个操作数的负数(补码)乘a*b两个操作数相乘除a/b两个操作数相除,b不能等于0取余a%b%两侧的数据必须为整型数据,b不能等于05运算符位运算符按位运算符即操作数按照对应的bit分别进行逻辑运算。名称符号说明按位取反~将一个多位操作数的每一位取反按位与&两个多位操作数按位对齐,对应位进行与运算按位或|两个多位操作数按位对齐,对应位进行或运算按位异或^两个多位操作数按位对齐,对应位进行异或运算按位同或^~或~^两个多位操作数按位对齐,对应位进行同或运算5运算符位运算符在位上进行的与运算、或运算和异或运算遵循数字电路的逻辑运算规则。或运算真值表与运算真值表&01XZ00000101XXX0XXXZ0XXX|01XZ001XX11111XX1XXZX1XX5运算符位运算符进行按位运算,原来的操作数有多少位,计算后结果仍然为多少位,保持位数不变。当双目运算的两个操作数位数不同时,较短的操作数左端自动用0补充。异或运算真值表^01XZ001XX110XXXXXXXZXXXX5运算符缩位运算符缩位运算符又称归约运算符,包含缩位与(&)、缩位与非(~&)、缩位或(|)、缩位或非(~|)、缩位异或(^)和缩位同或(^~或~^)共6种。名称符号说明缩位与&对一个多位操作数从最高位开始依次按位进行与运算,直到最低位缩位与非~&对一个多位操作数从最高位开始依次按位进行与非运算,直到最低位缩位或|对一个多位操作数从最高位开始依次按位进行或运算,直到最低位缩位或非~|对一个多位操作数从最高位开始依次按位进行或非运算,直到最低位缩位异或^对一个多位操作数从最高位开始依次按位进行异或运算,直到最低位缩位同或^~或~^对一个多位操作数从最高位开始依次按位进行同或运算,直到最低位5运算符逻辑运算符逻辑运算是对操作数进行逻辑关系的运算,运算符包括逻辑与(&&)、逻辑或(||)、逻辑非(!)3种。a

ba&&ba||b!a!b1

111000

101101

001010

000115运算符逻辑运算符A&&B=4’b0001A&B=4’b1000&A=&B=1’b0例3.5已知A=4’b1101,B=4’b1010,求A&&B,A&B,&A,&B。5运算符关系运算符关系运算符都是双目运算符,对两个操作数的大小进行比较,分为小于(<)、小于等于(<=)、大于(>)、大于等于(>=)四种,返回值为1,说明声明的关系为真;返回值为0,说明声明的关系为假。如果任何一个操作数包含X或Z,则运算结果为不确定,返回值为X。等式运算符衡量两个操作数相等或不等的关系,包括逻辑相等(==)、逻辑不等(!=)、全等(===)和不全等(!==)四种,得到的结果是1位的逻辑值。如果得到的结果为1,说明声明的关系为真;如果得到的结果为0,说明声明的关系为假。5运算符关系运算符==10XZ110XX001XXXXXXXZXXXX===10XZ1100000100X0010Z00015运算符移位运算符移位运算符有两个操作数,左边的操作数是待移位的数据,每次只移动1位,右边的操作数移动的次数以4位数Q3Q2Q1Q0逻辑左移1位为例5运算符移位运算符名称符号说明逻辑左移<<

第一个操作数向左移动由第二个操作数指定的位数,产生的空位用0填补逻辑右移>>

第一个操作数向右移动由第二个操作数指定的位数,产生的空位用0填补算术左移<<<

第一个操作数向左移动由第二个操作数指定的位数,产生的空位用0填补算术右移>>>

第一个操作数向右移动由第二个操作数指定的位数。如果第一个操作数为无符号数,则产生的空位用0填充;如果第一个操作数为有符号数,则符号位用原符号位填充,其余空位用0填充5运算符移位运算符如reg[5:0]a,c;reg[7:0]b;a=6'b101001;b=a<<2;//b=8'b10100100c=a>>2;//c=6'b001010如果要移位的操作数中含有X或Z,移位结果为X。5运算符条件运算符条件运算符格式为:变量=条件表达式?表达式1:表达式2;如果条件表达式为真(值为1),将表达式1的值赋给变量;如果条件表达式为假(值为0),将表达式2的值赋给变量。条件运算可以用于简化if-else语句的书写和提高代码的可读性。5运算符拼接运算符拼接运算符将把两个或多个信号的某些位拼接起来的运算操作,将小表达式合并成大表达式,或者将几个位数少的数据合并为一个位数多的数据,合并结果的位宽是各个参与拼接运算数据的位宽之和。如A=1’b1,B=2’b10,C=2’b00则{B,C}=4’b1000//左B右C,使用B和C的全部数据{A,B[1],C[0]}=3’b110//使用A的全部和B、C的其中各一位{A,B,C,3’b1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论