• 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 13674
  • 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
Parents
  • 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
Reply
  • 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
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