dbGetNeighborList arguments

Discussion in 'Cadence' started by SS, Jan 5, 2006.

  1. SS

    SS Guest

    Syntax for dbGetNeighborList is
    dbGetNeighborList( cv bbox t_direction [t_layer t_purpose] depth)

    What should I do if I dont want to specify the depth but not the lpp
    ??

    if I supply nil then it returns an error but if I specify the depth
    without the lpp it returns nil.

    Could anyone tell me what if I am missing something.


    thanks,
    Sriram
     
    SS, Jan 5, 2006
    #1
  2. SS

    Jimka Guest

    there are several curious things about the get-neighbor
    functions. for example, if you use dbGetNeighbor to find the closest
    object on, say, metal1. then you want to find the next closest,
    ignoring the one returned the first time.
    how would you do it? One way might be to find the distance ( i think
    that is actually in the return value of dbGetNeighbor) then expand the
    bbox by 1 grid point more than that distance and call dbGetNeighbor a
    second time.
    In that case you'll miss all the items which are the same distance as
    the first item.

    does anyone know how to use dbGetNeighbor to find the second, third,
    4th etc closes objects?
     
    Jimka, Jan 5, 2006
    #2
  3. SS

    SS Guest

    Jimka,
    I am sorting the list returned by dbGetNeighborList to find
    the list of objects
    However it looks like there is no way to find shapes in all
    levels without giving the lpp.
    Question to Andrew ??
    Andrew Is there a way to do it ??

    Thanks,
    Sriram
     
    SS, Jan 6, 2006
    #3
  4. SS

    SS Guest

    Jimka,
    I am sorting the list returned by dbGetNeighborList. However
    it does'nt work without lpp for multiple levels of hierarchy. I have to
    explicitly specify the the optional argument lpp.

    Andrew,
    Is there a way to get around this problem.


    thanks,
    Sriram
     
    SS, Jan 6, 2006
    #4
  5. SS

    Jimka Guest

    please remind me what dbGetNeighborList returns? honestly, i forget
    without having the documentation at hand.
     
    Jimka, Jan 6, 2006
    #5
  6. SS

    SS Guest

    dbGetNeighborlist returns a list (nested list) of neighboring objects
    and the distance from the reference bbox.
     
    SS, Jan 6, 2006
    #6
  7. SS

    John Gianni Guest

    For the record, both are indeed public documented supported functions
    which have been active since at least the Virtuoso IC434 days.

    dbGetNeighborList( d_cellView l_area t_direction [ ( t_layer [
    t_purpose ] ) ] [ lx_depth ] )
    returns => ( l_instlist )
    Lists neighboring objects in the specified direction of the given
    layer-purpose pair.

    dbGetNeighbor( d_cellViewId l_bBox t_direction [ ( t_layer [ t_purpose
    ] ) ] [ x_depth ] )
    returns => d_figId / nil
    Returns the closest neighboring object in the specified direction of
    the given layer-purpose pair.

    More detailed documentation is, of course, available in CDSDoc &
    Sourcelink.

    Hope this helps,
    John Gianni

    Nothing stated by me here on the USENET is or was ever sanctioned prior
    by my employer.
     
    John Gianni, Jan 14, 2006
    #7
  8. SS

    Jimka Guest

    hi john, the dbGetNeighbor function does not return a dbId. try it
    out.
    it returns a heterogeneous list which describes several things.

    i tried to use dbGetNeighborList once, and gave up because i
    could not figure it out.

    The general problem is that if you used dbGetOverlaps you get
    descriptors
    for objects within a bbox. but you are not guaranteed anything about
    how
    they are sorted. You normally have to iterate over all of them and
    grab
    the one or ones you want. dbGetOverlaps is very fast, but creates lots
    of garbage for gc to collect. dbGetNeighbor and dbGetNeighborList
    functions
    imply that they will with the the closes object, but what if you
    examine the object
    returned and then need the next closest? it is not clear how to do
    that.

    What i'd like is a form of dbGetOverlaps (and all the related
    functions) which take
    a predicate (filter) function. that way you could pass the predicate
    to dbGetNeighbor and pass
    a predicate which filters out all the uninteresting objects. that way
    you'd have a
    dbGetInterestingNeighhbor function.

    How can you use the dbGetNeighbor/dbGetOverlaps.... function to find
    the closest path on one of the metal layers (M1, M2, M3, M4 or M5)?
     
    Jimka, Jan 14, 2006
    #8
  9. SS

    SS Guest

    JImka,
    dbGetNeighborlist returns an hetrogenous list. Each element
    of the list is a list of
    the distance between the selected bbox, the objid (if hierarchical then
    list hierarchical objid list) and the third element is a list of
    displacement in x and y direction either of which is always zero.
    sriram
     
    SS, Jan 15, 2006
    #9
  10. No. Contact customer support. I think this could be enhanced to allow t
    as the layer argument (like dbGetOverlaps), which would allow this.

    Andrew.
     
    Andrew Beckett, Jan 19, 2006
    #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.