SKILL - Net cross-probing in Virtuoso Layout Editor

Discussion in 'Cadence' started by Katie, Oct 11, 2005.

  1. Katie

    Katie Guest

    Please give me some general ideas on how to write a SKILL code with
    these funtionality:
    When user selects net in schematic and then calls skill function
    (should be invoked by bindkey ) then
    - the net in schematic is highlighted and all instances that are
    connected to the net are selected.
    - all corresponding instances in layout are selected ( even if user
    doesn't use Virtuoso XL )
    - all layout geometries ( paths, polygons, vias etc. that are
    associated with the net are selected )

    Thanks,
     
    Katie, Oct 11, 2005
    #1
  2. This sounds very much like what Diva LVS cross-probing does. It requires
    Diva LVS to have been run, with a good match result, to create the cross
    reference data. The probes are between the schematic and the extracted
    view, not the layout, which is not quite what you were asking for.
    Mapping from the extracted view to the layout is manual and works best
    when the divaEXT.rul file is written so the extracted view shapes are
    fairly close to the layout view shapes.
     
    Edward J Kalenda, Oct 12, 2005
    #2
  3. Unless there are corresponding pins in the layout, then you have no
    connectivity (yet) in the layout.

    Once LVS is performed, then there is a crossmapping method you can perform.

    When I did this ( several years ago ... ) I had to specify a text
    crossmapping output be dumped.
    With this ( and a health dose of experimentation ) I was able to write a
    cross mapping function from the
    schematic to the extracted reap and then Highlight the results over-top of
    the layout!

    Selecting the layout devices below the highlight (only ) is a bit tricky but
    can be done.

    YMMV

    -- Gerry
     
    Gerry Vandevalk, Oct 12, 2005
    #3
  4. Katie

    tattvamasi Guest

    There are several ways I am documenting below very briefly one such
    way,

    When user selects net in schematic and then calls skill function
    (should be invoked by bindkey ) then
    - the net in schematic is highlighted and all instances that are
    connected to the net are selected.

    ## Use
    dbFindNetByName( cvs nname)~>figs to get the nets and then you can get
    the instances connected in the schematic for that net.

    Where cvs is deGetCellView() and nname = netname in schematic

    - all corresponding instances in layout are selected ( even if user
    doesn't use Virtuoso XL )

    ## The devices in the layout should have connectivity in them. The
    instance terminals of the pcells in the layout should have connectivity
    information in the instTerms.
    to check do css()~>instTerms, while in the layout.
    If they do,
    then you may use
    dbFindSigByName(cvl nname)~>memInstTerms
    to get all the instTerms,
    Looping on which you can find all the instFigures,
    ~>term~>pins~>fig
    and finally use
    dbTransformBBox,
    to transform the pin bbox to the cellview and draw gemetries around it
    to highlight that net.

    - all layout geometries ( paths, polygons, vias etc. that are
    associated with the net are selected )

    ## You can do this only if there are connectivity information stored in
    the layout geometries.

    Looks like you are basically asking for V-XL functionality without that
    actual tool:)..
     
    tattvamasi, Oct 12, 2005
    #4
  5. Katie

    Fergus_S Guest

    It is possible to do what you want even without connectivity info in
    the layout, but you'll need to write some heavy-duty code to figure
    that out on the fly.

    Briefly:

    - get the schematic net and highlight all the shapes
    - go through the net~>instTerms to get instances to select

    - using the schematic net name, find the corresponding pins and/or
    labels in the layout.
    - find shapes connected to the pins/labels using dbGetTrueOverlaps on
    the current/above/below layers (e.g. m1, via1 and cont). Iterate
    until you find all connected shapes ... this is the hard part :)

    - Selecting layout instances is trivial if you use the same instance
    names as in the schematic (highly recommended) - if not, you'll need
    to use dbGetTrueOverlaps again to find where your net shapes connect
    to shapes inside an instance.

    fergus
     
    Fergus_S, Oct 12, 2005
    #5
  6. Katie

    Katie Guest

    Thanks so much for the document. Yes, I am trying to create the
    probing V-XL functionality on Vituoso Layout Editor. Thanks again for
    your help.

    Katie
     
    Katie, Oct 13, 2005
    #6
  7. Katie

    Katie Guest

    No, I don't want to do the probe through Diva. I want to do it on
    Virtuoso Layout Editor.

    Thanks,
     
    Katie, Oct 13, 2005
    #7
  8. Exactly. What Katie is trying to do is much of what Virtuoso XL has to do in its
    extractor, or what a physical verification tool would do to extract the layout
    (that has to worry about device identification too).

    Doing all this is far from trivial, for the reasons (amongst many others) that
    David points out.

    Regards,

    Andrew.
     
    Andrew Beckett, Oct 17, 2005
    #8
  9. I would suggest that simply running layout extract would simplify this and
    then back annotating this to the layout somehow.
    ( Of course the backannotating is not trivial, but then you only need an
    extract license to solve all sorts of problems that
    this thread has discussed! )
     
    Gerry Vandevalk, Oct 18, 2005
    #9
  10. I would suggest that simply running layout extract would simplify this and
    then back annotating this to the layout somehow.
    ( Of course the backannotating is not trivial, but then you only need an
    extract license to solve all sorts of problems that
    this thread has discussed! )
     
    Gerry Vandevalk, Oct 18, 2005
    #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.