• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. Shrink cell view during migration

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 142
  • Views 16996
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Shrink cell view during migration

kbhow
kbhow over 16 years ago

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

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 16 years ago

    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.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 16 years ago

    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.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information