Pcells: Stream Out

Discussion in 'Cadence' started by Vikram, Nov 11, 2003.

  1. Vikram

    Vikram Guest

    Hi All,

    I have successfully used the "pow()" function in the skill code for my
    pcells. When I Stream Out the layout to GDSII format , I observed
    that this function is not supported and the pcells which use this
    function are not converted. There is an error message which says
    "undefined function pow()"

    I tried both ways i.e. keeping the "Keep Pcells" option on/off during
    Stream Out.

    Could anyone please clarify this matter.

    Thank You,
    Vikram
     
    Vikram, Nov 11, 2003
    #1
  2. Vikram

    Partha Guest

    Vikram,
    Since pcells must be able to evaluate in several different
    environments (Assura, Pipo, icfb, etc...), It might error out when
    using specific environments and not while compiling it. These issues
    are usually resolved using backquote, comma, and macros (standard
    powerful lisp features) for function calls or if you can try
    flattening the function( remove the function call.
    Also if this is not a user defined function but the cadence pow()
    function(exponent) then this might be a case where only a small subset
    of cadence's skill functions are allowed to be used inside
    pcDefinePcell. check the Cadence's doc for more details

    Partha
     
    Partha, Nov 12, 2003
    #2
  3. Vikram,

    The problem is caused by pow() not being a legal function for use in pcells.
    The pcell documentation tells you that you're only allowed to use functions
    which are core SKILL, db, dd, tech, cdf and a few selected pc functions - because
    other functions may not be defined in all interfaces.

    In this specific case, pow() is an Analog Design Environment calculator function
    (you'll find it documented in the OCEAN reference manual), and hence is not allowed.

    You can use expt() instead (pow also handles waveform objects, but you
    don't need that in a pcell) - or use the operator form a**b.

    Regards,

    Andrew.
     
    Andrew Beckett, Nov 13, 2003
    #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.