Home > Community > Forums > Custom IC SKILL > About leYankFigs , How to yank more than 50 nLevels?

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 About leYankFigs , How to yank more than 50 nLevels?  

Last post Tue, Aug 27 2013 5:53 PM by Charley Chen. 7 replies.
Started by Charley Chen 15 Aug 2013 05:47 PM. Topic has 7 replies and 582 views
Page 1 of 1 (8 items)
Sort Posts:
  • Thu, Aug 15 2013 5:47 PM

    About leYankFigs , How to yank more than 50 nLevels? Reply

     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 | nilThank you,
    Charley
    • Post Points: 20
  • Thu, Aug 15 2013 10:07 PM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,567
    • Points 15,575
    Re: About leYankFigs , How to yank more than 50 nLevels? Reply

    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.

    • Post Points: 20
  • Sun, Aug 18 2013 6:55 PM

    Re: About leYankFigs , How to yank more than 50 nLevels? Reply

     

     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
    • Post Points: 20
  • Mon, Aug 19 2013 10:28 AM

    • theopaone
    • Top 75 Contributor
    • Joined on Tue, Feb 12 2013
    • Cedar Park, TX
    • Posts 80
    • Points 1,190
    Re: About leYankFigs , How to yank more than 50 nLevels? Reply

     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

    • Post Points: 20
  • Tue, Aug 20 2013 6:09 PM

    Re: About leYankFigs , How to yank more than 50 nLevels? Reply

     

     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

    • Post Points: 20
  • Tue, Aug 27 2013 9:41 AM

    Re: About leYankFigs , How to yank more than 50 nLevels? Reply

    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.

    • Post Points: 5
  • Tue, Aug 27 2013 9:42 AM

    Re: About leYankFigs , How to yank more than 50 nLevels? Reply

    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.

    • Post Points: 20
  • Tue, Aug 27 2013 5:53 PM

    Re: About leYankFigs , How to yank more than 50 nLevels? Reply

    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

    • Post Points: 5
Page 1 of 1 (8 items)
Sort Posts:
Started by Charley Chen at 15 Aug 2013 05:47 PM. Topic has 7 replies.