网站大量收购独家精品文档,联系QQ:2885784924

verilog 编程语句.ppt

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

6.5 条件语句;6.5.1 if-else条件语句 ;例如下面这条条件分支语句: if(enable == 1) out = data_in; 在执行时就会根据条件表达式“enable==1”是否成立来决定 是否执行赋值语句“out=data_in;”:如果enable取值为 “1”,则赋值语句得到执行,输出信号out得到data的值;如 果enable的值为“0”、“x”或“z”(取值不为“1”),则不 执行指定的赋值语句,输出信号out保持原有值不变。 (2) 使用形式2:   if ( 条件表达式 ) 语句或语句块1   else 语句或语句块2   这种形式的条件分支语句将以如下方式得到执行:   ? 如果指定的“条件表达式”成立(也就是这个条件 表达式的逻辑值为“1”),则执行条件分支语句第一行所指 定的“语句或语句块1”,然后结束条件分支语句的执行。   ? 如果“条件表达式”不成立,则执行由条件分支语 句内第二行的else项所指定的“语句或语句块2”,然后结 束条件分支语句的执行。;一条带有else选项的if语句映射到硬件上,通常形成的是一个多路选择器(MUX) 例如,下面这条条件分支语句: if(select==1) out=input1; else out=input0; 在执行时会根据条件表达式“select==1”是否成立来 决定执行两条过程赋值语句中的哪一条。如果select 取值为“1”,则第一行if这一项所指定的赋值语句 “out=input1;”得到执行,输出信号out得到input1的 取值;如果select取值不为“1”(取值为“0”、“x”或 “z”),则执行第二行else项所指定的赋值语句 “out=input0;”,输出信号out将得到input0的取值。 ;  (3) 使用形式3: if (条件表达式1) 语句或语句块1 else if (条件表达式2) 语句或语句块2 …… else if (条件表达式n) 语句或语句块n else ? 语句或语句块n+1   在这种使用形式中一共出现了n+1个条件分支项,其中每个分支项都指定了当该分支项的条件满足时所要执行的操作。;  在执行这种形式的if-else条件分支语句时,将按照各分支项的排列顺序对各个条件表达式是否成立作出判断,当遇到某一项的条件表达式成立时,就执行这一项所指定的“语句或语句块”。比如假设“条件表达式m”成立,那么就执行“语句或语句块m”。   如果所有的条件表达式都不成立,则执行最后的else项(这一项没有给出条件表达式)所指定的操作(语句或语句块n+1)。   这种形式的if-else条件分支语句实现了一种多路分支选择控制。   比如在例6-21给出的模块中就使用了这种形式的if-else条件分支语句。;  【例6-21】第三种形式的if-else条件分支语句。 module sel_from_three(q,sela,selb,a,b,c ); input sela,selb,a,b,c; output q; reg q; always @(sela or selb or a or b or c) begin if (sela) q = a; else if (selb) q = b; else q = c; end endmodule;  在例6-21模块内的if-else条件分支语句中出现了三个分支项,这个条件分支语句在执行时将依次对控制信号sela和selb的取值是否为“1”进行判断:   (1) 如果sela的取值为1,则第一个分支项的条件表达式“(sela)”成立,因而第一个分支项所指定的赋值操作“q=a;”将得到执行。   (2) 如果sela的取值不为1,而selb的取值为1,则第二个分支项的条件表达式“(selb)”成立,因而第二个分支项所指定的赋值操作“q=b;”将得到执行。   (3) 如果sela和selb的取值都不为1,则“(sela)”和“(selb)”这两个条件表达式都不成立,这时else分支项所指定的赋值操作“q=c;”将得到执行。    (4) 如果sela和selb的取值都是1,那么第一个条件表达式“(sela)”以及第二个条件表达式“(selb)”都是成立的。在这种情形下,由于首先被检测为成立的条件表达式是第一个分支项的条件表达式“(sela)”,所以此时将执行第一分支项指定的赋值操作q=a;”。 ;图6.11 例6-21所示模块描述的电路功能; 因此,例6-21所示模块描述的是图6.11所示的硬件电路功能。由上例条件表达式取值的第四种情况

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档