changement de version
changement cocernant la prise en compte de masque TALU. growstk fait l'hypothèse suivante concernant les rectangle TALU - il vient du fils alors il signifie la presence d'1 fil d'ALU - il vient du pere alors il signifie l'interdiction de passage pour les niveaux superieurs -> growstk se permet de mettre des petits fils d'ALU sur les transparences du pere
This commit is contained in:
parent
48414a5131
commit
e79a194fb1
|
@ -1,7 +1,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
//#include <getopt.h>
|
|
||||||
#include "hash.h"
|
#include "hash.h"
|
||||||
#include "mph.h"
|
#include "mph.h"
|
||||||
#include "mpu.h"
|
#include "mpu.h"
|
||||||
|
@ -137,11 +136,17 @@ int main (int ac, char *av[])
|
||||||
/* read files and buids mbk & rds structures */
|
/* read files and buids mbk & rds structures */
|
||||||
PhFig = getphfig (InFile, 'A');
|
PhFig = getphfig (InFile, 'A');
|
||||||
PhFig -> NAME = namealloc (OutFile);
|
PhFig -> NAME = namealloc (OutFile);
|
||||||
RdsFig = addrdsfig (InFile, 0);
|
|
||||||
for (PhSeg = PhFig->PHSEG; PhSeg; PhSeg = PhSeg->NEXT)
|
for (PhSeg = PhFig->PHSEG; PhSeg; PhSeg = PhSeg->NEXT)
|
||||||
segmbkrds (RdsFig, PhSeg, 0);
|
switch (PhSeg->LAYER)
|
||||||
for (PhVia = PhFig->PHVIA; PhVia; PhVia = PhVia->NEXT)
|
{
|
||||||
viambkrds (RdsFig, PhVia, 0);
|
case TALU2 : PhSeg->LAYER = ALU7; break;
|
||||||
|
case TALU3 : PhSeg->LAYER = ALU8; break;
|
||||||
|
case TALU4 : PhSeg->LAYER = ALU9; break;
|
||||||
|
case TALU5 : PhSeg->LAYER = TALU7; break;
|
||||||
|
case TALU6 : PhSeg->LAYER = TALU8; break;
|
||||||
|
};
|
||||||
|
|
||||||
|
RdsFig = figmbkrds (PhFig, 0, 0);
|
||||||
|
|
||||||
RecNorth = allocrdsrec(0);
|
RecNorth = allocrdsrec(0);
|
||||||
RecSouth = allocrdsrec(0);
|
RecSouth = allocrdsrec(0);
|
||||||
|
@ -405,6 +410,16 @@ int main (int ac, char *av[])
|
||||||
for (ScanRec=NewRec; ScanRec; ScanRec = ScanRec->NEXT)
|
for (ScanRec=NewRec; ScanRec; ScanRec = ScanRec->NEXT)
|
||||||
{
|
{
|
||||||
char MbkLayer = rds2mbklayer(GetRdsLayer(ScanRec));
|
char MbkLayer = rds2mbklayer(GetRdsLayer(ScanRec));
|
||||||
|
char MbkLayer_bis;
|
||||||
|
|
||||||
|
switch (MbkLayer)
|
||||||
|
{
|
||||||
|
case ALU2 : MbkLayer_bis = TALU2; break;
|
||||||
|
case ALU3 : MbkLayer_bis = TALU3; break;
|
||||||
|
case ALU4 : MbkLayer_bis = TALU4; break;
|
||||||
|
case ALU5 : MbkLayer_bis = TALU5; break;
|
||||||
|
case ALU6 : MbkLayer_bis = TALU6; break;
|
||||||
|
};
|
||||||
|
|
||||||
if (MbkLayer==0)
|
if (MbkLayer==0)
|
||||||
{
|
{
|
||||||
|
@ -422,14 +437,24 @@ int main (int ac, char *av[])
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ScanRec->DX < ScanRec->DY)
|
if (ScanRec->DX < ScanRec->DY)
|
||||||
addphseg (PhFig, MbkLayer,
|
{
|
||||||
|
addphseg (PhFig, MbkLayer,
|
||||||
(SCALE_X * ScanRec->DX) / RDS_UNIT,
|
(SCALE_X * ScanRec->DX) / RDS_UNIT,
|
||||||
(SCALE_X * (ScanRec->X + ScanRec->DX / 2)) / RDS_UNIT ,
|
(SCALE_X * (ScanRec->X + ScanRec->DX / 2)) / RDS_UNIT ,
|
||||||
(SCALE_X * (ScanRec->Y + RDS_LAMBDA)) / RDS_UNIT ,
|
(SCALE_X * (ScanRec->Y + RDS_LAMBDA)) / RDS_UNIT ,
|
||||||
(SCALE_X * (ScanRec->X + ScanRec->DX / 2)) / RDS_UNIT ,
|
(SCALE_X * (ScanRec->X + ScanRec->DX / 2)) / RDS_UNIT ,
|
||||||
(SCALE_X * (ScanRec->Y + ScanRec->DY - RDS_LAMBDA)) / RDS_UNIT ,
|
(SCALE_X * (ScanRec->Y + ScanRec->DY - RDS_LAMBDA)) / RDS_UNIT ,
|
||||||
NULL);
|
NULL);
|
||||||
|
addphseg (PhFig, MbkLayer_bis,
|
||||||
|
(SCALE_X * ScanRec->DX) / RDS_UNIT,
|
||||||
|
(SCALE_X * (ScanRec->X + ScanRec->DX / 2)) / RDS_UNIT ,
|
||||||
|
(SCALE_X * (ScanRec->Y + RDS_LAMBDA)) / RDS_UNIT ,
|
||||||
|
(SCALE_X * (ScanRec->X + ScanRec->DX / 2)) / RDS_UNIT ,
|
||||||
|
(SCALE_X * (ScanRec->Y + ScanRec->DY - RDS_LAMBDA)) / RDS_UNIT ,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
addphseg (PhFig, MbkLayer,
|
addphseg (PhFig, MbkLayer,
|
||||||
(SCALE_X * ScanRec->DY) / RDS_UNIT,
|
(SCALE_X * ScanRec->DY) / RDS_UNIT,
|
||||||
(SCALE_X * (ScanRec->X + RDS_LAMBDA)) / RDS_UNIT ,
|
(SCALE_X * (ScanRec->X + RDS_LAMBDA)) / RDS_UNIT ,
|
||||||
|
@ -437,7 +462,24 @@ int main (int ac, char *av[])
|
||||||
(SCALE_X * (ScanRec->X + ScanRec->DX - RDS_LAMBDA)) / RDS_UNIT ,
|
(SCALE_X * (ScanRec->X + ScanRec->DX - RDS_LAMBDA)) / RDS_UNIT ,
|
||||||
(SCALE_X * (ScanRec->Y + ScanRec->DY / 2)) / RDS_UNIT ,
|
(SCALE_X * (ScanRec->Y + ScanRec->DY / 2)) / RDS_UNIT ,
|
||||||
NULL);
|
NULL);
|
||||||
|
addphseg (PhFig, MbkLayer_bis,
|
||||||
|
(SCALE_X * ScanRec->DY) / RDS_UNIT,
|
||||||
|
(SCALE_X * (ScanRec->X + RDS_LAMBDA)) / RDS_UNIT ,
|
||||||
|
(SCALE_X * (ScanRec->Y + ScanRec->DY / 2)) / RDS_UNIT ,
|
||||||
|
(SCALE_X * (ScanRec->X + ScanRec->DX - RDS_LAMBDA)) / RDS_UNIT ,
|
||||||
|
(SCALE_X * (ScanRec->Y + ScanRec->DY / 2)) / RDS_UNIT ,
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
for (PhSeg = PhFig->PHSEG; PhSeg; PhSeg = PhSeg->NEXT)
|
||||||
|
switch (PhSeg->LAYER)
|
||||||
|
{
|
||||||
|
case ALU7 : PhSeg->LAYER = TALU2; break;
|
||||||
|
case ALU8 : PhSeg->LAYER = TALU3; break;
|
||||||
|
case ALU9 : PhSeg->LAYER = TALU4; break;
|
||||||
|
case TALU7 : PhSeg->LAYER = TALU5; break;
|
||||||
|
case TALU8 : PhSeg->LAYER = TALU6; break;
|
||||||
|
};
|
||||||
savephfig (PhFig);
|
savephfig (PhFig);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue