VHDL顺序语句

上传人:野鹰 文档编号:3191671 上传时间:2017-07-31 格式:PPT 页数:28 大小:108.50KB
返回 下载 相关 举报
VHDL顺序语句_第1页
第1页 / 共28页
VHDL顺序语句_第2页
第2页 / 共28页
VHDL顺序语句_第3页
第3页 / 共28页
VHDL顺序语句_第4页
第4页 / 共28页
VHDL顺序语句_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《VHDL顺序语句》由会员分享,可在线阅读,更多相关《VHDL顺序语句(28页珍藏版)》请在金锄头文库上搜索。

1、五、VHDL语言的顺序语句,顺序语句(Sequential Statements)用来实现模型的算法描述。,这些语句从多侧面完整地描述数字系统的硬件结构和基本逻辑功能,其中包括通信的方式、信号的赋值、多层次的元件例化以及系统行为等。,顺序语句和并行语句是VHDL程序设计中两大基本描述语句系列。,并行语句(Concurrent Statements)用来表示各模型算法描述之间的连接关系。,顺序语句只能出现在 进程(PROCESS) 过程(PROCEDURE) 函数(FUNCTION)中,其它都是并行语句。,顺序语句是相对于并行语句而言的,其特点是每一条顺序语句的执行(指仿真执行)顺序是与它们的书

2、写顺序基本一致的,,理解,一个进程是由一系列顺序语句构成的,而进程本身属并行语句。也就是说,在同一设计实体中,所有的进程是并行执行的,每个进程内部是顺序执行的。,VHDL有如下六类基本顺序语句:,信号赋值语句变量赋值语句,1、赋值语句,2、流程控制语句,3、等待语句,4、子程序调用语句,5、返回语句,6、空操作语句,IF语句CASE语句LOOP语句NEXT语句EXIT语句,RETURN语句,NULL语句,WAIT语句,过程调用函数调用,目的变量 := 表达式;,变量的说明和赋值限定在顺序区域内,即只能在进程或子程序中使用,它无法传递到进程之外。,目的信号 = 表达式;,例:y=1;,例:x:=

3、15;,信号赋值可以在顺序区域内作顺序语句,也可以在结构体中当作并行语句使用。,1、赋值语句,A、变量赋值语句,B、信号赋值语句,2、流程控制语句,第一种,第二种,A、IF 语句,IF 条件句 THEN 顺序语句;END IF;,IF 条件句 THEN 顺序语句; ELSE 顺序语句;END IF;,第三种,IF 条件句1 THEN 顺序语句1;ELSIF 条件2 THEN 顺序语句2;ELSIF 条件n THEN 顺序语句n;ELSE 顺序语句n+1;END IF;,例 :IF (SET=1) THEN c=b END IF;,例 : IF (sel=1) THEN c=a; ELSE c=

4、b; END IF;,例 用IF语句描述一个四选一电路,LIBRARY IEEE;USE IEEE. STE_LOGIC_1164.ALL;ENTITY mux4 IS PORT (input: IN STD_LOGIC_VECTOR (3 DOWNTO 0); sel: IN STD_LOGIC_VECTOR (1 DOWNTO 0); Y: OUT STD_LOGIC);END mux4;,ARCHITECTURE rt1 OF mux4 ISBEGIN PROCESS (input, sel) BEGIN IF (sel=”00”) THEN Y=input (0); ELSIF (Se

5、l=”01”) THEN Y=input (1); ELSIF (Sel=”10”) THEN Y=input (2); ELSE Y 顺序语句;When 选择值 = 顺序语句;.When OTHERS =顺序语句;END CASE ;,选择值可以有四种不同的表达方式: 单个普通数值,如6。 数值选择范围,如(2 TO 4),表示取值为2、3或4。 并列数值,如35,表示取值为3或者5。 混合方式,以上三种方式的混合。,例 用CASE语句描述4选1多路选择器。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX41 ISPORT(S1,S2:

6、IN STD_LOGIC; A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC);END ENTITY MUX41;,ARCHITECTURE ART OF MUX41 ISSIGNA S :STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINSZZZZZ10 ; - 当a大于10时跳出循环 END LOOP L2; .,(2)FOR LOOP语句,语法格式如下:,(1)单个LOOP语句,其语法格式如下:,标号: LOOP 顺序语句; END LOOP 标号 ;,标号: WHILE 条件 LOOP 顺序语句; END LOOP 标号;,(3)WHILE

7、 LOOP语句,语法格式如下:,用法示例: FOR I IN 0 TO 7 LOOP Tmp:=tmp XOR a (I);END LOOP;,用法示例: FOR I IN 0 TO 7 LOOP Tmp:=tmp XOR a (I);END LOOP;,用法示例: WHILE i4 LOOP b:=b AND a(i); vout (i):=b; I:=I+1; END LOOP;,D、NEXT 语句,NEXT; - 第一种语句格式NEXT LOOP 标号; - 第二种语句格式NEXT LOOP 标号 WHEN 条件表达式; - 第三种语句格式,NEXT有三种用法,其语法格式如下:,当LOO

8、P 标号缺省时,则执行NEXT 语句时,即刻无条件终止当前的循环,跳回到本次循环LOOP语句开始处,开始下一次循环,否则跳转到指定标号的LOOP语句开始处,重新开始执行循环操作。若WHEN子句出现并且条件表达式的值为TRUE,则执行NEXT语句,进入跳转操作,否则继续向下执行。,用法示例: L1: FOR CNT IN 1 TO 8 LOOP S1:A(CNT):=0; NEXT WHEN (B=C); S2 :A(CNT+8):=0;END LOOP L1;,当程序执行到NEXT语句时,如果条件判断式(b=c)的结果为TRUE,将执行NEXT语句,并返回到L1,使cnt加1后执行S1开始的赋

9、值语句,否则执行S2开始的赋值语句。,E、EXIT 语句,EXIT; - 第一种语句格式EXIT LOOP 标号; - 第二种语句格式EXIT LOOP 标号 WHEN 条件表达式; - 第三种语句格式,EXIT有三种用法,其语法格式如下:,这种语句格式与前述的NEXT 语句的格式和操作功能非常相似,惟一的区别是NEXT语句是跳向LOOP 语句的起始点,而EXIT语句则是跳向LOOP语句的终点。,EXIT语句为程序需要处理保护、出错和警告状态时,提供了一种快捷、简便的调试方法。,3、等待语句,WAIT语句,WAIT; - 第一种语句格式WAIT ON 信号表; - 第二种语句格式 WAIT U

10、NTIL 条件表达式; - 第三种语句格式WAIT FOR 时间表达式; - 第四种语句格式, 超时等待语句,EXIT有四种用法,其语法格式如下:,用法示例1:SIGNAL s1,s2 : STD_LOGIC;.PROCESSBEGIN.WAIT ON s1,s2 ;END PROCESS ;,WAIT ON 信号表 UNTIL 条件表达式 FOR 时间表达式;,用法示例2:. Wait until enable =1;,单独的WAIT表示永远挂起。,一般地,只有WAIT_UNTIL格式的等待语句可以被综合器接受(其余语句格式只能在VHDL仿真器中使用) ,WAIT_UNTIL语句有以下三种表达方式:WAIT UNTIL 信号=Value ; - (1) WAIT UNTIL 信号EVENT AND 信号=Value; - (2) WAIT UNTIL NOT 信号STABLE AND 信号=Value; - (3),

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号