第7章VHDL基本语句与基本设计ppt课件

上传人:痛*** 文档编号:174151149 上传时间:2022-12-14 格式:PPT 页数:56 大小:1.10MB
收藏 版权申诉 举报 下载
第7章VHDL基本语句与基本设计ppt课件_第1页
第1页 / 共56页
第7章VHDL基本语句与基本设计ppt课件_第2页
第2页 / 共56页
第7章VHDL基本语句与基本设计ppt课件_第3页
第3页 / 共56页
资源描述:

《第7章VHDL基本语句与基本设计ppt课件》由会员分享,可在线阅读,更多相关《第7章VHDL基本语句与基本设计ppt课件(56页珍藏版)》请在装配图网上搜索。

1、第第7 7章章 VHDLVHDL基本语句与基本设计基本语句与基本设计EDAEDA技术与技术与VHDLVHDL设计设计顺序语句顺序语句 并行语句并行语句 VHDL VHDL组合逻辑电路设计组合逻辑电路设计 VHDL VHDL时序逻辑电路设计时序逻辑电路设计VHDLVHDL基本语句与基本设计基本语句与基本设计v顺序语句的执行顺序与书写顺序一致,与顺序语句的执行顺序与书写顺序一致,与传统软件设计语言的特点相似。顺序语句传统软件设计语言的特点相似。顺序语句只能用于进程和子程序中,被用来描述组只能用于进程和子程序中,被用来描述组合逻辑和时序逻辑。合逻辑和时序逻辑。v常用的顺序描述语句有:赋值语句、常用的

2、顺序描述语句有:赋值语句、IFIF语语句、句、CASECASE语句、语句、LOOPLOOP语句、语句、NEXTNEXT语句、语句、EXITEXIT语句、子程序、语句、子程序、RETURNRETURN语句、语句、WAITWAIT语语句和句和NULLNULL语句。语句。7.1 7.1 顺序语句顺序语句v信号赋值语句:信号赋值语句:7.1.1 7.1.1 赋值语句赋值语句 v变量赋值语句:变量赋值语句:v根据语句所设条件,根据语句所设条件,ifif语句有选择地执行语句有选择地执行指定的语句,其语法格式由简单到复杂可指定的语句,其语法格式由简单到复杂可以分为三种:以分为三种:(1 1)具有开关控制的)

3、具有开关控制的IFIF语句语句(2 2)具有二选择控制的)具有二选择控制的IFIF语句语句(3 3)具有多选择控制的)具有多选择控制的IFIF语句语句7.1.2 IF7.1.2 IF语句语句 n一般格式:一般格式:if if 条件条件 thenthen 顺序语句顺序语句;end if;end if;当条件成立,执行顺序语句,否则跳过语句。当条件成立,执行顺序语句,否则跳过语句。具有开关控制的具有开关控制的IFIF语句语句 if(EN=1)thenif(EN=1)then A=B;A=B;-当条件当条件EN=1EN=1时,时,A A随随B B变化;否则,该语句不执行变化;否则,该语句不执行end

4、 if;end if;具有开关控制的具有开关控制的IFIF语句举例语句举例 n一般格式:一般格式:if if 条件条件 thenthen 顺序语句顺序语句;elseelse 顺序语句顺序语句;end if;end if;条件成立执行条件成立执行thenthen后顺序语句;否则执行后顺序语句;否则执行elseelse后的顺序语句。后的顺序语句。具有二选择控制的具有二选择控制的IFIF语句语句 if OE=0 thenif OE=0 thenY=not x;Y=not x;elseelseY=Z;Y =顺序语句;顺序语句;when when 选择值选择值 =顺序语句;顺序语句;.when othe

5、rs=when others=顺序语句;顺序语句;end case;end case;7.1.3 CASE7.1.3 CASE语句语句 n一般格式:一般格式:(1 1)关键词)关键词othersothers只能出现一次,且只能作只能出现一次,且只能作为最后一种条件取值。使用为最后一种条件取值。使用othersothers的目的的目的是为了使条件句中的所有选择值能涵盖表是为了使条件句中的所有选择值能涵盖表达式的所有取值,以免综合器会插入不必达式的所有取值,以免综合器会插入不必要的锁存器。要的锁存器。使用使用CASECASE语句注意事项语句注意事项 n一般格式:一般格式:(2 2)条件句中的选择值

6、必须在表达式的取值范)条件句中的选择值必须在表达式的取值范围内。围内。(3 3)casecase语句中每一条件句的选择值只能出现语句中每一条件句的选择值只能出现一次,不能有相同选择值的条件语句出现。一次,不能有相同选择值的条件语句出现。(4 4)casecase语句执行必须选中,且仅能选中所列语句执行必须选中,且仅能选中所列语句中的一条。语句中的一条。使用使用CASECASE语句注意事项语句注意事项(1 1)WHEN WHEN 取值取值=顺序语句:顺序语句:(2 2)WHEN WHEN 取值取值|取值取值|取值取值=顺序语句:顺序语句:(3 3)WHEN WHEN 取值取值 TO TO 取值取

