Syntax: if (conditional_expression) statement{ else statement}
The if statement causes a conditional branch. If the conditional expression evaluates to true the first statement or set of statements is executed, else the second statement or set of statements is executed, ( the syntax is very similar to that of pascal). To group statements use the keywords begin... end
To illustrate the use of an if statement consider the 4 to 1 multiplexor in figure A, implemented using a logic equation in example B and using an if statement in example C.
Figure A : Above : The 4 to 1 multiplexor
module multiplexor4_1 (out, in1, in2, in3 ,in4, cntrl1, cntrl2);
output out;
input in1, in2, in3, in4, cntrl1, cntrl2;
assign out = (~cntrl2 & ~cntrl1 & in1) | // The output is in1 when both
( cntrl2 & ~cntrl1 & in2) | // cntrls are low, etc.
(~cntrl2 & cntrl1 & in3) |
( cntrl2 & cntrl1 & in4) ;
// Note this is a continous assignment, if an operand on the right
// hand side changes, the left hand side will reflect the change.
endmodule
module multiplexor4_1 (out, in1, in2, in3 ,in4, cntrl1, cntrl2);
output out;
input in1, in2, in3, in4, cntrl1, cntrl2;
reg out; // Note that this is now a register
always @(in1 or in2 or in3 or in4 or cntrl1 or cntrl2)
if (cntrl1==1)
if (cntrl2==1)
out = in4;
else out = in3;
else
if (cntrl2==1)
out = in2;
else out = in1;
endmodule
Example C : Above : Implementation of a 4 to 1 multiplexor using a if statement.
EXERCISE
Write the stimulus block for the above multiplexor, you will have to
show that the correct input is selected according to the values of
the control bits.