第5讲VHDL的LOOP语句.pptVIP

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

第五讲 VHDL硬件描述语言_3 教学课时:2学时 教学内容: 1、VHDL语句(1学时) loop语句 next语句 exit语句 wait语句 null语句 2、实例演示(1学时) loop语句 LOOP语句就是循环语句,它可以使包含的一组顺序语句被循环执行,其执行的次数受迭代算法控制。在VHDL中常用来描述迭代电路的行为。 1.单个LOOP语句 单个LOOP语句的书写格式如下: [标号:] LOOP 顺序语句 END LOOP[标号]; 这种循环语句需引入其他控制语句(如EXIT)后才能确定,否则为无限循环。其中的标号是可选的。 例2:8位奇偶校验电路的WHILE_LOOP设计形式. 思考题1: 用VHDL设计一个8-3线优先编码器,输入信号为A、B、C、D、E、F、G、H,输出信号为out0,out1,out2.输入信号中A的优先级最低,依次类推,H的优先级最高。 方法1:使用条件赋值语句。 格式: 赋值目标=表达式1 when 赋值条件1 else 表达式2 when 赋值条件2 else ...... 表达式n; next语句 NEXT语句的书写格式为: NEXT[标号][WHEN 条件] 该语句主要用于LOOP语句内部的循环控制。当NEXT语句后不跟[标号],NEXT语句作用于当前最内层循环,即从LOOP语句的起始位置进入下一次循环。若NEXT语句不跟[WHEN 条件],NEXT语句立即无条件跳出本次循环,而进入下一次循环。 例:NEXT语句应用举例 ┇ WHILE data 1 LOOP data := data+1; NEXT WHEN data=3 - -条件成立而无标号,跳出循环 data := data* data; END LOOP; exit语句 EXIT语句的书写格式为: EXIT[标号][WHEN条件]; EXIT语句也是用来控制LOOP的内部循环,与NEXT语句不同的是EXIT语句跳向LOOP终点,结束LOOP语句;而NEXT语句是跳向LOOP语句的起始点,结束本次循环,开始下一次循环。当EXIT语句中含有标号时,表明跳到标号处继续执行。含[WHEN条件]时,如果条件为“真”,跳出LOOP语句;如果条件为“假”,则继续执行LOOP循环。 EXIT语句不含标号和条件时,表明无条件结束LOOP语句的执行,因此,它为程序需要处理保护、出错和警告状态,提供了一种快捷、简便的调试方法。 WAIT 语句 在进程中,当执行到WAIT等待语句时,运行程序将被挂起,暂停执行,直到条件满足,再重新开始执行进程中的程序。 WAIT语句有以下几种形式: (1)WAIT 这种形式的WAIT语句在关键字WAIT后面不带任何信息,是无限等待的情况。 (2)WAIT ON 信号表 这种形式的WAIT语句使进程暂停,直到敏感信号表中某个信号值发生变化,就将再次启动进程。 例如: process begin y=a and b; wait on a,b; end process; (3)wait until 条件 这种形式的wait语句使进程暂停,直到预期的条件为真,则进程脱离挂起状态,继续执行下面的语句。 (4)wait for 时间表达式 例如: wait for 40 ns; 当进程执行到该语句时,将等待40ns,经过40ns后,进程执行wait for的后继语句。 null(空操作)语句 空操作语句的格式为: null; null语句不完成任何操作,它可以作为跨入下一步执行语句的缓冲。 作业3 姓名: 学号: 1、设计一个8位二进制数全加器的VHDL源程序。 提示:设端口引脚为 port(A,B:in integer range 0 to 255; --加数 cin:in integer range 0 to 1;--来自低位的进位 cout:out integer range 0 to 1;--向高位输出的进位 sum:out integer range 0 to 255 -- 和); 算法:设一个变量s用来存放A+B+cin,因此S的定义应为 s: integer range 0 to 511; 若s=255则sum为s,进位输出为0,否则sum为s-256 ,进位输出为1. 2、设计一个将1KHz的方波信号变为正、负周期相等的50Hz的方波信号的分频电路并仿真。 提示:端口引脚可定义为: port( clk_in:in st

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档