0901-VHDL顺序语句探索.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
特殊的条件语句—沿的判断 IF (a=‘0’) THEN --电平判断 q = d; END IF; IF (a‘EVENT AND a=’1‘) THEN --上升沿判断 q = d; END IF; IF (b‘EVENT AND b=‘0’) THEN --下降沿判断 IF (clk‘EVENT AND clk=’1‘) THEN --时钟的上升沿 q = d; END IF; 条件语句小结 If 后是条件表达式,记住单信号匹配常量为“字符”,如 a=‘1’;而信号向量匹配常量为“字符串”,如 s=“00”。 条件是有优先级的,多个条件都可满足时,执行排在最前面的条件。 If 、else、end if容易记住,但“elseif”的拼写是错的,正确的是“elsif”。 复杂的条件一定要加括号明确优先级。 If语句不能直接用于结构体,但条件代入语句可以。 If语句必须用于process中。 4 选择语句 WITH 选择信号 SELECT --选择代入语句 目标信号 = 值1 WHEN 条件值1, … 值n-1 WHEN 条件值n-1, 值n WHEN others; case 选择信号 is --选择语句 when 条件选择值1 = 语句组1; when 条件选择值2 = 语句组2; ……………… when others = 语句组n; end case; 选择语句对比选择代入语句 with s select y= a when “00”, b when “01”, c when “10”, d when others; case s is when “00” = y=a; when “01” = y=b; when “10” = y=c; when others = y=d; end case; 代入号右边是逗号分隔的多种条件和取值 选择条件的多种表示形式 Case语句中的when主要有以下四种表达形式: 1)when 条件选择值=〉语句; 2)when 值| 值 | … | 值=〉语句; 3)when 值 to 值 =〉语句; 4)when others =〉语句; 选择语句举例(4-16译码器) ARCHITECTURE example_others OF decoder_154 IS SIGNAL indata: STD_LOGIC_VECTOR(3 DownTO 0); BEGIN Indata = S3 S2 S1 S0; P1:PROCESS (Indata, G1,G2) IF( G1=0 AND G2=0) THEN CASE indata IS WHEN 0000= y =01 11 11 11 11 11 11 11; WHEN 0001= y =10 11 11 11 11 11 11 11; … 选择语句举例 WHEN 1110= y =11 11 11 11 11 11 11 01; WHEN 1111= y =11 11 11 11 11 11 11 10; WHEN others = y =XX XX XX XX XX XX XX XX; - -遇到任意项,y的输出不确定 ELSE - - G1,G2不等零,y高电平输出 y=1111 1111 1111 1111; END IF; END PROCESS P1; END example_others; 选择语句举例 请参考教材。 小结: 选择语句的条件不可重复或重叠 选择语句要做到把所有条件都考虑进去,否则会使整个逻辑进入不确定状态。解决方法:when others 各条件地位等同,无优先顺序,所以位置上可以互换,但others必须位于最后。 5 循环语句 for-loop语句语法格式为: [标号: ] FOR 循环变量 IN 离散范围 LOOP 命令语句; END LOOP [循环标号]; while 语句语法格式为: [循环标号:] while 条件1 loop 命令语句; if 条

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档