la creation automatique de la zone d'implantation est optionnelle.

This commit is contained in:
Franck Wajsburt 2002-06-13 13:45:34 +00:00
parent e2331ad291
commit dcfb078834
3 changed files with 16 additions and 7 deletions

View File

@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/postrat.c) AC_INIT(src/postrat.c)
S2R_MAJOR_VERSION=4 S2R_MAJOR_VERSION=4
S2R_MINOR_VERSION=3 S2R_MINOR_VERSION=4
S2R_VERSION=$S2R_MAJOR_VERSION.$S2R_MINOR_VERSION S2R_VERSION=$S2R_MAJOR_VERSION.$S2R_MINOR_VERSION
AC_SUBST(S2R_MAJOR_VERSION) AC_SUBST(S2R_MAJOR_VERSION)

View File

@ -59,17 +59,18 @@
void Usage (Name) void Usage (Name)
char *Name; char *Name;
{ {
fprintf (stderr, "\tUsage : %s [-cs1trv] source [result]\n\n", Name); fprintf (stderr, "\tUsage : %s [-1cCinstrv] source [result]\n\n", Name);
fprintf (stderr, "\tsource\t: filename of symbolic layout circuit\n"); fprintf (stderr, "\tsource\t: filename of symbolic layout circuit\n");
fprintf (stderr, "\t\t to translate to real layout\n"); fprintf (stderr, "\t\t to translate to real layout\n");
fprintf (stderr, "\tresult\t: result filename of real layout circuit\n"); fprintf (stderr, "\tresult\t: result filename of real layout circuit\n");
fprintf (stderr, "\t\t source name is used, if result is absent\n\n"); fprintf (stderr, "\t\t source name is used, if result is absent\n\n");
fprintf (stderr, "\toptionnal options (any order, any occurence) :\n"); fprintf (stderr, "\toptionnal options (any order, any occurence) :\n");
fprintf (stderr, "\t-1\t: only (1) level is translated, all otherwise.\n");
fprintf (stderr, "\t-c\t: deletes top-level (c)onnectors, keeps all others\n"); fprintf (stderr, "\t-c\t: deletes top-level (c)onnectors, keeps all others\n");
fprintf (stderr, "\t-C\t: keeps top-level (c)onnectors, deletes all others\n"); fprintf (stderr, "\t-C\t: keeps top-level (c)onnectors, deletes all others\n");
fprintf (stderr, "\t-i\t: generate implants from NWELL\n");
fprintf (stderr, "\t-n\t: deletes all signal names, but connectors\n"); fprintf (stderr, "\t-n\t: deletes all signal names, but connectors\n");
fprintf (stderr, "\t-s\t: (s)cotchs are created\n"); fprintf (stderr, "\t-s\t: (s)cotchs are created\n");
fprintf (stderr, "\t-1\t: only (1) level is translated, all otherwise.\n");
fprintf (stderr, "\t-t\t: layout is just (t)ranslated, not post-treated\n"); fprintf (stderr, "\t-t\t: layout is just (t)ranslated, not post-treated\n");
fprintf (stderr, "\t-r\t: black boxes are not (r)eplaced\n"); fprintf (stderr, "\t-r\t: black boxes are not (r)eplaced\n");
fprintf (stderr, "\t-v\t: (v)erbose mode armed\n"); fprintf (stderr, "\t-v\t: (v)erbose mode armed\n");
@ -92,6 +93,7 @@ int main (argc, argv)
int root_conn = 1; /* keep top-level figure connectors by default */ int root_conn = 1; /* keep top-level figure connectors by default */
int sub_conn = 1; /* keep sub-level figure connectors by default */ int sub_conn = 1; /* keep sub-level figure connectors by default */
int signal_name = 1; /* keep signal names by default */ int signal_name = 1; /* keep signal names by default */
int autoimp = 0; /* do not generate implant from NWELL by default */
int scotch_on = 0; /* scotchs are not created by default */ int scotch_on = 0; /* scotchs are not created by default */
int one_level = 0; /* all hierarchy level translated by default */ int one_level = 0; /* all hierarchy level translated by default */
int do_post_treat = 1; /* post-treatment is done by default */ int do_post_treat = 1; /* post-treatment is done by default */
@ -137,6 +139,9 @@ int main (argc, argv)
case 'n': case 'n':
signal_name = 0; signal_name = 0;
break; break;
case 'i':
autoimp = 1;
break;
case 's': case 's':
scotch_on = 1; scotch_on = 1;
break; break;
@ -268,7 +273,7 @@ int main (argc, argv)
printf ("\t\twith scotchs.\n"); printf ("\t\twith scotchs.\n");
else else
printf ("\t\twithout scotch.\n"); printf ("\t\twithout scotch.\n");
post_treat (rds_model, scotch_on, verbose); post_treat (rds_model, scotch_on, verbose, autoimp);
fflush (stdout); fflush (stdout);
} }

View File

@ -1117,10 +1117,11 @@ static void inv_resize (model)
* has its model not yet post treated at this layer, it is * has its model not yet post treated at this layer, it is
* post treated first. * post treated first.
****************************************************************************/ ****************************************************************************/
void post_treat (model, scotch_on_flag, verbose) void post_treat (model, scotch_on_flag, verbose, autoimp)
rdsfig_list *model; rdsfig_list *model;
int scotch_on_flag; int scotch_on_flag;
int verbose; int verbose;
int autoimp;
{ {
rdsins_list *instance; rdsins_list *instance;
rdsfig_list *modelp; rdsfig_list *modelp;
@ -1155,8 +1156,11 @@ void post_treat (model, scotch_on_flag, verbose)
merge (model, scotch_on_flag, verbose); merge (model, scotch_on_flag, verbose);
clean (model); clean (model);
inv_resize (model); inv_resize (model);
if (autoimp)
{
addpwell (model, verbose); addpwell (model, verbose);
addimp (model, verbose); addimp (model, verbose);
}
mark_treat (model); mark_treat (model);
} }
} }