• 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. Hilight Set to Appear when Cell is Reopened

Stats

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

Hilight Set to Appear when Cell is Reopened

kdolan
kdolan over 3 years ago

Hi,

I'm working with hilights at the moment and have come across a little problem. So if the layout view in question is not checked out, and I create some hiilites in the layout as per the simple code below, if I close and reopen the layout cellview, the hilites automatically reappear. However, when the layout view is checked out and in edit mode, the hilites do not reappear when the cell is closed and reopened. 

Is there any easy way to have these hilites reappear when the cellview is reopened from within the same Cadence session?

Thanks,

Keelan

Simple Hilite Creation Code:

procedure( myHilightExample()
prog( (cv points llx urx lly ury hilightSet)
cv = geGetEditCellView()
points = enterBox()
llx=caar(points)
urx=caadr(points)
lly=cadar(points)
ury=cadadr(points)
hilightSet = geCreateHilightSet( cv list("hilite" "drawing1"))
geSetHilightSetHaloParameters(hilightSet "over" "plain" "thin" 0 t)
geAddHilightRectangle( hilightSet list(llx:lly urx:ury) )
hilightSet~>enable = t
)
)

  • Cancel
  • AurelBuche
    AurelBuche over 3 years ago

    Hi,

    I don't know which Virtuoso version nor the associated data-management system you use but I am not able to reproduce the hilights being redisplayed when reopening a cellview...

    On my side the hilights are only redisplayed when opening a cellview as long as another window shows the same cellview.

    It makes sense as the hilights are created on a cellview and are cleared when the cellview is closed

    I am not sure if this is the best solution and if it is suitable for you but waht you want is feasible in the following way:

    1. You can create a table containing all the cellviews in which you want to create highlights (and redisplay them)

    2. Write a function to place any highlight you want and store it in the table at the same time

    3. Write a trigger function to display (or redisplay) the highlights at cellview opening

    I can help you write this code if you are facing any issue with that

    Btw in your code, why are you spliting points into llx, urx, lly and ury to recreate the box afterwards using list(llx:lly urx:ury) ?

    You could use geAddHilightRectangle( hilightSet points) directly

    And when you want to split a list or a bbox, you can simply do:

    destructuringBind( ((llx lly) (urx ury)) points
      ;; your body here
      ...)

    Hope this helps

    Cheers

    Aurélien

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • kdolan
    kdolan over 3 years ago in reply to AurelBuche

    Hi Aurélien,

    Thanks for the response. Cadence version is Cadence 20.1 and data management system is Perforce. The attached code was a snippet from a larger piece of code and hence the non-optimized appearance. I was not aware of the destructingBind command so thanks for sharing that.

    Yes your reasoning makes sense. I do already have a table created just as you said. I did so to have the option of saving highlights out to a file and thus have them available from Cadence session to session. So I can just repurpose this code but for both scenarios. 

    Thanks again!

    Keelan

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to kdolan

    As Aurélien said, the highlights are retained if the cellView remains open in memory. So if it's open by virtue of another dbOpenCellViewByType on the same lib/cell/view, then they will be kept. It's nothing to do with the design management system or even whether it's in edit mode - it's related to the refCount attribute on the cellView (which is the number of times opened less the number of times closed). If this reaches zero, then it's purged from memory, and the highlights go with it.

    The suggestion to store the highlight information in a table indexed by lib/cell/view is a good way of restoring the information upon open, or storing in a file - depends how persistent you want the information to be.

    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