26 #define API_USE_REAL_TYPES
29 //-----------------------------------------------------------------
31 ttvfig_list
*hitas_sub (char *figname
, char cnsannotatelofig
, char loadcnsfig
)
53 TAS_CONTEXT
->TAS_FILENAME
= namealloc (figname
);
54 TAS_CONTEXT
->TAS_CNS_ANNOTATE_LOFIG
= cnsannotatelofig
;
56 if (loadcnsfig
=='Y' || getenv("TASREADCNS")!=NULL
)
58 if (getloadedlofig(figname
)!=NULL
)
60 TAS_CONTEXT
->TAS_CNS_LOAD
='Y';
63 { // configuration check level I
71 lf
= getloadedlofig(TAS_CONTEXT
->TAS_FILENAME
);
72 ifl
= getloadedinffig(TAS_CONTEXT
->TAS_FILENAME
);
75 for (lc
= lf
->LOCON
; lc
; lc
= lc
->NEXT
)
76 data
= addchain(data
,lc
->NAME
);
80 inf_CheckRegistry(stdout
,ifl
,1,data
);
88 TAS_CONTEXT
->TAS_FILEIN
= TAS_CONTEXT
->TAS_FILENAME
;
89 YAG_CONTEXT
->YAG_FIGNAME
= TAS_CONTEXT
->TAS_FILEIN
;
90 if (!TAS_CONTEXT
->TAS_FILEOUT
)
91 TAS_CONTEXT
->TAS_FILEOUT
= TAS_CONTEXT
->TAS_FILEIN
;
93 if ((ttvfig
=ttv_gethtmodel(TAS_CONTEXT
->TAS_FILEOUT
))!=NULL
)
95 ttv_freettvfig(ttvfig
);
98 if(TAS_CONTEXT
->TAS_SILENTMODE
== 'Y')
101 ttvfig
= tas_main ();
104 mbkfree (TAS_CONTEXT
);
108 ttv_getinffile(ttvfig
);
113 ttvfig_list
*tas (char *figname
)
115 return hitas_sub (figname
, 'N', 0 );
118 //-----------------------------------------------------------------
120 void tas_command_line (char *args
)
130 if ((args
[i
] == ' ') || (args
[i
] == '\0')) argc
++;
131 while (args
[i
++] != '\0');
132 argv
= (char**)malloc (argc
* sizeof (char*));
133 argv
[0] = strdup ("hitas");
139 if ((args
[i
] == ' ') || (args
[i
] == '\0')) {
141 argv
[j
++] = strdup (buf
);
143 if (args
[i
] == '\0') break;
146 if( args
[i
] != '{' && args
[i
] != '}' )
149 } while (args
[i
++] != '\0');
153 fprintf (stdout, "******* argc = %d\n", argc);
154 for (i = 0; i < argc; i++)
155 fprintf (stdout, "%s ", argv[i]);
156 fprintf (stdout, "\n");
160 tas_top_main (argc
, argv
);
163 int hitas_pvt_count()
165 return TAS_PVT_COUNT
;
169 //-----------------------------------------------------------------
171 lofig_list
*tas_extract_SPICE_path (ttvcritic_list
*critic
)
178 yagenv (tas_yaginit
);
189 cnsfig
= getcnsfig (critic
->FIG
->INFO
->FIGNAME
, NULL
);
190 lofig
= getloadedlofig (critic
->FIG
->INFO
->FIGNAME
);
191 return tas_extract_spice_path (lofig
, cnsfig
, NULL
, critic
);
194 //-----------------------------------------------------------------
196 sim_model
*tas_extract_SPICE_patterns (ttvcritic_list
*critic
, lofig_list
*figext
)
201 cnsfig
= getcnsfig (critic
->FIG
->INFO
->FIGNAME
, NULL
);
202 lofig
= getloadedlofig (critic
->FIG
->INFO
->FIGNAME
);
203 return tas_extract_spice_patterns (lofig
, cnsfig
, figext
, SIM_MAX
);