How to assign netnames through enterpath() function ?

Discussion in 'Cadence' started by manu.saketdham, Mar 19, 2009.

  1. I have used rodcreatepath and able to assign the net names by the
    offset connectivity option. If i suppose to have 50 paths, its a tough
    ask to pass values to all 50 nets. For eg: i assign net_1 to the
    master path, then the sub-paths automatically assign the names
    net_2,net_3... net_50 for the remaining 49 sub-nets.

    I am able to draw multipaths with the help of enterpath function, but
    couldn't pass the net names through it. Can anyone tell me what i need
    to add in the enterpath function to get the net names assigned through
    it.

    Regards,
    Kevin
     
    manu.saketdham, Mar 19, 2009
    #1
  2. manu.saketdham

    I-F AB Guest

    Hi,
    How about using option ?netName from your rodCreatePath() ?

    Best Regards,
    I-FAB
     
    I-F AB, Mar 20, 2009
    #2
  3. Hi,

    I am able to assign the net names to with rodcreatepath. My questions
    are:

    1. Can i assign net names through "enterpath" function. If yes, HOW ?

    2. How to assign MULTIPLE net names through rodcreatepath function? I
    can assign names to Master path and the other paths through the offset
    connectvity function. What if the number of paths are more.. eg: 50.
    How to assign them the names!!!

    Kevin
     
    manu.saketdham, Mar 20, 2009
    #3
  4. All,

    I don't have an answer, but I am interested in the solution as
    well.

    Another problem we have were I work is we have GaAS process where the
    engineering is done on different schematic software, so there isn't
    any way to have the layout "schematic driven". It is a mess.
    There is NO connectivity the way these designs were layed out, no pins
    on child cells, no net names. The only pins are on the pad out.
    Layout by brail.

    On the other hand, these designs are not very complex. Maybe 30 or
    so nets in the design. It would be nice to start assigning net names
    to the wires and tagging the instances the same as schematic and
    placing text on the instances. The layout is done by a cumbersome
    method of looking at a text file that defines connectivity and tracing
    each net and using LVS for debug. Yuck.

    So my question, how can you add a net name to an Existing wire that
    was made with creat path? I see you can draw a wire with Create Path
    with a Net Name. Can a net be assigned retro fit?

    Thank you in advance,
    Eric
     
    eric.d.fitzsimmons, Mar 20, 2009
    #4
  5. Here's an example, of adding ?netName in all the sub paths as well as the
    master. I updated an old example I created 10 years ago ;->

    /* abCreateBus.il

    Author A.D.Beckett
    Group Custom IC (UK), Cadence Design Systems Ltd.
    Language SKILL
    Date Mar 30, 1999
    Modified Mar 20, 2009
    By A.D.Beckett

    An example of creating a bus using ROD.

    The points could of course be specified by something like enterPath()
    in practice.

    Mar 20, 2009. Added new optional busPrefix to allow wires the be
    on named nets.

    ***************************************************

    SCCS Info: @(#) abCreateBus.il 03/20/09.12:59:54 1.2

    */

    /******************************************************************
    * *
    * abCreateBus(cv layer points numWires [busPrefix]) *
    * *
    * Create a bus with given points, in the specified cellView, with *
    * the specified number of wires. *
    * *
    ******************************************************************/

    procedure( abCreateBus(cv layer points numWires @optional busPrefix)
    let( (tfId layerWidth layerSpace offsetPaths)
    /* get technology file information */
    tfId = techGetTechFile(cv)
    layerWidth = techGetSpacingRule(tfId "minWidth" layer)
    layerSpace = techGetSpacingRule(tfId "minSpacing" layer)
    /* construct the list of sub paths */
    for(bit 1 numWires-1
    offsetPaths=tconc(offsetPaths
    list(
    ?netName when(busPrefix sprintf(nil "%s<%d>" busPrefix bit))
    ?layer layer
    ?justification "left"
    ?sep layerSpace*bit + layerWidth*(bit-1)
    )
    )
    )
    rodCreatePath(
    ; ?name "bus"
    ?netName when(busPrefix sprintf(nil "%s<0>" busPrefix))
    ?layer layer
    ?pts points
    ?width layerWidth
    ?justification "center"
    ?cvId cv
    ?offsetSubPath car(offsetPaths)
    )
    ); let
    );
     
    Andrew Beckett, Mar 20, 2009
    #5
  6. Eric,

    Use the Connectivity->Add Shape to Net form. You may want to uncheck the "Auto"
    button so you can type in the net name you want.

    Regards,

    Andrew.
     
    Andrew Beckett, Mar 20, 2009
    #6
  7. Andrew,

    I have some more questions.

    I was able to attach a net to an existing wire that had no
    connectivity only if the net existed. Can I add a net that doesn't
    exist to the design?

    Can I change the net assignment? How does that work? This could
    happen if the engineer changes scematic(remember we have some layout
    that originates from an unsupported scematic source, at least that is
    my understanding so schematic driven doesn't work.)

    Are these assignments permanent, meaning can I save the file in the
    library and when I bring it back up the net will be there?

    Thank you in advance,
    Eric
     
    eric.d.fitzsimmons, Mar 20, 2009
    #7
  8. Hi Eric,

    Looks as if you have to create the net first. Either add a shape and define the
    net as you add the shape, or do:

    dbCreateNet(geGetEditCellView() "albert") ; albert is the net name

    in the CIW, and then add the shape to the net.
    Changing the net assignment is a bit more awkward - you'd have to delete all the
    shapes from the net and then add them again to the new net.

    Alternatively you might need to run in Layout XL without a schematic source, and
    then overlapping shapes should inherit the nets. There is a special property
    that gets added when you create a shape with a net name called "lxStickyNet"
    (set to true) which means that that shape's net name is "sticky" - when you
    short it to other "sticky" nets you'll get connectivity errors.
    Yes, they're permanent.
    Regards,

    Andrew.
     
    Andrew Beckett, Mar 22, 2009
    #8
  9. I implemented the same concept in my code. I am able to generate
    netnames for the sub-parts. When i select the properties of the master-
    path, it shows the mentioned spacing and width in the sub-part tab.
    Everything seems to work fine. In the layout canvas,all the sub-nets
    are overlapped on the master path. i.e. Only master path is drawn,
    rest all sub-nets are overlapping the master path. Can anyone tell me,
    what Wrong I am doing?
     
    manu.saketdham, Mar 24, 2009
    #9
  10. If (with my ESP circuit enabled) you used ?encSubPath to create these sub-paths,
    then they will all have the same definition line as the master path, so that
    wouldn't be surprising. If you used ?offsetSubPath to create the sub-paths, then
    you probably didn't specify ?sep to specify the separation of the sub-path's
    centre line to the master line.

    Of course, my Extra-Sensory Perception circuit may be faulty, so if this doesn't
    explain it, you might actually want to show the part of your code which is
    having the problem?

    Regards,

    Andrew.
     
    Andrew Beckett, Mar 24, 2009
    #10
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.