欢迎来到天天文库
浏览记录
ID:55621575
大小:1.22 MB
页数:59页
时间:2020-05-20
《eda技术与vhdl语言第三章.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、3.4VHDL语言的基本语句VHDL语言描述系统硬件行为时,按语句执行顺序可以分为顺序(Sequential)描述语句和并发(Concurrent)描述语句。灵活运用这两类语句就可以正确地描述系统的并发行为和顺序行为。例如,进程语句(ProcessStatement)是一个并发语句。在一个构造体内可以有几个进程语句同时存在,各进程语句是并发执行的。但是,在进程内部所有语句应是顺序描述语句,也就是说,是按书写的顺序自上至下,一个语句一个语句地执行的。例如,IF语句、LOOP语句等都属于此类顺序描述语句。1、顺序描述语句执行顺序与书写顺序一致,与传统软件设计语言的特点相似。顺
2、序语句只能用在进程与子程序中。在VHDL语言中顺序描述语句主要有以下几种:*信号代入语句;*变量赋值语句;*WAIT语句;*IF语句;*CASE语句;*LOOP语句;*NEXT语句;*EXIT语句;2、并发描述语句VHDL的并发语句用来描述一组并发行为,它是并发执行的,与程序的书写顺序无关。*进程语句(PROCESS);*并发(CONCURRENT)信号代入语句;*条件(CONDITIONAL)信号代入语句;*选择(SELECTIVE)信号代入语句;*并发(CONCURRENTPROCEDURE)过程调用语句;*块(BLOCK)语句。3.4.1信号代入语句信号代入语句的作
3、用是将数据或表达式的结果赋给一个目标对象,目标对象可以是内部信号,也可以是端口信号。信号代入语句可分为:简单信号代入语句、条件信号赋值语句和选择信号赋值语句三种。1、简单信号代入语句简单代入语句可以在进程内部使用,按顺序执行;代入语句也可以在构造体内部的进程外使用,且并发执行。并发代入语句在仿真时刻同时运行,它表征了各个独立器件的各自的独立操作。如:a<=b+c;d<=e*f;--分别描述加法器和乘法器行为。在实际系统中加法器和乘法器是同时并发执行的。书写格式:目的信号量<=信号量表达式;意义:将右边信号量表达式的值赋给左边的目的信号量。1、简单信号代入语句(续)代入符号
4、“<=”的右边可以用算术表达式,也可以用逻辑运算表达式,还可以用关系操作表达式。注意1)代入符号与小于等于的区别;2)代入符号两边信号量的类型和长度应一致;a.一个进程:最后一次赋值有效补充:信号的多次赋值architecturertlofexissignala:std_logic;beginprocess(…)begina<=b;…a<=c;endprocess;endrtl;--结果是a=c2、条件信号代入语句格式:目的信号量<=表达式1WHEN条件1ELSE表达式2WHEN条件2ELSE表达式3WHEN条件3ELSE┆表达式n;┆ELSE在每个表达式后面都跟有用“W
5、HEN”所指定的条件,如果满足该条件,则该表达式值代入目的信号量;如果条件不满足,则再判断下一个表达式所指定的条件。最后一个表达式可以不跟条件,即所有条件都不满足时条件信号代入语句举例利用条件信号代入语句实现四选一逻辑电路。ENTITYmux4ISPORT(i0,i1,i2,i3,a,b:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDmux4;ARCHITECTURErtlOFmux4ISSIGNALsel:STD_LOGIC_VECTOR(1DOWNTO0);BEGINsel<=b&a;q<=i0WHENsel=“00”ELSEi1WHENsel=“01
6、”ELSEi2WHENsel=“10”ELSEi3WHENsel=“11”ELSE‘X’;ENDrtl;目的信号量<=表达式1WHEN条件1ELSE表达式2WHEN条件2ELSE表达式3WHEN条件3ELSE┆表达式n;i1i3qmuxi0i2sel(0)sel(1)格式:WITH表达式SELECT目的信号量<=表达式1WHEN条件1,表达式2WHEN条件2,┆表达式nWHEN条件n;1)不能有重叠的条件分支。2)最后条件可为others。否则,全部条件必须能包含表达式的所有可能值。3)选择信号赋值语句与进程中的case语句等价。3、选择信号代入语句注用选择信号代入语句实
7、现四选一电路LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmuxISPORT(i0,i1,i2,i3,a,b:INSTD_LOGIC;q:OUTSTD_LOGIC);ENDmux;ARCHITECTUREbehaveOFmuxISSIGNALsel:INTEGER;BEGINWITHselSELECTq<=i0WHEN0,i1WHEN1,i2WHEN2,i3WHEN3,‘X’WHENOTHERS;sel<=0WHENa=‘0’ANDb=‘0’ELSE1WHENa=‘0’ANDb=‘1
此文档下载收益归作者所有