PCELL rodAssignHandleToParameter

Discussion in 'Cadence' started by Arnold, Apr 2, 2004.

  1. Arnold

    Arnold Guest

    Hi,

    I would like to make my PCell stretchable, but I don´t know exact how
    to do this. In the PCell code I want to create a bus, and I would like
    to make it stretchable like a normal path. How can I do this ?
    THX for your help.

    CU

    Arnold


    pcDefinePCell(list(ddGetObj("work_ae") "bus" "layout")
    (
    (w float 1.6)
    (layer string "metal1")
    (coords ILList '((0.0 0.0) (0.0 1.0)) "path" "diagonal")
    (busnr int 2)
    (layerSpace float 0.7)

    )

    let((bus busPath)

    bus=cdr(list(() list(
    ?layer layer
    ?justification "right"
    ?sep layerSpace
    ?width w
    )))
    layerSpace=w+2*layerSpace
    for(i 3 busnr
    bus=append1(bus list(
    ?layer layer
    ?justification "right"
    ?sep layerSpace
    ?width w
    )
    )
    layerSpace=layerSpace+w+0.7
    )
    busPath=rodCreatePath(
    ?name "bus"
    ?layer layer
    ?pts coords
    ?width w
    ?justification "center"
    ?offsetSubPath bus

    );end rodPath

    rodAssignHandleToParameter(
    ?parameter "coords"
    ?rodObj busPath

    ??? ??? ??? ??? ??? ???


    );end rodAssing
    );end let
    );end pcDefinePCell
     
    Arnold, Apr 2, 2004
    #1
  2. Arnold

    Partha Guest

    Arnold,
    please refer to page 322 in "Virtuoso Relative Object Design User
    Guide" for a detailed example of bus creation using rodCreatePath
    function.

    Partha
     
    Partha, Apr 6, 2004
    #2
  3. Arnold

    Arnold Guest

    Hi Partha,

    yes there is an example, but not how to make such a PCELL strechable.
    There exist only an example for a strechable nmos pcell, which use a
    path but the variable you change is the w and l and not the coords
    which has severel points.

    CU

    Arnold
     
    Arnold, Apr 6, 2004
    #3
  4. You'd need to add a parameter for each point's x and y coordinates, and then add handle
    for each of those.

    You'd probably be better to use a level-0 multipart path instead of a pcell.

    Andrew.
     
    Andrew Beckett, Apr 6, 2004
    #4
  5. Arnold

    Arnold Guest

    Thanks Andrew. This code for the bus is only an example. What I want
    to create is a strechable pcell to draw a path with vaiable width for
    contacting the substrate and nwell ...



    CU

    Arnold
     
    Arnold, Apr 7, 2004
    #5
  6. What I'd probably do is write some SKILL code to create this in the current cellView - and
    give the user a form to choose the width. You wouldn't be able to go back in and change
    the width later (although potentially you could write some code to recreate the multipart
    path with a different width when you select it), but it would be choppable and stretchable
    that way.

    It's certainly going to be easier than having loads of stretch handles on a pcell.

    In other words, you might want to lose a little flexibility (having the width as a parameter),
    but gain an awful lot of usability and ease of coding...

    Andrew.
     
    Andrew Beckett, Apr 7, 2004
    #6
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.