5141 Double Via while using Path command

Discussion in 'Cadence' started by PolyPusher, Jun 25, 2009.

  1. PolyPusher

    PolyPusher Guest

    Hi,

    I am trying to both change the "default" via used during metal
    transitions while using the path command(ie, start on m1, transition
    to m2 and via is placed) AND require a doubl via.

    I found the below in a previous post, but I am having issues. I
    assumed I can just load the code into the CIW:

    define(class ALLNETS *)
    #
    circuit class ALLNETS(use_via v12 v23m (use_array v12 1 2 ) (use_array
    v23m 1 2))
    #
    set enforce_use_array_rule on

    .....and this would change the default via AND require a 1 by 2 row and
    column, but I get syntax errors that I don't understand when loading
    into the CIW.

    OR if just defining double via at specific width, no change of vias
    used:

    rule layer met1(minimumcut(width 1.0 numcuts 2)(width 2.0 numcuts
    3))

    Is this info just for the router? I am trying to change the cuts and
    vias used with transitioning with the Path Command.

    Thank you for any help in advance,
    Eric





    ======================previous post info==============================
    define (class ALLNETS *)
    #
    circuit class ALLNETS (use_via M2_M1 M3_M2 M4_M3 (use_array M2_M1 1
    2 )
    (use_array M3_M2 1 2) (use_array M4_M3 1 2))
    #
    set enforce_use_array_rule on


    Looks remarkably similar. I'm not sure I've told you this before, so
    perhaps it
    came from me to another AE to you...


    Of course the difference is the wildcard for the net names.


    Regards,


    Andrew.


    --
    Andrew Beckett
    Senior Solution Architect - Cadence Design Systems Ltd (UK)




    Reply Reply to author Forward Rate this post: Text
    for clearing space







    You must Sign in before you can post messages.
    To post a message you must first join this group.
    Please update your nickname on the subscription settings page before
    posting.
    You do not have the permission required to post.



    Rajesh View profile
    More options May 8, 1:32 am

    Newsgroups: comp.cad.cadence
    From: Rajesh <>
    Date: Thu, 7 May 2009 23:32:13 -0700 (PDT)
    Local: Fri, May 8 2009 1:32 am
    Subject: Re: Wire editor 5141 double via
    Reply | Reply to author | Forward | Print | Individual message | Show
    original | Report this message | Find messages by this author
    I would suggest to use the minimumcut rule which can place more
    number
    of via's based on width of the wire.

    rule layer metal1 (minimumcut (width 1.0 numcuts 2) (width 2.0
    numcuts 3))


    The example above means that at least 2 cuts are needed for any
    connection to metal1 wires or pins that are greater than 1.0 microns
    wide and 3 cuts are needed for connections greater than 2.0 microns
    wide. The assumption is that number of cuts is increasing as width
    increases.


    This won't be restricted to a particular net because it is based on
    layer rule.


    Note: This works on releases later than IC5141USR2.


    Regards,
     
    PolyPusher, Jun 25, 2009
    #1
  2. PolyPusher

    Marc Heise Guest

    Hi Eric,

    these rules are for the VCAR router. In 5.1.41 if you use VXL you can
    use the so called "Wire Editor" which is basically VCARs interactive
    routing engine. You have to write these rule commands into a file
    (double.rule) and load that file via the Options->Router (or Wire
    Editor, I am working out of my head here).

    Marc
     
    Marc Heise, Jun 26, 2009
    #2
  3. PolyPusher

    PolyPusher Guest

    Hi,

    I am interested in changing the Create Path Command behavior only, I
    am not sureif "Wire Editor" applies. I have found the method to
    change which via is the default, userVia. However, I am still trying
    to find a way to enforce a Minimum of Two Vias despite the wire
    width. I realize this sometimes will cause DRCs, but are team uses
    Double Vias as a minimum on most routes. Everything is hand routed,
    we do not use routers.

    Thank you in advance for any help,
    Eric


    userVia

    layout userVia string { name_of_any_valid_via | nil }

    Description

    Specifies the which via is selected during path stitching using the
    Create - Path command or when adding a contact using the Auto Contact
    field on the Create - Contact command. When the environment variable
    useDefaultVia is set to t, the via is selected in the following order:
    the default via for the two layers, the via for the two layers
    specified by userVia, the first valid via defined in the technology
    file for the two layers, or no via if no valid via is defined in the
    technology file for the two layers. When useDefaultVia is set to nil,
    the via is selected in the following order: the via for the two layers
    specified by userVia, a list of valid vias defined in the technology
    file for the two layers, or no via if no valid via is defined in the
    technology file for the two layers. You can override the technology
    file default via by setting useDefaultVia to nil and userVia to the
    required via. If userVia is set to nil, the setting of useDefaultVia
    will be used. The default is nil.

    GUI Equivalent:

    Command


    n/a

    Form Field


    n/a

    Setting Method:

    envSetVal

    example
    envSetVal( "layout" "userVia" 'string "v12"
     
    PolyPusher, Jun 26, 2009
    #3
  4. PolyPusher

    Marc Heise Guest

    In this case you need to define the double cut in the techfile and make
    it the default. So instead of:

    (M1_M2 via1 drawing metal1 drawing metal2 drawing
    0.25 0.25 (1 1 0.5 0.5 center center) 0.1 0.1 _NA_)

    you do:

    (M1_M2 via1 drawing metal1 drawing metal2 drawing
    0.25 0.25 (1 2 0.5 0.5 center center) 0.1 0.1 _NA_)
     
    Marc Heise, Jul 13, 2009
    #4
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.