diff --git a/alliance/src/mbk/src/mbk_util.c b/alliance/src/mbk/src/mbk_util.c index 88ccfde3..a4011dc6 100644 --- a/alliance/src/mbk/src/mbk_util.c +++ b/alliance/src/mbk/src/mbk_util.c @@ -90,6 +90,15 @@ long MBK_TRACK_SPACING_ALU5 = 8; long MBK_TRACK_SPACING_ALU6 = 8; long MBK_TRACK_SPACING_ALU7 = 8; long MBK_TRACK_SPACING_ALU8 = 0; +unsigned long RING_WMIN_ALU1 = 2; +unsigned long RING_WMIN_ALU2 = 2; +unsigned long RING_DMIN_ALU1_ALU1 = 3; +unsigned long RING_DMIN_ALU2_ALU2 = 3; +unsigned long RING_WVIA_ALU1 = 2; +unsigned long RING_WVIA_ALU2 = 3; +unsigned long RING_EXTENSION_ALU2 = 1; +unsigned long RING_BV_VIA_VIA = 4; +unsigned long RING_WALIM = 60; char PARSER_INFO[100] = "nothing yet"; /* version number, and so on */ char *VDD = NULL; /* user name for power high */ char *VSS = NULL; /* user name for power ground */ @@ -302,6 +311,43 @@ static char MBK_RAND_SEED[] = { 0x62, if (str != NULL) MBK_TRACK_SPACING_ALU8 = (long)atoi(str); + str = mbkgetenv("RING_WMIN_ALU1"); + if (str != NULL) + RING_WMIN_ALU1 - (long)atoi(str); + + str = mbkgetenv("RING_WMIN_ALU2"); + if (str != NULL) + RING_WMIN_ALU2 - (long)atoi(str); + + str = mbkgetenv("RING_DMIN_ALU1_ALU1"); + if (str != NULL) + RING_DMIN_ALU1_ALU1 - (long)atoi(str); + + str = mbkgetenv("RING_DMIN_ALU2_ALU2"); + if (str != NULL) + RING_DMIN_ALU2_ALU2 - (long)atoi(str); + + str = mbkgetenv("RING_WVIA_ALU1"); + if (str != NULL) + RING_WVIA_ALU1 - (long)atoi(str); + + str = mbkgetenv("RING_WVIA_ALU2"); + if (str != NULL) + RING_WVIA_ALU2 - (long)atoi(str); + + str = mbkgetenv("RING_EXTENSION_ALU2"); + if (str != NULL) + RING_EXTENSION_ALU2 - (long)atoi(str); + + str = mbkgetenv("RING_BV_VIA_VIA"); + if (str != NULL) + RING_BV_VIA_VIA - (long)atoi(str); + + str = mbkgetenv("RING_WALIM"); + if (str != NULL) + RING_WALIM - (long)atoi(str); + + srand((unsigned int) MBK_RAND_SEED); str = mbkgetenv("MBK_IN_LO"); diff --git a/alliance/src/mbk/src/mut.h b/alliance/src/mbk/src/mut.h index 9e872618..11c29146 100644 --- a/alliance/src/mbk/src/mut.h +++ b/alliance/src/mbk/src/mut.h @@ -211,6 +211,17 @@ extern long MBK_TRACK_SPACING_ALU5; extern long MBK_TRACK_SPACING_ALU6; extern long MBK_TRACK_SPACING_ALU7; extern long MBK_TRACK_SPACING_ALU8; + +extern unsigned long RING_WMIN_ALU1; +extern unsigned long RING_WMIN_ALU2; +extern unsigned long RING_DMIN_ALU1_ALU1; +extern unsigned long RING_DMIN_ALU2_ALU2; +extern unsigned long RING_WVIA_ALU1; +extern unsigned long RING_WVIA_ALU2; +extern unsigned long RING_EXTENSION_ALU2; +extern unsigned long RING_BV_VIA_VIA; +extern unsigned long RING_WALIM; + extern char PARSER_INFO[]; /* version number, and so on */ extern char *VDD; /* user name for power high */ extern char *VSS; /* user name for power ground */ diff --git a/alliance/src/rds/src/rfmacces.c b/alliance/src/rds/src/rfmacces.c index 1c876527..74879af6 100644 --- a/alliance/src/rds/src/rfmacces.c +++ b/alliance/src/rds/src/rfmacces.c @@ -478,8 +478,8 @@ rdsrec_list *viambkrds( Figure, Via, Lynx ) ( ( USE == RDS_USE_DRC ) && ( ! Lynx ) ) ) { if ( SIDE_STEP == 0 ) break; - if ( WSX < (SIDE_STEP << 1) ) break; - if ( WSY < (SIDE_STEP << 1) ) break; + if ( WSX < SIDE+(SIDE>>1) ) break; + if ( WSY < SIDE+(SIDE>>1) ) break; X1R = Xvia + OVERLAP - ( ( WSX + DWR ) >> 1 ); Y1R = Yvia + OVERLAP - ( ( WSY + DWR ) >> 1 ); diff --git a/alliance/src/rds/src/rprparse.c b/alliance/src/rds/src/rprparse.c index 2f1e97b2..da68e711 100644 --- a/alliance/src/rds/src/rprparse.c +++ b/alliance/src/rds/src/rprparse.c @@ -103,6 +103,10 @@ extern long MBK_X_GRID, MBK_Y_GRID, MBK_Y_SLICE, MBK_WIDTH_VSS, MBK_WIDTH_VDD, MBK_TRACK_SPACING_ALU7, MBK_TRACK_SPACING_ALU8; long *RDS_WIRESETTING_TABLE [ MBK_MAX_WIRESETTING ] = { + &RING_BV_VIA_VIA, + &RING_DMIN_ALU1_ALU1, + &RING_DMIN_ALU2_ALU2, + &RING_EXTENSION_ALU2, &MBK_TRACK_SPACING_ALU1, &MBK_TRACK_SPACING_ALU2, &MBK_TRACK_SPACING_ALU3, &MBK_TRACK_SPACING_ALU4, &MBK_TRACK_SPACING_ALU5, &MBK_TRACK_SPACING_ALU6, @@ -111,9 +115,15 @@ extern long MBK_X_GRID, MBK_Y_GRID, MBK_Y_SLICE, MBK_WIDTH_VSS, MBK_WIDTH_VDD, &MBK_TRACK_WIDTH_ALU3, &MBK_TRACK_WIDTH_ALU4, &MBK_TRACK_WIDTH_ALU5, &MBK_TRACK_WIDTH_ALU6, &MBK_TRACK_WIDTH_ALU7, &MBK_TRACK_WIDTH_ALU8, + &RING_WALIM, &MBK_WIDTH_VDD, &MBK_WIDTH_VSS, + &RING_WMIN_ALU1, + &RING_WMIN_ALU2, + &RING_WVIA_ALU1, + &RING_WVIA_ALU2, &MBK_X_GRID, &MBK_Y_GRID, &MBK_Y_SLICE + }; /*------------------------------------------------------------\ | | @@ -412,6 +422,10 @@ extern long MBK_X_GRID, MBK_Y_GRID, MBK_Y_SLICE, MBK_WIDTH_VSS, MBK_WIDTH_VDD, char MBK_WIRESETTING_NAME [ MBK_MAX_WIRESETTING ][ MBK_MAX_WIRESETTING_TLEN ] = { + "bv_via_via", + "dmin_alu1_alu1", + "dmin_alu2_alu2", + "extension_alu2", "track_spacing_alu1", "track_spacing_alu2", "track_spacing_alu3", @@ -428,8 +442,13 @@ extern long MBK_X_GRID, MBK_Y_GRID, MBK_Y_SLICE, MBK_WIDTH_VSS, MBK_WIDTH_VDD, "track_width_alu6", "track_width_alu7", "track_width_alu8", + "walim", "width_vdd", "width_vss", + "wmin_alu1", + "wmin_alu2", + "wvia_alu1", + "wvia_alu2", "x_grid", "y_grid", "y_slice" diff --git a/alliance/src/rds/src/rprparse.h b/alliance/src/rds/src/rprparse.h index 03f35e3b..dfb548e7 100644 --- a/alliance/src/rds/src/rprparse.h +++ b/alliance/src/rds/src/rprparse.h @@ -33,7 +33,7 @@ # define RPR_MAX_BUFFER 512 # define RPR_MAX_KEYWORD 151 -# define MBK_MAX_WIRESETTING 21 +# define MBK_MAX_WIRESETTING 30 # define RPR_SEPARATORS_STRING " \t\n" # define RPR_COMMENT_CHAR '#' diff --git a/alliance/src/ring/src/param.c b/alliance/src/ring/src/param.c index 540048c8..52589e66 100644 --- a/alliance/src/ring/src/param.c +++ b/alliance/src/ring/src/param.c @@ -132,8 +132,16 @@ void lecture_param(int nbarg, char** tab, char** nom_circuit_lo, mbkenv(); /* choix de l'utilisateur mis dans des variables UNIX */ /* on recupere (long) SCALE_X */ - if (mode_debug) + if (mode_debug) { printf("CATALNAME is %s\n", CATAL); + printf("WMIN_ALU1 is %ld\n", WMIN_ALU1); + printf("WVIA_ALU1 is %ld\n", WVIA_ALU1); + printf("WMIN_ALU2 is %ld\n", WMIN_ALU2); + printf("WVIA_ALU2 is %ld\n", WVIA_ALU2); + printf("DMIN_ALU1_ALU1 is %ld\n", DMIN_ALU1_ALU1); + printf("DMIN_ALU2_ALU2 is %ld\n", DMIN_ALU2_ALU2); + printf("BV_VIA_VIA is %ld\n", BV_VIA_VIA); + } if (NULL == (f_catal = mbkfopen(CATAL, NULL, READ_TEXT))) ringerreur(ERR_CATAL, CATAL, NULL); diff --git a/alliance/src/ring/src/struct.h b/alliance/src/ring/src/struct.h index 27b1d758..0d54a946 100644 --- a/alliance/src/ring/src/struct.h +++ b/alliance/src/ring/src/struct.h @@ -77,19 +77,20 @@ #define OUEST 2 #define EST 3 /* Nombres entiers obligatoires ! */ -#define WMIN_ALU1 MBK_TRACK_WIDTH_ALU2 /* largeur minimum de l'alu1,l'alu2,dist mini alu1<->alu2 */ -#define WMIN_ALU2 MBK_TRACK_WIDTH_ALU2 /* et largeur du via */ -#define DMIN_ALU1_ALU1 ((MBK_TRACK_SPACING_ALU1+(MBK_TRACK_SPACING_ALU1)%2)/2) /* dmin en a1 a1 2.5 arrondi a 3 */ -#define DMIN_ALU2_ALU2 ((MBK_TRACK_SPACING_ALU2+(MBK_TRACK_SPACING_ALU2)%2)/2) -#define WVIA_ALU1 MBK_TRACK_WIDTH_ALU1 /* largeur du via pour l'alu1 */ -#define WVIA_ALU2 MBK_TRACK_WIDTH_ALU2 /* largeur du via pour l'alu2 */ +#define WMIN_ALU1 RING_WMIN_ALU1 +#define WMIN_ALU2 RING_WMIN_ALU2 +#define DMIN_ALU1_ALU1 RING_DMIN_ALU1_ALU1 +#define DMIN_ALU2_ALU2 RING_DMIN_ALU2_ALU2 +#define WVIA_ALU1 RING_WVIA_ALU1 -#define EXTENSION_ALU2 1 /* extension alu2 pour fignoler coin couronne */ +#define WVIA_ALU2 RING_WVIA_ALU2 /* largeur du via pour l'alu2 */ -#define BV_VIA_VIA (MBK_TRACK_WIDTH_ALU2+MBK_TRACK_WIDTH_ALU2%2) /* must be even, whatever! */ +#define EXTENSION_ALU2 RING_EXTENSION_ALU2 /* pour fignoler coin couronne */ + +#define BV_VIA_VIA RING_BV_VIA_VIA /* must be even, whatever! */ #define BV_VIASIZE WVIA_ALU2 /* design rule for equipotential vias */ -#define WALIM 60 /* largeur prdefinie des alim */ +#define WALIM RING_WALIM /* largeur prdefinie des alim */ /*#define PISTE_DEP_ALIMPLOT 10 Nombre de piste a considerer pour une deport alim plot */ /* code des ringerreurs traitees par ringerreur(code) */