• 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. Updating CIW and layouts while script is running

Stats

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

Updating CIW and layouts while script is running

thomas1000
thomas1000 over 12 years ago

I have a lengthy SKILL script on a layout and it would be helpful to be able to see progress as it occurs.  Is there a way to have the layout update at selected points in the script?

Also, the CIW is updating but doesn't make its first update visible until part way through the script after several printf statements have executed.  Is there a way to force an update to the CIW as printf statements are executed?

Having this capability would help with the user interface so that users can plan their activities better and not be confused by what might look like a frozen script.

 Thanks.

  • Cancel
  • berndfi
    berndfi over 12 years ago

     Maybe 'hiRedraw' can do the layout window update for you.

    I did not understand exactly what update progess you want to be shown in the CIW.

     Bernd

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

    Maybe hiFlush is what you want? Alternatively use  hiDisplayProgressBox() or hiSetProgressBar() - and related functions - to get some visual feedback of progress.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • thomas1000
    thomas1000 over 12 years ago

     Thanks guys for your suggestions, however, neither hiFlush or hiRedraw seemed to have any effect.  I placed them thruought the script and it still waits until about 3 out of 5 steps have completed before updating the CIW and the layout display doesn't update until the very end.  It is like SKILL just wants to run at full speed without updating the display or CIW until it reaches some point in execution and gets a microsecond to service system display tasks.  

     In Visual Basic there is a doEvents command that forces servicing Windows commands - that would be nice to have in SKILL.

    Maybe if I put some sleep commands in it will allow the display updates to occur.

     I will try the progress bar ideas, although that will not be as good as if I could see the actual progress.

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

    One issue is that Virtuoso (and SKILL) are not multi-threaded. That said, potentially there might be the opportunity to do some kind of cooperative update - but the problem is that some of those events might require SKILL - and so if it is blocked at the time, they would fail.

    So it's not an easy problem to solve. Making a large long-lived application thread-safe is far from trivial and will take some considerable time.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 12 years ago

    I have a program, much like mark net, for tracing nets. I added a feature that would stop the program at a user defined interval (every 10 seconds, for example) which is useful when tracing large power supplies. Though it is not ideal, since it doesn't dynamically show the hilighting, it does allow us to see incremental highlights of the power rail and we can cancel the command if we have seen what we want without having to wait for it to complete. Basically the skill code pops open a dialog box and asks the user if they want to continue. If your program must always run to completion this may not be acceptable.

    Derek

    • 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