[ Back ] [ Useful SKILL routines ] [ SKILL code repo (protected) ] [ Custom IC SKILL forum ]
Incredibile ma vero… esiste un textbook !!!
The CAD Connection by Q. Nguyen (stesso autore di CAD scripting languages)
Official training (where? )
SKILL = Cadence extension scripting language for Cadence tools which allows to add new capabilities and features to Cadence tools (e.g. add custom menus to Cadence CIW).
basic syntax (LISP-derived) + large number of built-in routines and functions
CDB = Cadence Database
OA = Open Access
Appetizer… e che appetizer !!!
http://www.fhnw.ch/technik/ime/cdnlive2010_poster.pdf
Random:
https://vlsiwiki.soe.ucsc.edu/index.php/Useful_SKILL
http://atchoo.org/tools/cadence/
http://vlsi.ee.ccu.edu.tw/data/course/DIP/DIP_2004spring/Handouts/crcell.il
http://venividiwiki.ee.virginia.edu/mediawiki/images/f/ff/Ece432Schematic.il
http://www.eng.umd.edu/~dilli/research/layout/MITLL_3D_2006/3D_PDK2.3/ncsu_3d/skill/d3ic/d3Extract.il
https://svn.unity.ncsu.edu/osi/freepdk45/branches/ncsu/ncsu_basekit/skill
Nice code repo:
https://github.com/tofguerrier/cadence-skill
https://github.com/decrement/dotfiles/tree/master/cds/skill
http://www.sfu.ca/adm/skill/
Intro tu ROD layout objects:
http://ecad.tu-sofia.bg/edit/docs/hristov/Ex9.doc
http://en.wikipedia.org/wiki/Cadence_SKILL
Basic OA access functions:
http://www.engr.uky.edu/~elias/lectures/00_SKILL_Programming.pdf
Example of creating Schematic and Layout for an N-bit inverter chain using SKILL:
http://venividiwiki.ee.virginia.edu/mediawiki/index.php/ToolsCadenceTutorialsBasicSKILLFreePDK
http://www.ece.msstate.edu/~reese/EE8273/lectures/cadence_skil/
A short introduction to SKILL:
http://www.vtvt.ece.vt.edu/vlsidesign/tutorialCadence_skill.php
http://www.groupes.polymtl.ca/gbm8320/CADENCE_Manual.pdf (pp. 49-50)
Some SKILL examples by Iowa State University:
A Quick Tour of SKILL Programming from Cadence (10 pages):
http://www.cadence.com/Community/CSSharedFiles/forums/storage/28/10475/CadScriptingLanguages_skill.pdf
Another basic document (3 pages):
http://www.vtvt.ece.vt.edu/vlsidesign/skill.pdf
Two very good pdf documents from Heidelberg University (30 + 7 slides):
http://sus.ziti.uni-heidelberg.de/Lehre/VLSIVorlesung1213/VLSI_Fischer_07_Skill.pdf
http://sus.ziti.uni-heidelberg.de/Lehre/VLSIVorlesung1213/VLSI_Fischer_Exercise_06_Skill.pdf
Example SKILL functions for generating PAD frame or matrix of instances (by prof. R. Reese, Texas A&M University)
http://www.ece.msstate.edu/~reese/EE8273/lectures/cadence_skil/
http://www.ece.msstate.edu/~reese/EE8273/lectures/cadence_skil/cadence_skil.pdf
http://www.ece.msstate.edu/~reese/EE8273/lectures/cadence_skil/pads.il
http://www.ece.msstate.edu/~reese/EE8273/lectures/cadence_skil/parray.il
A very complete repository! (Esempi realistici! Ottimo!)
http://www.ece.umd.edu/~dilli/research/layout/MITLL_3D_2006/3D_PDK2.3/ncsu_3d/skill/
A nice set of SKILL tutorials for Allegro PCB editor:
http://www.referencedesigner.com/tutorials/allegro/allegro_skill_71.php
All *sk*.pdf
files contained in $IC_DIR/doc/*sk*/
directories are related to
Cadence SKILL language!
cd ~/scratch/skill mkdir doc && cd doc find /usr/cadence/IC_6.1.5/doc/ -name '*sk*.pdf' -exec ln -s {} . \;
skartistref.pdf
skcompref.pdf
skdevref.pdf
skdfref.pdf
→ Virtuoso Design Environment SKILL Referenceskhelp.pdf
skillide.pdf
→ Cadence SKILL IDE User Guideskipcref.pdf
sklangref.pdf
→ Cadence SKILL Language Reference sklanguser.pdf
sklayoutref.pdf
skoopref.pdf
skpcellref.pdf
sktechfile.pdf
skuirefCompat.pdf
skuiref.pdf
Furthermore, a lot of documentation dedicated to SKILL can be found at
Cadence Online Support ⇒ SKILL Information ⇒ Product Manuals for SKILL
SKILL scripts can be run just as any other ssh/csh, Python etc. shell script in batch or interactive mode.
To run SKILL in interactive mode from a Unix/Linux terminal just invoke the skill
standalone executable,
$IC_DIR/tools/dfII/bin/skill
Note
Be aware that a /usr/bin/skill
executable related to UNIX/Linux processes exists too! (man skill
…)
It is a good idea to create some alias to the Cadence skill
executable, e,g,
alias skl '/path/to/tools/dfII/bin/skill'
SKILL interactive prompt:
[pacher@elt156xl skill]$ /usr/cadence/IC_6.1.5/tools/dfII/bin/skill >
To run SKILL in batch mode indeed, the first line of the SKILL script (.il
file extension)
must start with a
#! /usr/cadence/IC_6.1.5/tools/dfII/bin/skill
statement (similar to sh/csh, Python, TCL etc. script languages).
Comments and hello world program
hello.il
#! /usr/cadence/IC_6.1.5/tools/dfII/bin/skill ; SKILL comments begin with ; /* but also C-style comments are allowed */ printf("Hello world! \n")
chmod +x hello.il ./hello.il
Or run it with
/usr/cadence/IC_6.1.5/tools/dfII/bin/skill hello.il
[pacher@elt156xl skill]$ /usr/cadence/IC_6.1.5/tools/dfII/bin/skill >
SKILL as a calculator (similar to Python, ROOT etc.)
> 3 + 7 10 > 3/7 0 > 3/7. 0.4285714
SKILL built-in functions examples:
> getInstallDir() ("/export/elt59xl/disk0/cds/IC_6.1.5/tools.lnx86/dfII")
> getShellEnvVar("PWD") "/export/elt156xl/disk0/users/pacher/scratch/skill"
> help( getShellEnvVar ) Loading skillDev.cxt Consulting cdsFinder database (may take a while) ... getShellEnvVar( t_UnixShellVariableName ) => t_value | nil Returns the value of a UNIX environment variable, if it has been set. t
Unfotunately, neither skill and ocean support readline:
http://www.cadence.com/Community/forums/p/25399/1321055.aspx
http://compgroups.net/comp.cad.cadence/how-not-to-use-ciw-but-unix-command-line/1351264
Getting started point: the hofe
C wrapper written for OCEAN,
by Homer Reid
http://homerreid.dyndns.org/misc/hofe/
Download the hofe.tar.gz
archive from homerreid.dyndns.org,
mkdir hofe wget http://homerreid.dyndns.org/misc/hofe/hofe.tar.gz tar -xzf hofe.tar.gz mv hofe* hofe/ mv makefile hofe/
Archive contents:
makefile
hofe.h
hofe.c
hofesyn.c
hofetran.c
The wrapper is entirely based on the GNU Readline, a software library that provides line-editing and history capabilities for interactive programs with a command-line interface.
Make sure that readline
, history
and termcap
libraries are installed, e.g.
/lib/libreadline.so.x
/usr/lib/libhistory.so.x
/lib/libtermcap.so.x
yum install compat-readline yum install compat-readline.i686
sudo yum install compat-libtermcap sudo yum install compat-libtermcap.i686
You also need the readline-deval
package for /usr/include/readline/readline.h
and /usr/include/readline/history.h
sudo yum install readline-devel
The source code must be compiled with a -lreadline
compiler flag passed to gcc
LIBSS = -lreadline -lhistory -ltermcap
t
→ true, ok, exit(1), etc.nil
→ otherwise
Last update: