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
;x_nLevels , it will show
*WARNING* noname :Illegal hierarchical level of 50 specified.
How to yank more than 50 nLevels?
[ l_refPt ]
[ x_nSides ]
=> t | nil
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...
In reply to skillUser:
Hi Lawrence ,
....you could flatten some hierarchy until you are left with 32.
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 ?
In reply to Charley Chen:
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.
In reply to theopaone:
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 ,
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.
In reply to Andrew Beckett:
But then again, I think the number of hierarchy levels is probably only used if your yank area doesn't enclose a complete instance.
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) .