Home > Community > Forums > Custom IC SKILL > how to write 3 i/p AND gate in skill code

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

 how to write 3 i/p AND gate in skill code 

Last post Mon, Nov 4 2013 5:03 PM by RDRamirez. 5 replies.
Started by venuuuuu 14 Nov 2011 02:48 AM. Topic has 5 replies and 3830 views
Page 1 of 1 (6 items)
Sort Posts:
  • Mon, Nov 14 2011 2:48 AM

    • venuuuuu
    • Top 75 Contributor
    • Joined on Fri, Sep 30 2011
    • Hyderabad, Andhra Pradesh
    • Posts 84
    • Points 1,650
    how to write 3 i/p AND gate in skill code Reply

     hi all,

    1) i know the syntax for two input AND gate in layout as shown below.

    leLayerAnd(  cv     list("prBoundary"   "drawing")     list("NWELL"   "drawing" )  list("PWELL"    "drawing"))

      But i need more than 2 i/p AND gate syntax

      Let me know how to write it in skill. 

    Thank you, venu
    • Post Points: 20
  • Mon, Nov 14 2011 5:27 AM

    Re: how to write 3 i/p AND gate in skill code Reply

    You'd just need to call leLayerAnd twice:

    leLayerAnd(cv layer1 layer2 tmpLayer)
    leLayerAnd(cv tmpLayer layer3 resultLayer)

    And then you'll probably want to delete all the shapes on your temporary working layer. Often using layers such as y0-y9 are used for this kind of thing. It would be easy enough to write a wrapper around the leLayerAnd function which allowed you to do it for 3 layers (or even as many as you like, by breaking it down into pairwise steps and cleaning up the intermediate working layers as you go).

    Andrew.

    • Post Points: 35
  • Tue, Nov 15 2011 3:25 AM

    • venuuuuu
    • Top 75 Contributor
    • Joined on Fri, Sep 30 2011
    • Hyderabad, Andhra Pradesh
    • Posts 84
    • Points 1,650
    Re: how to write 3 i/p AND gate in skill code Reply

     thanks andrew,

    It's working now with all your help. Now iam trying to develop a skill code for fill the free space in my layout with substrate contacts. substrate tap consists of PWELL,PIMP,DIFF,METAL1,M1_DIFF contact. these layers are filled in layout  where there is no layers except prboundary. my code is

    cv = geGetWindowCellView()
    geSelectAllFig()
    ;for filling pwell where  nwell,metal1,poly,diff doesnot has.
    leLayerOr( cv list("DIFF" "drawing") list("MET1" "drawing") list("y0" "drawing"))
    leLayerOr( cv list("y0" "drawing") list("POLYG" "drawing") list("y1" "drawing"))
    leLayerOr( cv list("y1" "drawing") list("SDNW" "drawing") list("y2" "drawing"))
    leLayerAndNot( cv list("prBoundary" "drawing") list("y2" "drawing") list("SDPW" "drawing"))
    leLayerAndNot( cv list("prBoundary" "drawing") list("y2" "drawing") list("y3" "drawing"))

    ;for pdiff in pwell
    leLayerSize( cv list("y3" "drawing")  -.12  list("PIMP" "drawing"))
    leLayerSize( cv list("y3" "drawing")  -.2  list("DIFF" "drawing"))
    leLayerSize( cv list("y3" "drawing")  -.2  list("MET1" "drawing"))

    ;for deleting y0,y1,y2,y3 layers
    geDeselectAllFig()
    leSetEntryLayer( list("y0" "drawing"))
    leSetAllLayerVisible(nil)
    leSetEntryLayer( list("y1" "drawing"))
    leSetEntryLayer( list("y2" "drawing"))
    leSetEntryLayer( list("y3" "drawing"))
    geSelectAllFig()
    leHiDelete()
    leSetAllLayerVisible(t)


    i inserted pimp, diff, metal layers in free space. but i dont know how to get contacts on metal1 and diff. so please help me to do it. iam on cadence virtuoso 5.1 version

     thanks

    venu

    Thank you, venu
    • Post Points: 5
  • Thu, Oct 31 2013 3:09 PM

    • RDRamirez
    • Not Ranked
    • Joined on Thu, Oct 31 2013
    • Posts 6
    • Points 90
    Re: how to write 3 i/p AND gate in skill code Reply

     When I leLayerAnd together two layers when one of them are at a 45 degree you get a shape with a 45 degree. How can i modifiy the code to output only rectangles? The 45 degree shapes get cut off.

     y9Layer = leLayerAnd(cid firstMetName secondMetName list("y9" "drawing"))

    Thanks,

    Roger

    • Post Points: 20
  • Mon, Nov 4 2013 3:45 AM

    Re: how to write 3 i/p AND gate in skill code Reply

    Roger,

    How about this:

    tiledShapes=dbLayerTile(cid "y9" y9Layer)
    tiledShapes=setof(shape tiledShapes
      if(shape~>objType=="rect" then
        t
      else
        dbDeleteObject(shape)
        nil
      )
    )
    foreach(shape y9Layer dbDeleteObject(shape))
    y9Layer=dbLayerOr(cid "y9" tiledShapes)
    foreach(shape tiledShapes dbDeleteObject(shape))

    y9Layer will now contain a list of anded shapes, but with the 45-degree bits chopped off. Not sure if that's quite what you want? This works by tiling the shapes and then deleting any tiled shape that is not a rectangle. and then merging them all back together again.

    Regards,

    Andrew.

     

    • Post Points: 20
  • Mon, Nov 4 2013 5:03 PM

    • RDRamirez
    • Not Ranked
    • Joined on Thu, Oct 31 2013
    • Posts 6
    • Points 90
    Re: how to write 3 i/p AND gate in skill code Reply

     Thanks, Andrew - That worked great.

    Roger

    • Post Points: 5
Page 1 of 1 (6 items)
Sort Posts:
Started by venuuuuu at 14 Nov 2011 02:48 AM. Topic has 5 replies.