Home > Community > Forums > Custom IC Design > Problem building a slotted metal pcell

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

 Problem building a slotted metal pcell 

Last post Wed, Jul 18 2007 1:20 AM by archive. 5 replies.
Started by archive 18 Jul 2007 01:20 AM. Topic has 5 replies and 2159 views
Page 1 of 1 (6 items)
Sort Posts:
  • Wed, Jul 18 2007 1:20 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    Problem building a slotted metal pcell Reply

    Hi, I am trying to make a pcell that will create a big piece of metal with slots chopped out of it (for mechanical stress relief). I started with a prototype SKILL code that will create the slotted metal as an instance, and it worked ("prototype.il"). When put into pcell form, the pcell code compiles successfully. But the pcell instance can only have 14 slots max and fails otherwise. Warnings are always generated whether there is pcellEvalFailed or not. (I've appended the warnings generated to the end of "slot_pcell.il"). It seems that the database ID of the metal object becomes nil after being accessed repeatedly, so leChopShape stops working. (1) Could anyone help to point out what's wrong with the code/method? (2) I used leChopShape in the pcell, which is not a recommended function for pcells. Is there another way to make slots in layers? (3) In SKILL, is there a way to exit a loop prematurely, or skip some of the iterations (next/last functions) ? Thanks in advance :) KK


    Originally posted in cdnusers.org by kkchen
    • Post Points: 0
  • Wed, Jul 18 2007 2:44 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    RE: Problem building a slotted metal pcell Reply

    Oops, I didn't realise the posted text also needs to be html formatted ... sorry if you found it unreadable above ... hope this works ...

    Hi, I am trying to make a pcell that will create a big piece of metal with slots chopped out of it (for mechanical stress relief).

    I started with a prototype SKILL code that will create the slotted metal as an instance, and it worked ("prototype.il").

    When put into pcell form, the pcell code compiles successfully. But the pcell instance can only have 14 slots max and fails otherwise. Warnings are always generated whether there is pcellEvalFailed or not. (I've appended the warnings generated to the end of "slot_pcell.il").

    It seems that the database ID of the metal object becomes nil after being accessed repeatedly, so leChopShape stops working.

    (1) Could anyone help to point out what's wrong with the code/method?

    (2) I used leChopShape in the pcell, which is not a recommended function for pcells. Is there another way to make slots in layers?

    (3) In SKILL, is there a way to exit a loop prematurely, or skip some of the iterations (next/last functions) ?

    Thanks in advance :)

    KK


    Originally posted in cdnusers.org by kkchen
    • Post Points: 0
  • Wed, Jul 18 2007 6:04 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    RE: Problem building a slotted metal pcell Reply

    1. The code I downloaded was missing a paren at the end to close the pcDefinePcell. Also the leChopeShape was periodically creating a new object. If I changed the call to make_slot like this:

    shape_id = make_slot(shape_id sw nw ne se sw)

    Then it worked. HOWEVER, performance was terrible since leChopShape is so slow.

    2. If you are in Cadence 5.1.41 USR2 or later (I think that is the requirement), you can use some dbLayer commands. When I changed the code to simply create a metal1 shape and then create small polygons and run a dbLayerAndNot, I was able to remove the leChopShape and performance was great.


    ; chop out slot
    when(chop_abort != 1
    shp = dbCreatePolygon(pcCellView "y0" list(sw nw ne se sw))
    shps=cons(shp shps)
    )

    ) ; end this_row for let
    ) ; end this_row for
    ) ; end this_col for let
    ) ; end this_col for
    dbLayerAndNot(pcCellView "metal1" list(shape_id) shps)
    mapcar('dbDeleteObject shps)
    dbDeleteObject(shape_id)

    3. If you want to exit a loop, use a while loop with a counter

    loop = t
    row = 0
    while(loop
    do skill here
    row++
    when(a
    loop=nil
    )
    )


    Originally posted in cdnusers.org by dmay
    • Post Points: 0
  • Wed, Jul 18 2007 10:02 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    RE: Problem building a slotted metal pcell Reply

    ROD (Relative Object Design) MPP (Multi-Part Path) SKILL/PCells were implemented to provide support for this type of structure. Reference the Virtuoso Relative Object Design User Guide and Virtuoso Layout User Guide.


    Originally posted in cdnusers.org by craigth
    • Post Points: 0
  • Wed, Jul 18 2007 10:15 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    RE: Problem building a slotted metal pcell Reply

    Craig,
    Has the performance for rod objects improved at all? For large designs, the functionality of rod is not worth the performance pain.

    Also, in this case the rodCreateRect could have built up the temporary rectangles, but the dbLayerAndNot is still needed to create actual slots as far as I know. Is there new rod functionality that can slot the metal?

    -Derek


    Originally posted in cdnusers.org by dmay
    • Post Points: 0
  • Fri, Jul 20 2007 2:04 AM

    • archive
    • Top 75 Contributor
    • Joined on Fri, Jul 4 2008
    • Posts 88
    • Points 4,930
    RE: Problem building a slotted metal pcell Reply

    Thanks for the leChopShape explanation, Derek.

    I was using an older Cadence software version, but I can use IC5141 usr2 now. The dbLayer commands are really useful.


    Originally posted in cdnusers.org by kkchen
    • Post Points: 0
Page 1 of 1 (6 items)
Sort Posts:
Started by archive at 18 Jul 2007 01:20 AM. Topic has 5 replies.