Home > Community > Forums > Custom IC SKILL > Shrink cell view during migration

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

 Shrink cell view during migration 

Last post Sun, Aug 2 2009 5:38 PM by kbhow. 10 replies.
Started by kbhow 29 Jul 2009 07:45 PM. Topic has 10 replies and 2724 views
Page 1 of 1 (11 items)
Sort Posts:
  • Wed, Jul 29 2009 7:45 PM

    • kbhow
    • Top 75 Contributor
    • Joined on Wed, May 6 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Shrink cell view during migration Reply

    Hi,

    Is there a way to shrink the cell view to certain resolution.

    I was doing process migration from 45 to 65nm. After migrating and mapping all the via, inst and devices, noticed that the devices in new technology was obviously smaller than original tech file. In the other hand, shapes such as polygon, rect, path will remain the same.

    Is there a way to do the shrinking for a cell view?

     

    Regards,

    How

    • Post Points: 20
  • Thu, Jul 30 2009 12:48 AM

    Re: Shrink cell view during migration Reply
    How,

    Cadence has a tool, Virtuoso Layout Migrate, for doing precisely this sort of thing.

    Regards,

    Andrew
    • Post Points: 20
  • Thu, Jul 30 2009 12:56 AM

    • kbhow
    • Top 75 Contributor
    • Joined on Wed, May 6 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Re: Shrink cell view during migration Reply

    Hi Adrew,

    Thanks for the reply. Where can i get the tools?

     

    How

    • Post Points: 20
  • Thu, Jul 30 2009 2:02 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,598
    • Points 16,075
    Re: Shrink cell view during migration Reply

     Hi How,

    VLM (Virtuoso Layout Migrate) should be part of your IC tools installation, it is enabled by having the correct license.  If you install using a control file with InstallScape then it may not have installed tools that you do not have licenses for, but the IC5141 and IC61 releases do contain the VLM tool. The license feature to look for is "Virtuoso_Layout_Migrate", the name is the same for either release, but the version or release number in the license file will be either 5.1 or 6.1

    Hope this answers your question,

    Lawrence.

    • Post Points: 20
  • Thu, Jul 30 2009 2:23 AM

    • kbhow
    • Top 75 Contributor
    • Joined on Wed, May 6 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Re: Shrink cell view during migration Reply

    Hi,

    Yes. This answer my question but i doesn't have license for the tool. Sign...

    Can i change the env setting for DBUPerUU? Maybe i can use Xscale to scale the library and adjust for the change in DBUPerUU.

    Will this works?

     

    How

    • Post Points: 20
  • Thu, Jul 30 2009 3:31 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,598
    • Points 16,075
    Re: Shrink cell view during migration Reply

    Hi How,

    You can certainly shrink or scale things this way but it is not likely to give you the result that you would hope for.  Consider something like the following, a metal path abutting to a metal pin shape:

      .-----.------
      |     |
      |     | -----
      |     |
      |_____|______
    

    Which is then shrunk or scaled, you might get the following:

      .---. .-----
      |   | | ----
      |___| |_____
    

    The shapes may no longer abut or connect because they have both shrunk or been scaled in place.  This is what VLM takes care of, moving things so that the relative placements stay as originally intended.  As you may realise, this is not a trivial operation, hence there is a tool for it (and of course other third-party tools exist too).

    I hope that this answers your question.

    Best regards,

    Lawrence.

    • Post Points: 5
  • Thu, Jul 30 2009 4:55 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,598
    • Points 16,075
    Re: Shrink cell view during migration Reply

    Look at my previous post online for the text "graphics" to look correct. The main point is that if shapes scale in place, shapes that were butted up to one another may no longer be touching.

    Regards,

    Lawrence.

    • Post Points: 20
  • Thu, Jul 30 2009 5:33 PM

    • kbhow
    • Top 75 Contributor
    • Joined on Wed, May 6 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Re: Shrink cell view during migration Reply

    Hi Lawrence,

    Thanks for the clear explanation.

    For your information, i was performing process migration from 45 to 65nm. Upon migrate, the devices on the new tech is much smaller than the original, but the path/rect and other polygons shapes are still remain the same. Any idea on how to shrink the polygon/rect/path with magnification without using Virtuoso Layout Migration Tool?

    Your advice is much appreciated. 

    How

    • Post Points: 20
  • Fri, Jul 31 2009 12:45 AM

    Re: Shrink cell view during migration Reply

    You could just scale all the coordinates and attributes of the objects in the cellView. I have the code below (which is very old) which I've used for similar things in the past. You'd probably need to adapt it though, in particular if you've already sorted out the instances. It's not going to be easy though, and even then the results are probably not going to be design rule correct.

    /* abScale.il
    
    Author     A.D.Beckett
    Group      Structured Custom, Cadence Design Systems Ltd
    Machine    SUN
    Date       1995 
    Modified   
    By         
    
    Various scaling routines to aid change of DBUPerUU
    
    ***************************************************
    
    SCCS Info: @(#) abScale.il 11/20/08.15:26:20 1.1
    
    */
    
    /***************************************************************
    *                                                              *
    *                (abScaleNumber number factor)                 *
    *                                                              *
    *             Scale a number by the scale factor.              *
    *                                                              *
    ***************************************************************/
    
    (procedure (abScaleNumber number factor)
      (times number factor))
    
    /***************************************************************
    *                                                              *
    *                     (abScalePoint point)                     *
    *                                                              *
    *  Scale a point. Note that it inherits the variable factor.   *
    *                                                              *
    ***************************************************************/
    
    (procedure (abScalePoint point)
      (list (times (xCoord point) factor)
    	(times (yCoord point) factor)))
    
    /***************************************************************
    *                                                              *
    *               (abScalePointList points factor)               *
    *                                                              *
    *           Scale a list of points by a scale factor           *
    *                                                              *
    ***************************************************************/
    
    (procedure (abScalePointList points factor)
      (mapcar 'abScalePoint points))
    
    /***************************************************************
    *                                                              *
    *                  (abScaleObject obj factor)                  *
    *                                                              *
    *              Scale an object by a scale factor               *
    *                                                              *
    ***************************************************************/
    
    (procedure (abScaleObject obj factor)
      (case (dbGetq obj objType)
    	("arc" 
    	 (dbSetq obj (abScalePointList (dbGetq obj ellipseBBox) factor) ellipseBBox)
    	 )
    	("dot" 
    	 (dbSetq obj (abScaleNumber (dbGetq obj height) factor) height)
    	 (dbSetq obj (abScaleNumber (dbGetq obj width) factor) width)
    	 (dbSetq obj (abScalePoint (dbGetq obj xy)) xy)
    	 )
    	("donut" 
    	 (dbSetq obj (abScaleNumber (dbGetq obj outerRadius) factor) outerRadius)
    	 (dbSetq obj (abScaleNumber (dbGetq obj innerRadius) factor) innerRadius)
    	 (dbSetq obj (abScalePoint (dbGetq obj xy)) xy)
    	 )
    	("ellipse"
    	 (dbSetq obj (abScalePointList (dbGetq obj bBox) factor) bBox)
    	 )
    	("label" 
    	 (dbSetq obj (abScaleNumber (dbGetq obj height) factor) height)
    	 (dbSetq obj (abScalePoint (dbGetq obj xy)) xy)
    	 )
    	("line"
    	 (dbSetq obj (abScalePointList (dbGetq obj points) factor) points)
    	 )
    	("path"
    	 (dbSetq obj (abScalePointList (dbGetq obj points) factor) points)
    	 (dbSetq obj (abScaleNumber (dbGetq obj width) factor) width)
    	 (dbSetq obj (abScaleNumber (dbGetq obj beginExt) factor) beginExt)
    	 (dbSetq obj (abScaleNumber (dbGetq obj endExt) factor) endExt)
    	 )
    	("polygon"
    	 (dbSetq obj (abScalePointList (dbGetq obj points) factor) points)
    	 )
    	("rect"
    	 (dbSetq obj (abScalePointList (dbGetq obj bBox) factor) bBox)
    	 )
    	("mosaic"
    	 (dbSetq obj (abScalePoint (dbGetq obj xy)) xy)
    	 (dbSetq obj (abScaleNumber (dbGetq obj maxExtension) factor) maxExtension)
    	 (dbSetq obj (abScaleNumber (dbGetq obj uX) factor) uX)
    	 (dbSetq obj (abScaleNumber (dbGetq obj uY) factor) uY)
    	 )
    	("inst"
    	 (dbSetq obj (abScalePoint (dbGetq obj xy)) xy)
    	 )
    	))
    
    /***************************************************************
    *                                                              *
    *              (abScaleObjectList objList factor)              *
    *                                                              *
    *          scale a list of objects by a scale factor           *
    *                                                              *
    ***************************************************************/
    
    (procedure (abScaleObjectList objList factor)
      (foreach object objList (abScaleObject object factor)))
    
    /***************************************************************
    *                                                              *
    *               (abScaleAllObjects view factor)                *
    *                                                              *
    *             scale all the objects in a cellview              *
    *                                                              *
    ***************************************************************/
    
    (procedure (abScaleAllObjects view factor)
      (abScaleObjectList (dbGetq view instances) factor)
      (abScaleObjectList (dbGetq view shapes) factor)
      (abScaleObjectList (dbGetq view mosaics) factor)
      )
    
    
    

    The argument to abScaleAllObjects is a cellView ID.

    Best Regards,

    Andrew.

    • Post Points: 20
  • Fri, Jul 31 2009 1:05 AM

    • kbhow
    • Top 75 Contributor
    • Joined on Wed, May 6 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Re: Shrink cell view during migration Reply

    Hi Andrew and Lawrence,

    Thanks a lot for all the solution and advice that provided to me. Let me try it out and feedback to you if i encountered any issue in making my flow run.

    Thanks =D

    How

    • Post Points: 5
  • Sun, Aug 2 2009 5:38 PM

    • kbhow
    • Top 75 Contributor
    • Joined on Wed, May 6 2009
    • Penang, Pulau Pinang
    • Posts 120
    • Points 2,045
    Re: Shrink cell view during migration Reply

    Hi Andrew,

    Your script works well :). Amazing...

    But, it doesn't works on pathSeg (wire), where all wires are still maintain at its original shapes after shrinking.

    I added pathSeg in the case

    (

    • Post Points: 5
Page 1 of 1 (11 items)
Sort Posts:
Started by kbhow at 29 Jul 2009 07:45 PM. Topic has 10 replies.