if()beginif()语句1(内嵌if)endelse语句2 这时begin_end块语句限定了内嵌if语句的范围,因此else与第一个if配对。注意begin_end块语句在if_else语句中的使用。因为有时begin_end块语句的不慎使用会改变逻辑行为。见下例: if(index>0)for(scani=0;scani<index;scani=scani+1)if(memory[scani]>0)begin$di...
memory[scani]=0;endelse/*WRONG*/$display("error-indexiszero"); 尽管程序设计者把else写在与第一个if(外层if)同一列上,希望与第一个if对应,但实际上else是与第二个if对应,因为它们相距最近。正确的写法应当是这样的: if(index>0)beginfor(scani=0;scani<index;scani=scani+1)if(memory[scani]>0...
if(expression2) 语句1 (内嵌if) else 语句2 else if(expression3) 语句3 (内嵌if) else 语句4 1. 2. 3. 4. 5. 6. 应当注意if与else的配对关系,else总是与它上面的最近的if配对。如果if与else的数目不一样,为了实现程序设计者的企图,可以用begin_end块语句来确定配对关系。例如: if( ) begin if(...
else if(表达式3) 语句3; ………... else if(表达式m) 语句m; else 语句n; 条件语句必须在过程块语句中是用(initial和always语句),除了这两个语句引导的bedin end块中可以编写条件语句外,模块中的其他地方都不能编写。 说明 (1)3钟形式的if语句中if后面的表达式一般为逻辑表达式或关系表达式。判断若为0、...
else begin less <= 1'b1; larg <= 1'b0;equ <= 1'b0;end end endmodule 多重嵌套的if语句 if语句可以嵌套,多用于描述具有复杂控制功能的逻辑电路。 多重嵌套的if语句的格式如下: if(条件1) 语句1; if(条件2) 语句2; ... 下面是使用多重嵌套if语句实现的模60 的8421BCD码加法计数器: ...
if-else决策的每个分支可以是一条语句,也可以是一组包含在begin和end之间的语句,如下面的代码段所示, 没有else分支的if语句。if-else决策的else(false)分支是可选的。如果没有else分支,且表达式的计算结果为false(或unknown),则不执行任何语句。在下面的代码段中,如果enable为0,则out不会更改。由于out是一个变量...
else if(表达式4) 语句4; 1. 2. 3. 4. 5. 6. 7. #语句使用要点: (1)条件语句必须在过程块中使用。所谓过程块语句是指由initial、always引导的执行语句集合。 出了这两个语句块引导的begin end块中可以编写条件语句外,模块中的其他地方都不能编写。
必须加,相当于C语言中的大括号
if($time>=1000)$finish; end endmodule 仿真结果如下。 由图可知,输出信号与选择信号、输入信号的状态是相匹配的。 事例中 if 条件每次执行的语句只有一条,没有使用 begin 与 end 关键字。但如果是 if-if-else 的形式,即便执行语句只有一条,不使用 begin 与 end 关键字也会引起歧义。
事例中 if 条件每次执行的语句只有一条,没有使用 begin 与 end 关键字。但如果是 if-if-else 的...