• 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 Design
  3. check the instance symbol change in schematic

Stats

  • Locked Locked
  • Replies 13
  • Subscribers 128
  • Views 20631
  • 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

check the instance symbol change in schematic

lzyc
lzyc over 12 years ago

Andrew (or anybody),

If an instance symbol is modified after the schematic last modification, cadence will give you warning in CIW when you open the schematic. I want to write a skill code to check the schematic for the same purpose?  Initially I thougt cadence only compare the timeStamp of the schematic and the instance symbol. But I found cadence does more than that. They can capture the symbol change even if I rollback to a old sybmol version (with earlier timestamp). Can you tell me how Cadence capture the instance symbol change when you open the schematic?

  • Cancel
Parents
  • phill1127
    phill1127 over 7 years ago

    I realize this topic is quite old but I'm trying to do the same thing. I open a cellview for read and need a skill function to determine if it requires check & save for any reason. Has anyone figured this out and care to share?

    Thanks,
    - Phill

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

    Hi Phill,

    Well, dbIsConnCurrent() will tell you if the cellView has been modified since it was last "extracted" (i.e. the last check). To see if there are any symbols which have been modified since the last time it was checked, use:

    modifiedInstHeaders=setof(instHeader cv~>instHeaders instHeader~>masterChangeCount!=instHeader~>master~>modifiedCounter)

    From this you can glean the libName/cellName (and instances) which would give you a warning in the CIW or show with markers had you opened the schematic in edit mode. What the incantation above does is check if the record of the last modifiedCounter on this schematic for each master instantiated matches the current state of that master.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 7 years ago in reply to phill1127

    Hi Phill,

    Well, dbIsConnCurrent() will tell you if the cellView has been modified since it was last "extracted" (i.e. the last check). To see if there are any symbols which have been modified since the last time it was checked, use:

    modifiedInstHeaders=setof(instHeader cv~>instHeaders instHeader~>masterChangeCount!=instHeader~>master~>modifiedCounter)

    From this you can glean the libName/cellName (and instances) which would give you a warning in the CIW or show with markers had you opened the schematic in edit mode. What the incantation above does is check if the record of the last modifiedCounter on this schematic for each master instantiated matches the current state of that master.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • phill1127
    phill1127 over 7 years ago in reply to Andrew Beckett

    This worked perfectly for me. Thank you for the quick help!

    - Phill

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Amul
    Amul over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    I was trying to get a notification email  about the symbols updated since last time it was checked, For that i was first checking which all symbols was updated using

    modifiedInstHeaders=setof(instHeader cv~>instHeaders instHeader~>masterChangeCount!=instHeader~>master~>modifiedCounter). 

    I got an error - *Error* eval: unbound variable - cv

    Please help me how to proceed.

    Regards,
    Amul

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RiadKaced
    RiadKaced over 6 years ago in reply to Amul

    Hi Amlu,

    cv is the variable that stores the CellView database ID, so you need to have defined it earlier, the above is just a snippet. example:

    cv=dbOpenCellViewByType("libName" "cellName" "viewNamw")

    modifiedInstHeaders=setof(instHeader cv~>instHeaders instHeader~>masterChangeCount!=instHeader~>master~>modifiedCounter). 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Amul
    Amul over 6 years ago in reply to RiadKaced

    Hi,

    I tried using below lines:

    cv=dbOpenCellViewByType("libraryName" "cellName" "viewName")
    modifiedInstHeaders=setof(instHeader cv~>instHeaders instHeader~>masterChangeCount!=instHeader~>master~>modifiedCounter)

    I get  'nil' all the time, even if there is updated version of the symbol have been checked in.

    Regards,
    Amul

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Amul

    Is the libraryName cellName and viewName  on the first line for the schematic view that contains the symbols? The idea is that it will check if any of the symbols used in that schematic have been changed since the last time the schematic was "checked". 

    You can't just give it the lib/cell/view of a symbol view - that makes no sense.

    I'm trying to guess what you might have done wrong...

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Amul
    Amul over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    You are right, I was giving the viewName of symbol instead of schematic viewName. I corrected, now i could see 'nil' if symbols in the schematic remain unchanged  and some database ID if symbols are changed.
    Is there a way where i could get a notification whenever symbol is checked in? I need to update port list of behavioral model whenever corresponding symbol gets updated. Can you suggest me how can i proceed.

    Regards,
    Amul

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Amul

    Hi Amul,

    You should probably contact the provider of your design management software. Given that you may have some complex multi-site DM setup (I have no idea) - but even if it's another user on the same network - there would need to be some trigger in the DM software to send notifications to interested parties when checkins are performed. Potentially that could be written using ddRegTrigger (with the "PostCheckin" event) but that probably depends on whether it's using a GDM integration or not and whether the checkin is performed using the Virtuoso API. Even then you'd have to write the code to send a notification (whatever form that takes).

    So best to speak to your DM provider because there may be some functionality built-in to their solution that already allows a notification.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Amul
    Amul over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks for the information. I will talk to DM provider. 
    Appreciate your time in responding me.

    Regards,
    Amul

    • 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