les fils de CALU doivent etre dupplique en ALU pour permettre l'absorbtion
des pastilles de vias lors de l'unification, mais ne pas perdre leur nom. On genere donc deux rectangles (avec et sans nom) pour chaque CALU.
This commit is contained in:
parent
a71059138a
commit
cea2eaaa1f
|
@ -570,28 +570,32 @@ rdsfig_list *S2Rfigmbkrds (FigureMbk, All,SubConn)
|
|||
chain_list *Pt;
|
||||
|
||||
/* dupplique tous les CALUx en ALUx dans le père pour permettre
|
||||
l'unification des pastilles de metal de VIA et des ALU associés */
|
||||
l'unification des pastilles de metal de VIA et des ALU associés
|
||||
On le dupplique deux fois une fois avec nom, une fois sans */
|
||||
{
|
||||
phseg_list * phseg;
|
||||
for (phseg = FigureMbk->PHSEG; phseg; phseg=phseg->NEXT)
|
||||
{
|
||||
phseg_list * dupseg = addphseg(FigureMbk,
|
||||
phseg->LAYER, phseg->WIDTH,
|
||||
phseg->X1, phseg->Y1,
|
||||
phseg->X2, phseg->Y2, phseg->NAME);
|
||||
char layer;
|
||||
switch (phseg->LAYER)
|
||||
{
|
||||
case CALU1 : dupseg->LAYER = ALU1; break;
|
||||
case CALU2 : dupseg->LAYER = ALU2; break;
|
||||
case CALU3 : dupseg->LAYER = ALU3; break;
|
||||
case CALU4 : dupseg->LAYER = ALU4; break;
|
||||
case CALU5 : dupseg->LAYER = ALU5; break;
|
||||
case CALU6 : dupseg->LAYER = ALU6; break;
|
||||
case CALU7 : dupseg->LAYER = ALU7; break;
|
||||
case CALU8 : dupseg->LAYER = ALU8; break;
|
||||
case CALU9 : dupseg->LAYER = ALU9; break;
|
||||
case CALU1 : layer = ALU1; break;
|
||||
case CALU2 : layer = ALU2; break;
|
||||
case CALU3 : layer = ALU3; break;
|
||||
case CALU4 : layer = ALU4; break;
|
||||
case CALU5 : layer = ALU5; break;
|
||||
case CALU6 : layer = ALU6; break;
|
||||
case CALU7 : layer = ALU7; break;
|
||||
case CALU8 : layer = ALU8; break;
|
||||
case CALU9 : layer = ALU9; break;
|
||||
default : continue; /* passer au segment suivant */
|
||||
}
|
||||
dupseg->NAME = NULL;
|
||||
addphseg(FigureMbk, layer, phseg->WIDTH,
|
||||
phseg->X1, phseg->Y1,
|
||||
phseg->X2, phseg->Y2, phseg->NAME);
|
||||
addphseg(FigureMbk, layer, phseg->WIDTH,
|
||||
phseg->X1, phseg->Y1,
|
||||
phseg->X2, phseg->Y2, NULL);
|
||||
}
|
||||
}
|
||||
if (All)
|
||||
|
@ -615,7 +619,8 @@ rdsfig_list *S2Rfigmbkrds (FigureMbk, All,SubConn)
|
|||
for (Pt = Pt->NEXT; Pt != NULL; Pt = Pt->NEXT)
|
||||
{
|
||||
if (SubConn == 0) /* puisqu'on ne veut pas de connecteurs
|
||||
intermediaires, on remplace les CALU par les ALU associés FW 200205 */
|
||||
intermediaires, on remplace les CALU par les ALU associés FW 200205
|
||||
avec et sans nom */
|
||||
{
|
||||
phseg_list * phseg;
|
||||
for (phseg = ((phfig_list *) Pt->DATA)->PHSEG; phseg; phseg=phseg->NEXT)
|
||||
|
@ -631,33 +636,40 @@ rdsfig_list *S2Rfigmbkrds (FigureMbk, All,SubConn)
|
|||
case CALU7 : phseg->LAYER = ALU7; break;
|
||||
case CALU8 : phseg->LAYER = ALU8; break;
|
||||
case CALU9 : phseg->LAYER = ALU9; break;
|
||||
default : continue; /* passer au segment suivant */
|
||||
}
|
||||
addphseg(FigureMbk, phseg->LAYER, phseg->WIDTH,
|
||||
phseg->X1, phseg->Y1,
|
||||
phseg->X2, phseg->Y2, NULL);
|
||||
}
|
||||
}
|
||||
else /* sinon on le duplique dans le metal associé pour qu'il absorbe
|
||||
les vias inclus lors que la phase d'unification */
|
||||
les vias inclus lors que la phase d'unification, avec et sans
|
||||
nom */
|
||||
{
|
||||
phseg_list * phseg;
|
||||
for (phseg = ((phfig_list *) Pt->DATA)->PHSEG; phseg; phseg=phseg->NEXT)
|
||||
for (phseg = FigureMbk->PHSEG; phseg; phseg=phseg->NEXT)
|
||||
{
|
||||
phseg_list * dupseg = addphseg((phfig_list *) Pt->DATA,
|
||||
phseg->LAYER, phseg->WIDTH,
|
||||
phseg->X1, phseg->Y1,
|
||||
phseg->X2, phseg->Y2,
|
||||
phseg->NAME);
|
||||
char layer;
|
||||
switch (phseg->LAYER)
|
||||
{
|
||||
case CALU1 : dupseg->LAYER = ALU1; break;
|
||||
case CALU2 : dupseg->LAYER = ALU2; break;
|
||||
case CALU3 : dupseg->LAYER = ALU3; break;
|
||||
case CALU4 : dupseg->LAYER = ALU4; break;
|
||||
case CALU5 : dupseg->LAYER = ALU5; break;
|
||||
case CALU6 : dupseg->LAYER = ALU6; break;
|
||||
case CALU7 : dupseg->LAYER = ALU7; break;
|
||||
case CALU8 : dupseg->LAYER = ALU8; break;
|
||||
case CALU9 : dupseg->LAYER = ALU9; break;
|
||||
case CALU1 : layer = ALU1; break;
|
||||
case CALU2 : layer = ALU2; break;
|
||||
case CALU3 : layer = ALU3; break;
|
||||
case CALU4 : layer = ALU4; break;
|
||||
case CALU5 : layer = ALU5; break;
|
||||
case CALU6 : layer = ALU6; break;
|
||||
case CALU7 : layer = ALU7; break;
|
||||
case CALU8 : layer = ALU8; break;
|
||||
case CALU9 : layer = ALU9; break;
|
||||
default : continue; /* passer au segment suivant */
|
||||
}
|
||||
dupseg->NAME = NULL;
|
||||
addphseg(FigureMbk, layer, phseg->WIDTH,
|
||||
phseg->X1, phseg->Y1,
|
||||
phseg->X2, phseg->Y2, phseg->NAME);
|
||||
addphseg(FigureMbk, layer, phseg->WIDTH,
|
||||
phseg->X1, phseg->Y1,
|
||||
phseg->X2, phseg->Y2, NULL);
|
||||
}
|
||||
}
|
||||
figmbkrds ((phfig_list *) Pt->DATA, 0, 0);
|
||||
|
|
Loading…
Reference in New Issue