Home > Community > Forums > Custom IC SKILL > Single Via Contact to Double Via Contact

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: *

 Single Via Contact to Double Via Contact 

Last post Wed, Feb 6 2013 6:40 AM by Arnaud31. 10 replies.
Started by zeroskills 04 Feb 2010 08:10 PM. Topic has 10 replies and 4514 views
Page 1 of 1 (11 items)
Sort Posts:
  • Thu, Feb 4 2010 8:10 PM

    Single Via Contact to Double Via Contact Reply

    Hello,

    Our default Via Contact is only single when instanciated, is it possible to have a skill code that can be attached to a bindkey that when a Via Contact is instanciated, it will be doubled?

    Instead of using Window or Bindkey - "Create Contact" to double or multiple contact by changing Row or Column, is it possible to have a code when used with a bindkey automatically call a M1M2 Via Contact 1x2?

    • Post Points: 20
  • Fri, Feb 5 2010 10:47 AM

    • babji
    • Top 500 Contributor
    • Joined on Thu, Apr 23 2009
    • hyderabad, Andhra Pradesh
    • Posts 24
    • Points 360
    Re: Single Via Contact to Double Via Contact Reply

    For IC5.1.41,

     

    If you have access to sourcelink then Solution ID:11115668 would be good start.

     

    or  

    Please make the following changes in the ".cdsenv" file to achieve the desired.
     
    1)  layout contactDefFromTechfile boolean nil
    2) layout contactColumns int 2
     
    Similarly you can use the below variables to do various default settings on the form :
    layout contactColumns int 2
    layout contactDefFromTechfile boolean nil
    layout contactDelX float 0.0  
    layout contactDelY float 0.0  
    layout contactResetDelXY boolean t  
    layout contactResetXYBias boolean t  
    layout contactResetRowCol boolean t  
    layout contactRows int 3  
     
    For details on the envsetval function please refer the below doc :
    http://sourcelink.cadence.com/docs/files/Release_Info/Docs/skuiref/skuiref5.0/skuiref.pdf

    • Post Points: 35
  • Fri, Feb 5 2010 9:34 PM

    Re: Single Via Contact to Double Via Contact Reply

    Thanks. I did found the same solution afterwards, at first my .cdsenv wasn't loading properly so i thought something wrong until i load it directly from my .cdsinit.

    Thanks for the help. 

    On the same question,

    is it possible to  instanciate directly  a via contact without  opening or using  the "create contact"tool? for instance, by pressing "ctrl + 1" bindkey, i can instanciate a m1m2 via directly.

    • Post Points: 20
  • Mon, Feb 8 2010 8:41 AM

    • babji
    • Top 500 Contributor
    • Joined on Thu, Apr 23 2009
    • hyderabad, Andhra Pradesh
    • Posts 24
    • Points 360
    Re: Single Via Contact to Double Via Contact Reply

    There are many ways we can automate this. most simple ways would be

     dbCreateSimpleMosaicByMasterName( deGetCellView()

                                                techGetTechLibName( ddGetObj( deGetCellView()->libName ))

                                                "via2"

                                                "symbolic"

                                                nil

                                                enterPoint()

                                                "R0"

                                                1

                                                 2

                                                 1.26

                                                 1.26

                )

     

    or

     

    procedure( ViaCreate( viaName )

    let( ( via2 llx lly urx ury ) 

     via2=dbOpenCellViewByType(

                                                techGetTechLibName( ddGetObj( deGetCellView()->libName ))

                                                viaName

                                                "symbolic"

                                        )

     urx = xCoord( upperRight( via2->bBox ))

     ury = yCoord( upperRight( via2->bBox ))

     llx = xCoord( lowerLeft( via2->bBox ))

     lly = yCoord( lowerLeft( via2->bBox ))

     dbCreateSimpleMosaic(

                        deGetCellView()

                        via2

                        nil

                        enterPoint()

                        "R0"

                         2

                         2

                        urx-llx

                        ury-lly

                )

    dbClose( via2) 

    );let

    );proc 

    Bind this to ctrl+ bindkeys. 

     

    or

     

    Auto-Contact feature is sufficient most of the times. In IC6 it works for paths & polygons. 

     

    • Post Points: 20
  • Mon, Feb 8 2010 10:39 PM

    Re: Single Via Contact to Double Via Contact Reply

    Thanks Babji,

     

    I tried your 1st code. i guess there's missing something, it's not working.

    I relpaced "libName" - "our libName" (where the via is) and "via2" - "MT_AM" (which is the via i wanted to use)

    I also added this bindkey to the code: 

    hiSetBindKey("Layout" "Shift<Key>i" "dbCreateSimpleMosaicByMasterName()"

     

    Your 2nd code,

    same thing, i changed "libName" - "our libName" (where the via is), viaName - "MT_AM" (which is the via i wanted to use).

     

     

    • Post Points: 20
  • Tue, Feb 9 2010 8:08 PM

    • babji
    • Top 500 Contributor
    • Joined on Thu, Apr 23 2009
    • hyderabad, Andhra Pradesh
    • Posts 24
    • Points 360
    Re: Single Via Contact to Double Via Contact Reply

     

     Hi,

     

    Do this..

     

      procedure( ViaCreate( viaName )
     dbCreateSimpleMosaicByMasterName( deGetCellView()

                                       techGetTechLibName( ddGetObj( deGetCellView()->libName ))

                                       viaName

                                       "symbolic"

                                       nil

                                       enterPoint()

                                       "R0"

                                                1
                                                2
                                                3.24
                                                1.26
                                                  )
     );procedure

     hiSetBindKey("Layout" "Shift<Key>i" "ViaCreate( \"MT_AM\" )" )

     Yes you will get 2 vias when flattened. Obvious since you are placing an array of vias. I don't know how to place vias similar to  "Create Contact...".

    • Post Points: 20
  • Tue, Sep 20 2011 8:48 AM

    • PSRK
    • Not Ranked
    • Joined on Fri, Jan 21 2011
    • BANGALORE, Karnataka
    • Posts 9
    • Points 165
    Re: Single Via Contact to Double Via Contact Reply

     

    Hi,

     I'm using the below constraint in the vcar rules file  before exporting. The VCAR is placing single via while routing

        list( '("tsmc18rf" "M2_M1" "symbolic") t)

    But I dont know the rule to keep double contact/via in the router .Please help me.

     

    Thanks,

    Siva

    • Post Points: 20
  • Tue, Sep 20 2011 12:10 PM

    • harris3
    • Not Ranked
    • Joined on Tue, Jan 27 2009
    • Posts 2
    • Points 25
    Re: Single Via Contact to Double Via Contact Reply

    Siva,

     I don't know about adding a constraint before starting the router.  I load a ".do" file in the router to make the routing of all of the nets use a 2x1 via array.  The do file contains the following command:

    select all nets
    define (class allnets (selected))
    unselect all nets
    circuit class allnets (use_via (use_array M2_M1 2 1))

    -Phil

    • Post Points: 5
  • Thu, Jan 31 2013 2:23 AM

    • Arnaud31
    • Not Ranked
    • Joined on Thu, Jan 31 2013
    • Posts 2
    • Points 25
    Re: Single Via Contact to Double Via Contact Reply

      Hello,

     Searching how to have automatically double via with "create contact" tool, I found this forum and your solution. I've added the two lines as you explained and now I have automatically double via. Very good solution and easy change.

     But now, if I instanciate a M2M1 contact and then a M1Poly contact which contact spacing is different, the deltaX and Y are not updated as before. For information, the width and the length are automatically updated.

    Is it possible to have both automatically double via and the delta X/Y updated automatically?

       Thank you for your help.

    • Post Points: 20
  • Fri, Feb 1 2013 8:17 AM

    Re: Single Via Contact to Double Via Contact Reply

    It's not clear which version you're using or which "two lines" you are referring to (to me anyway).

    I don't really understand your problem. Probably best to start a new thread rather than appending to an old one (as the Forum Guidelines clearly advise you not to do).

    Andrew

    • Post Points: 20
  • Wed, Feb 6 2013 6:40 AM

    • Arnaud31
    • Not Ranked
    • Joined on Thu, Jan 31 2013
    • Posts 2
    • Points 25
    Re: Single Via Contact to Double Via Contact Reply

       Hello Andrew,

     I understand that a new discussion would be better but my problem is the same as explained one in this old topic and my message was a reply of  Babji one posted the 5th of february 2010.

     I will try to be clear.

    First, I use IC5.1.41.

    My question : Default via contacts are single when instanciated with Create Contact tool. Is there an easy solution to have automatically double via contact when instanciated?

    Solution : in this discussion, Babji suggested to make the following changes in the ".cdsenv" file.
    1) layout contactDefFromTechfile boolean nil
    2) layout contactColumns int 2

    So I did it from my .cdsinit and I have automatically double via but now if I change the contact type which contact spacing is different, the Delta X and Delta Y parameters are not updated to follow the technology rules.

    New question : is it possible to have automatically double via contact when instanciated with Create Contact tool without changing the other parameters that follow technology rules?

     

      Thank you for your help.

    • Post Points: 5
Page 1 of 1 (11 items)
Sort Posts:
Started by zeroskills at 04 Feb 2010 08:10 PM. Topic has 10 replies.