• 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. Virtuosity: SKILLful Virtuoso Visualization and Analysi…
Ashu V
Ashu V

Community Member

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

Have a question? Need more information?

Contact Us
Analog Design Environment
ViVa-XL
custom/analog
Analog Simulation
SKILL for the Skilled
ADE
Virtuoso
ViVA
Virtuosity
Custom IC Design
SKILL
Cusstom IC Design

Virtuosity: SKILLful Virtuoso Visualization and Analysis

10 Dec 2017 • 4 minute read

 For a long time, I have had the curiosity to know why Cadence APIs are called SKILL, but never tried to explore more on this topic and the veiled story behind this name. Of late while documenting a bunch of new SKILL functions for Virtuoso® Visualization and Analysis, my curiosity arose again, and to put an end to it for once and for all, I googled ‘Cadence SKILL’ and found an interesting article on Wikipedia detailing the concept. The article helped me find an answer. It says:

SKILL was originally based on a flavor of Lisp called “Franz Lisp” created at UC Berkeley by the students of Professor Richard J. Fateman. SKILL is not an acronym; it is a name. For trademark reasons Cadence prefers it be capitalized.

Franz Lisp and all other flavors of LISP were eventually superseded by an ANSI standard for Lisp called "Common Lisp." Historically, SKILL was known as IL. SKILL was a library of IL functions. The name was originally an initialism for Silicon Compiler Interface Language (SCIL), pronounced "SKIL", which then morphed into "SKILL", a plain English word that was easier for everyone to remember.

"IL" was just Interface Language. Whilst SKILL was used initially to describe the API rather than the language, the snappier name stuck. The name "IL" remains a common file extension used for SKILL code ".il" designating that the code contained in the file has lisp-2 semantics. Another possible file extension is ".ils" designating that the content has lisp-1 semantics.

Click here if you are interested in reading the full Wikipedia article.

Some New and Handy SKILL Functions in Virtuoso Visualization and Analysis

So, as we all know that SKILL functions or APIs are very popular among users and many people prefer using them to change the default product settings and to perform other tasks. On the other hand, there might be users who like doing their work through GUI unless they hit upon something that can be done only through SKILL. Both the approaches are equally good – it’s your choice to adopt the one that looks convenient to you. Although in some cases ‘SKILL’ is seen as a shortcut that simplifies the tasks you need to perform. 

If you’re a SKILL enthusiast, you’ll be happy to know that the latest IC6.1.7 ISR release offers some very useful and handy SKILL functions to perform certain tasks in Virtuoso Visualization and Analysis. You may find them useful too. Let’s take a quick look at them.

  • awvSetLegendWidth

If you’re tired of seeing a smudged legend in a graph window or a vast legend that eats up too much of plotting space, you can use the awvSetLegendWidth function. It helps you set the width of the legend in the specified subwindow or window. But, there is a catch to it – this function works only when the legend is in left position as adjusting width does not make sense for the inside and top legend positions.

  • awvGetSelectedTraceWaveforms

If you want to list the waveform expressions for the currently-selected traces in a given subwindow, use the awvGetSelectedTraceWaveforms function to quickly generate the list you’re looking for.

  • awvPlaceAMarker and awvPlaceBMarker

If you've never used an AB marker, I recommend you to try it now – it makes the graph analysis a lot easier! It is a special delta marker of type XY and helps view the dx, dy, and slope values between the two points on the same or different traces. Note that a graph can contain only one AB marker. To create another pair, you need to convert the AB marker into a normal delta marker.

There are multiple ways available to add this marker – through the GUI, bindkeys, and SKILL functions. If we specifically talk about SKILL functions – you can use awvPlaceAMarker to add a marker of type A and awvPlaceBMarker to add a marker of type B. You need to input the window ID, trace index, X-axis location, Y-axis location, and optionally subwindow ID and position mode.

Related Resources

  • Virtuoso Visualization and Analysis XL SKILL Reference
  • Virtuoso Visualization and Analysis XL User Guide

Note: For more information on Cadence circuit design products and services, visit www.cadence.com.

About Virtuosity

Virtuosity has been our most viewed and admired blog series for a long time that has brought to fore some lesser known, yet very useful software and documentation improvements, and also shed light on some exciting new offerings in Virtuoso. We are now expanding the scope of this series by broadcasting the voice of different bloggers and experts, who would continue to preserve the legacy of Virtuosity, and try to give new dimensions to it by covering topics across the length and breadth of Virtuoso, and a lot more… Click Subscribe to visit the Subscription box at the top of the page in which you can submit your email address to receive notifications about our latest Virtuosity posts. Happy Reading!

Ashu Vashishtha


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