• 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. exception handling in skill/ocean

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 145
  • Views 7326
  • 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

exception handling in skill/ocean

swdesigner
swdesigner over 13 years ago
I searched the community and support.cadence, but couldn't find any reference material or source code examples showing how to handle exceptions in skill/ocean.

For example, my ocean script loops voltage using foreach to do several runs. After each run, I do some postprocessing. If some of the post-processing fails because a condition being looked for in the simulation is not found, I want the rest of the runs to complete. Instead what happens is the ocean script exits with an error.

For example, if I am looking for  a rising edge on a certain signal and it doesn’t exist..

Any help will be great.

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

    If you want iPad, use ADE XL - which captures much of this in a UI. Programming languages are by nature flexble - and with flexibility comes (unfortunately) the need to cope with unexpected situations - it's very hard for a general programming language to do the right thing if it has no idea what the right thing should be given that your code could do anything...

    And yes I did mean eloquently (well written (yes, strictly it's well spoken, but I thought I'd be free to adapt my own language!)), but "elegantly" fits too.

    It really shouldn't be intimidating. Usually the conditions don't have to be complicated. I normally advise people to use things like:

    unless(member('tran results())
      ...
    )

    to check if the transient results are present - little idioms like this are easy enough to remember, even for non-programmers (and most engineers should have at least some programming knowledge these days).

    Glad they take the OCEAN class (I wrote it!). Surprised it's not used that much though - I tend to find many users who do because of the flexibility it gives them.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    If you want iPad, use ADE XL - which captures much of this in a UI. Programming languages are by nature flexble - and with flexibility comes (unfortunately) the need to cope with unexpected situations - it's very hard for a general programming language to do the right thing if it has no idea what the right thing should be given that your code could do anything...

    And yes I did mean eloquently (well written (yes, strictly it's well spoken, but I thought I'd be free to adapt my own language!)), but "elegantly" fits too.

    It really shouldn't be intimidating. Usually the conditions don't have to be complicated. I normally advise people to use things like:

    unless(member('tran results())
      ...
    )

    to check if the transient results are present - little idioms like this are easy enough to remember, even for non-programmers (and most engineers should have at least some programming knowledge these days).

    Glad they take the OCEAN class (I wrote it!). Surprised it's not used that much though - I tend to find many users who do because of the flexibility it gives them.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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