欢迎来到天天文库
浏览记录
ID:51089986
大小:663.50 KB
页数:74页
时间:2020-03-18
《VHDL基本语句用法.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第10章VHDL基本语句一:主要内容:VHDL基本语句讲解①顺序语句②并行语句二:重点掌握:常用VHDL基本语句及应用10.1.1赋值语句信号赋值语句变量赋值语句信号代入语句:格式:目的信号变量<=信号变量表达式例:a<=b;变量赋值语句:格式:目的变量:=表达式例:c:=a+d信号与变量的区别:(1)信号赋值可以有延迟时间,变量赋值无时间延迟(2)信号除当前值外还有许多相关值,如历史信息等,变量只有当前值进程对信号敏感,对变量不敏感(3)信号可以是多个进程的全局信号,但变量只在定义它之后的顺序域可见(4)信号可以看作硬件的一根连线,但变量无此对应关系。10.1顺序语
2、句10.1.2IF语句—已讲过IF条件THEN…ENDIF;10.1.3CASE语句1)CASE语句的结构:CASE表达式ISWhen选择值=>顺序语句;When选择值=>顺序语句;...【WHENOTHERS=>】;ENDCASE;2)多条件选择值的一般表达式:选择值[
3、选择值]3)选择值表达方式:(1)单个普通数值,如6。(2)数值选择范围,如(2TO4),表示取值为2、3或4。(3)并列数值,如35,表示取值为3或者5。(4)混合方式,以上三种方式的混合。4)CASE语句举例LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTI
4、TYmux41ISPORT(s4,s3,s2,s1:INSTD_LOGIC;z4,z3,z2,z1:OUTSTD_LOGIC);ENDmux41;ARCHITECTUREactivOFmux41ISSIGNALsel:INTEGERRANGE0TO15;BEGINz1<='0';z2<='0';z3<='0';z4<='0';--输入初始值CASEselISWHEN0=>z1<='1';--当sel=0时选中WHEN13=>z2<='1';--当sel为1或3时选中WHEN4To72=>z3<='1';--当sel为2、4、5、6或7时选中WHENOTHERS=>
5、z4<='1';--当sel为8~15中任一值时选中ENDCASE;ENDactiv;例【10.1】●CASE语句病句举例【例10.2】10.1.4LOOP语句格式:[LOOP标号:]LOOP顺序语句ENDLOOP[LOOP标号];格式:[LOOP标号:]FOR循环变量,IN循环次数范围LOOP顺序语句ENDLOOP[LOOP标号];[见例1][见例2][见例3]1、单个LOOP语句2、FOR_LOOP语句10.15NEXT语句---跳出本次循环1、格式:(1)NEXT;--无条件终止当前的循环,跳回到本次循环LOOP语句处,开始下次循环。(2)NEXTLOOP标号;
6、--同(1)。(3)NEXTLOOP标号WHEN条件表达式;--条件表达式为TRUE,执行NEXT语句,进入跳转操作,否则继续向下执行。2、注意:NEXT语句用于跳出本次循环且控制内循环的结束.在多重循环中必加标号。3、举例例1例210.1.6EXIT语句-----结束循环状态1、格式:(1)EXIT;--结束本次循环(2)EXITLOOP标号;--同上(3)EXITLOOP标号WHEN条件表达式;2、举例例13、NEXT与EXIT区别:NEXT语句是转向LOOP语句的起始点。EXIT语句是转向LOOP语句的终点。10.1.7WAIT语句---等待语句1)格式:(1)
7、WAIT;--功能:将程序挂起,直到满足条件。(2)WAITON信号表;(3)WAITUNTIL条件表达式;(4)WAITFOR时间表达式;2)举例见例[1]见例[2]【例3】说明1:一般只有WAIT_UNTIL格式的等待语句可以被综合器接受(其余语句格式只能在VHDL仿真器中使用),WAIT_UNTIL语句三种表达方式:WAITUNTIL信号=Value;--(1)WAITUNTIL信号’EVENTAND信号=Value;--(2)WAITUNTILNOT信号’STABLEAND信号=Value;--(3)说明2:对应的硬件结构相同的时钟信号clock上跳沿应用的四
8、条WAIT语句:WAITUNTILclock='1';WAITUNTILrising_edge(clock);WAITUNTILclock='1'ANDclock’EVENT;WAITUNTILNOTclock’STABLEANDclock='1';3)说明说明3:WAIT语句可用于Process进程中的任何地方,已列出敏感信号的Process中不能用WAIT语句。10.1.8子程序调用语句1、过程调用--就是执行一个给定名字和参数的过程。1)格式:过程名[([形参名=>]实参表达式{,[形参名=>]实参表达式})];2)一个过程的调用将分别完成以下
此文档下载收益归作者所有