virtual flattening of a pcell?

Discussion in 'Cadence' started by Partha, Oct 5, 2003.

  1. Partha

    Partha Guest

    Hi,

    Working on a skill code that should recognise the layers in a pcell
    that is placed in the layout.

    Would i be able to flatten the pcell in virtual memory to use in my
    skill code?

    Apologies if this was a no-brainer

    Thankyou!
    Partha
     
    Partha, Oct 5, 2003
    #1
  2. Sorry, I don't understand what you're trying to do here. Can you elaborate?

    Andrew.
     
    Andrew Beckett, Oct 5, 2003
    #2
  3. Partha

    Partha Guest

    Andrew,
    I am looking to recognise the shapes of layers and their
    bboxes/co-ordinates in the layout, using my skill code. I am succesful
    in doing that when they are non-instances, primitive shapes like
    rectangles and paths. But when it comes to parametericed cells, say
    for example, dbGetOverlaps returns the instance name of the cell, so
    in order to be able to recognise the layers and shapes that make up
    the pcell i need to flatten it.

    Flattening using dbFlattenInst would do the actuall flattening in the
    layout, but i do not want to do that, i would like to flatten the
    pcell virtually in order to recognise the shapes that it comprises of.

    Partha
     
    Partha, Oct 6, 2003
    #3
  4. Hi Partha,

    What I always do in these situations is to use functions like dbTransformPoint
    and dbTransformBBox, to transform the points up through the hierarchy.
    Of course, you need the correct transformation, which can be found by
    dbConcatTransform-ing the transformations through the hierarchy
    returned by the dbGetOverlaps.

    (procedure (ABgetOverlapTransform overlap)
    (let (transform)
    (if (listp overlap)
    (setq transform (dbConcatTransform
    (ABgetOverlapTransform (cadr overlap))
    (dbGetq (car overlap) transform)
    ))
    (setq transform (list 0:0 "R0" 1.0)))
    transform
    ))

    This is the function I use to take one of the overlaps found by dbGetOverlaps
    or dbGetTrueOverlaps and find the transformation. Then I can transform the
    points up to the starting cellView.

    I think this is in effect what you mean by virtually flattening it.

    Andrew.
     
    Andrew Beckett, Oct 6, 2003
    #4
  5. Partha

    Partha Guest

    Andrew,
    that was news to me, i would do some research on those two functions.
    But i am a bit unclear, so in function ABget.... you are passing
    overlap, which is a list of all the points the instance is made up
    of??

    Can you please explain the following,

    If i have an instance I1 and i need to find the shapes that it
    comprises, do i have to use dbTransformBBox first to get the list of
    all the points? how do i do that, then i assume i need to use the
    ABget function to concat all the points so returned?

    Thankyou!
    Partha
     
    Partha, Oct 6, 2003
    #5
  6. Partha

    Rajeswaran M Guest

    Question: There is a TOPCELL have a PCELL. It is required to get the
    all the read-only infos from PCELL, as if PCELL were a non-PCELL
    instance. But PCELL should not be flattened or converted in to
    non-PCELL.

    The recent ROD based PCELL's might support these kind of
    manipulations.
     
    Rajeswaran M, Oct 7, 2003
    #6
  7. Partha

    Partha Guest

    Rajeswaran,
    Probably, using rodGetNamedShapes, but we have not yet made an
    effective trasnformation to rod pcells, so we should be able to
    support even conventional pcells, and that is why a more rudimentary
    approach was required.

    I have followed andrew's approach and seems to work fine for me..

    ThankYou!
    Partha
     
    Partha, Oct 7, 2003
    #7
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.