Home > Community > Forums > Custom IC SKILL > Can we draw mutlipath different width and spacing at the same time?

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

 Can we draw mutlipath different width and spacing at the same time? 

Last post Thu, Mar 12 2009 6:48 AM by dmay. 5 replies.
Started by Manu81 10 Mar 2009 10:53 PM. Topic has 5 replies.
Page 1 of 1 (6 items)
Sort Posts:
  • Tue, Mar 10 2009 10:53 PM

    • Manu81
    • Top 500 Contributor
    • Joined on Fri, Mar 6 2009
    • Posts 16
    • Points 260
    Can we draw mutlipath different width and spacing at the same time? Reply
    Can we draw mutlipath different width and spacing at the same time?
    • Post Points: 20
  • Wed, Mar 11 2009 8:15 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,426
    • Points 13,215
    Re: Can we draw mutlipath different width and spacing at the same time? Reply
    Hi,

    Yes, with a multipart path the "offset sub paths" can certainly have different widths and separation from the master path.  Here is a brief section from the documentation on the rodCreatePath() SKILL function that you use to create a multi-part path:

    rodCreatePath(
            [?name              S_name]
            ?layer              txl_layer
            [?width             n_width]
            [?pts               l_pts]
            [?justification     S_justification]
            [?offset            n_offset]
            [?endType           S_endType]
            [?beginExt          n_beginExt]
            [?endExt            n_endExt]
            [?choppable         g_choppable]
            [?cvId              d_cvId]
            [?fromObj           Rl_fromObj]
            [?size              txf_size]
            [?startHandle       l_startHandle]
            [?endHandle         l_endHandle]
            [?prop              l_prop]
    
            [?offsetSubPath     l_offsetSubpathArgs...]
            ;l_offsetSubpathArgs Offset Subpath Arguments
            list(
                    list(
                            ?layer            txl_layer
                            [?width           n_width]
                            [?sep             n_sep]
                            [?justification   S_justification]
                            [?beginOffset     n_beginOffset]
                            [?endOffset       n_endOffset]
                            [?choppable       g_choppable]
                            [?prop            l_prop]
                            ;Repeat ROD Connectivity Arguments here
                            ) ;End of first offset subpath list
                            ...
                    ) ;End of offset subpath lists
            ;End of l_offsetSubpathArgs
    
    ) ; end rodCreatePath
    => R_rodObj | nil
    

     I have included the arguments for the ?offsetSubPath keyword of rodCreatePath so that you can see how they are specified. It is a list of lists structure, each sublist refers to one offset sub path, but there can be multiple offset subpaths.

    I hope that this answers your question.

    Regards,

    Lawrence.

    • Post Points: 50
  • Wed, Mar 11 2009 9:19 PM

    • Manu81
    • Top 500 Contributor
    • Joined on Fri, Mar 6 2009
    • Posts 16
    • Points 260
    Re: Can we draw mutlipath different width and spacing at the same time? Reply
    Thanks Lawerence, tere is one sample code given for shielding in Virtuoso® Relative Object Design User Guide. Will refer there too.Regards, Manu
    • Post Points: 5
  • Thu, Mar 12 2009 4:07 AM

    • Manu81
    • Top 500 Contributor
    • Joined on Fri, Mar 6 2009
    • Posts 16
    • Points 260
    Re: Can we draw mutlipath different width and spacing at the same time? Reply
    this is what I have written...: ; create a shielded path procedure( shielded() cv=geGetEditCellView() errset( (let (cv layer purpose list_draw_layer tech width1 tfId) cv= geGetEditCellView() layer = car(leGetEntryLayer()) ;displays layer on LSW is taken purpose = cadr(leGetEntryLayer()); displays drawing or pin on the selected lsw list_draw_layer =list( layer purpose ) tech = techGetTechFile(geGetWindowCellView()); rule deck file id is stored in tech width1 = techGetSpacingRule(tech "minWidth" layer) ; the minimum width is stored in width1 rodCreatePath( ?name "shielded" ?layer list( layer purpose ) ?pts list(2:-15 2:-5 15:-5 15:-5) ?width .12 ?justification "center" ?cvId cv ?offsetSubPath list(list( list( ?layer list( layer purpose ) ?justification "left" ?sep .16 ?width .16 ) ;end of offset sublist1 list( ?layer list( layer purpose ) ?justification "right" ?sep .16 ?width .16 ) ;end of offset sublist2 ) ;end of offset list of lists ) ;end of rodCreatePath ) ; end of let t ) ; end of errset ) ; end of procedure what else needs to be done so that instead of the predefined values of metal layers and the width, spacing can be changed....
    • Post Points: 5
  • Thu, Mar 12 2009 4:18 AM

    • Manu81
    • Top 500 Contributor
    • Joined on Fri, Mar 6 2009
    • Posts 16
    • Points 260
    Re: Can we draw mutlipath different width and spacing at the same time? Reply

    Hi Lawerence,

    Request you to please see the code:

    ; create a shielded path
    procedure( shielded()
    cv=geGetEditCellView()
    errset(
    (let (cv layer purpose list_draw_layer tech width1 tfId)
    cv= geGetEditCellView()
    layer = car(leGetEntryLayer()) ;displays layer on LSW is taken
    purpose = cadr(leGetEntryLayer()); displays drawing or pin on the selected lsw
    list_draw_layer =list( layer purpose )
    tech = techGetTechFile(geGetWindowCellView()); rule deck file id is stored in tech
    width1 = techGetSpacingRule(tech "minWidth" layer) ; the minimum width is stored in width1

     rodCreatePath(
      ?name "shielded"
      ?layer list( layer purpose )
      ?pts list(2:-15 2:-5 15:-5 15:-5)
      ?width .12
      ?justification "center"
      ?cvId cv
      ?offsetSubPath
      list(
         list(
             ?layer list( layer purpose )
             ?justification "left"
             ?sep .16
             ?width .16
             ) ;end of offset sublist1
       list(
             ?layer list( layer purpose )
             ?justification "right"
             ?sep .16
             ?width .16

    ) ;end of offset sublist2
    ) ;end of offset list of lists
    ) ;end of rodCreatePath
    ) ; end of let
    t
    ) ; end of errset
    ) ; end of procedure

    I want to take the values from the from the user. Therefore, I have created form and passing the values to the variables. Now, wrt to the above programme, can you please tell me what changes I need to make in order to have user defined width and spacing.

     Regards,

    Manu

    • Post Points: 20
  • Thu, Mar 12 2009 6:48 AM

    • dmay
    • Top 10 Contributor
    • Joined on Thu, Jul 17 2008
    • Allen, TX
    • Posts 355
    • Points 6,615
    Re: Can we draw mutlipath different width and spacing at the same time? Reply

    If you add two arguments to your procedure and use them in place of the .16 values in your rodCreatePath, then your form can call this command with the user's width and space.

    procedure( shielded(width space)
    . . .
    ?sep space
    ?width width
    . . .

    I hope this helps.

    Derek

    • Post Points: 5
Page 1 of 1 (6 items)
Sort Posts:
Started by Manu81 at 10 Mar 2009 10:53 PM. Topic has 5 replies.