Home > Community > Forums > Custom IC SKILL > Is it possibel to copy shapes of a marked net ?

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

 Is it possibel to copy shapes of a marked net ? 

Last post Mon, Dec 8 2008 7:38 AM by Austin CAD Guy. 5 replies.
Started by ravi1999 01 Dec 2008 09:41 PM. Topic has 5 replies and 4239 views
Page 1 of 1 (6 items)
Sort Posts:
  • Mon, Dec 1 2008 9:41 PM

    • ravi1999
    • Not Ranked
    • Joined on Fri, Jul 25 2008
    • Hyderabad, Andhra Pradesh
    • Posts 1
    • Points 20
    Is it possibel to copy shapes of a marked net ? Reply

     Hi,

    By anyway will we able to copy the polygone shapes of a marked net in Cadence Virtuoso layout designer

    -Ravi

     

    • Post Points: 20
  • Thu, Dec 4 2008 8:35 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,586
    • Points 15,895
    Re: Is it possible to copy shapes of a marked net ? Reply

     Hi Ravi,

    I don't think that you can access the shapes hilighted by the Mark Net feature, it is a fairly low-level function (for speed) and has a limited SKILL interface. I believe that the shapes are highlighted but not selected, so accessing the shapes for input to a copy is not something that you can do directly with the Mark Net feature.

    It should be possible to write your own SKILL code to "walk" the shapes and follow connectivity and then select and copy them. This is not a 5-minute task, so it might be worth asking if anyone else out there has written such code that they can share.

    Regards,

    Lawrence.

    • Post Points: 20
  • Thu, Dec 4 2008 9:13 AM

    • dmay
    • Top 25 Contributor
    • Joined on Thu, Jul 17 2008
    • Allen, TX
    • Posts 393
    • Points 7,415
    Re: Is it possible to copy shapes of a marked net ? Reply

    I have written a program in Skill to do this, but unfortunately, I am unable to share it. Here are links to the paper and presentation I did for the CND Users group in 2002:

    www.cdnusers.org/community/virtuoso/resources/ctp_nettracing_micronmay.pdf

    www.cdnusers.org/community/virtuoso/resources/ctp_nettracingSKILL_micronmay.pdf

    The first attempt I made at this was a simple one level net highlighter that selected shapes based on their net name. This was easy to do, but required the connectivity to be correct on the shapes which was usually the case right after a route or after being in VXL. However, if the layout was edited in VLE, shapes can get moved to other nets and the connectivity can be wrong. Over time I expanded the code to simply trace shapes regardless of connectivity and to also trace hierarchically. When you work hierarchically, it gets more complicated because you can have the same cell placed multiple times and you only want to highlight the inputs or outputs connected to the current net. My basic approach was as follows:

    Start at a specified point or pin in the layout. Get the shape at that point or use the specified pin to start.
    Use dbGetTrueOverlaps to find all shapes on the same layer at that point. (if it is a m1 pin, look for m1 drawing, etc).
    For each overlapping shape, store it as a connecting shape. If it is down in the hierarchy, store its transform as well (so it is unique).
    If the shape is in a via or contact cell then you will need to look for overlaps on both connecting layers (if m1 shape is found in via1 cell, must also trace m2 in the next pass).
    Take all new shapes and break them into rectangles. Foreach rectangle, look for overlaps on the same layer only, unless in a via cell when you must look for shapes on two layers.
    Keep trace of shapes already processed and continue until no more shapes are found.
    Hilight or select the shapes as you process them so if you ctrl-c, you'll have a partial highlight.
    For performance reasons, I do not look for overlaps on the via or contact layers. We require all via/contacts to be instances. If you must look for overlaps on the via or contact layer, you will slow way down because this will add many more overlap checks.
    The two most difficult things to deal with are breaking polygons into rectangles and storing off shapes and their transforms for items down in the hierarchy. For example, if you have the same via placed 10 times on a net, you need to store all 10 unique locations.

    I hope this helps. This has been the most useful utility I have ever written. Nearly all of our layout designers use it daily. By keeping track of all the shapes you can do many things like measure the net, select the net, add connectivity to the net outside of VXL, find markers on the net, etc.

    If all you want to do is select the net, and you can get connectivity on it with a router or VLX, then it is very simple to write Skill to deall with all shapes that have a net attribute: setof(x geGetEditCellView()~>shapes x~>net~>name=="clk")
    The vias/contacts can be found by looking at instance terminals.

    -Derek

    • Post Points: 20
  • Thu, Dec 4 2008 9:42 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,586
    • Points 15,895
    Re: Is it possible to copy shapes of a marked net ? Reply

    Thanks for your reply Derek, I look forward to reading the paper/presentation.

    One extra note: for breaking a polygon shape up, you can use the dbLayerTile function:

    dbLayerTile( d_cellViewId t_layerName l_dbIdList1 )
         => l_dbIdList

    Fractures edges of the specified object on the input list into vertical trapezoids.

    Hope this helps!

    Regards,
    Lawrence.

    • Post Points: 20
  • Thu, Dec 4 2008 10:08 AM

    • dmay
    • Top 25 Contributor
    • Joined on Thu, Jul 17 2008
    • Allen, TX
    • Posts 393
    • Points 7,415
    Re: Is it possible to copy shapes of a marked net ? Reply

    The dbLayerTile wasn't around when I first wrote the code. Even so, doesn't it actually create rectangles in the layout? This would be a problem in read-only mode, or when tracing a net that crosses many levels of hierarchy. I suppose you could create a scratch cell for doing all this work.

     I have received several inquiries about this paper. Maybe someone at Cadence should put together a prototype of this utility for download. I've requested that the capability be added to Mark Net, but it has never been done.

     -Derek

    • Post Points: 20
  • Mon, Dec 8 2008 7:38 AM

    Re: Is it possible to copy shapes of a marked net ? Reply

    One thing about the dbLayer Booleans is you can direct the creation of new shapes to a cellView different from your current one. Open a scratch cell in write mode and direct all your outputs to that view. This is especially important if you are going to do extensive searches based on the just created data as it is flat and limited to just the shapes you created.

     Ted

    • Post Points: 5
Page 1 of 1 (6 items)
Sort Posts:
Started by ravi1999 at 01 Dec 2008 09:41 PM. Topic has 5 replies.