In this article we will discuss which scripting language is must-learn for a service company fresher. If you are a fresher and joined a service company recently this article will be helpful for you.
There are multiple scripting languages used in VLSI domain and learning all of them at a single go would be really tough. At these point try to understand which language is needed at which situation. We have decided to discuss the topic from a broader angle.
First let us understand how a service based company is different from a product based company with respect to hiring and defining a job role.
In a product based company work, road map, position everything are very much defined before hiring.
Whereas in a service company work, job role depends on need of the project of the client company which is a product based company.
Every year quite a good number of freshers get job in EDA/VLSI industry. In near future more and more VLSI companies will start their operations in India. So more talented freshers are required who can do Verification, Physical Design, STA, AMS, DFT, testing, etc for the IP, SoC, and chips. Most of the product companies outsource such kind of jobs to service companies. So service companies usually hire large number of engineers. Service companies are good to start your career. We started our career in such a way.
In such a scenario two situations might arise:
1. First you are hired for an upcoming project and waiting in bench
2. Second you have been hired and selected for training.
Once you are included in a project mostly your domain is defined. So if you are in bench , its high time you keep on working on your skills. As long as your domain is not defined you have a fair chance to enhance your skill in your favorite domain and get selected in project interview. If your domain is defined you can enhance your skill accordingly. Remember we are saying this for a fresher.
How to choose between front end or back end we have a video and blog on that. Watch it , it will help you to choose your domain according to your inclination.
The most popular scripting languages in VLSI are PYTHON, PERL, TCL, BASH/SHELL.
Now lets see which one is needed in which domain.
1. PYTHON:
Python is a dynamic, object-oriented, high-level programming language that can be used for many kinds of software development/scripting. Python can be a useful tool for implementation, simulation and verification are the areas where it provides a further increase in benefits over VHDL or Verilog. In the traditional hardware development cycle, the costs associated with testing and verification tasks vary between 30% and 80%, this means that improvements in this area have a great impact on the total cost of a project .Python, being a general purpose programming language especially designed for rapid application development, provides all its power and efficiency to make the testing phase an economic task in time and cost.
So in a nutshell, if you are aiming to join or Front end or already been selected for Frontend , learn PYTHON.
2. PERL:
PERL stands for Practical Extraction and Reporting Language, and true to its name its use in VLSI flows is to extract and report relevant(or required) information from seemingly endless logs or reports generated by EDA tools. PERL has some advantages over other scripting languages. The biggest usage of PERL is in parsing and regular expression matching. For most VLSI engineers, at least for all the back end folk, pattern matching is probably the most used and important functionality of PERL.
For instance, lets say you have a huge tool report and you are looking for a particular error. Write a small PERL script to extract the information which is next to impossible to do manually.
PERL could be used to compare report from two tools. PERL CGI is used to develop web-based inter site operable graphical application. This is used by VLSI designers. PERL is also used to run regression suite. So if your job role demands above mentioned works learn PERL.
We have a detailed series on PERL. Watch the whole series for better understanding.
3. TCL:
As long as we are talking about scripting, TCL also deserves a very special mention. TCL/TK or Tool tool command language is language in which the many tools are written and all the tool commands are in. You can directly interact with the tool using tcl CLI (Command Line Interpreter).If you are good in TCL you can basically make the tool do exactly what you want. TCL allows you to go far beyond what your basic commands let you do. If you are good with TCL you can, in most cases, make the tool generate an output so specific to your requirement that you might not need to use PERL or any other scripting to post process the output file. The TCL script can also be used to automate a repetitive task inside a design tool. When the team is running tight design schedules, to have an engineer very familiar with TCL is a great advantage.
If you are selected for Backend you must have to know TCL. Along with TCL you need to know the APIs of the tool used in the company , know how to integrate them in TCL scripts to access the tool.
TCL/Tk is used for developing GUI application for end users who uses only GUI tools.
TCL/TK could be used to develop GUI cockpit to launch various EDA tools from same control room.
We have a detailed and in-depth series in TCL. It is one of the most popular series. Go and watch. You will get benefited.
4. Bash:
Bash is an implementation of Shell and allows you to efficiently perform many tasks. For example, you can use Bash to perform operations on multiple files quickly via the command line. In many companies legacy scripts are written in BASH. If your team has such scripts you must learn BASH.
Another two important scripting languages are SED and AWK. Its also used in many companies and for very specific purpose. I have seen few of my team mates to learn it as their work included such scripts where SED and AWK required.
We have a detailed series on BASH. 3rd ad 4th episodes of BASH series covers SED and AWK respecively. Watch them for better understanding.
5. LINUX:
Since you are a fresher apart from scripting language learn LINUX commands very well. For any doubt please watch our series on LINUX/UNIX.
To design the state-of-the-art chips , we need EDA tools and to deal effectively with EDA tools we need scripting languages to process all the information they give out and automate their functionality.
If you are selected for CAD position , PERL/TCL, BASH/Shell you need to know all. Many companies have their CAD environment developed in PERL. Many have them in TCL/TK.
For your job role you might need to design a regression suit which uses all the scripting languages like Shell , PERL, TCL at the same time . If your job role demands that, you have to learn them all. I myself have worked in a job role where all three scripting languages were simultaneously used to develop a testing environment. Its challenging and exciting at the same time.
Every scripting language is special in their own way of application and advantages. These are like tools. You need them all in your bag and use them efficiently as per need. No one is expecting you learn them all in a month. Start today. You will become proficient with time.
Watch the video lecture here :
Courtesy : www.pngegg.com