MAGIC Magic Mailing List
 
 

From: Conrad H Ziesler (cziesler AT eecs DOT umich.edu)
Date: Sat Sep 21 2002 - 19:24:26 EDT

  • Next message: Conrad H Ziesler: "Protoize?"

    hi again,
    
    the router and wiring sections in the techfile are not being scaled
    when magic redefines the internal grid.
    
    i put calls to these functions in DRCtech.c/DRCTechScale()
     RtrTechScale(scaled,scalen);
     WireTechScale(scaled,scalen);
    
    although its not a good place, however the calls to rescale the magic
    internal units are scattered in different places, so this is convenient.
    
    
    wiring/wireTech.c:
    <
    < Void WireTechScale(int scalen, int scaled)
    < {
    <   int i;
    <   register Contact *con;
    <   for(i=0;i<WireNumContacts;i++)
    <     {
    <       con = WireContacts[i];
    <       con->con_size*=scalen;
    <       con->con_size/=scaled;
    <
    <       con->con_surround_1*=scalen;
    <       con->con_surround_1/=scaled;
    <
    <       con->con_surround_2*=scalen;
    <       con->con_surround_2/=scaled;
    <     }
    
    
    router/rtrTech.c:
    279,321d278
    <
    < /* RtrTechScale -> scale the router technology parameters so if the database scales, the router does the correct thing */
    < Void RtrTechScale(int scalen, int scaled)
    < {
    <   int i;
    <
    <   RtrMetalWidth*=scalen;
    <   RtrPolyWidth*=scalen;
    <   RtrContactWidth*=scalen;
    <   RtrContactOffset*=scalen;
    <   RtrMetalSurround*=scalen;
    <   RtrPolySurround*=scalen;
    <   RtrGridSpacing*=scalen;
    <   RtrSubcellSepUp*=scalen;
    <   RtrSubcellSepDown*=scalen;
    <
    <
    <   RtrMetalWidth/=scaled;
    <   RtrPolyWidth/=scaled;
    <   RtrContactWidth/=scaled;
    <   RtrContactOffset/=scaled;
    <   RtrMetalSurround/=scaled;
    <   RtrPolySurround/=scaled;
    <   RtrGridSpacing/=scaled;
    <   RtrSubcellSepUp/=scaled;
    <   RtrSubcellSepDown/=scaled;
    <
    <   for (i=0; i < TT_MAXTYPES; i++)
    <     {
    <       RtrPaintSepsUp[i]*=scalen;
    <       RtrPaintSepsDown[i]*=scalen;
    <       RtrMetalSeps[i]*=scalen;
    <       RtrPolySeps[i]*=scalen;
    <
    <       RtrPaintSepsUp[i]/=scaled;
    <       RtrPaintSepsDown[i]/=scaled;
    <       RtrMetalSeps[i]/=scaled;
    <       RtrPolySeps[i]/=scaled;
    <     }
    < }
    <
    <
    
    
    --conrad
    


  •  
     
    Questions? Contact Rajit Manohar
    cornell logo