binary and unary operations in pcell

Discussion in 'Cadence' started by glaz, Mar 8, 2007.

  1. glaz

    glaz Guest

    How to make pcell skill code for layer operations like leLayerAnd?

    Command
    leLayerAnd( cellViewId list("poly1" "drawing") list("pdiff" "drawing")
    list("activegate" "drawing") )
    don't work, because I cannot get cellViewId in pcell skill code.
     
    glaz, Mar 8, 2007
    #1
  2. pcCellView is a special variable name that we can use inside the pcell
    code. This is dbId of the pcell cellview you are building.

    But, Its not safe to use le* functions inside pcell. More info is at
    "Virtuoso Parameterized Cell Reference -> Advanced Features" in Cadence
    Documentation - cdsdoc .

    -
    Suresh
     
    Suresh Jeevanandam, Mar 8, 2007
    #2
  3. You can use dbLayerAnd, dbLayerOr etc. These were added a little while back
    specifically to provide a pcell-safe way of doing layer boolean operations.

    Andrew.
     
    Andrew Beckett, Mar 8, 2007
    #3
  4. glaz

    glaz Guest

    Thanks.
    But where I may get database IDs for l_dbIdList1 and 2 in
    dbLayerAndNot ?
     
    glaz, Mar 9, 2007
    #4
  5. Hmm, if you don't know things like that, you're going to struggle to write a
    SKILL pcell, I'd have thought.

    The lists need to be the list of shapes that you want to and not together.
    With the leLayerAndNot function, it does everything on those layers,
    rather than just a set of shapes. So if that's what you wanted,
    you'd obtain the list of shapes by doing something like:

    shapes=car(exists(lpp pcCellView~>lpps lpp~>layerName=="theLayerYouWant" &&
    lpp~>purpose=="thePurposeYouWant"))~>shapes

    Regards,

    Andrew.
     
    Andrew Beckett, Mar 11, 2007
    #5
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.