学习进程语句与流程控制语句

上传人:tian****1990 文档编号:245197810 上传时间:2024-10-07 格式:PPT 页数:29 大小:317.49KB
返回 下载 相关 举报
学习进程语句与流程控制语句_第1页
第1页 / 共29页
学习进程语句与流程控制语句_第2页
第2页 / 共29页
学习进程语句与流程控制语句_第3页
第3页 / 共29页
点击查看更多>>
资源描述
单击此处编辑母版样式,单击此处编辑幻灯片母版样式,第二层,第三层,第四层,第五层,*,情境,3,学习使用流程控制语句,设计时序电路,构造体结构图,构造体,说明语句,功能描述语句,块语句,进程语句,信号赋值语句,子程序调用语句,元件例化语句,进程语句,VHDL,中最重要的语句,具有并行和顺序行为的双重性,进程和进程语句之间是,并行关系,进程内部是一组,连续执行的顺序语句,进程语句与构造体中的其余部分进行信息交流是靠,信号,完成的,进程语句,PROCESS,1,PROCESS,n,signal,signal,ARCHITECTURE,一个构造体可以有多个进程语句,进程和进程之间是并行的,进程和进程之间的数据交换通过信号完成,进程内部是顺序语句,进程语句,基本格式:,进程名称:,PROCESS,(,敏感信号1,敏感信号2,),说明区,BEGIN,顺序语句,END PROCESS,进程名称;,LIBRARY,ieee;,USE,ieee.std_logic_1164.all;,ENTITY,if_case,IS PORT,( a, b, c, d :,IN,Std_Logic;,sel :,IN,Std_Logic_Vector(1 downto 0);,y, z :,OUT,Std_Logic);,END,if_case;,ARCHITECTURE,logic,OF,if_case,IS,BEGIN,if_label:,PROCESS,(a, b, c, d, sel),BEGIN,IF,sel=00,THEN,y = a;,ELSIF,sel=01,THEN,y = b;,ELSIF,sel=10,THEN,y = c;,ELSE,y z z z z ,z = 0;,END CASE,;,END PROCESS,case_label;,END,logic;,进程的运行依赖于敏感表内参数的变化,信号敏感表,进程赖以启动的敏感表。对于表中列出的任何信号的改变,都将启动进程,执行进程内相应顺序语句,一些,VHDL,综合器,综合后,对应进程的硬件系统,对进程中的所有,输入,的信号都是敏感的,不论在源程序的进程中是否把所有的,输入,信号都列入敏感表中,为了使软件仿真与综合后的硬件仿真对应起来,,应当将进程中的所有输入信号都列入敏感表中,敏感表举例,latchlabel:,PROCESS (oe),BEGIN,IF,oe=1,THEN,y = a;,END IF,;,END PROCESS,if_label;,仿真结果,a,oe,y,敏感表举例,latchlabel:,PROCESS,(a),BEGIN,IF,oe=1,THEN,y = a;,END IF,;,END PROCESS,if_label;,仿真结果,顺序语句,每一条顺序语句的执行(指仿真执行)顺序是与它们的书写顺序基本一致的,顺序语句只能出现在,进程(,Process),、,函数(,Funcation),和过程(,Procedure),中,顺序语句包括:,赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句、空操作语句,顺序赋值语句举例,ARCHITECTURE,reg1,OF,reg1,IS,SIGNAL,a, b : BIT;,BEGIN,PROCESS,(clk),BEGIN,IF,clkevent and clk=1,THEN,a = d;,b = a;,q = b;,END IF,;,END PROCESS;,END,reg1;,D,Q,d,clk,q,D,D,D,Q,Q,Q,d,a,b,clk,q,D,D,D,Q,Q,Q,d,a,b,clk,q,顺序赋值语句举例,ENTITY,reg1,IS PORT,( d, clk : in BIT;,q : out BIT);,END,reg1;,ARCHITECTURE,reg1,OF,reg1,IS,SIGNAL,a, b : BIT;,BEGIN,PROCESS,(clk),BEGIN,IF,clkevent and clk=1,THEN,a = d;,b = a;,END IF;,END PROCESS;,q = b;,END,reg1;,并行赋值语句,D,Q,d,clk,q,D,D,Q,Q,d,a,clk,q,顺序赋值语句举例,ENTITY,reg1,IS PORT,( d, clk : in BIT;,q : out BIT);,END,reg1;,ARCHITECTURE,reg1,OF,reg1,IS,BEGIN,PROCESS,(clk),VARIABLE,a, b : BIT;,BEGIN,IF,clkevent and clk=1,THEN,a := d;,b := a;,q = b;,END IF;,END PROCESS;,END,reg1;,变量定义,D,Q,d,clk,q,在时序电路中的变量赋值,变量在,IF,语句中被赋值,以用来表示随时钟的变化,不会产生触发器,变量只代表临时存储,不反映实际硬件,变量可用在表示一数据立即变化的表达式中,然后再将变量的值赋给信号,IF_THEN_ELSE,语句,流程控制语句(1),至少应有一个条件句,条件句必须由布尔表达式构成。,根据条件句产生的判断结果,TRUE,或,FALSE,,有条件地选择执行其后的顺序语句。,IF,条件句,Then,顺序语句,END IF,IF,条件句,Then,顺序语句,ELSE,顺序语句,END IF,IF,条件句,Then,顺序语句,ELSIF,条件句,Then,顺序语句,ELSE,顺序语句,END IF,IF_THEN_ELSE,语句举例,mux4_1: PROCESS (a, b, c, d, s),BEGIN,IF s = “00” THEN x = a ;,ELSIF s = “01” THEN x = b ;,ELSIF s = “10” THEN x = c ;,ELSE x = d ;,END IF;,END PROCESS mux4_1 ;,a,x,mux,c,b,d,s,2,library,IEEE;,use,IEEE.std_logic_1164.all;,use,;,use,IEEE.std_logic_unsigned.all;,entity,counter_4,is,port,( clk:,in,STD_LOGIC;,reset:,in,STD_LOGIC;,cen:,in,STD_LOGIC;,load:,in,STD_LOGIC;,dir:,in,STD_LOGIC;,din:,in,STD_LOGIC_VECTOR (3 downto 0);,qout:,buffer,STD_LOGIC_VECTOR (3 downto 0) );,end,counter_4;,architecture,behavioral,of,counter_4,is,begin,process,(clk,reset),begin,if,reset =1,then,qout = “0000”;,elsif,CLKevent and CLK=1,then,if,load=1,then,qout=din;,else,if,cen=1,then,if,dir = 1,then,异步清零,rising_edge(clok),qout = qout +1;,else,qout ,x ,x ,x ,x = d;,END CASE;,END PROCESS,mux4_1;,CASE_WHEN,语句,流程控制语句(2),选择信号,不同选择值,不同流向,CASE_WHEN,语句,流程控制语句(2),选择信号,可以是一个整数类型或枚举类型的值,也可以是由这些数据类型的值构成的数组,条件句中的,选择值,必在表达式的取值范围内。,除非所有条件句中的选择值能完整覆盖,CASE,语句中表达式的取值,否则,最末一个条件句中的选择必须用“,OTHERS”,表示。,CASE,语句中每一条件句的选择值只能,出现一次,不能有相同选择值的条件语,句出现。,CASE,语句执行中必须选中,,且只能选,中所列条件语句中的一条。,CASE_WHEN,语句,流程控制语句(2),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!