• 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 specify coords for leHiCreateInst() ?

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 15540
  • 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 specify coords for leHiCreateInst() ?

jaleco
jaleco over 12 years ago

 Is there any way to either add coordinates to or pass coordinates to leHiCreateIns() without clicking in the interface?

I would like to place instances generally at the origin, but often at other known coordinates, and would like to do so without first zooming in close enough to get an exact snapped coordinate, or alternatively by clicking at a random location to place, and then having to select the instance, get its properties, and finally specify the correct coordinate location.

Any insight into streamlining this or if there is a script to do it would be much appreciated.

 

  • Cancel
Parents
  • jaleco
    jaleco over 12 years ago

    Thanks Andrew and Lawrence for your suggestions.

    Typing coords in the CIW is good for one-time instance placement at random spec'd coordinates.

    However, I realized that the majority of the time I am creating a new layout view, I place an instance at the origin, and typing (0:0) in the CIW got old, so I found a solution to automate it by assigning a bindkey to the addPoint() function.  Here is some sample code:

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Create new instance procedure to redefine the "o" key
    ; so an instance can be placed at the origin
      
    procedure( SNLhiCreateInstO()
     hiSetBindKey("Layout" "<Key>o" "addPoint((0:0))")
     leHiCreateInst()
     hiSetBindKey("Layout" "<Key>o" "leHiCreateContact()")
    ); procedure

    hiSetBindKey("Layout" "<Key>i" "SNLhiCreateInstO()")

    I have re-defined the "i" bindkey to call a custom hiCreateInst() function, which re-assigns the "o" key to add a point at the origin.  Once the CreateInst form is closed, the "o" key is re-assigned to its standard function of leHiCreateContact().  Between the option of typing a coordinate list to the CIW and having a bindkey for the most-often used coordinates, this is working pretty well for me.

    BTW, Andrew, I did look into using dbCreateInst, but it lacks the array and spacing functionality (parameters) of the leHiCreateInst form, so not as powerful an option.  For example I could create an instance at specified coordinates using dbCreateInst, but could not create an array instance of a unit cell unless I use the leHiCreateInst form.

    Thanks again!

    - James

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • jaleco
    jaleco over 12 years ago

    Thanks Andrew and Lawrence for your suggestions.

    Typing coords in the CIW is good for one-time instance placement at random spec'd coordinates.

    However, I realized that the majority of the time I am creating a new layout view, I place an instance at the origin, and typing (0:0) in the CIW got old, so I found a solution to automate it by assigning a bindkey to the addPoint() function.  Here is some sample code:

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; Create new instance procedure to redefine the "o" key
    ; so an instance can be placed at the origin
      
    procedure( SNLhiCreateInstO()
     hiSetBindKey("Layout" "<Key>o" "addPoint((0:0))")
     leHiCreateInst()
     hiSetBindKey("Layout" "<Key>o" "leHiCreateContact()")
    ); procedure

    hiSetBindKey("Layout" "<Key>i" "SNLhiCreateInstO()")

    I have re-defined the "i" bindkey to call a custom hiCreateInst() function, which re-assigns the "o" key to add a point at the origin.  Once the CreateInst form is closed, the "o" key is re-assigned to its standard function of leHiCreateContact().  Between the option of typing a coordinate list to the CIW and having a bindkey for the most-often used coordinates, this is working pretty well for me.

    BTW, Andrew, I did look into using dbCreateInst, but it lacks the array and spacing functionality (parameters) of the leHiCreateInst form, so not as powerful an option.  For example I could create an instance at specified coordinates using dbCreateInst, but could not create an array instance of a unit cell unless I use the leHiCreateInst form.

    Thanks again!

    - James

    • 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