• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Search,select and then make cell?

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 143
  • Views 3751
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Search,select and then make cell?

jazzmatazz
jazzmatazz over 13 years ago
Hello guys ,

Here is my problem. I wanna  to do hierarchically search for cell with certain criterias then to select it/ 'em and to make new cell only with this cell/s ,but I know only how to achieve the first step. I use procedural function for hierarchically search

   leSearchHierarchy( cv,bbox ... etc. )

Which returned me a list of all objects that meet the object type and search criteria. That's OK but  then I don't  know how to use this answer and to make new cell with this objects?

Regards,
Jazzmatazz  

 
  • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Are the shapes you're finding from down in the hierarchy, or in the top level? If they're in the toplevel (e.g. the hierarchy limit in leSearchHierarchy was set to 0), you should be able to pass the result directly as the first argument to leMakeCell(). If not, you can't really use the result of leSearchHierarchy because the result returns the shape in the child cellView, but with no information about its context - and so you can't transform it into the parent cellView before making a cell. 

    Perhaps you could clarify what your search criteria are for leSearchHierarchy so one of us could propose an alternative approach (if my first paragraph doesn't answer your question).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jazzmatazz
    jazzmatazz over 13 years ago

    Hi Andrew,

     The shapes for which I search for are down in the hierarchy  ,and the criteria are 

        leSearchHierarchy( cv list( 0:0 300:500 ) 32 "inst" list(list("cell name" "==" "probe" )))  

    Regards,

     Nikolay 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Nikolay,

    Which version are you using (getVersion(t) will tell you)?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jazzmatazz
    jazzmatazz over 13 years ago
    6.1.5.500
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    wanted=setof(instPath dbInstQuery(cv cv~>bBox 0 32) if(listp(instPath) car(last(instPath)) instPath)~>cellName=="probe")
    newCv=dbOpenCellViewByType("newLib" "newCell" "layout" "maskLayout" "w")
    foreach(instPath wanted dbCopyFig(if(listp(instPath) car(last(instPath)) instPath) newCv dbGetHierPathTransform(instPath)))
    dbSave(newCv)
    dbClose(newCv)

    Sorry it's not prettily formatted - this was just from something I typed into the CIW to test that it worked OK...

    You should be able to wrap that up in a procedure to give you what you want. It might not be the most efficient in a really large design because it is returning every instance in the design hierarchy prior to filtering with setof, but hopefully it's OK. The alternative algorithm to compare against would be to do a recursive traversal of the hierarchy, and then only deal with the matches (the potentially expensive part in the above approach is actually returning the path lists for each occurrence, when most may get thrown away).

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • srskill
    srskill over 12 years ago

    Hi Andrew,

    I was trying to get the coordinates of a hierarchical instance with respect to the top level and i wanted to place the same instance in a new layout at exactly the same coordinates.

    As discussed previously in this post, leSearchHierarchy() directly gives the database-id of the instance and it does not have data that can be used with the bbox-transform functions to push the coordinates to the top level. The direct commands used in the sample code you mentioned are not available in IC 5.10. If i am running a search of instances to get all the instances of a master-cell i was not sure how i can efficiently traverse the huge hierarchy of a full chip.

    Is there way to search the hierarchy to get all the instantiations of a master-cell and get the hierarchical transform information of the found instance which can be used to calculate the top-level origin-coordinates of that instance? Using the above location information i can write another program to create a new layout and place the instances at those coordinates

    Thanks Srinath

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Hi Srinath,

    In IC5141, you could use dbProductOverlapInst(), and the code in this post. However, that's probably not the wisest approach if there are many instances in the hierarchy.

    Instead, you could write a recursive function which at each level iterated over all the instances. If it's not the one you want, recursively call your function and use dbConcatTransform to accumulate the transformation (using inst~>transform). If it's the one you want, you've got the instance and the accumulated transformation so far - so then you can transform it back to the top level coordinate.

    Something like that. Sorry - don't have time to write it for you now.

    Kind Regards,

    Andrew.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information