specifying default symbolic contact

Discussion in 'Cadence' started by danmc, Feb 15, 2006.

  1. danmc

    danmc Guest

    I have a tech file which defines various symbolic contacts with
    symContactDevice:

    symContactDevice(
    ; (name viaLayer viaPurpose layer1 purpose1 layer2 purpose2
    ; w l (row column xPitch yPitch xBias yBias) encByLayer1 encByLayer2
    legalRegion)

    ; contact defines here
    )


    There are a couple of metal layers that have more than once choice for
    connecting vias. The choice of which is the correct one depends on how
    many layers of metal you're using.

    My question is there anything you can put in a .cdsinit or .cdsenv to
    specify which symbolic contact should be prefered. In other words if
    I'm doing a layout with 3 metal layers and routing with paths, I want
    to automatically have the 2-3 via with top metal rules picked. If I'm
    doing a layout with 4 metal layers, I want to automatically have the
    2-3 via with lower metal rules picked.

    Can the default be picked without modifying the tech file?

    Thanks
    -Dan
     
    danmc, Feb 15, 2006
    #1
  2. danmc

    danmc Guest

    I've tried this:

    techId = techGetTechFile(ddGetObj("myLibName"))
    techSetDeviceProp( techId "VIA34_TOP" "symbolic" list("defaultVia" t))

    but I end up with:

    *WARNING* Failed to reopen cellView (VIA34_TOP symbolic), Permission
    denied
    *WARNING* Cannot open cellview in append mode: can't add property to
    device, VIA34_TOP.

    which is no suprise because "myLibName" is the PDK library and as a
    user I can't (and shouldn't) write to it. It seems like something like
    the "effective" CDF is needed where I can add the defaultVia (is that
    even the right property) in my running cadence session with out writing
    to the pdk.

    Any ideas?

    -Dan
     
    danmc, Feb 15, 2006
    #2
  3. Dan,

    There's a solution which covers this partly - see http://sourcelink.cadence.com
    and search for solution 11002496 .

    If the vias already have the defaultVia property on them, you can use:

    envSetVal("layout" "useDefaultVia" 'boolean t)

    but I think you'll have problems with setting the defaultVia property if it
    doesn't already exist. The tech file can be modified in memory only, but in this
    case a cellView is created for the via, and that needs to be updated. At
    a pinch you might be able to do:

    cv=dbOpenCellViewByType("libName" "VIA34_TOP" "symbolic" "" "s")

    first - to open the via in scratch mode. However, it's quite likely that it will
    still try to open the symbolic device in append mode...

    Better to actually fix the PDK!

    Regards,

    Andrew.
     
    Andrew Beckett, Feb 16, 2006
    #3
  4. danmc

    danmc Guest

    yeah, opening in scratch mode first doesn't do it.

    So what does it actually mean to "fix the PDK"? Can a tech file have
    switches in it? It seems that if I set the defaultVia property on, for
    example VIA34_TOP, that will be fine until someone does a design with 5
    layers of metal in which case VIA34 would be the correct default.

    Or are you saying I should add the defaultVia property to all the
    possible symbolics (possibly setting the value to nil) and then a user
    can change the property?

    -Dan
     
    danmc, Feb 16, 2006
    #4
  5. Hi Dan,

    No, I think you can only have one default for each layer combination. I don't
    know how to handle the situation you describe - that's a good question...

    Best thing is to log a service request with customer support - it may need an
    enhancement (or somebody who has time to research it properly ;-> )

    Regards,

    Andrew.
     
    Andrew Beckett, Feb 16, 2006
    #5
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.