Featured post

Transaction Recording In Verilog Or System Verilog

As there is not yet a standard for transaction recording in Verilog or VHDL, ModelSim includes a set of system tasks to perform transac...

Sunday, 9 September 2012

If Statement

Formal Definition

The if statement is used to choose which statement should be executed depending on the conditional expression.

Simplified Syntax

if (conditional expression)




if (conditional expression)


else if (conditional expression)





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;
  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;
  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)
  counter = counter + 1;
  data_out = counter;
  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)
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.

Important Notes

  • The if statement can be nested.

No comments:

Post a comment

Please provide valuable comments and suggestions for our motivation. Feel free to write down any query if you have regarding this post.