• 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. Adexl - auto locking Interactive when run finishes

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 125
  • Views 3270
  • 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

Adexl - auto locking Interactive when run finishes

firebolt
firebolt over 3 years ago

Is there a way to auto-lock the Interactive history when the Adexl job is completed?

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    I suspect it could be done by writing a trigger to lock when simulation has completed (using axlSetHistoryLock, probably in the runFinishedConclusion or runFinishedPostPlot trigger (see axlSessionSignalList() and axlSessionConnect()), but I've not tried. It would be a bit of a pain this way to turn on and off (although could use a global flag to do it, I guess). I didn't try writing such a function though - doesn't sound too hard though.

    Alternatively you could just increase the "Save N entries" on the Options->Save form in Assembler to stop the histories being deleted automatically.

    Andrew

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

    I tried this. Not working. Retuns nil.

    envSetVal("axlSetHistoryLock" "runFinishedConclusion" 'boolean t)

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to firebolt
    firebolt said:

    I tried this. Not working. Retuns nil.

    envSetVal("axlSetHistoryLock" "runFinishedConclusion" 'boolean t)

    Hardly surprising since I didn't say these were environment variables. If it had been that simple, I wouldn't have said "I suspect it could be done by writing a trigger to lock when simulation has completed". That's more than just an env var - it needs some SKILL code.

    I then (in my last post above) expanded upon the functions that I thought would be necessary (and the trigger that would be needed, i.e. runFinishedConclusion) and gave some SKILL code that showed this working.

    Andrew

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

    How to use this skill code? I tried loading in CIW. It's not working.
    load "<full_path>/abAutoLockHistory.il"

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

    Two things:

    1. read the comments at the top of the code which tell you how to enable it
    2. it will only affect ADE Assembler sessions started after you enable the auto-locking. You’ll have to close and reopen any existing ADE sessions
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to firebolt

    Two things:

    1. read the comments at the top of the code which tell you how to enable it
    2. it will only affect ADE Assembler sessions started after you enable the auto-locking. You’ll have to close and reopen any existing ADE sessions
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • firebolt
    firebolt over 3 years ago in reply to Andrew Beckett

    Closed Adexl. Entered 2 commands in CIW. Opened Adexl. It's not working. What am I missing here?

    load "<full_path>/abAutoLockHistory.il"

    abEnableAutoLockHistory()

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

    The code only works if envGetVal("adexl.historyNamePrefix" "showNameHistoryForm") returns t and envGetVal("adexl.historyNamePrefix" "initiallyAddHistoryNameUniquifier") returns nil - I thought that was a reasonable way to enable auto-locking - if you'd explicitly set a history name which didn't add the suffix - but you might want to change that logic in the code. Was that the case in your environment?

    Note you should not load and enable the function more than once in a Virtuoso session, and if you change the logic in the code, then it would still continue to use the old logic. So if you change it or enable more than once, you should quit and restart virtuoso because it doesn't disable the existing trigger and doesn't check to see if it's already registered (I kept the code simple).

    Note you can change the settings of showNameHistoryForm and initiallyAddHistoryNameUniquifier after you've enabled the trigger; it looks up the values at the time of simulation completion and uses whatever they were at the time.

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • firebolt
    firebolt over 3 years ago in reply to Andrew Beckett

    Thanks Andrew. Yes, setting showNameHistoryForm & initiallyAddHistoryNameUniquifier to proper values helped me. It's working now. Interactives get auto-locked after run completes. Commands used in CIW before opening Adexl:

    envSetVal("adexl.historyNamePrefix" "showNameHistoryForm" 'boolean t)

    envSetVal("adexl.historyNamePrefix" "initiallyAddHistoryNameUniquifier" 'boolean nil)

    load "<full_path>/abAutoLockHistory.il"

    abEnableAutoLockHistory()

    • 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