Programming‎ > ‎

SKILL

SKILL is programming language based on Lisp used in Cadence for IC Design.

Executed commands are logged in CDS.log and could be used directly in virtuoso / Tools / SKILL IDE for making functions or directly.

Familiarization with SKILL Programming
In the CIW type the following and hit return:
>1 + 2
three should be the result in the CIW window.

Start integrated functions help in CIW
>startFinder()

Create a new cell using the method that we normally use. Call the cell test_layout and use the layout view.
The window should be open now. We need to get a pointer to the database object that cadence created for the layout.
To do this type the following in the CIW and hit enter.
>cvID = geGetWindowCellView()
You should see that cvID is now equal to some long expression like db:123456789.

Create a rectangle of Active using SKILL by typing the following in the CIW and hitting enter.
>dbCreateRect(cvID list( "Metal5" "drawing" ) list( 10:0 20:10 ) )

Create a rectangle of Active using SKILL by typing the following in the CIW and hitting enter.
>dbCreatePath(cvID list( "MetalTop" "drawing" ) list( -20:0 20:0 ) 10 )

Open CellView as a database and assign it to cv:
cv = dbOpenCellViewByType("lib" "cell" "schematic" "" "a")

Syntax Functions for Defining Functions
SKILL supports the following syntax functions for defining functions. You should use the procedure function or the defun function in most cases.
The procedure function is the most general and is easiest to use and understand.
Anything that can be done with the other function definition functions can be done with a procedure and possibly a quote in the call.

The procedure function provides the standard method of defining functions. Its return value is the symbol with the name of the function. For example:
procedure( trAdd( x y )
      printf( "Adding %d and %d  %d \n" x y x+y )
      x+y
      ) => trAdd
trAdd( 6 7 ) => 13

Open View of Cell from Library and show it directly:
ddsServOpen("lib" "cell" "view" "edit" nil)




Comments