《VHDL操作符》PPT课件.ppt

上传人:牧羊曲112 文档编号:5454316 上传时间:2023-07-08 格式:PPT 页数:19 大小:551.61KB
返回 下载 相关 举报
《VHDL操作符》PPT课件.ppt_第1页
第1页 / 共19页
《VHDL操作符》PPT课件.ppt_第2页
第2页 / 共19页
《VHDL操作符》PPT课件.ppt_第3页
第3页 / 共19页
《VHDL操作符》PPT课件.ppt_第4页
第4页 / 共19页
《VHDL操作符》PPT课件.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《《VHDL操作符》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VHDL操作符》PPT课件.ppt(19页珍藏版)》请在三一办公上搜索。

1、赋值运算符逻辑运算符关系运算符算术运算符移位运算符并置运算符,VHDL操作符,与其他程序设计语言相似,VHDL中的表达式也是由运算符将基本元素连接起来形成。,在VHDL语言中共有6类操作符,在VHDL语言中,共有6种逻辑运算符,他们分别是:NOT 取反;AND 与;OR 或;NAND 与非;NOR 或非;XOR 异或。,逻辑运算符,这6种逻辑运算符可以对“BIT”和“STD_LOGIC”等逻辑型数据、“STD_LOGIC _VECTOR”逻辑型数组及布尔数据进行逻辑运算。必须注意:运算符的左边和右边,以及代入的信号的数据类型必须是相同的。,【例1】SIGNAL a,b,c:STD_LOGIC_

2、VECTOR(3 DOWNTO 0);SIGNAL d,e,f,g:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL h,i,j,k:STD_LOGIC;SIGNAL l,m,n,o,p:BOOLEAN;.a=b AND c;-b、c相与后向a赋值,a、b、c的数据类型同属4位长的位矢量 d=e OR f OR g;-两个操作符OR相同,不需括号 h=(i NAND j)NAND k;-NAND不属上述三种算符中的一种,必须加括号 l=(m XOR n)AND(o XOR p);-操作符不同,必须加括号 h=i AND j AND k;-两个操作符都是AND,不必加括号

3、h=i AND j OR k;-两个操作符不同,未加括号,表达错误 a=b AND e;-操作数b与 e的位矢长度不一致,表达错误 h=i OR l;-i 的数据类型是位STD_LOGIC,而l的数据类型是.-布尔量BOOLEAN,因而不能相互作用,表达错误。,逻辑操作符,关系操作符,【例2】ENTITY relational_ops_1 IS PORT(a,b:IN BITVECTOR(0 TO 3);output:OUT BOOLEAN);END relational_ops_1;ARCHITECTURE example OF relational_ops_1 IS BEGIN outpu

4、t=(a=b);END example;,【例3】ENTITY relational_ops_2 IS PORT(a,b:IN INTEGER RANGE 0 TO 3;output:OUT BOOLEAN);END relational_ops_2;ARCHITECTURE example OF relational_ops_2 IS BEGIN output=b);END example;,六种关系运算操作符:“=”(等于)、“/=”(不等于)、“”(大于)、“=”(大于等于)“=”(小于等于),VHDL语言中有5类算术运算符,他们分别是:求和操作符:、求积操作符:*、/、MOD、REM符

5、号操作符:、混合操作符:*、ABS移位操作符:SLL、SRL、SLA、SRA、ROL、ROR,算术运算符,求和操作符,【例5】VARIABLE a,b,c,d,e,f:INTEGER RANGE 0 TO 255;.a:=b+c;d:=e f;,【例4】PROCEDURE adding_e(a:IN INTEGER;b:INOUT INTEGER)IS.b:=a+b;,【例6】PACKAGE example_arithmetic IS TYPE small_INt IS RANGE 0 TO 7;END example_arithmetic;USE work.example_arithmeti

6、c.ALL;ENTITY arithmetic IS PORT(a,b:IN SMALL_INT;c:OUT SMALL_INT);END arithmetic;ARCHITECTURE example OF arithmetic IS BEGIN c=a+b;END example;,求积操作符,符号操作符,求积操作符包括*(乘)、/(除)、MOD(取模)和REM(取余)四种操作符。,符号操作符“+”和“”的操作数只有一个。,混合操作符,【例7】SIGNAL a,b:INTEGER RANGE-8 to 7;SIGNAL c:INTEGER RANGE 0 to 15;SIGNAL d:IN

7、TEGER RANGE 0 to 3;a=ABS(b);c=2*d;,混合操作符包括乘方“*”操作符和取绝对值“ABS”操作符两种,移位操作符,移位操作符的语句格式是:标识符 移位操作符 移位位数;,SLL(逻辑左移)SRL(逻辑右移)SLA(算术左移)SRA(算术右移)ROL(逻辑循环左移)ROR(逻辑循环右移),【例8】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY decoder3to8 IS port(input:IN STD_LOGIC_VECTOR(2 DOWNTO 0)

8、;output:OUT BIT_VECTOR(7 DOWNTO 0);END decoder3to8;ARCHITECTURE behave OF decoder3to8 ISBEGINoutput=00000001 SLL CONV_INTEGER(input);-被移位部分是常数!END behave;,并置运算符,SIGNAL g,h,i:STD_LOGIC;SIGNAL c,d,e:STD_LOGIC _VECTOR(1 TO 0);d=i&NOT h;a=c&d;,元素与元素并置,形成长度为2的数组,数组与数组并置,形成长度为4的数组,&连接,赋值运算符,赋值运算符用来给信号、变量和

9、常量赋值。,=用于对signal赋值:=用于对variable,constant 和 generic 赋 值,也可用于初始赋值;=给矢量中某些位赋值,或对某些位之外 的其它位赋值。,例 首先定义下列信号和变量,Signal x:std_logic;Varibale y:std_logic_vector(3 downto 0);Signal w:std_logic_vector(0 to 7);X1,others=0);-最低位是1,其它位0,即用户自定义操作符,可以与预定义的操作符具有相同的名称。对已存在的操作符重新定义,可进行不同类型操作数之间的运算。例:对一个整数和一个1位的二进制数进行加法运算 function“+”(a:integer;b:bit)return integer is begin if(b=1)then return a+1;else return a;end if;end“+”;,重载操作符,运算符 NOT,ABS,*,/,MOD,REM+(正号),(负号)+,&SLL,SLA,SRL,SRA,ROL,ROR=,/=,=AND,OR,NAND,NOR,XOR,XNOR,VHDL操作符的优先顺序,最高优先级,最低优先级,优先级,运算操作符总汇列表如下:,VHDL操作符,接上页,thanks!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号