Scope of Scripting in VLSI
Scope of Scripting in VLSI
UDC 681.3
T.H. SHAHINYAN
APPLYING SCRIPTING LANGUAGES AT DEVELOPING SYSTEMS OF
AUTOMATED DESIGN OF INTEGRATED CIRCUITS
Scripting languages (SLs) are used in electronic design automation (EDA) software
development and VLSI design flows. There are also EDA tools that contain embedded SLs.
This article reveals various tasks and specialities that use SLs. It gives information on the
purpose and strengths of SLs. The possible swapability and complementarity of SLs for
various tasks in EDA software development and VLSI design flows are described too.
Keywords: scripting languages, electronic design automation, designing integrated
circuits.
Introduction. SLs [1] are programming languages that do not require a preliminary
compilation of the code before execution. The compilation of the code is implemented
runtime by the interpreter. This feature saves time and provides the code portability
between different operating systems. The SLs are usually higher level languages
compared with the C programming language. Using a higher level language provides
quick development of the required functionality.
There are many SLs. Different SLs have been designed and developed for
different purposes, but there are 3 main categories of SLs [2]:
1. Command languages.
2. Markup languages.
3. General purpose languages.
This work will focus on the open source SLs used by EDA leader companies,
such as Synopsys and Mentor Graphics. The EDA software tools of the market leaders
are mainly developed in the environment of Linux operating system (OS). The Linux
OS mainly determines the used SLs. The Linux package contains a number of open
source SLs, but 3 of them are the most popular in the leading EDA companies. These
3 languages are Perl, TCL and Python. These are general purpose SLs used for various
tasks. The general analysis of SLs can be found in other articles [2,3].
Specialities and areas of usage of SLs in EDA software development and
VLSI design flows. There are several specialities that use SLs in EDA software
development and VLSI design flows widely. These specialities are:
1. Software Configuration Management (SCM) Engineer.
2. Software Quality Assurance (SQA) Engineer.
3. Computer Aided Design (CAD) Engineer.
4. Corporate Application Engineer (CAE).
350
The engineers of the above mentioned specialities have tasks that are mainly solved
with SLs. One of the areas of usage of SLs is a software development flow, which
contains the following stages that use scripting widely:
1. Building software.
2. Running regression tests and writing run results to a MySQL database.
3. Viewing results using web browsers.
Building software is a non-trivial, multioptional task [4] that requires a SCM
engineer to configure and watch after the process. To organize automated and regular
builds in the environment of Linux OS, it is required to have a build system that setups
the environment, checks out the appropriate branch from repository, compiles and
builds software components with required options, validates and reports the results.
All these steps require scripting.
Running regression tests is used by QA and SCM engineers for testing the
software. This is done with test drivers that distribute thousands of tests among
available computers and use multiprocessor parallel runs in order to finish testing in
an acceptable time interval. For the minimization of the total runtime, there are several
rules, which are discussed in [5]. All these tasks are solved by using scripting.
Steps 1-2 are mostly implemented either with Perl or by Python. Step 3 is mostly
implemented with PHP, but it can also be implemented with Perl or Python. Perl and
Python are perfect for distribution of multiple runs against servers on the grid [6].
VLSI design flow contains many stages and uses many formats (views) of
representation of integrated circuits (IC). Many of these formats are ASCII files such
as SPICE, verilog, LEF, DEF, liberty etc. For processing the text data, the best
languages are Perl and Python. There are also binary formats like GDSII, OASIS,
Milkyway, Open Access etc. which can be processed by Perl and Python. VLSI design
contains simulation stages which can also have multiple corners and require parallel
distribution on the grid [6].
During VLSI design SLs are used for automated analysis, verification, comparison
and modification of the design views and other files. Typical tasks include but are not
limited to:
1. Reading and reporting the design data.
2. Verifying the data against the technical specification.
3. Comparing the common data of different views.
4. Modifying the data to meet the requirements.
The VLSI design tools usually have embedded SLs, which allow to automate the
design flow and integrate different EDA tools for interoperability (Fig.1) [7]. Actually,
many languages can be used as an embedded language if designed accordingly but the
most popular open source SL embedded in EDA tools is the TCL because it has been
specilally designed for this purpose.
351
6.
7.
8.
9.