Decision in TCL

There will be many points where we need a decision in tcl in between choices while writing a script, there IF statement will help us. IF comes with ELSE as well if there are more than one statement. Below diagram which states the IF statement.

Decision#

There will be many points where we need a decision in tcl in between choices while writing a script, there IF statement will help us. IF comes with ELSE also if there are more than one statement. Below diagram states the IF statement.

 

First let’s understand the format to write the IF statement.

Formats#

1. Only IF Statement

If {condition} {
##Execute statement
}

 

EG. –

set a 10;
if {$a > 5} {
puts “Since condition is true hence statement will be executed”
}

Result:- Since condition is true hence statement will be executed

set a 10;
if {$a < 5} {
puts “Since condition is true hence statement will be executed”
}

Result: <Nothing will be printed>

2. IF ELSE Statement

If {condition} {
##Execute statement which is true
} else {
##Execute statement which is false
}

 

EG.

set a 10;
if {$a > 5} {
puts “Since condition is true hence statement will be executed”
} else {
puts “Since condition is false hence statement will be executed”
}

Result: Since condition is true hence statement will be executed

set a 10;
if {$a < 5} {
puts “Since condition is true hence statement will be executed”
} else {
puts “Since condition is false hence statement will be executed”
}

Result: Since condition is false hence statement will be executed

set a 10;
if {$a > 5} {
puts “Since condition $a < 5 is true hence statement will be executed”
} elseif {$a > 8} {
puts “Since condition $a < 8 is true hence statement will be executed”
} else {
puts “Since condition is false hence statement will be executed”
}

Result: Since condition 10 > 5 is true hence statement will be executed
Since condition 10 > 8 is true hence statement will be executed.

3. NESTED IF Statement

Nested IF means there are if statements inside a statement. (IF inside IF)

if {condition_1} {
puts “since the condition_1 is true hence this statement will be executed”
if {condition_2} {
puts “If condition_2 is true hence this statement will be executed”
}
}

 

EG.

Set a 10;
If {$a > 5} {
Puts “Since condition 1 is true hence the statement will be executed”
If {$a > 8} {
Puts “Since condition 2 is true hence the statement will be executed”
}
}

Result: Since condition 1 is true hence the statement will be executed
Since condition 2 is true hence the statement will be executed

4. Switch Statement

The way we control the electric switches in our house with the condition of different electric equipment’s, similarly we control different statement in TCL as well with conditions using SWITCH statement. Let’s understand more with format and flow diagram.

Format:
switch <condition> {
match_condition1 {
Body
}
match_condition2 {
Body
}
}

Flow Diagram:

 

EG.

set speed 60;
switch $speed {
80 {
puts “speed is 80”;
}
60 {
puts “speed is 60”;
}
default {
puts “Invalid Speed”
}
}

Result: Speed is 60

Written by

Swasti Pujari

Associate Director, Backend Engineering at CoreIC Technologies, with 15+ years in VLSI Physical Design and backend engineering. Previously Practice Head at UST Global, leading Physical Design, STA, EMIR, DFT, and Physical Verification. Delivered 3nm, 6nm and 7nm projects for AMD, Intel, and Microchip, and published IEEE research on hybrid AI-EDA floorplanning.