diff --git a/alliance/src/s2r/configure.in b/alliance/src/s2r/configure.in index 3154dedb..52f37bf2 100644 --- a/alliance/src/s2r/configure.in +++ b/alliance/src/s2r/configure.in @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT(src/postrat.c) S2R_MAJOR_VERSION=4 -S2R_MINOR_VERSION=3 +S2R_MINOR_VERSION=4 S2R_VERSION=$S2R_MAJOR_VERSION.$S2R_MINOR_VERSION AC_SUBST(S2R_MAJOR_VERSION) diff --git a/alliance/src/s2r/src/main.c b/alliance/src/s2r/src/main.c index 9fbc4989..b4c1dc38 100644 --- a/alliance/src/s2r/src/main.c +++ b/alliance/src/s2r/src/main.c @@ -59,17 +59,18 @@ void Usage (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, "\t\t to translate to real layout\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, "\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: 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-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-r\t: black boxes are not (r)eplaced\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 sub_conn = 1; /* keep sub-level figure connectors 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 one_level = 0; /* all hierarchy level translated by default */ int do_post_treat = 1; /* post-treatment is done by default */ @@ -137,6 +139,9 @@ int main (argc, argv) case 'n': signal_name = 0; break; + case 'i': + autoimp = 1; + break; case 's': scotch_on = 1; break; @@ -268,7 +273,7 @@ int main (argc, argv) printf ("\t\twith scotchs.\n"); else printf ("\t\twithout scotch.\n"); - post_treat (rds_model, scotch_on, verbose); + post_treat (rds_model, scotch_on, verbose, autoimp); fflush (stdout); } diff --git a/alliance/src/s2r/src/postrat.c b/alliance/src/s2r/src/postrat.c index 58c0fb51..e1e38b0f 100644 --- a/alliance/src/s2r/src/postrat.c +++ b/alliance/src/s2r/src/postrat.c @@ -1117,10 +1117,11 @@ static void inv_resize (model) * has its model not yet post treated at this layer, it is * post treated first. ****************************************************************************/ -void post_treat (model, scotch_on_flag, verbose) +void post_treat (model, scotch_on_flag, verbose, autoimp) rdsfig_list *model; int scotch_on_flag; int verbose; + int autoimp; { rdsins_list *instance; rdsfig_list *modelp; @@ -1155,8 +1156,11 @@ void post_treat (model, scotch_on_flag, verbose) merge (model, scotch_on_flag, verbose); clean (model); inv_resize (model); - addpwell (model, verbose); - addimp (model, verbose); + if (autoimp) + { + addpwell (model, verbose); + addimp (model, verbose); + } mark_treat (model); } }