Magic Mailing List |
|
From: Conrad H Ziesler (cziesler AT eecs DOT umich.edu) Date: Sat Sep 21 2002 - 19:24:26 EDT
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
|
|