• 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. I'd like to get checksum of a cell view layout. Is there...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 144
  • Views 1764
  • 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

I'd like to get checksum of a cell view layout. Is there a built-in function in Cadence to do this?

acowan
acowan over 7 years ago

I'd like to get SHA hash (checksum) of a cell view layout.  Is there a built-in function in Cadence to do this?

Long explanation:  What I need is a way to compare two layouts in a very compute and time efficient manner.  If I had a SHA256 hash that compressed all the shapes, text, properties, etc... of a layout I could use the SHA hash key to compare layouts.  This could tell me if a layout view changed over time (it won't tell what changed - just THAT it changed). 

The cell view layout is in the end just an object... so this seems doable by extracting key fields of the layout object and sending the data through a SHA algorithm.

Any help/clues are appreciated.

ps: no it doesn't have to be SHA hash, anything close would work too.

-AC

  • Cancel
  • drdanmc
    drdanmc over 7 years ago

    Nothing like that that I am aware of but the OA database contains a cellview counter.  

    cv = dbOpenCellViewByType("myLib" "myCell" "myView" nil "r")

    cnt = dbGetCellViewCounter(cv)

    printf("Cellview counter is %L\n", cnt)

    this counter is incremented when the layout changes so you can use that.  One catch is this won't tell you if an instantiated cell inside your cell changed.  Only if the top level changed.  So to fully check you'd have to check the counter for each master used in the hierarchy.

    Hope this helps.

    As far as a SHA hash, you could also just use something like:

    openssl sha1 path/to/myLib/myCell/myView/layout.oa

    and if you're in skill, you can find the path to that oa file with

    cvId = ddGetObj("myLib" "myCell" "myView")

    cvId~>readPath

    and 

    cvId~>files~>readPath

    again, be careful because that won't tell you if underlying cells changed.

    -Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to drdanmc

    Dan's right. The counter is how various tools normally detect a change in the cellView. 

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • acowan
    acowan over 7 years ago

    Thanks. We're testing this now... to make sure the counter changes ONLY if the layout has a real change, and not just because the layout is 'saved' or 'checked into DSM'.

    • 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