• 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. IC61x waveform viewer commands not as versatile as in I...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 144
  • Views 13309
  • 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

IC61x waveform viewer commands not as versatile as in IC15

AleksandrV
AleksandrV over 8 years ago

Hi all,

just wondering, is it me, or is IC615 and IC616 waveform tools don't seem to always perform in OCEAN/SKILL scripts?

During the old days of IC5 I could do everything to get quality plots (place all types of markers exactly where you want, change window size, background color, open/close windows and subwindows and they physically opened and closed) and hardcopy them with SKILL/OCEAN commands.

The most usual plot operations I'd like to conduct are:

1) Resize the picture;

2) Place markers where I want;

3) Control all possible sidebars in the window (IC6 has an annoying sidebar which you can remove by default during the initial ICFB loading, but haven't found a way to remove it if it is there in the first place)

4) Close all windows or subwindows that are of no use when they are processed

5) Hardcopy - this is the only thing that works as intended from the above list.

Here's the code I'm executing. Everything works fine, I get the pictures, but:

            awvCreatePlotWindow( ?bBox list( 0:0 1200:1200 ) )  ; Open a window - ok, this works
            currentWindow = awvGetCurrentWindow() ; get the window ID, no problem here
            awvResizeWindow(currentWindow list(200:200 3000:3000))  ; resizeing does nothing, tried to type in different values
            currentSubwindow = awvGetCurrentSubwindow(currentWindow) ; get the subwindow ID, no problem here
            
            plot( S11_dB20 ?expr '( "S11 dB20" ) ) ; plot my curve
            awvDisplayDate( currentWindow ) ;place additional info
            awvPlaceXMarker( currentWindow S11_neg10dBhigh)
            awvPlaceXMarker( currentWindow S11_neg10dBlow); the markers are placed, but the value seems to be there only for the last marker. In IC5 OCEAN/SKILL you could place markers wherever you want and how you wanted and all values were displayed...
            hardCopyOptions(?hcOutputFile strcat(scriptLog_destination_path MN_CELL_NAME_ARRAY_ELEMENT ".png")) ; this one works
            hardCopy() ; new alternative saveGraphImage()
            deleteSubwindow() ; the picture in the subwindow is deleted, but the subwindow is there in the window. Why? Can you remove the subwindow in the same manner as pressing X???
            awvDeleteSubwindow( currentWindow ?subwindow currentSubwindow ) ; this doesn't close the subwindow physically either
            vvCloseWindow("unbound" currentSubwindow) ; tried to emulate the command that pops up in ICFB when you press X in the subwindow - nothing happens
            hiCloseWindow( currentWindow )   ; the window doesn't close physically. IC5 had no issues physically closing the window...

  But the funny thing is, when I close the window manually with all presumably closed subwindows within my script, ICFB says that all the windows shouldn't be there in the first place as they are closed (but the window with subwindows is still there on my desktop, even though all subwindow contents are blank):

*WARNING* Window 255 does not exist
*WARNING* Window 257 does not exist
*WARNING* Window 259 does not exist
*WARNING* Window 261 does not exist
*WARNING* Window 263 does not exist
*WARNING* Window 265 does not exist
*WARNING* Window 267 does not exist
*WARNING* Window 269 does not exist
*WARNING* Window 271 does not exist
*WARNING* Window 273 does not exist
*WARNING* Window 275 does not exist
*WARNING* Window 277 does not exist
*WARNING* Window 279 does not exist
*WARNING* Window 281 does not exist
*WARNING* Window 283 does not exist
*WARNING* Window 285 does not exist
*WARNING* Window 287 does not exist
*WARNING* Window 289 does not exist
*WARNING* Window 291 does not exist
*WARNING* Window 293 does not exist
*WARNING* Window 295 does not exist
*WARNING* Window 297 does not exist
*WARNING* Window 299 does not exist

Any suggestions on general window handling in IC6? I guess that migrating to the new waveform viewer makes it a bit unusable within custom SKILL/OCEAN scripts, in other words - it works not as clean as the old IC5 waveform viewer did... But it will be great if I'm proven wrong.

Regards,

Aleksandr

  • Cancel
  • drdanmc
    drdanmc over 8 years ago
    awvResizeWindow() is listed as deprecated. What I found is that the window you get with awvGetCurrentWindow() is the id of the window contained in a tab of your main VIVA-XL window but the one you need to resize is the main window. hiGetCurrentWindow() while the VIVA-XL window is the current one and hiResizeWindow() will change the size. Maybe you can get there with hiGetWindowList() but I have to admit I'm not good with searching through windows.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • AleksandrV
    AleksandrV over 8 years ago
    Hi Dan,

    thanks for the suggestions.

    Yes, the command hiResizeWindow(hiGetCurrentWindow() list(a:b c:d)) does in fact resize the window.

    I've played around with a VIVA-XL from ICFB without my script, and the command hiCloseWindow( currentWindow ) works but not with currentWindow = awvGetCurrentWindow(). If I use currentWindow = hiGetCurrentWindow() you proposed, the VIVA-XL window closes. So I believe this is usable in the script.

    I believe this solves the problem, but in this case the descripton awvGetCurrentWindow() command is a bit misleading. What window does the returned number correspond to? If assume that it is the window inside VIVA-XL (subwindow), then hiCloseWindow(awvGetCurrentWindow()) should close the subwindow. But it doesn't.

    And awvGetCurrentWindow() and hiGetCurrentWindow() return different values, so clearly the windows they describe are not the same.

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