if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。Verilog HDL语言提供了3种形式的if语句。
第一种:if(表达式)语句。
if(a>b)
out1 = int 1;
第二种:if(表达式)。
if(表达式)
语句1
else
语句2
例如:
if(a>b)
out1 = int1;
else
out1 = int2;
第三种:
if(表达式1)
语句1;
else if(表达式2) 语句2;
else if(表达式3) 语句3;
.
.
.
else if(表达式m) 语句m;
else 语句n;
条件语句必须在过程块语句中使用。所谓过程块语句是指由initial和always语句引导的执行语句集合。除这两种块语句引导的begin end块中可以编写条件语句外,模块的其他地方都不能编写。
注:1.三种形式的if语句,if后面都有“表达式”,一般为逻辑表达式或关系表达式,系统对表达式的值进行判断,若为0,x,z,按“假”处理,若为1,按“真”处理,执行指定的语句。
后两种,即第2和第3种形式的if语句,在每个else前面有一个分号,整个语句结束时有一个分号。
例如:
always@(some_event)
begin
if(a>b) out1 = int1;
else if(a==b) out1 = int2;
else out1 = int3;
分号是Verilog HDL语句中不可缺少的部分,是if语句中嵌套语句所要求的。
如果没有分号,就会出现语法错误。else语句不能单独使用,必须搭配if语句,必须是if语句的一部分。
2.允许一定形式的表达式简写形式:
if(expression) 等同于 if(expression = = 1)
if(! expression) 等同于 if(expression ! = 1)