• 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. About leYankFigs , How to yank more than 50 nLevels?

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 143
  • Views 14860
  • 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

About leYankFigs , How to yank more than 50 nLevels?

Charley Chen
Charley Chen over 12 years ago

 Hi All ,

I want to use this command , the layout design hierarchy depth more than 32 , it's 50 , 

If i set 50 in ;x_nLevels , it will show 

*WARNING* noname :Illegal hierarchical level of 50 specified.

How to yank more than 50 nLevels?

 

 

leYankFigs

leYankFigs(
d_cellViewId
l_ptArray
50  ;;;x_nLevels   
[ l_refPt ]
[ x_nSides ]
)
=> t | nil
Thank you,
Charley
  • Cancel
  • skillUser
    skillUser over 12 years ago

    Hi Charley,

    if Yank is limited to 32 levels then you probably only have a few options available; you could flatten some hierarchy until you are left with 32, or you may be able to Descend / Edit In Place 18 levels and Yank the remainder? I suspect that you may need to consider re-structuring so that you only use 32 levels of hierarchy or less, or you may just need to repeat the Yank command at different levels to achieve a similar result to yanking through 50 levels. What are you trying to yank through 50 levels, does this make the case for a new cell?  The Yanked data is flattened anyway, so temporarily flattening and then Undo-in may be reasonable...

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Charley Chen
    Charley Chen over 12 years ago

     

     Hi Lawrence ,

     ....you could flatten some hierarchy until you are left with 32.

    For a chip level (include many std cells & blocks ...) ,I want to get some data in a bBox through all hierarchy (more than 32) , so I use leYankFigs command to do it.

    For a chip level , Flatten will use more memory and run time , it maybe cause a hangup.

     

    ....does this make the case for a new cell?

    Yes , I will get the data in a new cellview

     

    Is there a better way to do it ?

    Thank you,

    Charley
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • theopaone
    theopaone over 12 years ago

     A cleaner way to do it isto find the shapes in the hierarchy using dbGetTrueOverlaps and copy them into a new cellView.

    You will have to transform the points for the shapes as they are copied, use dbGetHierPathTransform (IC615)

    Transform each point using dbTransformPoint in a loop or in mapinto.

    dbGetTrueOverlaps may be limited to 32 levels, (note STREAM may also have this limitation), so you would have to detect this and push into lower levels as necessary.

    You are not flattening any data but rather copying it into a new cellView.

    Ted

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Charley Chen
    Charley Chen over 12 years ago

     

     Hi Ted ,

    Thank you for help. 

    I tried , the dbGetTrueOverlaps has no limited to 32 leveles , it can use 100 levels , it's ok.

    leYankFigs is faster and easy way to do it I think , it can also keep the instances / mosaics ,

     

    Charley

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

    Charley,

    If you need leYankFigs to cope with more than 32 levels of hierarchy, then you'll need to contact customer support to get it enhanced. There are probably quite a few places in Virtuoso that have a 32 level limit (I suspect the reason is to allow the code not to get stuck if you have an accidentally recursive design). 

    BTW, Lawrence, Yank does not flatten if you have whole instances - it only flattens if you yank an area which cuts through an instance's bBox. If it encloses a complete instance, it retains the instaance.

    That said, 50 does sound extraordinarily high! I've never seen anything with that level of hierarchy.

    Regards,

    Andrew.

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

    But then again, I think the number of hierarchy levels is probably only used if your yank area doesn't enclose a complete instance.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Charley Chen
    Charley Chen over 12 years ago

    Andrew , 

    Enclose a complete instance or not a complete and shapes are possible  ,user want both of them.

    leYankFig is the fastest but n_Level is limited (32) . 

     

    Charley

    • 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