资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,精选课件ppt,*,第,11,讲,VHDL,的运算符,2,本讲知识点:,关系运算符,并置运算符,1,精选课件ppt,3,、关系运算符:,操作符 功能 操作数类型,等于 任何数据类型,/=,不等于 任何数据类型,小于,integer,、,real,、,bit,、,std_logic,等及其一维向量,大于,integer,、,real,、,bit,、,std_logic,等及其一维向量,=,大于等于,integer,、,real,、,bit,、,std_logic,等及其一维向量,2,精选课件ppt,注意:,(,1,)关系运算符运算的最后结果总是布尔类型,(,2,)关系运算符两边的数据类型必须相同,但是位的长度不一定相同。,(,3,)对位矢量数据进行比较时,比较从最左边的位开始,自左至右进行比较的。在位长不同的情况下,只能按自左至右的比较结果作为关系运算的结果。,3,精选课件ppt,上例,a,的值位,10,,而,b,的值位,7,,,a,应该比,b,大。但是,由于位矢量是从左至右按位比较的,当比较到次高位时,,a,的次高位为“,0”,而,b,的次高位为“,1”,,故比较结果,b,比,a,大。这样的比较结果显然时不符合实际情况的。,例,1,:,SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);,SIGNAL b:STD_LOGIC_VECTOR(2 DOWNTO 0);,a=“1010”;,b b)THEN,ELSE,4,精选课件ppt,为了能使位矢量进行关系运算,在包集合“,STD_LOGIC_UNSIGNED”,中对“,STD_LOGIC_VECTOR”,关系运算重新作了定义,使其可以正确的进行关系运算。注意在使用时必须首先说明调用该包集合。当然,此时位矢量还可以和整数进行关系运算。,在关系运算符中小于等于符“,=”,和代入符“,=”,时相同的,在读,VHDL,语言的语句时,应按照上下文关系来判断此符号到底时关系符还是代入符。,5,精选课件ppt,例,2,:比较下面,3,组二进制数的大小:,“,1011”,和“,101011”,;“,1”,和“,011”,;“,101”,和“,110”,下面是,VHDL,关系运算的结果:,“,1011”,“,101011”,“1”,“,011”,“101”,“,110”,为了能使其正确地进行关系运算,在包集合“,std_logic_unsigned”,和“,std_logic_signed”,中对关系运算符重新做了定义,使用时必须要调用这些程序包。,6,精选课件ppt,【,例,3】,位矢量比较,ENTITY,rel_1,IS,PORT,(a:,IN,BIT_VECTOR(0,TO,2);,b:IN bit_vector(0 to 1);,m:,OUT,BOOLEAN);,END,rel_1;,ARCHITECTURE,example,OF,rel_1,IS,BEGIN,m=(a=b);,END,example;,7,精选课件ppt,【,例,4】,无符号数比较,library ieee;,use ieee.std_logic_arith.all;,entity ue is,port(a,b:in unsigned(1 downto 0);,m:out boolean);,end ue;,architecture ex of ue is,begin,m=b);,end ex;,8,精选课件ppt,【,例,4】,有符号数比较,library ieee;,use ieee.std_logic_arith.all;,entity re is,port(a,b:in signed(1 downto 0);,m:out boolean);,end re;,architecture ex of re is,begin,m=b);,end ex;,9,精选课件ppt,综合实例:,library ieee;,use ieee.std_logic_arith.all;,use ieee.std_logic_unsigned.all;,use ieee.std_logic_signed.all;,entity cnt10 is,port(a,b:in unsigned(3 downto 0);,c,d:in signed(3 downto 0);,rab:out unsigned(3 downto 0);,rcd:out signed(3 downto 0);,ru,rs:out boolean);,end;,architecture rtl of cnt10 is,begin,rabb);rsd);,end;,10,精选课件ppt,并置运算符,并置运算符,“,&”,用于,位的连接,。例如,将,4,个位用并置运算符“,&”,连接起来就可以构成一个具有,4,位长度的位矢量。两个,4,位的位矢量用并置运算符“,&”,连接起来就可以构成,8,位长度的位矢量。图,3-1,就是使用并置运算符的实例。,11,精选课件ppt,图,3-1,使用并置运算符的实例,12,精选课件ppt,在图,3-1,中,,en,是,b(0),b(3),的,允许输出信号,,而,y(0),y(7),中存在如下关系,:,y(0)=b(0)y(1)=b(1),y(2)=b(2)y(3)=b(3),y(4)=a(0)y(5)=a(1),y(6)=a(2)y(7)=a(3),13,精选课件ppt,这种逻辑关系用并置运算符就很容易表达出来,:,tmp_b=b AND(en&en&en&en),;,y=a&tmp_b,;,第一个语句表示,b,的,4,位位矢量由,en,进行选择得到一个,4,位位矢量的输出,。第二个语句表示,4,位位矢量,a,和,4,位位矢量,b,再次连接,(,并置,),构成,8,位位矢量,y,输出,。,位的连接也可使用集合体的方法,,即将,并置符换成逗号,就可以了,例如,:,tmp_b=(en,,,en,,,en,,,en),;,但是,这种方法,不适用于位矢量之间的连接,。如下的描述方法是,错误,的,:,aen,,,1=en,,,0=en),;,或,tmp_ben),;,在指定位的脚标时,也可以用,“,OTHERS”,来说明,:,tmp_ben),;,要注意,在,集合体中“,OTHERS”,只能放在最后,。假若,b,位矢量的脚标,b(2),的选择信号为“,0”,,其他位的选择信号均为,en,。那么此时表达式可写为,tmp_b0,,,OTHERS=en),;,15,精选课件ppt,P92,例,4-11,注意:操作数必须有相同的类型。,16,精选课件ppt,17,精选课件ppt,VHDL,运算符的优先级,运算符 优先级,not,高,*,+,(正号),-,(负号),+,(加号)(减号),&,SLL SRL SLA SRA ROL ROR,=/=,and or nand nor xor xnor,低,18,精选课件ppt,
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6