7、值=顺序语句;顺序语句;(4 4)WHEN WHEN 取值取值 DOWNTO DOWNTO 取值取值=顺序语句;顺序语句;(5 5)WHEN OTHERS=WHEN OTHERS=顺序语句;顺序语句;CASECASE语句中语句中WHENWHEN字句书写格式字句书写格式 d0=0;d1=0;d0=0;d1=0;d2=0;d3=0;d2=0;d3d0d0d1d1d2d2d3d310;EXIT L2 WHEN a10;END LOOP L2;END LOOP L2;无限无限LOOPLOOP语句语句 标号标号:FOR FOR 循环变量循环变量 IN IN 离散范围离散范围 LOOPLOOP 顺序处理语

8、句;顺序处理语句;END LOOP END LOOP 标号标号;注意:注意:(1 1)循环变量是)循环变量是LOOPLOOP内部自动声明的局部量内部自动声明的局部量,仅在,仅在LOOPLOOP内可见。内可见。(2 2)离散范围必须是可计算的整数范围。循)离散范围必须是可计算的整数范围。循环次数范围规定环次数范围规定LOOPLOOP语句中的顺序语句被语句中的顺序语句被执行的次数。执行的次数。FOR_LOOPFOR_LOOP语句语句 LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;E

9、NTITY parity_checkENTITY parity_check IS IS PORT(a:IN STD_LOGIC_VECTOR(7 DOWNTO 0);PORT(a:IN STD_LOGIC_VECTOR(7 DOWNTO 0);y:OUT STD_LOGIC);y:OUT STD_LOGIC);END ENTITY parity_checkEND ENTITY parity_check;ARCHITECTURE one OF parity_checkARCHITECTURE one OF parity_check IS ISBEGINBEGIN PROCESS(a)PROCES

10、S(a)VARIABLE tmp VARIABLE tmp:STD_LOGIC;:STD_LOGIC;BEGIN BEGIN tmp tmp:=1;:=1;FOR i IN 0 TO 7 LOOP FOR i IN 0 TO 7 LOOP tmp:tmp xor tmp:tmp xor a(i);a(i);END LOOP;END LOOP;y=tmp y=tmp;END PROCESS;END PROCESS;END;END;用用FOR LOOPFOR LOOP语句描述语句描述8 8位奇偶校验电路位奇偶校验电路 标号标号:WHILE WHILE 循环条件循环条件 LOOPLOOP 顺序处理语

11、句;顺序处理语句;END LOOP END LOOP 标号标号;例:例:sum:=0;i:=0;sum:=0;i:=0;abcdabcd:WHILE (i10)LOOP:WHILE (i10)LOOP sum:=sum+i sum:=sum+i;i:=i+1;i:=i+1;END LOOP abcdEND LOOP abcd;WHILE_LOOPWHILE_LOOP语句语句 LIBRARY IEEE;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_1164.ALL;ENTITY parity_checkENTITY par

12、ity_check IS IS PORT(a:IN STD_LOGIC_VECTOR(7 DOWNTO 0);PORT(a:IN STD_LOGIC_VECTOR(7 DOWNTO 0);y:OUT STD_LOGIC);y:OUT STD_LOGIC);END ENTITY parity_checkEND ENTITY parity_check;ARCHITECTURE one OF parity_checkARCHITECTURE one OF parity_check IS ISBEGINBEGIN PROCESS(a)PROCESS(a)VARIABLE tmp VARIABLE tm

13、p:STD_LOGIC;VARIABLE i:INTEGER;:STD_LOGIC;VARIABLE i:INTEGER;BEGIN BEGIN tmp tmp:=0;i:=0;:=0;i:=0;WHILE (i8)LOOP WHILE (i8)LOOP tmp:tmp xor tmp:tmp xor a(i);i:=i+1;a(i);i:=i+1;END LOOP;END LOOP;y=tmp y=tmp;END PROCESS;END PROCESS;END;END;用用WHILE_LOOPWHILE_LOOP语句描述语句描述8 8位奇偶校验电路位奇偶校验电路 在在LOOPLOOP语句中,

14、语句中,NEXTNEXT语句用来跳出本次循环。其语句用来跳出本次循环。其格式分三种:格式分三种:(1 1)NEXT:NEXT:无条件终止当前的循环,跳回到本次无条件终止当前的循环,跳回到本次循环循环LOOPLOOP语句开始处,开始下次循环。语句开始处,开始下次循环。(2 2)NEXT:NEXT:标号标号;无条件终止当前的循环,跳转到指定标号的无条件终止当前的循环,跳转到指定标号的LOOPLOOP语句开始处,重新开始执行循环操作。语句开始处,重新开始执行循环操作。(3 3)NEXT NEXT 标号标号 WHEN WHEN 条件表达式条件表达式;7.1.5 NEXT7.1.5 NEXT语句语句 L

