




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
五、VHDL语言的顺序语句,顺序语句(Sequential Statements)用来实现模型的算法描述。,这些语句从多侧面完整地描述数字系统的硬件结构和基本逻辑功能,其中包括通信的方式、信号的赋值、多层次的元件例化以及系统行为等。,顺序语句和并行语句是VHDL程序设计中两大基本描述语句系列。,并行语句(Concurrent Statements)用来表示各模型算法描述之间的连接关系。,顺序语句只能出现在 进程(PROCESS) 过程(PROCEDURE) 函数(FUNCTION) 中,其它都是并行语句。,顺序语句是相对于并行语句而言的,其特点是每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的,,理解,一个进程是由一系列顺序语句构成的,而进程本身属并行语句。也就是说,在同一设计实体中,所有的进程是并行执行的,每个进程内部是顺序执行的。,VHDL有如下六类基本顺序语句:,信号赋值语句 变量赋值语句,1、赋值语句,2、流程控制语句,3、等待语句,4、子程序调用语句,5、返回语句,6、空操作语句,IF语句 CASE语句 LOOP语句 NEXT语句 EXIT语句,RETURN语句,NULL语句,WAIT语句,过程调用 函数调用,目的变量 := 表达式;,变量的说明和赋值限定在顺序区域内,即只能在进程或子程序中使用,它无法传递到进程之外。,目的信号 = 表达式;,例:y=1;,例:x:=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=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 IS BEGIN PROCESS (input, sel) BEGIN IF (sel=”00”) THEN Y=input (0); ELSIF (Sel=”01”) THEN Y=input (1); ELSIF (Sel=”10”) THEN Y=input (2); ELSE Y=input (3); END IF; END PROCESS; END rt1;,IF语句不仅可用于选择器设计,还可用于比较器,译码器等进行条件控制的逻辑设计。IF语句中至少应有一个条件句,条件句必须由布尔表达式构成,条件表达式中能使用关系运算操作及逻辑运算操作的组合表达式。,IF语句颠倒条件判别次序,会引起在综合时逻辑功能的变化,即IF语句判别条件不可颠倒。,IF语句中,先处理最起始的条件;如果不满足,再处理下一个条件。一般把条件约束最多的作为起始条件。,B、CASE 语句,CASE 表达式 IS When 选择值 = 顺序语句; 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 IS PORT(S1,S2: IN STD_LOGIC; A,B,C,D:IN STD_LOGIC; Z: OUT STD_LOGIC); END ENTITY MUX41;,ARCHITECTURE ART OF MUX41 IS SIGNA S :STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN SZZZZZ=X; END CASE; END PROCESS; END ARCHITECTURE ART;,(1) 条件句中的选择值必须在表达式的取值范围内。 (2) 除非所有条件句中的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件句中的选择必须用“OTHERS”表示。 (3) CASE语句中每一条语句的选择只能出现一次,不能有相同选择值的条件语句出现。 (4) CASE语句执行中必须选中,且只能选中所列条件语句中的一条。这表明CASE语句中至少要包含一个条件语句。,使用CASE语句需注意以下几点:,CASE语句常用来描写总线行为、编码器和译码器的结构。CASE语句与IF语句功能相似但CASE语句的可读性好,非常简洁。,C、LOOP 语句,标号: FOR 循环变量 IN 循环次数范围 LOOP 顺序语句; END LOOP 标号;,用法示例: L2 :LOOP a := a+1; EXIT L2 WHEN a 10 ; - 当a大于10时跳出循环 END LOOP L2; .,(2)FOR LOOP语句,语法格式如下:,(1)单个LOOP语句,其语法格式如下:,标号: LOOP 顺序语句; END LOOP 标号 ;,标号: WHILE 条件 LOOP 顺序语句; END LOOP 标号;,(3)WHILE 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有三种用法,其语法格式如下:,当LOOP 标号缺省时,则执行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开始的赋值语句,否则执行S2开始的赋值语句。,E、EXIT 语句,EXIT; - 第一种语句格式 EXIT LOOP 标号; - 第二种语句格式 EXIT LOOP 标号 WHEN 条件表达式; - 第三种语句格式,EXIT有三种用法,其语法格式如下:,这种语句格式与前述的NEXT 语句的格式和操作功能非常相似,惟一的区别是NEXT语句是跳向LOOP 语句的起始点,而EXIT语句则是跳向LOOP语句的终点。,EXIT语句为程序需要处理保护、出错和警告状态时,提供了一种快捷、简便的调试方法。,3、等待语句,WAIT语句,WAIT; - 第一种语句格式 WAIT ON 信号表; - 第二种语句格式 WAIT UNTIL 条件表达式; - 第三种语句格式 WAIT FOR 时间表达式; - 第四种语句格式, 超时等待语句,EXIT有四种用法,其语法格式如下:,用法示例1: SIGNAL s1,s2 : STD_LOGIC; . PROCESS BEGIN . 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),如果设clock为时钟信号输入端,以下四条WAIT语句所设的进程启动条件都是时钟上跳沿,所以它们对应的硬件结构是一样的: WAIT UNTIL clock =1; WAIT UNTIL rising_edge(clock) ; WAIT UNTIL NOT clockSTABLE AND clock =1; WAIT UNTIL clock =1 AND clockEVENT;,例: PROCESS BEGIN rst_loop : LOOP WAIT UNTIL 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 = b ; - 无复位信号,执行赋值操作 END LOOP rst_loop ; END PROCESS;,VHDL规定,已列出敏感量的进程中不能使用任何形式的WAIT语句。,调用过程的语句格式如下: 过程名(形参名= 实参表达式 ,形参名= 实参表达式) ;,一个过程的调用将分别完成以下三个步骤:,(1)将IN和INOUT模式的实参值赋给欲调用的过程中与它们对应的形参;,(2)执行这个过程;,(3)将过程中IN和INOUT模式的形参值返回给对应的实参。,4、子程序调用语句,A、过程调用语句,B、函数调用语句,函数调用与过程调用是十分相似的,不同之处是,调用函数将返还一个指定数据类型的值,函数的参量只能是输入值。,5、返回语句,RETURN语句是一段子程序结束后,返回主程序的控制语句。它有两种格式:,第一种格式只能用于过程,它后面一定不能有表达式;第二种格式只能用于函数,它后面必须有条件表达式,它是函数结束的必要条件,函数结束必须用RETURN语句。,RETURN; -第一种语句格式 RETURN 表达式; - 第二种语句格式,【例】 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 = s AND q AFTER 5 ns ; END IF ; END PROCEDURE rs ;,【例】 FUNCTION opt (a, b, opr :STD_LOGIC) RETURN STD_LOGIC IS BEGIN IF (opr =1) THEN RETURN (a AND b); ELSE RETURN (a OR b) ; END IF ; END FUNCTION opt ;,6、空操作语句,空操作语句的语句格式如下: NULL;,在下例的CASE语句中,NULL用于排除一些不用的条件。 CASE Opcode IS WHEN “001“ = tmp := rega AND regb ; WHEN “101“ = tmp := rega OR regb ; WHEN “110“ = tmp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025新进厂员工安全培训考试试题含答案(黄金题型)
- 2025安全标准化安全培训考试试题典型题
- 2025年食品添加剂在食品加工中的安全性评估与产业创新趋势报告
- 2025年文化旅游融合发展示范区建设资金申请的旅游产业城乡融合发展与乡村振兴报告
- 五年级数学线上小组合作计划
- 青少年传染病意识提升培训计划
- 幼儿园家园互动信息工作计划
- 历史博物馆展览策划工作计划
- 工业互联网平台软件定义网络(SDN)在2025年工业4.0的优化布局报告
- 网上租赁合同
- 微机考试试题及答案
- 《甲烷吸附储存技术》课件
- 2024年河北省临漳县事业单位公开招聘村务工作者笔试题带答案
- 2025物业管理服务承包合同范本
- 企业所得税课件
- 2025年高考政治核心知识总结
- 托管中心晚辅老师培训
- 兼职顾问服务合同范本
- 人教版(新教材)高中物理选择性必修2教学设计2:2 2 法拉第电磁感应定律教案
- 18 井冈翠竹 课件
- 反诈知识竞赛题库及答案(共286题)
评论
0/150
提交评论