• 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. Get user input with GUI in the runtime

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 10486
  • 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

Get user input with GUI in the runtime

sbkuizlzl
sbkuizlzl over 3 years ago

Hi all.

I'm using Virtuoso IC6.1.8-500.19 and I am writing the SKILL script that needs to take user's input in the runtime.

At first, I implemented it by using gets function and got the input from CIW. It works well.

However, I want to take the input with GUI. 

A trick I can think is that call break to halt the function right after hiDisplayForm, and if the callback is called by clicking "OK", take the value from the form as below.


procedure(test_gui()

    formId = gui_body()

    break()

    want_value = formId-><some_field>->value

);procedure

procedure(gui_body()

prog((formId)

    /* Some field

    ....

    */

    formId = hiCreateLayoutForm(... ?callback "continue()" ...)

    hiDisplayForm(formId)

    return(formId)

);prog

);procedure


But I don't think it is a good way. Is there a way to achieve it?

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    Using a break() is definitely the wrong thing to do. There are two ways you can do this:

    1. Pass ?dialogStyle 'modal to the hiCreateLayoutForm. 
    2. Put the logic you want to do once the form is issued in a function that you call from the ?callback. 

    The second is really the right way to do this. If you make the form blocking (the first approach), then unless you change the buttonLayout too, pressing the Apply button won't do what you want (it won't work properly with your break/continue approach either, which will also need a SKILL development license to run).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 3 years ago

    Using a break() is definitely the wrong thing to do. There are two ways you can do this:

    1. Pass ?dialogStyle 'modal to the hiCreateLayoutForm. 
    2. Put the logic you want to do once the form is issued in a function that you call from the ?callback. 

    The second is really the right way to do this. If you make the form blocking (the first approach), then unless you change the buttonLayout too, pressing the Apply button won't do what you want (it won't work properly with your break/continue approach either, which will also need a SKILL development license to run).

    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