Team VLSI TCL
Team VLSI TCL
Team VLSI TCL
More
Team VLSI
A blog to explore whole VLSI Design, focused on ASIC Design flow, Physical Design, Signoff, Standard cells, Files system in VLSI ind
Interview guidance, Linux and Scripting, Insight of Semiconductor Industry and many more. Happy learning!
Home Support Us Contents ASIC Flow Files in VLSI Issues in VLSI Standard Cell Short Topics Pre Placement Placement
Translate
Showing posts with label tcl scripting. Show all posts
More Pages
Select Langua
24 September
About us
Powered by
Sitemap
Top 20 TCL syntax helpful to improve TCL scripting skill for VLSI
Privacy Policy
Terms and Conditions Engineers Email subscription
Contact Us
One scripting language without which it will be very difficult to survive in VLSI Industry, Enter
that would definitely be TCL (Tool Command Language). TCL is widely used everywhere
Search This Blog
in the VLSI industry because many tools are based on the tcl. We can directly interact with
Search
the tool using tcl CLI (Command Line Interpreter).
Deliv
Labels It has been observed that many beginners initially hesitate to start the TCL scripting. Most
2-bit flops
of the cases user know the basic tcl commands but how to connect all them and create a
Antenna effect script is the only problem. I would say even you know some basic tcl commands you can Followers
AOCV start writing your own script for your day to day requirements. Most important this is Followers (174)
ASIC BEGIN the process of writing the script. Here I am presenting 20 common tcl syntax which
ASIC Design flow I use frequently in my tcl scripting and hope it will help you to break the ice. Improvement
ASIC Flow and prefection will come as you practice but start is the most important. These 20 syntax
Best 25 books for VLSI will definitely help you lot to start and improve your tcl scripting a lot.
Books for Physical
Design
Books/Articles
Follow
Boundary Cell
Boundary timing 1. foreach loop
CAD tools Use:
Subscribe on YouT
ccopt file Where we have to iterate on each element on a list of elements and have to perform some
Team V
Clock gating operation on each element.
Yo
Crosstalk Syntax:
Crosstalk Noise
//operations for each $var
Popular Posts
Crosstalk Prevention
}
CTS
Example:
CTS Constraints
D flip flop
Supposed we want to print all the macros instance name, reference name and total count
d latch of macro in a block.
(Parametric On
DEF file in vlsi set i 0
ECO file
incr i
EDA Tools
puts total macro count = $i
Electromigration Effect
End Cap Cell
Engineering Change
2. Nested foreach loop
Order Use:
Fence If we have to iterate on each element of a list and then further we need to iterate on each Design flow as
files in VLSI parameters associated with the element.
FinFET
Syntax:
Floorplan
Global placement
foreach j $list2 {
Input Delay Suppose we have to find the list of feedthrough pins and the total numbers of feedthrough
Input files
pins in each edge of a rectilinear block. A script can be written like this for that.
Gating set i 0
Interview Guidance
set j 0
Interview Guidence
foreach pin [dbget [dbget top.terms.edge $edge -p].name ft* ] {
supported by a
Interview Section
puts "$edge $pin"
Interview tips
IO Interface Analysis
incr j
IO timing }
►
Physical Verification
Same as above example only syntax change and one loop in running inside another loop.
questions Syntax:
►
July
(1)
►
placement
for {initialization}{condition}{increment} {
►
May
(1)
►
Placement in Physical
Design
statements
►
April
(3)
►
Placement Steps
}
►
February
(3
►
PnR flow } ►
2020
(37)
►
POCV
pre placement stage 5. while loop
Follow on Faceboo
pre-placement Use:
activities
When we need to repeat a loop until a particular condition is true.
Tea
PrimeTime
Recommended Books
Syntax:
983 li
Redhawak
while {condition} {
Region //statements
Sanity Checks }
Like Page
SBFF Example:
Scan chain reorder Suppose we need to read all the lines of a file one by one and store is a variable
schematics of flip flop dynamically.
and latch
Scripting
SDC file
set fp [open my_report.tcl r]
Signal Integrity }
SignOff }
SignOff Tool
Signoff Tools 6. if-else conditions
Spare Cells
Use:
STA
When we want to do something if certain condition is true. We can either put else
standard cell
statement or skip it.
if {bolean_condition} {
teamVLSI
}
temperature inversion
temperature inversion
in VLSI Example:
Timing Window
Analysis
set eco_ref [regsub {SVT} $cell_ref "ULVT"]
Tool instalations
}
TSMC 7nm Technology
node 7. if-elseif... else condition
TSMC Process nodes Use:
comparision
When we want to check another if condition if one prior if condition is not true.
Tweaker
Syntax:
VLSI
VLSI Books
if {bolean_condition} {
Total Pageviews
set fp [open existing.rpt r ]
398,067
if {[regexp "Weak Driver" $data]} {
Contributors
set cell [lindex $data 8]
panda
} elseif {[regexp D2BWP $cell]} {
}
close $fp
close $fp1
8. Arithmetic operations
Use:
Syntax:
set d [expr $a - $b ]
set d1 [expr $a / $b ]
Example:
If we need to know, how much space will take a 4X, a 8X and a 16X decap cell together.
puts $distX
like:
>expr 3/2
>1
>expr 3/2.0
>1.5
9. regexp
Use:
To match the regular expression. Regular expression has a wide list, we will see only few
which we use mostly.
Syntax :
Example:
Suppose we want to change the D1, SVT cell to D2, LVT we can check the cell with
regexp and then we can perform regsub for substitution and generate an eco file.
10. regsub
Use:
Syntax:
Example:
Many times we have to read a report file inside the tcl scripting to make some fixes based
on the violation reported. We read the file line by line and store the data in a file pointer
variable dynamically.
Syntax:
Example:
close $fp1
13. proc
Use:
If we need to use a few lines of code, again and again, we can make a proc using those
codes and can call easily by the proc name. No need to write code every time.
Syntax:
proc proc_name {} {
// lines of code
proc_name
Example:
If we need to find the basic details of a block, we can write a proc something like this.
proc blockInfo {} {
We just need to source above file and call the proc blockInfo proc, it will display all the
above info of block.
Syntax:
Example:
Suppose we want to write a general proc in which if we pass the net_name, it should
return the net_length of that particular net. We can write that as follow.
foreach i $net_wires_length {
}
puts $net_length
Note:
We can also set a default value of the proc argument. So in case the user does not pass
the argument value, proc will take the default value.
Syntax:
set a $arg1
set b $arg2
// More statements
proc_name
it will take the default value of arg1 and arg2 and will set a 10 and set b 20.
proc_name 50
It will set a 50 and b 20
proc_name 50 45
In the above way proc will set a 50 and b 45
15. exec
Syntax:
exec date
Example:
16. dbGet/dbSet/dbQuery
Use:
These are the innovus tool-specific commands, and widely used in innovus tool related
scripting.
Syntax:
Example:
Kindly do the man command for more details
18. alias
Use:
To shorten a long command or a command with its switches to a short command.
Syntax:
alias short_commad "original_commad"
Example:
alias si "selectInst"
alias sn "selectNet"
19. grep
Use:
To find the particular pattern
Syntax:
Example:
Will discuss in details in a separate article
Link [Not now]
20. sed
Use:
sed is called stream editor, it can do lots of tasks. we use generally sed to replace or
delete a particular pattern in a file or string.
Syntax:
exec sed
Example-1:
If we want to replace a line having particular unique pattern completely by another line .
We can do that like folow.
Example 2:
If we want to write some lines of code which are stored in a file just after a line having
some uniqe pattern. we can do that as follow
Example 3:
If we want to delete all lines having a unique pattern
Note: grep, sed and awk is a very handy command for various operations, these
commands has explained in more details in the following article.
Link [Not available now]
Thank You.
Posted by
Team VLSI
at
12:39 AM
No comments:
Labels:
Scripting,
tcl scripting
Subscribe to:
Posts (Atom)
Subscribe To
Posts
All Comments
Contact Form
Name
Email
*
Message
*
Send