Home > Community > Forums > Custom IC SKILL > modify corner of rod object

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

 modify corner of rod object 

Last post Thu, Oct 4 2012 12:58 PM by Michael2b. 5 replies.
Started by Dexter073 07 Jul 2011 01:29 AM. Topic has 5 replies and 1971 views
Page 1 of 1 (6 items)
Sort Posts:
  • Thu, Jul 7 2011 1:29 AM

    • Dexter073
    • Not Ranked
    • Joined on Wed, Jul 6 2011
    • Posts 2
    • Points 25
    modify corner of rod object Reply

    How can I use the leModifyCorner to a rectangle (or polygon) created by a ROD object? If only a databse object can be modifed by leModifyCorner; is it possible to first create a polygon object, modify the corner, and somehow convert it to a ROD object? I need ROD objects for aligning.

    I tried this sample code:

    pcDefinePCell(
    list( ddGetObj( "my_library") "my_cell_view" "layout")

    (
    ( w 1.44)
    ( l 2.14)
    (polyoffx 0.94)
    (polyoffy 0.2)
    (poly_length 1)
    (poly_width 1)

    (polyLayer "POLY")
    (activeLayer "ACTIVE")
    );end of default values

     ;Define contents of the pcell

    let((poly active)

    poly= rodCreatePolygon(
    ?layer list(polyLayer "drawing")

    ?pts list( 0:0 poly_length:0 poly_length:poly_width 0:poly_width )
    )
    leModifyCorner( poly list(t t t t) t 0.1 4)  ; compains poly is not a  database object

    active = rodCreateRect(
    ?layer list(activeLayer "drawing")
    ?pts list( 0:0 l:0 l:w 0:w )
    )

    leModifyCorner( active list(t t t t) t 0.1 4)  ; compains active is not a  database object

    rodAlign(
    ?alignObj active
    ?alignHandle "lowerLeft"
    ?refObj poly
    ?refHandle "lowerLeft"
    ?xSep polyoffx
    ?ySep polyoffy
    )

    )

    )

    Many thanks in advance. Kindly provide a small code (or modify the existing) to make it work; I am still a newbie..

    • Post Points: 20
  • Thu, Jul 7 2011 1:43 AM

    Re: modify corner of rod object Reply

    You'd have to use active~>dbId to get the database id that leModifyCorner needs as its first argument.

    HOWEVER you must not use leModifyCorner in a pcell. It's not a legal function to use in a pcell; only core SKILL, and functions with db, dd, tech, cdf, rod and a few pc functions are legal in pcells. This is because they must be available in standalone programs that access the database (for example, the stream interface, Cadence physical verification tools, and ITK DB applications); these applications will not have the layout editor functions built in. So you'd find that it works in Virtuoso, but as soon as you try to access the database outside of a tool with the layout editor built in, you'll get a pcell-eval failure. This can be worked around in IC61 using express pcells (which allows Virtuoso to build a snapshot of each variant to avoid needing reevaluation in external tools, but you would need to be careful to ensure that this is setup consistently for all users).

    You'd have to write your own function to chamfer the corners (not actually that difficult, particularly for a rectangle.

    Regards,

    Andrew.

    • Post Points: 35
  • Thu, Jul 7 2011 2:03 AM

    • Dexter073
    • Not Ranked
    • Joined on Wed, Jul 6 2011
    • Posts 2
    • Points 25
    Re: modify corner of rod object Reply

    Thank you so much Andrew; it works with the suggestion you have given. However, as you suggested, I will try to write a function to chamfer corners to avoid problems. Thanks!

    • Post Points: 5
  • Thu, Oct 4 2012 12:36 PM

    • Michael2b
    • Not Ranked
    • Joined on Thu, May 17 2012
    • Baltimore, MD
    • Posts 3
    • Points 30
    Re: modify corner of rod object Reply

    Do you have have a SKILL function to chamfer the corners of a rectangle in a pcell?

    Blessings, Michael
    • Post Points: 20
  • Thu, Oct 4 2012 12:48 PM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,567
    • Points 15,575
    Re: modify corner of rod object Reply

     Hi Michael,

    To my knowledge there is not a single SKILL function to do this which would work within a PCell.  I am looking into this, at least for the rounded corner case.  Do you need a straight-line chamfer?  If so you can create some triangles over the corners on another (temporary) layer and then use something like dbLayerAndNot with these shapes and the original rectangle to create a new shape with those corners chamfered/removed.

    If I write any code for this I will post it.

    Regards,

    Lawrence.

    • Post Points: 20
  • Thu, Oct 4 2012 12:58 PM

    • Michael2b
    • Not Ranked
    • Joined on Thu, May 17 2012
    • Baltimore, MD
    • Posts 3
    • Points 30
    Re: modify corner of rod object Reply

    Thanks Lawrence,

    I do not need a stright-line chamfer. I am using IC5.1.41 and I need to create a bond pad pcell with rounded corners.

     

    Michael

    Blessings, Michael
    • Post Points: 5
Page 1 of 1 (6 items)
Sort Posts:
Started by Dexter073 at 07 Jul 2011 01:29 AM. Topic has 5 replies.