网站大量收购闲置独家精品文档,联系QQ:2885784924

EDA课件儿5章节.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5讲 VHDL基本语句与基本设计 ----顺序语句   顺序语句是相对于并行语句而言的,其特点是每一条顺序语句的执行顺序(指仿真执行)与它们的书写顺序基本一致,但其相应的硬件逻辑工作方式未必如此。 顺序语句只能出现在进程(PROCESS)和子程序中。 VHDL有6类基本顺序语句,即赋值语句、转向控制语句、等待语句、子程序调用语句、返回语句和空操作语句。   §5.1 赋值语句   VHDL设计实体内的数据传递以及对端口界面外部数据的读/写都必须通过赋值语句来实现。赋值语句有两种,即信号赋值语句和变量赋值语句。 变量赋值语句语法格式如下:     变量赋值目标:=赋值源;   下面将通过一个简单的VHDL例子说明变量赋值与信号赋值的区别。    §5.2.转向控制语句   转向控制语句用于控制顺序语句执行的路径。在VHDL中常见的转向控制语句有5个,即IF语句、CASE语句、LOOP语句、NEXT语句和EXIT语句。   1) ?IF语句   IF语句是VHDL中使用最为广泛的顺序条件转向控制语句,根据语句中设置的一个或多个条件,有选择地执行顺序语句。   (1) 单条件非完整性IF语句。其格式如下:   IF 条件语句 THEN      顺序语句;   END IF;   (2) 单条件完整性IF语句。单条件完整性IF语句的格式如下:   IF 条件语句 THEN    顺序语句1;   ELSE    顺序语句2;   END IF;   (3) 多重IF嵌套语句。多重IF嵌套语句的格式如下:   IF 条件语句1 THEN      顺序语句1;    IF 条件语句2 THEN      顺序语句2;    ELSE     顺序语句3;    END IF;  ELSE     顺序语句4;  END IF;   (4) 优先条件列举式IF语句。格式如下:   IF 条件语句1 THEN    顺序语句1;   ELSIF 条件语句2 THEN    顺序语句2;   ELSE    顺序语句3;   END IF;  2) ?CASE语句    CASE 条件表达式 IS    WHEN 选择值1=顺序语句1;    WHEN 选择值2=顺序语句2;    …    WHEN OTHERS=顺序语句n;    END CASE;   使用CASE语句需注意以下几点:   (1) 条件句中的选择值必须在表达式的取值范围内。   (2) 除非所有条件句中的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件句中的选择必须用“OTHERS”表示。   (3) ?CASE语句中每一条件句的选择只能出现一次,不能有相同选择值的条件语句重复出现。   (4) ?CASE语句执行时必须选中,且只能选中所列条件语句中的一条。 一般来讲,同样的逻辑功能,CASE结构综合后比IF语句消耗更多的芯片资源。   3) ?LOOP语句   LOOP语句的常用表达方式有简单LOOP语句和FOR_LOOP语句两种。   (1) 简单LOOP语句的语法格式如下:   [LOOP标号:]LOOP    顺序语句   END LOOP[LOOP标号];   这种循环方式是一种最简单的语句形式,它的循环方式需引入其他控制语句,例如EXIT语句后才能确定,“LOOP标号”可省略。例如:   L2:LOOP    a:= a+1;    EXIT L2 WHEN a100;   END LOOP L2;   此程序的循环的结束由EXIT语句确定,即当a100时,结束循环。 (2) ?FOR_LOOP语句的语法格式如下:   [LOOP标号:] FOR 循环变量 IN 循环次数范围 LOOP    顺序语句   END LOOP [LOOP标号]; 关键词“FOR”后面的循环变量是一个临时变量,属于FOR_LOOP语句的局部变量,不需要事先定义,只能在FOR_LOOP语句范围内使用。在FOR_LOOP语句中这个变量只能作为赋值源,不能被赋值,它由FOR_LOOP语句自动定义。 在LOOP循环次数范围规定LOOP语句中的顺序语句被执行的次数。循环变量从循环次数范围的初值开始,每执行完一次顺序语句后递增1,直至达到循环次数范围指定的最大值。例6.31所示的是一个使用FOR_L

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档