• 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. How to modify or manipulate bBox in layout (Virtuoso, IC...

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 145
  • Views 26842
  • 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

How to modify or manipulate bBox in layout (Virtuoso, IC 5141 USR4)

Dennis Faber
Dennis Faber over 15 years ago

Hello together,

I have a problem with bBox in a layout. In other words. It bothers me that the bBox is bigger then my layout.

I don't have any others invisibel layers there. no changedLayer or something. This sometimes happens when I add a layout as an instance in another layout. A solution with instance layer is not suitable for me. Is there any way to modify or reset the bounding box coordinates with SKILL? I am not familiar with SKILL!

 Kind regars, Dennis

  • Cancel
  • babji
    babji over 15 years ago

     Never face such problem but dbComputeBBoxNoNLP or dbComputeBBox should work.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 15 years ago
    Hi Dennis

    Is this what you actually meant?

    Sometime when "f" is press to fit the layout, the result shows a lot of empty spaces with the actual layout in a corner.

    If this is the case, sometimes I see it too. My workaround is to open a new layout and copy everything to the new layout. It usually solves the problem. It is not possible to modify the bBox parameter of a cellview using SKILL.

    Best regards
    Quek
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Dennis Faber
    Dennis Faber over 15 years ago

    Hi Quek,

    That is exactly what I mean! Thank you for your advise. I also know your solution. This usually helps but that is unsatisfying!

    If I just know the reason why that happens. Perhaps I could find the way to solve it in a proper way!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 15 years ago

    Hi Dennis

    I think it is just a small bug in the layout editor. Actually I don't recall seeing this problem in the current version (5141.500.6.140) which I am using. I think your next best alternative is to upgrade to the latest release. : )

    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 15 years ago

    Hi Dennis

    One correction to my previous post. It is not possible to modify a cellview's bbox through ~> operator but it is possible to do it using dbComputeBBox cmd as suggested by babji. Maybe you can also try this:

    a. Open a layout that has this problem
    b. Enter the following in ciw:

    dbComputeBBox(geGetWindowCellView())

    Hope that this works. : )

    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Dennis Faber
    Dennis Faber over 15 years ago

    Hi Quek,

     

    I will speak with Cadence contact person in my department. Perhaps he can update to an actuall version.

    And I will try the suggestion of babji.

     Thanks!

     Best regards, Dennis

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 15 years ago

    We have seen this problem as well. We see the problem primarily when we are working with mosaics and using edit-in-place. We opened a ticket many years ago on this, but it was not fixed in any of the 5.1.41 releases. The case we saw was when we edit-in-place into a mosaic and make some edits, the bBox will grow to the furthest extent of the edits, even if no data remains there when the edit is done. To test this out, you can EIP into a mosaic at least 2 levels down in your hierarchy. Do your EIP into one of the outside rows or columns. Move a shape a good distance outside of the current bBox and then move it back. Save the cell and pop up one level. You'll see that the cell extents remain too large. The current cell will also be affected by those cell extents. There may be other things that cause this extents bug but I am not aware of them.

    We did find an acceptable fix for this problem. If you draw a rectangle larger than everything in the current cell and then delete it and save the cell, the extents will be fixed. We put this "Fix Cell Extents" procedure into a menu and it fixes the problem for us.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Dennis Faber
    Dennis Faber over 15 years ago

    Hello Derek,

    thank you for your reply! If it is possible, can you post this procedure here?

    Kind regards, Dennis

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 15 years ago

    I hope this helps. We've refined this to do not just create a large rectangle and delete it, although I think that still works in most cases.

    Derek 

    procedure(myFixCellBBox(@optional (cv geGetEditCellView()) (quiet nil))
      let((bbox akey textDisplays)
        bbox = cv~>bBox
        ; lowerLeft
        akey = dbCreateRect(cv leGetEntryLayer() list(xCoord(lowerLeft(bbox))-5.0:
          yCoord(lowerLeft(bbox))-5.0 lowerLeft(bbox)))
        when(akey dbDeleteObject(akey) ) ; when
        ; upperRight
        akey = dbCreateRect(cv leGetEntryLayer() list(xCoord(upperRight(bbox))+5.0:
          yCoord(upperRight(bbox))+5.0 upperRight(bbox)))
        when(akey dbDeleteObject(akey) ) ; when
        ;Fix textDisplay bounding boxes
        textDisplays = setof(x cv~>shapes x~>objType=="textDisplay")
        foreach(td textDisplays
            schSetTextDisplayBBox(td nil) ;This also works in layout
        )
        dbComputeBBox(cv)
        akey = dbCreateRect(cv leGetEntryLayer() cv~>bBox)
        when(akey dbDeleteObject(akey) ) ; when
        unless(quiet
            printf("Now execute \"Fit All\" and see if your cell extents are fixed\n")
        )
        t
      ) ; let
    )

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Dennis Faber
    Dennis Faber over 15 years ago

    Thanks a lot once more!!

    • 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