Home > Community > Forums > Custom IC SKILL > How to specify coords for leHiCreateInst() ?

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 How to specify coords for leHiCreateInst() ? 

Last post Mon, Jun 24 2013 1:30 PM by Andrew Beckett. 6 replies.
Started by jaleco 11 Feb 2013 10:46 AM. Topic has 6 replies and 1209 views
Page 1 of 1 (7 items)
Sort Posts:
  • Mon, Feb 11 2013 10:46 AM

    • jaleco
    • Top 100 Contributor
    • Joined on Wed, Mar 21 2012
    • Albuquerque, NM
    • Posts 74
    • Points 1,060
    How to specify coords for leHiCreateInst() ? Reply

     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.

     

    • Post Points: 20
  • Mon, Feb 11 2013 11:32 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,576
    • Points 15,725
    Re: How to specify coords for leHiCreateInst() ? Reply

    Hi James,

    Yes, you can use preXY() to specify a point before a command (such as leHiCreateInst()) to enter the point in a queue. This should do what you are asking I think.

    Best regards,

    Lawrence.

    • Post Points: 5
  • Mon, Feb 11 2013 11:36 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,576
    • Points 15,725
    Re: How to specify coords for leHiCreateInst() ? Reply

    And, if you are asking about this interactively (rather than 'scripted') then you can just enter the coordinates in the CIW, e.g. 0:0 or "list(0 0)".  So, in short, if you are running a command interactively then you can typically supply one or more pairs of coordinates in the CIW, but if you are trying to use a scripted flow (such as in a regression suite) then you might use preXY() before a command.

    Regards,

    Lawrence.

    • Post Points: 20
  • Mon, Feb 11 2013 12:04 PM

    • jaleco
    • Top 100 Contributor
    • Joined on Wed, Mar 21 2012
    • Albuquerque, NM
    • Posts 74
    • Points 1,060
    Re: How to specify coords for leHiCreateInst() ? Reply

     Thank you Lawrence,

    Can you offer any code to successfully execute the preXY() cmd before a command such as leHiCreateInst() in a script?

    If I type these commands in the CIW successively, preXY() accepts my supplied coordinates, but they seem to be disregarded by the leHiCreateInst() command following....leHiCreateInst() seems intent on waiting for a user click - although I can successfully (re)type the coordinates into the CIW for Create Instance to accept.  (That in itself is very helpful though.)

    Ideally I would love to have the X and Y coords added to the Create Inst form, or any similar form.  I could create a form that has coordinate fields but do not know how to pass these to the Create Instance command if it does not seem to accept them via CIW....

    - James

    • Post Points: 20
  • Mon, Feb 11 2013 2:03 PM

    Re: How to specify coords for leHiCreateInst() ? Reply
    If typing in the CIW, put the preXY on the same line as leHiCreateInst. Note that this will only work if the form is already completed (ie the lib/cell/view is filled in).

    Otherwise perhaps you're better off using dbCreateInst?

    Andrew
    • Post Points: 20
  • Thu, Jun 20 2013 7:59 AM

    • jaleco
    • Top 100 Contributor
    • Joined on Wed, Mar 21 2012
    • Albuquerque, NM
    • Posts 74
    • Points 1,060
    Re: How to specify coords for leHiCreateInst() ? Reply

    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

    • Post Points: 20
  • Mon, Jun 24 2013 1:30 PM

    Re: How to specify coords for leHiCreateInst() ? Reply

    James,

    You could use dbCreateSimpleMosaic if you want to create an array rather than a single instance.

    Regards,

    Andrew.

    • Post Points: 5
Page 1 of 1 (7 items)
Sort Posts:
Started by jaleco at 11 Feb 2013 10:46 AM. Topic has 6 replies.