SKILL tutorial

Discussion in 'Cadence' started by psitham, Jan 20, 2005.

  1. psitham

    psitham Guest

    Hello Everybody,

    Can anyone tell me the easiest way to learn SKILL to interface with
    Cadence. I'm constructing layouts at the moment and it is impossible to
    assemble them individually by hand for large designs. If you can
    suggest some books or tutorials that you might know, because I tried
    searching for it on the web and the material is really very limited. Is
    the OpenBook of cadence a good starting point ?.

    Thank You.
    ~psitham
     
    psitham, Jan 20, 2005
    #1
  2. psitham

    John Gianni Guest

    This question has been asked many times in the past.
    Basically, the answer is yes.
    To learn SKILL, do two things:
    a) Read the SKILL user guides (there are plenty shipped with DFII)
    b) Take a SKILL training class (some are virtually free)
    For example, every year, the International Cadence User Group offers
    half-day basic and advanced and Pcell SKILL programming classes for 50
    bucks.

    Plenty of examples abound on the Internet, for example, I just googled
    for keywords of learn SKILL programming & your question popped up many
    times.
    For example, see this 10 Jun 2002 thread by Reuben Wilcock summarized
    below:

    Subject: SKILL programming
    Newsgroup: comp.cad.cadence
    Date: 10 Jun 2002 07:17:10 -0700

    Can anyone offer advice on the best way of starting to learn to
    program in SKILL - where to get manuals and examples and any other
    information. Basically anything to get me started. This is going to be
    aiming towards manipulating layouts and pCells - another thing which I
    would be grateful for information about.

    To which the esteemed Andrew Beckett suggested:
    Start by reading the SKILL user guide in openbook or cdsdoc (depending
    on which version you're using). The SKILL User Guide is written like
    a programming book - and goes through from basics upwards, and has
    some simple examples in the manual too.

    You might also want to look through the SKILL reference manual, the
    Design Framework II SKILL Reference manual, and the Relative Object
    Design manual (for pcells).

    However, I'd strongly recommend attending one of Cadence's SKILL
    classes - you'll find that you'll get up to speed much quicker that
    way (I know you'd expect me to say that, but it really is the quickest
    way of getting up to speed).

    And to which Erik Wanta expounded upon, namely:

    Read the following documentation on sourcelink.
    - SKILL Language User Guide
    - SKILL Language Reference
    - DFII SKILL Functions
    - Development SKILL Functions
    - User Interface SKILL Functions
    - Schematic Composer SKILL Functions
    - Layout Virtuoso SKILL Functions
    - Techfile & Display Resources SKILL Functions
    - Floorplanning SKILL Functions
    - Analog Artist SKILL Functions
    - Open Simulation System Reference
    - IPC SKILL Functions
    - SKILL++ Object Oriented Programming
    - Cadence Application Infrastructure User Guide
    - Component Description Format (CDF) User Guide

    http://www.ee.vt.edu/~ha/cadtools/cadence/skill.html
    http://www.utdallas.edu/~grinnell/ee7v81
    www.informatik.uni-stuttgart.de/ipvr/ise/projekte/cadence/AA/CadenceSKILL.html

    Other messages backed up these two suppositions, e.g.:

    Newsgroups: comp.cad.cadence
    From: Grant Erwin <>
    Date: Fri, 15 Mar 2002 07:36:40 -0800

    Don't start by reading SKILL code.
    Much too intimidating.
    Start by reading the online document "SKILL User's Guide".
    I'd print it out and take it home and just try to read it like a
    novel.

    I don't know of too many people who are successful at picking up SKILL

    without going to the Cadence training courses ... <snip>

    Also, contact your sales or support team and obtain a SKILL Quick
    Reference which contains short-form documentation on over 5000 public
    SKILL functions.

    John Gianni
     
    John Gianni, Jan 21, 2005
    #2
  3. psitham

    psitham Guest

    Thanks a lot ... and sorry not to have gone through previous posts to
    check for something like this although I was sure it must have existed
    ....

    ~psitham
     
    psitham, Jan 21, 2005
    #3
  4. psitham

    fogh Guest

    fogh, Jan 21, 2005
    #4
  5. psitham

    John Gianni Guest

    I don't know; so I just looked up all ^art & ^sev SKILL functions
    defined in the latest DFII release (ICOA5251) to get better details for
    you on this question.

    In that latest Design Framework II release, there are 681 ^sev
    functions, of which 114 are public; in contrast, there are about as
    many ^art functions (559), but vastly fewer of them are intended for
    public use (15) by Cadence R&D managers.

    So, I'm guessing, what you're probably seeing is the fact there are
    seven times more art functions than sev functions documented &
    supported & therefore visible & available for public use.
     
    John Gianni, Jan 24, 2005
    #5
  6. psitham

    John Gianni Guest

    I don't know; so I just looked up all ^art & ^sev SKILL functions
    defined in the latest DFII release (ICOA5251) to get better details for
    you on this question.

    In that latest Design Framework II release, there are 681 ^sev
    functions, of which 114 are public; in contrast, there are about as
    many ^art functions (559), but vastly fewer of them are intended for
    public use (15) by Cadence R&D managers.

    So, I'm guessing, what you're probably seeing is the fact there are
    seven times more art functions than sev functions documented &
    supported & therefore visible & available for public use.
     
    John Gianni, Jan 24, 2005
    #6
  7. psitham

    John Gianni Guest

    .... ooops ...
    seven times FEWER art functions than sev functions
     
    John Gianni, Jan 24, 2005
    #7
  8. psitham

    John Gianni Guest

    Sorry for the posting hiccup.
    I guess I hit submit a few times when the browser seemingly hung.
    Someone sent me an email to my corporate address noting many of those
    art functions documented in the previously mentioned Stuttgart URL are
    not only undocumented, but, were removed in DFII IC 445 long ago. My
    bad for reposting the url.

    That mistake underscores the issue with using the 5000 DFII public
    functions vs the 50000 DFII private functions ... those innumerable
    private functions are not only generally written for a very specific
    purpose with known input parameters but they change like the wind in a
    low-pressure area and, worse yet, go away like the clouds under the sun
    .... so using public documented supported functions is always a good
    high-pressure area warm and clear skies recommendation.

    As always, if you find you *need* to use a Cadence private SKILL
    function, submit that private function to the Cadence private functions
    resolution process which has worked hundreds of times in the past to
    give the Customer public documented supported functionality before the
    private functions dissappear (which almost all do, in time).

    For those who don't already know, the SKILL Tabulator will give you a
    complete personal inventory of which SKILL functions you call & how
    many times, plus which you've defined (and how many times, if any,
    you've called it) ... and if you send in that tabulation to Cadence,
    the SKILL Survey will then tell you which functions are public and
    which are private (you can't always tell from the name), which are
    documented and supported, which are called but not defined (typos?
    dependencies?), which are changed or deleted in what release (and how
    to recover from those changes or deletions), etc.

    Just press the CIW Tools -> SKILL Development -> SKILL Surveyor

    Iain, Andrew, and I (and others) wrote that tool to help the SKILL
    coder obtain a complete inventory of all SKILL on any network.

    John Gianni
     
    John Gianni, Jan 25, 2005
    #8
  9. psitham

    Tahir Guest

    BTW, to list all public functions currently defined (including your
    own) in any particular session, don't use the old listFunctions syntax
    (which doesn't do much more than a basic help("^sev[A-Z]*"):

    listFunctions("^sev[A-Z]*")

    Instead, use the more powerful new (yet totally forward compatible)
    DFII listFunctions syntax proposed by Andrew B. (which does exactly
    what a coder wants it to do).

    listFunctions("^sev[A-Z]*" t)

    That optional "t" argument tells the listFunctions program to not
    consult the cdsFinder database (which takes too darn long for my tastes
    and which only tells you what's documented - not what's currently
    callable).

    With Andrew's new "t" argument, listFunctions now does what it should
    have done all along (IMHO). That is, the "t" tells listFunctions to
    list all SKILL functions which are both public and callable at this
    very moment. That's the functionality you deserved all along.

    On the other hand, if any particular Cadence DFII SKILL function is not
    listed by listFunctions using the optional new "t" argument, then it's
    probably not safe (over time) to use that SKILL function in your DFII
    customization code.

    Now would be the time to check (well before that function is changed or
    deleted).

    John Gianni
     
    Tahir, Jan 25, 2005
    #9
  10. psitham

    Tahir Guest

    BTW, to list all public functions currently defined (including your
    own) in any particular session, don't use the old
    listFunctions("^sev[A-Z]*") syntax (which doesn't do much more than a
    help("^sev[A-Z]*"); use the new DFII listFunctions syntax proposed by
    Andrew (which does exactly what a coder wants it to do).

    listFunctions("^sev[A-Z]*" t)

    Where the extra "t" argument tells the listFunctions program to not
    consult the cdsFinder database (which takes too darn long for my tastes
    and which only tells you what's documented - not what's currently
    callable).

    With Andrew's new "t" argument, listFunctions now does what it should
    have done all along - tell you what's public and callable at this very
    moment.

    If any particular Cadence DFII SKILL function is not listed by
    listFunctions using the optional new "t" argument, then it's probably
    not safe (over time) to use that SKILL function in your DFII
    customization code.

    John Gianni
     
    Tahir, Jan 25, 2005
    #10
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.