Sampling Non Manhattan shapes

Discussion in 'Cadence' started by Kholdoun TORKI, Aug 7, 2007.

  1. I found this way to sample non Manhattan shapes to a certain grid.
    The Diva deck below has this grid set to 0.1u

    Is there a more efficient method, or a function that does this ?


    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; This code runs under Diva/DRC (IC 5.1.41)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    (drcExtractRules
    ivIf((switch "drc?") then

    MET1 = geomGetPurpose("MET1" "drawing")

    ; Non-Manhattan borders extended to 0.1u inside the structure
    badedge_int = geomSize(geomGetNon45( "MET1" ) -0.1)

    ; Non-Manhattan borders extended to 0.1u outside the structure
    badedge_ext = geomSize(geomGetNon45( "MET1" ) 0.1)

    ; Band structure surrounding the Non-Manhattan borders
    badedge = geomOr(badedge_int badedge_ext)

    ; Just to show the Non-Manhattan borders
    saveDerived(badedge ("y0" "drawing"))

    ; This function is slow for large structures
    MET1_snap_ext = drc(badedge_int badedge coverage < 0.99 windowSize(0.1)
    stepSize(0.1))

    ; Structures with Non-Manhattan shapes sampled to 0.1u
    MET1_snap = geomNot(MET1_snap_ext)

    ; Final structure
    MET1_snap1 = geomAnd(MET1_snap MET1)

    ; Delete the original structures
    geomErase("MET1" "drawing")

    ; Save the final structure
    saveDerived( MET1_snap1 ("MET1" "drawing"))

    )
    )
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    Regards,

    ======================
    Kholdoun TORKI
    CMP
    http://cmp.imag.fr
    ======================
     
    Kholdoun TORKI, Aug 7, 2007
    #1
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.