五,VHDL语言的顺序语句_第1页
五,VHDL语言的顺序语句_第2页
五,VHDL语言的顺序语句_第3页
五,VHDL语言的顺序语句_第4页
五,VHDL语言的顺序语句_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、句,也可以在结构体中当作并行语句使用。1、赋值语句A、变量赋值语句B、信号赋值语句42、流程控制语句第一种第二种A、IF 语句IF 条件句 THEN 顺序语句;END IF;IF 条件句 THEN 顺序语句; ELSE 顺序语句;END IF;5第三种IF 条件句1 THEN 顺序语句1;ELSIF 条件2 THEN 顺序语句2;ELSIF 条件n THEN 顺序语句n;ELSE 顺序语句n+1;END IF;6例 :IF (SET=1) THEN c=b END IF;例 : IF (sel=1) THEN c=a; ELSE c=b; END IF;7例 用IF语句描述一个四选一电路LIB

4、RARY 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;8ARCHITECTURE rt1 OF mux4 ISBEGIN PROCESS (input, sel) BEGIN IF (sel=”00”) THEN Y=input (0); ELSIF (Sel=”01”) THEN Y=input (1); ELSIF

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

6、GIC; Z: OUT STD_LOGIC);END ENTITY MUX41;12ARCHITECTURE 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 标号 ;15 标号: WHILE 条件 LOOP 顺序语句; END LOOP 标号;(3)WHILE LOOP语句,语法格式如下:用法示例: FOR I IN 0

7、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;16D、NEXT 语句NEXT; - 第一种语句格式NEXT LOOP 标号; - 第二种语句格式NEXT LOOP 标号 WHEN 条件表达式; - 第三种语句格式NEXT有三种用法,其语法格式如下: 当LOOP 标号缺省时,则执行NEXT 语句时,即刻无条件终止当前的循环,跳回到

8、本次循环LOOP语句开始处,开始下一次循环,否则跳转到指定标号的LOOP语句开始处,重新开始执行循环操作。若WHEN子句出现并且条件表达式的值为TRUE,则执行NEXT语句,进入跳转操作,否则继续向下执行。17用法示例: 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开始的赋值语句,否则执行S2开始的赋值语句。18E、EXIT 语句EXIT; -

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

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

11、号EVENT AND 信号=Value; - (2) WAIT UNTIL NOT 信号STABLE AND 信号=Value; - (3) 如果设clock为时钟信号输入端,以下四条WAIT语句所设的进程启动条件都是时钟上跳沿,所以它们对应的硬件结构是一样的:WAIT UNTIL clock =1;WAIT UNTIL rising_edge(clock) ;WAIT UNTIL NOT clockSTABLE AND clock =1;WAIT UNTIL clock =1 AND clockEVENT;21例:PROCESS BEGINrst_loop : LOOP WAIT UNTIL

12、 clock =1 AND clockEVENT; - 等待时钟信号 NEXT rst_loop WHEN (rst=1); - 检测复位信号rst x = a ; - 无复位信号,执行赋值操作 WAIT UNTIL clock =1 AND clockEVENT; - 等待时钟信号 NEXT rst_loop When (rst=1); - 检测复位信号rst y 实参表达式 ,形参名= 实参表达式) ;一个过程的调用将分别完成以下三个步骤:(1)将IN和INOUT模式的实参值赋给欲调用的过程中与它们对应的形参;(2)执行这个过程;(3)将过程中IN和INOUT模式的形参值返回给对应的实参。

13、4、子程序调用语句A、过程调用语句23B、函数调用语句 函数调用与过程调用是十分相似的,不同之处是,调用函数将返还一个指定数据类型的值,函数的参量只能是输入值。245、返回语句RETURN语句是一段子程序结束后,返回主程序的控制语句。它有两种格式: 第一种格式只能用于过程,它后面一定不能有表达式;第二种格式只能用于函数,它后面必须有条件表达式,它是函数结束的必要条件,函数结束必须用RETURN语句。 RETURN; -第一种语句格式RETURN 表达式; - 第二种语句格式25【例】PROCEDURE rs (SIGNAL s , r : IN STD_LOGIC ; SIGNAL q , nq : INOUT STD_LOGIC) IS BEGIN IF ( s =1 AND r =1) THEN REPORT Forbidden state : s and r are quual to 1; RETURN ; ELSE q = s AND nq AFTER 5 ns ; nq tmp := rega AND regb ; WHEN 101 = tmp := rega OR regb ; WHEN 110 = tmp := NOT rega ; WHEN OTHERS = NULL ;END CASE ; 276、断言(ASS

温馨提示

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

评论

0/150

提交评论