The if statement is used to choose which statement should be executed depending on the conditional expression.
if (conditional expression)
statement1;
else
statement2;
if (conditional expression)
statement1;
else if (conditional expression)
statement2;
else
statement3;
The 'if' statement can be used in two ways: as a single 'if-else' statement (Example 1) or as a multiple 'if-else-if' statement (nested if statement - Example 2).
In the first case when the conditional expression is evaluated to true (or non-zero), then statement1 is executed and if condition is false (or zero), then statement2 is executed.
In the second case, if the first conditional expression is evaluated to be true, then statement1 is executed. Otherwise, the second conditional expression is evaluated and depending on its values, statement2 or statement3 is executed.
Every statement can be a group of statements (enclosed in a begin-end block - Example 3) or a null statement (; - Example 4). The conditional expression can be any valid expression.
Example 1
if (a == 5)
b = 15;
else
b = 25;
If 'a' is 5 then 'b' will be 15. Otherwise 'b' will be 25.
Example 2
if (a)
b = 4;
else if (d)
b = 5;
else
b = 1;
If 'a' has non-zero value then 'b' will be 4.
If 'a' is 0 and 'd' has non-zero value then 'b' will be 5.
If 'a' is 0 and 'd' is 0 then 'b' will be 1.
Example 3
if (a)
begin
counter = counter + 1;
data_out = counter;
end
else
data_out = 8'bz;
If 'a' has non-zero value then the counter variable will be incremented and a new counter value will be assigned to data_out variable. Otherwise, data_out bits will be assigned a high-impedance value.
Example 4
if ( counter > 10)
;
else
counter = counter + 1;
If counter value is bigger than 10, then it will stop (execute a null statement - ;). If the counter value is less than 10 then it will be incremented by 1.
The if statement can be nested.
Powered by IXwebhosting |