欢迎来到天天文库
浏览记录
ID:49563145
大小:390.50 KB
页数:66页
时间:2020-02-25
《VHDL顺序语句(Sequential).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、硬件执行:并发执行(VHDL本质)仿真执行:顺序执行、并发执行分为两大类:顺序(Sequential)描述语句并发(Concurrent)描述语句ARCHITECTUREProcessProcessENTITYSequentialProcessCombinationalProcessportsportscomponentVHDL顺序语句(Sequential)1顺序描述语句:执行顺序与书写顺序一致,与传统软件设计语言的特点相似。顺序语句只能用在进程与子程序中。常用的顺序描述语句:赋值语句;if语句;case语句;loop语句;next语
2、句;exit语句;子程序;return语句;wait语句;null语句。2一对象与赋值语句所有对象均分为:变量和信号对象:=表达式;--变量赋值对象<=表达式;--信号赋值要求:表达式的值必须与对象的类型、宽度一致。3信号赋值延迟更新数值、时序电路;变量赋值立即更新数值、组合电路。4例:信号赋值与变量赋值的比较信号赋值:architecturertlofsigissignala,b:std_logic;--定义信号beginprocess(a,b)begina<=b;b<=a;endprocess;endrtl;--结果是a和b的值互换
3、5变量赋值:architecturertlofvarisbeginprocessvariablea,b:std_logic;--定义变量begina:=b;b:=a;endprocess;endrtl;--结果是a和b的值都等于b的初值6二、转向控制语句转向控制语句通过条件控制开关决定是否执行一条或几条语句,或重得执行一条或几条语句,或跳过一条或几条语句。分为五种:if语句、case语句、loop语句、next语句、exit语句71、if语句if语句执行一序列的语句,其次序依赖于一个或多个条件的值。1)if语句的门闩控制例:if(ena
4、=‘1’)thenq<=d;endif;综合后生成锁存器(latch)if条件then顺序处理语句;endif;82)if语句的二选择控制格式:用条件来选择两条不同程序执行的路径。if条件then顺序处理语句;else顺序处理语句;endif;9此描述的典型电路是二选一电路:architecturertlofmux2isbeginprocess(a,b,sel)beginif(sel=‘1’)theny<=a;elsey<=b;endif;endprocess;endrtl;103)if语句的多选择控制if语句的多选择控制又称为if语句
5、的嵌套。格式:if条件then顺序处理语句;elsif条件then顺序处理语句;┇elsif条件then顺序处理语句;else顺序处理语句;endif;11if_then_elsif语句中隐含了优先级别的判断,最先出现的条件优先级最高,可用于设计具有优先级的电路。如8-3优先级编码器。122、case语句case语句常用来描述总线或编码、译码行为。可读性比if语句强。格式如下:13其中的分支条件可有以下的形式:when值=>顺序处理语句;when值to值=>顺序处理语句;when值
6、值
7、值
8、…
9、值=>顺序处理语句;以上三种方式的混合;w
10、henothers=>顺序处理语句;14Case语句使用注意:1)分支条件的值必须在表达式的取值范围内。2)两个分支条件不能重叠。3)CASE语句执行时必须选中,且只能选中一个分支条件。4)如果没有others分支条件存在,则分支条件必须覆盖表达式所有可能的值。对std_logc,std_logic_vector数据类型要特别注意使用others分支条件。15例:用case语句描述四选一电路163、Loop语句loop语句与其它高级语言中的循环语句相似。Loop语句有三种格式。1)无限loop语句VHDL重复执行loop循环内的语句,直
11、至遇到exit语句结束循环。17……L2:loopa:=a+1;exitL2whena>10;endloopL2;……182)for…loop语句特点:①循环变量是loop内部自动声明的局部量,仅在loop内可见;不需要指定其变化方式。②离散范围必须是可计算的整数范围:整数表达式to整数表达式整数表达式downto整数表达式[标号]:for循环变量in离散范围loop顺序处理语句;endloop[标号];19203)while…loop语句例:sum:=0;i:=0;abcd:while(i<10)loopsum:=sum+i;i:=i
12、+1;endloopabcd;注:循环变量i需事先定义、赋初值,并指定其变化方式。一般综合工具不支持while…loop语句。[标号]:while循环条件loop顺序处理语句;endloop[标号];214
此文档下载收益归作者所有