• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. Analog/Custom Design
  3. The Cadence SKILL Language: Where Coding Blends with Chip…
Vishnu Teja S
Vishnu Teja S

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
CDNS - RequestDemo

Have a question? Need more information?

Contact Us
Cadence blogs
Virtuoso Studio
SKILL for the Skilled
training
digital badges
Layout
Virtuoso
Lisp
Custom IC Design
SKILL++
Virtuoso Layout Suite
SKILL

The Cadence SKILL Language: Where Coding Blends with Chip Design

8 Sep 2025 • 8 minute read

 Imagine you're working on a critical design project, and you need a coffee break. You can use SKILL to automate the process of saving your work, closing your design, and even ordering a coffee (okay, maybe not that last one, but a designer can dream, right?). That’s the power of the SKILL language.

SKILL language is more than just a scripting language; it empowers engineers to automate tasks, customize their design environments, and integrate advanced checks seamlessly into their Cadence workflows. This language is about supercharging the engineer’s productivity.

Let's explore this language and its benefits for the IC design process using Cadence tools.

What is SKILL Language?

SKILL is the programming language developed specifically for designing and verifying integrated circuits. It is a dialect of the Scheme Programming language with a little EDA-specific magic. A SKILL code treats the inputs as lists, evaluates them, and provides the results in list format. Some of the features of the SKILL language are listed below.

  • In a SKILL code, you can declare variables using the "let" keyword. For example: (let myVar 5) sets the value of myVar to 5.
  • SKILL language functions are defined using the defun or procedure keyword. For example: (defun add (a b) (+ a b)) defines a function add that takes two arguments and returns their sum.
  • It has the usual control structures, such as "if", "when", and loop constructs like "for", "while", etc.
  • SKILL language has various commands for evaluating the lists, such as car, cdr, bounding boxes, foreach, and foreach mapcar.
  • Debugging the SKILL code scripts is easy using the SKILL IDE, which has various assistants for quickly debugging the code.

Don’t worry about memorizing every SKILL function. Use the built-in SKILL API Finder: just type your question in plain English, and it will show you the right SKILL function, its attributes, and how to use it. To learn more about this tool, watch the Smart Search Using SKILL API Finder video on the Cadence ASK Page.

The new Smart Search in Virtuoso Studio lets you look up SKILL functions using everyday language. It combines keyword and natural language searches, gives quick results, and explains what each function does—helping everyone get answers quickly.

Why SKILL Language?

So, why would anyone want to learn a language that's been around for many years?

  • It is domain specific: SKILL language is tailor-made for IC design and verification. It knows the ins and outs of chip design, making it a powerful tool for tasks like layout, routing, and simulation.
  • It is tightly integrated with the Cadence database: Using SKILL code, you can extract schematic, layout, and verification data programmatically.
  • It has extensive libraries: Cadence has built a vast array of libraries and functions that make it easy to perform common tasks, from creating geometric shapes to analyzing circuit behavior.
  • Parameterized Cells (PCells): Using SKILL code, you can create reusable, dynamic layout cells.
  • It is capable of scripting and automation: SKILL language is perfect for automating repetitive tasks, creating custom flows, and integrating with other EDA tools.
  • It can help customize Cadence tools such as Virtuoso Studio and the Allegro platform.

How does a SKILL code look?

Here is a small SKILL code snippet to count the number of shapes in a layout:

By seeing the code, you can get the task that is being done.

In the above example,

  • cv is the current layout cellview
  • count is the variable set to zero
  • foreach loop iterates through each item in the given list
  • For every shape, the variable count gets incremented

You can improve this code by filtering each type of shape, resizing a specific shape, and many more. Such automation can save hours when generating via arrays in high-density layouts.

Ready to learn SKILL Language the right way?

If the code snippets above sparked your curiosity, or if you’ve ever wished your design environment could do more with less effort—then it’s time to dive deeper.

We offer two comprehensive courses that will provide you with a solid understanding of the language.

  • SKILL Language Programming Introduction

This course is perfect for beginners. It walks you through the essentials—how to locate SKILL documentation, write basic expressions, and customize the Virtuoso environment using menus, bindkeys, and forms. You’ll also learn how to debug SKILL procedures using the SKILL IDE and CIW.

  • SKILL Language Programming

Once you’ve got the basics, this course takes you further. You’ll explore advanced data structures, database queries, and how to build reusable SKILL functions. It’s ideal for layout engineers and CAD professionals who want to automate workflows and streamline design tasks.

Both courses are built around real-world design scenarios and include lab books, sample solutions, and IDE-based debugging exercises. Whether you're customizing toolbars or parsing layout data, these courses will help you write SKILL code that’s not just functional—but elegant.

Cadence SKILL language is more than just a scripting language, it is an engineering enabler. It frees VLSI engineers from repetitive tasks, unlocks custom automation, and helps teams deliver high-quality layouts faster. So, enroll in these courses and benefit from them.

Apart from these courses, we also developed courses on Advanced SKILL language and one of its applications, which is creating Parameterized Cells (PCells).

The courses are as follows:

Advanced SKILL Language Programming and SKILL Development of Parameterized Cells.

These courses help customers learn advanced concepts in SKILL and create parameterized cells using relative object design (ROD) concepts.

These Online Trainings are free for all Cadence customers with a Cadence ASK Account. For "Live" or "Blended" instructor-led training sessions, please contact Cadence Training.

Additionally, you can find more online courses through the Learning maps for every product, every domain, and every flow.

Earn Your Badge

These trainings has a Digital Badge. You can earn this badge by passing the exam for this course.

You can become Cadence Certified once you complete the course and share your knowledge and certifications on social media channels. Go straight to the course exam at the Cadence ASK and Learning portal.

    

Related Resources

Training BytesTraining Bytes

Smart Search Using SKILL API Finder

Virtuoso Dashboard

SKILL Language Programming (Channel Video)

SKILL IDE

SKILL readTable and writeTable Functions

Analog IC Design Flow

BlogsBlogs

Virtuoso Studio IC25.1: Explore the New Features - One Byte at a Time

Analog and Digital IC Design Flows: The Past, Present, and Future of Electronics

From Concept to Reality: Understanding the Cadence Analog IC Design Flow

Knowledge Booster Training Bytes: Unlocking Advanced SKILL IDE Features

Knowledge Booster Training Bytes - What Is a Parameterized Cell and What Are the Advantages

  Training Courses

Advanced SKILL Language Programming

SKILL Development of Parameterized Cells

Cadence Analog IC Design Flow

Virtuoso Studio Features

Auto Place and Route (APR) for Virtuoso Studio – Device Level

Auto Place and Route (APR) for Virtuoso Studio – Standard Cell

Do You Have Access to the Cadence ASK Portal?

If not, follow the steps below to create your account:

  • On the Cadence Support portal, select Register Now and provide the requested information on the Registration page.
  • You will need an email address and host ID to sign up.
  • If you need help with registration, contact support@cadence.com.

To stay up-to-date with the latest news and information about Cadence training and webinars, subscribe to the Cadence Training emails.

If you have questions about courses, schedules, online, public, or live onsite training, reach out to us at Cadence Training.

About Knowledge Booster Training Bytes

Knowledge Booster Training Bytes is an online journal that relays information about Cadence Training videos, online courses, and upcoming webinars in the Learning section of the Cadence Learning and Support portal. This blog category brings you direct links to these videos, courses, and other related material on a regular basis. Subscribe to receive email notifications about our latest Custom IC Design blog posts.

Vishnu Teja Salagrama,

On behalf of the Cadence Training Team


CDNS - RequestDemo

Try Cadence Software for your next design!

Free Trials

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information