【教学课件】第7章VHDL基本语句与基本设计.ppt
《【教学课件】第7章VHDL基本语句与基本设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第7章VHDL基本语句与基本设计.ppt(56页珍藏版)》请在三一办公上搜索。
1、第7章 VHDL基本语句与基本设计,EDA技术与VHDL设计,7.1,顺序语句,并行语句,VHDL组合逻辑电路设计,VHDL时序逻辑电路设计,7.2,7.3,7.4,VHDL基本语句与基本设计,顺序语句的执行顺序与书写顺序一致,与传统软件设计语言的特点相似。顺序语句只能用于进程和子程序中,被用来描述组合逻辑和时序逻辑。常用的顺序描述语句有:赋值语句、IF语句、CASE语句、LOOP语句、NEXT语句、EXIT语句、子程序、RETURN语句、WAIT语句和NULL语句。,7.1 顺序语句,信号赋值语句:,7.1.1 赋值语句,赋值目标=赋值源;,变量赋值语句:,赋值目标:=赋值源;,根据语句所设
2、条件,if语句有选择地执行指定的语句,其语法格式由简单到复杂可以分为三种:(1)具有开关控制的IF语句(2)具有二选择控制的IF语句(3)具有多选择控制的IF语句,7.1.2 IF语句,一般格式:if 条件 then 顺序语句;end if;当条件成立,执行顺序语句,否则跳过语句。,具有开关控制的IF语句,if(EN=1)then A=B;-当条件EN=1时,A随B变化;否则,该语句不执行end if;,具有开关控制的IF语句举例,一般格式:if 条件 then 顺序语句;else 顺序语句;end if;条件成立执行then后顺序语句;否则执行else后的顺序语句。,具有二选择控制的IF语句
3、,if OE=0 thenY=not x;elseY=Z;-高阻符号“Z”要大写end if;,用IF语句描述三态非门,一般格式:if 条件 then 顺序语句;elsif 条件 then 顺序语句;elsif 条件 then 顺序语句;else 顺序语句;end if;,具有多选择控制的IF语句,case语句根据表达式的取值直接从多组顺序语句中选择一组执行,其语句格式为:case 表达式 is when 选择值=顺序语句;when 选择值=顺序语句;.when others=顺序语句;end case;,7.1.3 CASE语句,一般格式:(1)关键词others只能出现一次,且只能作为最后
4、一种条件取值。使用others的目的是为了使条件句中的所有选择值能涵盖表达式的所有取值,以免综合器会插入不必要的锁存器。,使用CASE语句注意事项,一般格式:(2)条件句中的选择值必须在表达式的取值范围内。(3)case语句中每一条件句的选择值只能出现一次,不能有相同选择值的条件语句出现。(4)case语句执行必须选中,且仅能选中所列语句中的一条。,使用CASE语句注意事项,(1)WHEN 取值=顺序语句:(2)WHEN 取值|取值|取值=顺序语句:(3)WHEN 取值 TO 取值=顺序语句;(4)WHEN 取值 DOWNTO 取值=顺序语句;(5)WHEN OTHERS=顺序语句;,CASE
5、语句中WHEN字句书写格式,d0d0d1d2d3=d;END CASE;,CASE语句应用举例,LOOP语句与其它高级语言中的循环语句相似,它可以使所包含的一组顺序语句被循环执行,其执行次数可由设定的循环参数决定。LOOP语句有三种格式:(1)无限LOOP语句(2)FOR_LOOP语句(3)WHILE_LOOP语句,7.1.4 LOOP语句,标号:LOOP 顺序语句 EXIT 标号;END LOOP;举例:L2:LOOP a:=a+1;EXIT L2 WHEN a10;END LOOP L2;,无限LOOP语句,标号:FOR 循环变量 IN 离散范围 LOOP 顺序处理语句;END LOOP
6、标号;注意:(1)循环变量是LOOP内部自动声明的局部量,仅在LOOP内可见。(2)离散范围必须是可计算的整数范围。循环次数范围规定LOOP语句中的顺序语句被执行的次数。,FOR_LOOP语句,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY parity_check IS PORT(a:IN STD_LOGIC_VECTOR(7 DOWNTO 0);y:OUT STD_LOGIC);END ENTITY parity_check;ARCHITECTURE one OF parity_check ISBEGIN PROCESS(a)VARIABLE
7、 tmp:STD_LOGIC;BEGIN tmp:=1;FOR i IN 0 TO 7 LOOP tmp:tmp xor a(i);END LOOP;y=tmp;END PROCESS;END;,用FOR LOOP语句描述8位奇偶校验电路,标号:WHILE 循环条件 LOOP 顺序处理语句;END LOOP 标号;例:sum:=0;i:=0;abcd:WHILE(i10)LOOP sum:=sum+i;i:=i+1;END LOOP abcd;,WHILE_LOOP语句,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY parity_check I
8、S PORT(a:IN STD_LOGIC_VECTOR(7 DOWNTO 0);y:OUT STD_LOGIC);END ENTITY parity_check;ARCHITECTURE one OF parity_check ISBEGIN PROCESS(a)VARIABLE tmp:STD_LOGIC;VARIABLE i:INTEGER;BEGIN tmp:=0;i:=0;WHILE(i8)LOOP tmp:tmp xor a(i);i:=i+1;END LOOP;y=tmp;END PROCESS;END;,用WHILE_LOOP语句描述8位奇偶校验电路,在LOOP语句中,NEXT
9、语句用来跳出本次循环。其格式分三种:(1)NEXT:无条件终止当前的循环,跳回到本次循环LOOP语句开始处,开始下次循环。(2)NEXT:标号;无条件终止当前的循环,跳转到指定标号的LOOP语句开始处,重新开始执行循环操作。(3)NEXT 标号 WHEN 条件表达式;,7.1.5 NEXT语句,L1:WHILE i10 LOOP L2:WHILE j20 LOOP NEXT L1 WHEN i=j;END LOOP L2;END LOOP L1;,NEXT语句举例,EXIT语句是LOOP语句的内部循环控制语句,作用是结束循环状态。而区别在于NEXT语句是跳向LOOP语句的起始点,EXIT语句则
10、是跳向LOOP语句的终点。EXIT的语句格式也有3种:(1)EXIT;(2)EXIT LOOP 标号;(3)EXIT LOOP 标号 WHEN 条件表达式;,7.1.6 EXIT语句,PROCESS(a)VARIABLE int_a:INTEGER;BEGIN int_a:=a;FOR i IN 0 TO max_limit LOOP IF(int_a=0)THEN EXIT;ELSE int_a:=int_a-1;END IF;END LOOP;END PROCESS;,EXIT语句举例,在进程中(包括过程中),当执行到WAIT(等待语句时),运行程序将被挂起,直到满足此语句设置的结束挂起条
11、件后,才重新开始执行进程或过程中的程序。WAIT语句有以下四种不同的语句格式:(1)WAIT-无限等待(2)WAIT ON-敏感信号量变换(3)WAIT UNTIL-条件满足(可综合)(4)WAIT FOR-时间到,7.1.7 WAIT语句,进程中其一般格式为:WAIT ON 信号,信号;例如,以下两种描述是完全等价的:PROCESS(a,b)PROCESS BEGIN BEGIN y=a AND b;y=a AND b;END PROCESS;WAIT ON a,b;END PROCESS;敏感信号量列表和WAIT语句选其一,不能同时使用。,1.WAIT ON语句,进程中其一般格式为:WAI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 VHDL 基本 语句 设计
链接地址:https://www.31ppt.com/p-5659306.html