5-VHDL主要描述语句(顺序语句).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5-VHDL主要描述语句(顺序语句)

例 SIGNAL a,b:STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL a_less_then_b:BOOLEAN; … a_less_then_b =FLASE; --设初始值 FOR i IN 1 DOWNTO 0 LOOP  IF (a(i)=‘1’ AND b(i)=‘0’) THEN   a_less_then_b =FALSE;   EXIT;  ELSIF (a(i)=‘0’ AND b(i)=‘1’) THEN   a_less_then_b =TRUE; --ab   EXIT;   ELSE;   NULL;  END IF; --当i=1时返回LOOP语句继续比较 END LOOP; 以上的IF 语句、CASE 语句、LOOP 语句、NEXT 语句和EXIT 语句称为转向控制语句,这五种语句通过条件控制开关决定是否执行一条或几条语句,或重复执行一条或几条语句,或跳过一条或几条语句。 在进程中(包括过程中),当执行到WAIT等待语句时,运行程序将被挂起(Suspension),直到满足此语句设置的结束挂起条件后,将重新开始执行进程或过程中的程序。但VHDL规定,已列出敏感量的进程中不能使用任何形式的WAIT语句。 WAIT语句的语句格式如下: WAIT; --第一种语句格式 WAIT ON 信号表; --第二种语句格式 WAIT UNTI 条件表达式; --第三种语句格式 WAIT FOR 时间表达式; --第四种语句格式 --超时等待语句 5.1.7 WAIT 语句 单独的WAIT,即未设置停止挂起条件的表达式,表示永远挂起。 WAIT ON 信号表格式,称为敏感信号等待语句,在信号表中列出的信号是等待语句的敏感信号。当处于等待状态时,敏感信号的任何变化(如从0~1或从1~0的变化)将结束挂起,再次启动进程。如: WAIT ON s1,s2; 表示当s1或s2中任一信号发生改变时,就恢复执行WAIT语句之后的语句。 WAIT UNTIL 条件表达式,称为条件等待语句,该语句将把进程挂起,直到条件表达式中所含信号发生了改变,并且条件表达式为真时,进程才能脱离挂起状态,恢复执行WAIT语句之后的语句。 下例中的两种表达方式是等效的。 (a) WAIT_UNTIL 结构 (b) WAIT_ON结构 ... LOOP WAIT UNTIL enable =‘1’; WAIT ON enable ... EXIT WHEN enable =‘1’; END LOOP; 由以上脱离挂起状态、重新启动进程的两个条件可知,例中结束挂起所需满足的条件,实际上是一个信号的上跳沿。因为当满足所有条件后enable为1,可推知enable一定是由0变化来的。因此,上例中进程的启动条件是enable出现一个上跳信号沿。 WAIT_UNTIL语句有以下三种表达方式: WAIT UNTIL 信号=VALUE; --① WAIT UNTIL 信号EVENT AND 信号=VALUE; --② WAIT UNTIL NOT 信号STABLE AND 信号=VALUE --③ 如果设CLOCK为时钟信号输入端,以下四条WAIT语句所设的进程启动条件都是时钟上跳沿,所以它们对应的硬件结构是一样的。 WAIT UNTIL clock =‘1’; WAIT UNTIL rising_edge(clock); WAIT UNTIL NOT clockSTABLE AND clock=1; WAIT UNTIL clock=‘1’ AND clockEVENT; 下例中的进程将完成一个硬件求平均的功能,每一个时钟脉冲由a输入一个数值,4个时钟脉冲后将获得此4个数值的平

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档