- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第04章VHDL语言.ppt
2.二选一控制语句 这种语句的书写格式为: TF 条件 THEN 顺序语句 ELSE 顺序语句 END IF; 当IF条件成立时,程序执行THEN和ELSE之间的顺序语句部分;当IF语句的条件得不到满足时,程序执行ELSE和END IF之间的顺序处理语句。即依据IF所指定的条件是否满足,程序可以进行两条不同的执行路径。 例:二选一电路结构体的描述 ARCHITECTURE rtl OF mux2 IS BEGIN PROCESS (a,b,s) BEGIN IF (s =’1’) THEN c = a; ELSE c = b; END IF; END PROCESS; END rtl; 3.多选择控制语句 这种语句的书写格式为: IF 条件 THEN 顺序语句 ELSIF 顺序语句 ELSIF 顺序语句 ┇ ELSE 顺序语句 END IF; 这种多选择控制的IF语句,实际上就是条件嵌套。它设置了多个条件,当满足所设置的多个条件之一时,就执行该条件后的顺序处理语句。 当所有设置的条件都不满足时,程序执行ELSE和END IF之间的顺序处理语句。 例: 利用多选控制语句设计的四选一多路选择器 LIBRARY IEEE; USE IEEE. STD_LOGIC_1164.ALL; ENTITY mux4 IS PORT(input:IN STD_LOGIC_VECTOR (3 DOWNTO 0); sel:IN STD_LOGIC_VECTOR (1 DOWNTO 0); y:OUT STD_LOGIC); END mux4; ARCHITECTURE rtl OF mux4 IS BEGIN PROCESS (input,sel) BEGIN IF (sel=“00”) THEN y= input(0); ELSIF(sel=“01”)THEN y= input(1); ELSIF(sel=“10”)THEN y= input(2); ELSE y= input(3); END IF; END PROCESS; END rtl; 4.4.3 等待和断言语句 1. WAIT语句 WAIT语句在进程中起到与敏感信号一样重要的作用,敏感信号触发进程的执行,WAIT语句同步进程的执行,同步条件由WAIT语句指明。进程在仿真运行中处于执行或挂起两种状态之一。当进程执行到等待语句时,就将被挂起并设置好再次执行的条件。WAIT语句可以设置4种不同的条件:无限等待、时间到、条件满足以及敏感信号量变化。这几类WAIT语句可以混合使用。现分别介绍如下: 1)WAIT --无限等待语句 这种形式的WAIT语句在关键字“WAIT”后面不带任何信息,是无限等待的情况。 2)WAIT ON 信号表 --敏感信号等待语句 这种形式的WAIT语句使进程暂停,直到敏感信号表中某个信号值发生变化。WAIT ON语句后面跟着的信号表,在敏感信号表中列出等待语句的敏感信号。当进程处于等待状态时,其中敏感信号发生任何变化都将结束挂起,再次启动进程。 例[1]: PROCESS BEGIN y = a AND b; WAIT ON a,b;--a,b为敏感信号,由WAIT列出 END PROCESS; 例[2]: PROCESS(a,b)--a,b为敏感信号,由PROCESS列出 BEGIN y = a AND b; END PROCESS; 在例[1]中执行所有语句后,进程将在WAIT语句处被挂起,直到a或b中任何一个信号发生变化,进程才重新开始。例[1]与例[2]是等价的。 需要注意的是,在使用WAIT ON语句的进程中,敏感信号量应写在进程中的WAIT ON语句后面;而在不使用WAIT ON语句的进程中
文档评论(0)