VHDL硬件描述语言与数字逻辑电路设计第6章讲义.ppt

VHDL硬件描述语言与数字逻辑电路设计第6章讲义.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VHDL硬件描述语言与数字逻辑电路设计第6章讲义

  在用VHDL语言描述系统硬件行为时,按语句执行顺序对其进行分类,可以分为顺序(Sequential)描序语句和并发(Concurrent)描述语句。例如,进程语句(Process Statement)是一个并发语句。在一个构造体内可以有几个进程语句同时存在,各进程语句是并发执行的。但是,在进程内部所有语句应是顺序描述语句。也就是说,是按书写的顺序自上至下一个语句一个语句地执行的。例如,IF语句、LOOP语句等都属于此类顺序描述语句。灵活运用这两类语句就可以正确地描述系统的并发行为和顺序行为。      顺序描述语句只能出现在进程或子程序中,由它定义进程或子程序所执行的算法。顺序描述语句中所涉及到的系统行为有时序流、控制、条件和迭代等。顺序描述语句的功能操作有算术、逻辑运算,信号和变量的赋值,子程序调用等。顺序描述语句像在一般高级语言中一样,其语句是按出现的次序加以执行的。在VHDL语言中,顺序描述语句主要有以下几种:   ● ?WAIT语句;   ● 断言语句;   ● 信号代入语句;   ● 变量赋值语句;   ● ?IF语句;   ● ?CASE语句;   ● ?LOOP语句;   ● ?NEXT语句;   ● ?EXIT语句;   ● 过程调用语句;   ● ?NULL语句。   NULL(空)语句表示只占位置的一种空处理操作,但是它可以用来为所对应信号赋一个空值,表示该驱动器被关闭。该语句在下面不作介绍,其余语句将通过具体实例作详细介绍。 6.1.1 WAIT语句   进程在仿真运行中总是处于下述两种状态之一:执行或挂起。进程状态的变化受等待语句的控制,当进程执行到等待语句时,会被挂起,并设置好再次执行的条件。WAIT语句可以设置4种不同的条件:无限等待、时间到、条件满足以及敏感信号量变化。这几类条件可以混用,其书写格式如下:   WAIT ——无限等待   WAIT ON ——敏感信号量变化   WAIT UNTIL ——条件满足   WAIT FOR ——时间到   1.WAIT ON语句   WAIT ON语句的完整书写格式如下:   WAIT ON 信号 [,信号];   WAIT ON语句后面跟着的是一个或多个信号量。例如:   WAIT ON a,b;   该语句表明:它等待信号量a或b发生变化。a或者b中只要有一个信号量发生变化,进程就结束挂起状态,而继续执行WAIT ON语句后继的语句。WAIT ON可以再次启动进程的执行,其条件是指定的信号量必须有一个新的变化。   【例6-1】 WAIT ON可以再次启动进程的条件。   PROCESS(a, b) IS PROCESS   BEGIN BEGIN   y=a AND b; y=a AND b;   END PROCESS; WAIT ON a,b;   END PROCESS;   例6-1中的两个进程的描述是完全等价的,只是WAIT ON和PROCESS中所使用的敏感信号量的书写方法有区别。在使用WAIT ON语句的进程中,敏感信号量应写在进程中的WAIT ON语句后面;在不使用WAIT ON语句的进程中,敏感信号量只应在进程开头的PROCESS后跟的括号中说明。 需要注意的是,如果PROCESS语句已有敏感信号量说明, 那么在进程中再不能使用WAIT ON语句。例如,例6-2的描述是非法的。   【例6-2】 PROCESS语句已有敏感信号量说明的情况。   PROCESS(a, b) IS   BEGIN   y=a AND b;   WAIT ON a, b; --错误语句   END PROCESS;   2.WAIT UNTIL语句   WAIT UNTIL语句的完整书写格式如下:   WAIT UNTIL表达式;   WAIT UNTIL语句后面跟的是布尔表达式,当进程执行到该语句时将被挂起,直到表达式返回一个“真”值,进程才被再次启动。   该语句在表达式中将建立一个隐式的敏感信号量表。当表中的任何一个信号量发生变化时,立即对表达式进行一次评估。如果评估结果使表达式返回一个“真”值,则进程脱离等待状态,继续执行下一个语句。例如:   WAIT UNTIL ((x*10) 100);   在这个例子中,当信号量x的值大于或等于10时,进程执行到该语句将被挂起;当x的值小于10时,进程再次被启动,继续执行WAIT

文档评论(0)

2299972 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档