if_else语句1909"ALIST心if的嵌套OTONG在if语句中包含另一个或多个if语句if(expression1)语句1;(内嵌if)if(expression2)语句2;else语句3;(内嵌if)if(expression3)else语句4;else总是与它上面的最近if配对2006-3-
2006-3- 10 7 if_else语句 ❖if的嵌套 ▪ 在if语句中包含另一个或多个if语句 if(expression1) if(expression2) 语句1;(内嵌if) else 语句2; if(expression3) 语句3;(内嵌if) else 语句4; ❖else总是与它上面的最近if配对
大TOTONG问题是最后一个if (a)else属于哪一个if?if (Reset)它是属于第一个if的Q=D;条件(a)还是属于第二个if的条件else(Reset)?在VerilogHDL中已通过将else与最近的没有else的if相关联来解决,即遵守最近匹配原则。2006-3-
2006 - 3 - 10 8 if ( a ) if (Reset) Q=D; else ❖ 问题是最后一个 else属于哪一个if? 它是属于第一个if 的 条件(a )还是属于第 二个if的条件 (Reset)? 在Verilog HDL 中已通过将 else与最近的没有 else 的if相关联来解 决 ,即遵守最近匹配 原则
beginend块1909"ALISTIOTONGif()if ()beginif()语句1if()语句1;endelseelse语句2语句22006-3
2006-3- 10 9 begin end块 if ( ) begin if( ) 语句1 ; end else 语句2 if ( ) if( ) 语句1 ; else 语句2
条件语句(if分支语句)相-else语句:ALIS灯支描述方式:IOTONGif(index>o)//开始外层ifif(表达式)(rega >regb)//开始内层第一层 ifbeginresult = rega;elseresult=o;//结束end内层第一层ifelseelse(index == 0)1Ebeginbeginsdisplay(" Note:Index is zero");endresult = regb;end可以多层嵌套。在嵌套if序列中,else和前面最近的if相关NoteldisplayInd为提高可读性及确保正确关联,使用begin..end块语句指定其作用域。102006-3-
2006-3- 10 10 ❖ 可以多层嵌套。在嵌套if序列中,else和前面最近的if相关。 ❖ 为提高可读性及确保正确关联,使用begin.end块语句指定其作用域。 if (index > 0) // 开始外层 if if (rega > regb) // 开始内 层第一层 if result = rega; else result = 0; // 结束 内层第一层 if else if (index == 0) begin $display(" Note : Index is zero"); result = regb; end else $display(" Note : Index is negative"); if 和 if-else 语句: 描述方式: if (表达式) begin . end else begin . end 条件语句(if分支语句)
条件语句(case分支语句)1909T心多分支选择语句OTONGcase(表达式)<case分支项>endcasecasez(表达式)<case分支项>endcasecasex(表达式)<case分支项>endcase2006-3-
2006-3- 10 11 条件语句(case分支语句) ❖多分支选择语句 ❖case(表达式) <case分支项> endcase ❖casez(表达式) <case分支项> endcase ❖casex(表达式) <case分支项> endcase