• 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. How to mimic a click or selection on a waveform in ViVA

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 13672
  • 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

How to mimic a click or selection on a waveform in ViVA

fatcat1206
fatcat1206 over 9 years ago

Hi All

Currently, I am facing a bug for the "Spec Marker": "Spec Marker" will not be displayed by default when running corner simulation, even with the "visibiltyMode" of "Spec Marker" is set to be "on".

With Cadence Support, a CCR has been filed already. But before waiting for the results, I'd like to develop some work around to fit our urgent needs.

What I notice is that:

After clicking the waveform in the ViVA, even in a blank place, the ViVA window seems to be triggered, and then the "Spec Marker" is displayed and stay there afterwards.

I try to mimic this action, and loop through all the sub-windows, then I can display all the "Spec Marker".

I tried some API from "awv*" families, unfortunately none of them succeed.

Does anyone have a clue for it?

Thanks in advance.

Best Regards

Yi

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Hi Yi,

    I recall this as a known issue (which was fixed, I think). Which subversion are  you using?

    If it's the issue I think, even if you set:

    envSetVal( "viva.specMarker" "visibilityMode" 'string "On" )

    then you had to select the waveforms once to make them appear. This was broken in 6.1.6.500.11, but should be fixed in 6.1.6.500.13. 

    In a faulty version, not sure you can fix it in SKILL. I've not checked, but I would be surprised, as it's a timing issue.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Just found your case - I'll take a look, as it might just be a specific situation, not necessarily the above. 

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Hi Yi,

    Looking at this with the AE who's working on your case, it seems that it works in some cases (for example the data I tried it with, and some of her cases) but not others. We haven't figured out yet what the criteria are when it works and when it doesn't.

    In the meantime I found that I can write some code which iterates over all the windows and sub windows, and selects the curves in turn in each window. From trying this in a broken release (IC616 ISR11) where I do see the problem, it does seem to solve the issue for me. It's using the function for the bindkey which selects all traces in a sub window, so whilst that's private, it's pretty safe, especially as this is a workaround anyway rather than a long-term solution until we can fix the real issue. That code is below:

    /* abSelectCurvesInAllWindows.il
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date       Sep 15, 2016 
    Modified   
    By         
    
    Function to iterate through all ViVA windows and 
    subwindows, and select curves in turn. This is to workaround
    an issue where spec markers are not always displayed, even
    if they are turned on and you have:
    
    envSetVal( "viva.specMarker" "visibilityMode" 'string "On" )
    
    This was broken in IC616 ISR11, and supposed to be
    fixed in IC616 ISR13. However, in some cases it remains; CCR
    1639141 has been filed for the remaining issue.
    
    This does use one private function, but given that it's
    the function used for the shift-ctrl-A bindkey in ViVA,
    it's pretty safe.
    
    ***************************************************
    
    SCCS Info: @(#) abSelectCurvesInAllWindows.il 09/15/16.12:54:47 1.1
    
    */
    
    procedure(abSelectCurvesInAllWindows()
        foreach(win awvGetWindowList()
            awvSetCurrentWindow(win)
            foreach(subWin awvGetSubwindowList(win)
                awvSetCurrentSubwindow(win subWin)
                _ddtExecuteAction(win->vivaSession "selectAllTraces")
            )
        )
    )

    Regards,

    Andrew.

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

    Thank you for your code.
    It works, and it's exactly what I want.

    Right now, I can improve our documentation flow inside the team :)

    Best Regards

    Yi
    • 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