• 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. saveGraphImage woes

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 144
  • Views 14171
  • 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

saveGraphImage woes

smikes
smikes over 4 years ago

Hi, I'm trying to create several plots in succession and save them to files automatically. Running into trouble with saveGraphImage()

win0 = awvCreatePlotWindow()
awvPlotWaveform(win0 vtuneL ?expr cornerL)
awvDisplaySubwindowTitle(win0 "vtune")
awvSetLegendWidth(win0 400)
saveGraphImage(?fileName "~/Images/vtune.png" ?width 1280 ?height 720)

 

If I run this, the file is created but the waveforms are "undersampled", as though only 1 out of every 100 points were actually used to draw the line. The graph that pops up in ViVa looks nice and smooth, and if I run the exact same saveGraphImage() command again from the CIW, it produces a file with smooth waveforms. 

Now, I tried placing the saveGraphImage() call into a hiRegTimer, and this fixed the issue for a single case. When I add another plot though, only the last one gets saved "smoothly", the first becomes coarse again no matter what I tried.

Running ICADVM 18.1-64b.500.11

Thanks in advance!

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    I just found a report of a similar sounding bug, CCR 2209855. This has been fixed in IC6.1.8 ISR15 (due 20th November). I would suggest contacting customer support - maybe we can provide you with an early access to this or engineering hotfix to ensure that it is really solved? It's too late to get it into ISR14 as that is due at the end of this week.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • YiWang
    YiWang over 4 years ago in reply to Andrew Beckett

    Hi Andrew

    I am also facing the same issue, and it's even worse that no signal is loaded. Only the signal name and strips.

    I have tried the workaround from CDN support by placing sleep() between the awvLoadWindow and saveGraphImage, but this does not help.

    And I have also tried hiRegTimer, and it does not complete solve the issue. Only one or two images are saved properly.

    Where can I find the hotfix? I do not find it in the CDN support.

    By the way, we cannot easily move to the latest Virtuoso due to project setup constrains. Thus I hope there is a solution/workaround for the early versions.

    Best Regards

    Yi

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • YiWang
    YiWang over 4 years ago in reply to Andrew Beckett

    Hi Andrew and smikes

    On top of using hiRegTimer, I have added hiFlush() between the awvLoadWindow and saveGraphImage, then it works.

    In the hiRegTimer I waited for 2 seconds

      when(awvLoadWindow(vivaWin, grfFile, ?resultsDir resultsDir)       

        vivaWin = awvGetCurrentWindow()       

        awvDisplayTitle(vivaWin windowTitle)    

        hiFlush()    

        when(isPrint      

          saveImageCmd = sprintf(nil "saveGraphImage( ?window car(setof(x awvGetWindowList() x->wsId == \"%s\")) ?fileName \"%s\" ?width %d ?height %d ?backgroundColor  'white)" vivaWin->wsId imageName width height)      

          hiRegTimer(saveImageCmd 20)    

        );when  

      );when

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to YiWang

    Yi,

    You  would need to log a support request and then we can sort out an engineering hot fix. It’s not published on downloads - that would only happen when the next fix comes out on the 20th November. 

    I don’t think there’s likely to be any easy workaround (well, maybe we could find one if we could see it - I can’t check I’m afraid as I’m on vacation at the moment).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • YiWang
    YiWang over 4 years ago in reply to Andrew Beckett

    Hi Andrew

    Thank you for your quick reply and sorry for disturbing your holidays.

    After adding the hiFlush() into my script, it so far works. One thing I have improved is to set the delay time inside the hiRegTimer depends on the total number of images need to be plotted and saved I make the delay time depends on the size of the results database, about 0.1Second for 100M.

    if smikes can confirm that such trick also works for him, it might be a workaround.

    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