• 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. skill code to toggle waveform visibility

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 144
  • Views 17539
  • 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

skill code to toggle waveform visibility

drdanmc
drdanmc over 8 years ago

Hello,

I've found that it is not all that uncommon for me to have a simulation set up in ADE-L  (or ocean) that plots a moderate number of waveforms.  Often I find that the first thing I do is make them all invisible and then toggle on a few at a time.  I'd love it if I could set up a hot key or menu item that iterates over each waveform displayed in the current window and makes them invisible.

I've not really had any luck in digging through the manual to try and find any functions that give me access to the displayed traces and the ability to turn on/off visibility.  Does anyone have an example of accessing those objects that they could share?

Thanks in advance.

-Dan

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Hi Dan,

    Currently there isn't really a SKILL API to do this (certainly nothing public, and even amongst the private stuff it isn't really quite what you're after). I have an outstanding action to make a requirement specification for a SKILL API for ViVA that takes advantage of the way things are done now in ViVA rather than trying to bolt it on to the old awv API. Whilst out for a walk this afternoon (it's a public holiday here in the UK), I was thinking this through a bit more and have an outline in my head. Won't help you now, but at least it means that hopefully I'll have a proposal soon for R&D to consider.

    Anyway, thanks for your post - it might have finally pushed me to getting this done!

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • drdanmc
    drdanmc over 8 years ago
    Thanks for the quick reply. I'm not surprised that currently I can't quite get there from here. There seemed to be too many gaps. I'll look forward to something in the future.

    BTW, if you'd like some customer review/feedback on any proposal, I'd be happy to look it over. In general the ViVA skill API could certainly benefit from an expansion. There are some things like my initial question where having a skill way to do what the GUI can currently do would be nice and there are some other places where you just can't do it at all but it would be nice to see. One example of this latter category would be a hook for defining a function that goes between the tracking cursor and marker reading a value and what is displayed. A simple textbook case would be on a smith chart to convert between reflection coefficient and impedance or admittance but I've had some other non-textbook cases where I had a different mapping function. Custom grids would be cool too. A textbook example would be a Nichols chart and I have a non-textbook example that is of some interest.

    Enjoy the holiday.

    -Dan
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fatcat1206
    fatcat1206 over 8 years ago
    Hi Dan

    I did some search, and quite lucky find an API to hide/show the waveform. It's:

    awvSetWaveformDisplayStatus(
    w_windowId
    x_waveIndex
    g_enable
    [ ?subwindow x_subwindow ]
    )
    => t / nil

    you may use "awvGetCurrentWindow()" to get the waveform w_windowId;
    and use "awvGetWaveNameList(w_windowId)" to have a list which contains the "x_waveIndex" for all the waveforms in the current window.
    and then "g_enable" is used to control show(t)/hide(nil) the waveform.

    I give it for a try, it works.

    You still need to find the APIs to get the waveIndex for the selected waveforms.
    According to my colleagues' script, it's feasible. (I did not check the source code, but his script interacts with the selected waveforms)

    Good luck.

    Best Regards

    Yi
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Yi,

    *mild embarrassment* Thanks for spotting this - I'd completely overlooked this function. Unfortunately because of the inconsistency of the API, plus many old functions that no longer work - I'd missed this altogether.

    I'm not sure of a way of getting the selected signals though. Maybe I'll be embarrassed again, but CCR 1334459 is asking for this (along with a bunch of duplicates) which leads me to think there isn't a public API (couldn't find a private one either).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fatcat1206
    fatcat1206 over 8 years ago
    Hi Andrew

    Thank you for the reply. I was just lucky to find such expression.

    I really admire your ability to manage all of these SKILL APIs, it's a huge effort to do this.
    And your precise answers in the posts are really helpful. I am impressed about all the details you listed there.
    I'd like to follow you and make some contribution to the community.

    I take a look at the source code from my colleague. There is no API to get the selected signals.
    It's my wrong assumption.
    Actually, he import all the signals from the ViVA into a form, and then do the selection there.

    I assume this is not what Dan want.

    Hope to see some new public APIs from ViVA itself. Most of them are private right now.

    Best Regards

    Yi
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • drdanmc
    drdanmc over 8 years ago
    Andrew if it makes you feel better, I read through the full list of functions for ViVA and also missed that one. I'm also always impressed at how much you can keep on top of!

    So actually, this is pretty close to what I was looking for because my intention was to just turn them (the waveforms) all off and then manually turn on the ones I wanted to see at any time. With the combination of the functions Yi suggested, I can do this but I do see one artifact and that is the eyeball icon in the visibility column does not seem to get updated to match if the waveform is actually visible or not.

    -Dan
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • fatcat1206
    fatcat1206 over 8 years ago
    Hi Dan

    I just try to repeat the artifact you have mentioned.
    It's strange that in my place the "eyeball" icon is updated accordingly.

    I am using cadence version 6.1.7.500.6.

    It might be a reason for our difference.

    Best Regards

    Yi
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    When I tried this yesterday (with 6.1.7.500.11) the visibility indicator in the legend was also updated. What subversion are you using Dan?

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • drdanmc
    drdanmc over 8 years ago
    That is probably it. I'm on 6.1.6.500.13.2. I need to get a more recent 617 installed and this is another reason.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Dan,

    I did just try:

    foreach(num car(awvGetWaveNameList(awvGetCurrentWindow())) awvSetWaveformDisplayStatus(awvGetCurrentWindow() num nil))

    in 6.1.6.500.14 (I have this version to hand) and that worked OK... perhaps it really was just a temporary blip?

    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