条件语句
1. 条件语句分为两种:if-else语句和case语句
2. 特点:顺序语句,应放在“always”块内使用
if-else语句
1. 判定所给的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。
2. if-else语句的形式:(对于每个if-else语句,他只有两个分支,if或者else)
(1)其中“表达式”为逻辑表达式或关系表达式,或一位的变量;
(2)若表达式的值为0、或z,则判定的结果为“假”;若为1,则结果为“真”。(默认只判定“1”为真,其余均为假);
(3)语句可为单句,也可为多句;多句时一定要用“begin_end”语句括起来,形成一个复合块语句。
3. 格式:
(1)方式1:
if(表达式) 语句1;//如果表达式成立,则执行语句1,如果不成立,则保持原状
(2)方式2:
if(表达式1) 语句1;
else 语句2;
(3)方式3:(使用与不同的条件,执行不同的语句)
if(表达式1) 语句1;
else if(表达式2)语句2;
…
else if(表达式n)语句n;
注意:允许一定形式的表达式简写,比如:
if(a)等同于if(a==1)
if(!a)等同于if(a !=1)
4. if语句可以进行嵌套
5. 当if与else的数目不一样的时候,注意要使用“begin_end”语句来确定if与else的对应关系
例如:
if(表达式1)
begin
if(表达式2)语句1;
end
else
语句2;
case 语句(多分支语句)
1. 当敏感表达式取不同的值时, 执行不同的语句。
2. 形式:case、casez、casex
3. case语句:
(1)格式:case(敏感表达式)
值1:语句1;
值2:语句2;
…
值n:语句n;
default: 语句n+1;
endcase
(2)说明:
a. 值1~值n必须互不相同
b. 值1~值n的位宽必须相等,且与控制表达式的位宽相同
c. default项可有可无,在一个case语句中只能有一个default项
4. casez和casex语句(case语句的两种变体)
(1)case语句中,每一个分支表达式的每一位的值都是确定的,或者为1或者为0;
(2)在casez语句中,当分支表达式中的某些位的值是高阻值z,那么就对这些位的比较不进行考虑;
(3)在casex语句中,当分支表达式的某些位的值是高阻值z或者不定值x,那么就对这些位的比较不进行考虑。
(4)在分支表达式中,可以用“?”来表示x或z
使用条件语句的注意事项
1. 在使用条件语句时,必须要列写出所有的条件分支,否则当条件不满足的时候,编译器会生成一个锁存器来保持原值;
2. 在组合电路的设计过程中,要避免生成隐含锁存器,所以要在if语句最后写上else,在case语句最后写上default来结束条件语句。
版权声明:本文为weixin_45057286原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。