15、1:WHILE i10 LOOPL1:WHILE i10 LOOP L2:WHILE j20 LOOP L2:WHILE j20 LOOP NEXT L1 WHEN i=j;NEXT L1 WHEN i=j;END LOOP L2;END LOOP L2;END LOOP L1;END LOOP L1;NEXTNEXT语句举例语句举例nEXITEXIT语句是语句是LOOPLOOP语句的内部循环控制语句语句的内部循环控制语句,作用是结束循环状态。而区别在于,作用是结束循环状态。而区别在于NEXTNEXT语语句是跳向句是跳向LOOPLOOP语句的起始点,语句的起始点,EXITEXIT语句则语句则是

16、跳向是跳向LOOPLOOP语句的终点。语句的终点。nEXITEXIT的语句格式也有的语句格式也有3 3种:种:(1 1)EXIT EXIT;(2 2)EXIT LOOP EXIT LOOP 标号;标号;(3 3)EXIT LOOP EXIT LOOP 标号标号 WHEN WHEN 条件表达式;条件表达式;7.1.6 EXIT7.1.6 EXIT语句语句 PROCESS (a)PROCESS (a)VARIABLE int_aVARIABLE int_a:INTEGER;:INTEGER;BEGINBEGIN int_a int_a:=a;:=a;FOR i IN 0 TO max_limit

17、FOR i IN 0 TO max_limit LOOP LOOP IF(int_a IF(int_a=0)THEN=0)THEN EXIT;EXIT;ELSE int_a ELSE int_a:=int_a-1;:=int_a-1;END IF;END IF;END LOOP;END LOOP;END PROCESS;END PROCESS;EXITEXIT语句举例语句举例n在进程中(包括过程中),当执行到在进程中(包括过程中),当执行到WAITWAIT(等待语(等待语句时),运行程序将被挂起,直到满足此语句设置句时),运行程序将被挂起,直到满足此语句设置的结束挂起条件后,才重新开始执行进程

18、或过程中的结束挂起条件后,才重新开始执行进程或过程中的程序。的程序。WAITWAIT语句有以下四种不同的语句格式:语句有以下四种不同的语句格式:(1 1)WAIT -WAIT -无限等待无限等待(2 2)WAIT ON -WAIT ON -敏感信号量变换敏感信号量变换(3 3)WAIT UNTIL -WAIT UNTIL -条件满足(可综合)条件满足(可综合)(4 4)WAIT FOR -WAIT FOR -时间到时间到7.1.7 WAIT7.1.7 WAIT语句语句 n进程中其一般格式为:进程中其一般格式为:WAIT ON WAIT ON 信号信号,信号,信号;例如,以下两种描述是完全等价的

19、:例如,以下两种描述是完全等价的:PROCESS(a,bPROCESS(a,b)PROCESS)PROCESS BEGIN BEGIN BEGIN BEGIN y=a AND b;y=a AND b;y=a AND b;y=表达式表达式,参数名参数名=表达式表达式););其中表达式也称为实参,它可以是一其中表达式也称为实参,它可以是一个具体的数值,也可以是一个标识符个具体的数值,也可以是一个标识符,是当前调用程序中过程形参的接受,是当前调用程序中过程形参的接受体。体。过程调用过程调用 n函数调用与过程调用十分类似,不同函数调用与过程调用十分类似,不同之处是调用函数将返回一个指定类型之处是调用函

20、数将返回一个指定类型的值,函数的参量只能是输入值。的值,函数的参量只能是输入值。n函数调用的一般格式为:函数调用的一般格式为:函数名(函数名(参数名参数名=表达式表达式,参数名参数名=表达式表达式););函数调用函数调用 7.2 7.2 并行语句并行语句 33/387.2.1 7.2.1 并行信号赋值语句并行信号赋值语句34/3835/3836/3837/3838/3839/3840/3841/3842/38-Explicit Process StatementPROCESS()Constant Declarations Type Declarations Variable DeclarationsBEGIN END PROCESS;43/3844/3845/3846/3847/3848/3849/3850/3851/3852/3853/3854/38n表决电路表决电路n地址译码地址译码n七段显示译码器七段显示译码器n双向总线双向总线n优先编码器优先编码器n8 8位加法器位加法器7.3 VHDL7.3 VHDL组合逻辑电路设计组合逻辑电路设计 n触发器触发器n寄存器寄存器n计数器计数器n分频器分频器7.4 VHDL7.4 VHDL时序逻辑电路设计时序逻辑电路设计

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

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

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


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