• 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 access via parameters (IC5.1.4)

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 13614
  • 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 access via parameters (IC5.1.4)

lrl12skdev
lrl12skdev over 14 years ago

Hi All Cadence Specialists,

I have a slight problem in my code so I would appreciate very much if anyone can help.

I am using IC5.1.41 and my code is dealing with Contact/Via

part of the code is to extract some values like delX, and delY, I did not create my own form for inputs like this so I just reuse the internal form "le0ContactForm". My problem is, if I have just started my icfb session, le0ContactForm->delY->value returns nil, only when I use the create Contact function that the value becomes available. My assumption is that the fields in the "le0ContactForm" are set to nil and will only be initialize once you press the bindkey "O" (for create contact).

Is there any possible work-around with this?

In IC6.1 I know I can acces this by techid~>viadDefs~>params

Is there a similar way to do this in IC5.1.4xxx?

best regards

lrlsk

  • Cancel
  • dmay
    dmay over 14 years ago

    It sounds like you are pulling up the Create Contact form and want to access fields on the form and it will only work after the form is defined. Here is a work-around I use to set a button on the Search form:

    hiRegTimer("leSearchForm->searchZoomToFig->value =  t" 1) leHiSearch()

    The hiRegTimer delays the command to run 0.1 seconds in the future, giving time for the leHiSearch to start and create the form. This allows the command to work for a defined or undefined form.

    Thus:
    hiRegTimer("myVar = le0ContactForm->delX->value" 1) leHiCreateContact()

    However, for this specific case, it sounds like what you really need is one of these commands:

    leGetContactDefaultParam(cellViewId)
    leGetContactParam(instId)
    leGetContactRule(cellViewId)

    Look these up in the documentation to find their return values.

    Derek

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • lrl12skdev
    lrl12skdev over 14 years ago

     Hi Derek,

    Many thanks for your reply. I am glad you understand very well from the short description I had given. However I don't think that it is a problem with timing/delays because the function I have written is interactive. I used enterbox function to get two points from the user then it will fit into this box the requested via instance. It is also a possibility that I may not want to use the default parametrs of a via, for example I might want to increase the spacing of vias for more relax via density so I don't know at the moment how to benefit from the three functions you have mentioned.

    The code is functioning, just lately I receive some report from colleagues of error and it turns out that it malfunctions only when called in layout editor session where there is no history of using/doing create contact command.

    best regards

    lrlsk

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

    The hiRegTimer will solve your problem. You said "it malfunctions only when called in layout editor session where there is no history of using/doing create contact command". The hiRegTimer can ensure the form is created before you access it. If you call leHiCreateContact to open the form, your skill will not continue to the commands that access the form until the form itself is canceled. If you only need it to exist, you can do this:

    unless(boundp('le0ContactForm)
      hiRegTimer("cancelEnterFun(le0ContactForm)" 1) leHiCreateContact()
    )

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • lrl12skdev
    lrl12skdev over 14 years ago

    Hi Derek,

     Thank you very much for your help. It works and it was really great. I never thought it would be as simple as that. Its really good we have this kind of forum.

    best regards,

    lrlsk

    • 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