How can I create a PCell?

Discussion in 'Cadence' started by Reotaro Hashemoto, Nov 18, 2007.

  1. Hi,
    I want to know the specific steps to create basic SKILL pcell that
    should be part in a PDK.. Are CDF and callbacks part of pcell?
    Finally, I want to know what are the specific skill files that
    represents the pcell in case I want to see some?

    Thanks in advance
     
    Reotaro Hashemoto, Nov 18, 2007
    #1
  2. A simplce pcell code looks like


    pcDefinePCell(list(ddGetObj("testlib") "pcell" "layout")
    (
    (width 1.0)
    )
    dbCreateRect(pcCellView,"M1" list(0:0 width:width))
    t
    )

    save it as a file .il, and change the paramaters in the file.
    once you load the file, the pcell is created

    cdf paramaters are not part of the pcells, but they interact with the
    pcell parameters.
    if there are no cdf paramaters definded. the pcell parameters take
    precedance. if there are cdf, they take precedence. cdf parameters should
    match with pcell paramaters when present.

    For having a pcell, you just need to take care of the pcell source code.
    (at a first step).
    You cannot yet define extra functions in your pcell code.
     
    Guenther Sohler, Nov 19, 2007
    #2
  3. Actually you can reference user defined functions within your pcell code - you
    just need to ensure that those functions always get loaded - so any user-defined
    functions you reference within a pcell should be loaded from the libInit.il file
    of the library containing the pcells. It's not necessary (and in fact you
    shouldn't do this) to load the code defining the pcDefinePCell from the
    libInit.il - the code within the pcDefinePCell gets stored in the cellView
    itself.

    Before getting into the area of CDF callbacks, please read my solution on
    sourcelink.cadence.com "The Dangers of CDF Callbacks" - to make sure you don't
    fall into bad habits at the beginning!

    Regards,

    Andrew.
     
    Andrew Beckett, Nov 20, 2007
    #3
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.