115 {
116 long in;
117 long out, out2;
118 long ndel;
119 long nseg;
120 long determined_ptr;
121 long kd;
122 long i, k;
123 char *str = (char*) NULL;
124 long *p = (long*) NULL;
125 int first, flag, err;
126
127
128 determined_ptr = 0L;
133 out = determined_ptr;
134 determined_ptr++;
135 }
136 }
137 }
138
140 determined_ptr = 0L;
141
142
144
148 for (i = 0L; i < ndel; i++) {
150 in = i;
151 break;
152 }
153 }
157 out = determined_ptr;
158 determined_ptr++;
160 k = *p;
161 for (i = 0L; i < ndel; i++) {
163 ndel--;
165 break;
166 }
167 }
168 if (0L == ndel) {
169 break;
170 }
171 }
172 }
173 }
174
175
176 for (out = determined_ptr; out <
Num_Nodes; out++) {
177
178 flag = true;
179 first = true;
180
182
183 for (;;) {
184 k = *p;
185 if (-1L >= k) {
186 break;
187 }
188 flag = false;
189 for (i = 0L; i < determined_ptr; i++) {
191 flag = true;
192 break;
193 }
194 }
195 if (!flag) {
196 if (!first) {
197 *p = *(p-1L);
198 *(p-1L) = k;
199 }
200 break;
201 }
202 p++;
203 first = false;
204 }
205 if (flag) {
208 out = determined_ptr;
209 determined_ptr++;
210 }
211 }
212
213
216 (void) fprintf(
STDERR,
"\nNAPA Error: (static loop)\n");
217 (void) fprintf(
STDERR,
"\n These nodes are involved in one or several static loops:\n");
218
219 for (out = determined_ptr; out <
Num_Nodes; out++) {
220 flag = false;
221 for (out2 = determined_ptr; out2 <
Num_Nodes; out2++) {
222 if (out == out2) {
223 continue;
224 }
226 for (;;) {
227 k = *p;
228 if (-1L >= k) {
229 break;
230 }
232 flag = true;
233 break;
234 }
235 p++;
236 }
237 if (flag) {
238 break;
239 }
240 }
241 if (!flag) {
243 determined_ptr++;
244 out = determined_ptr;
245 }
246 }
247 }
248
249 err = false;
251 flag = true;
252 for (out = determined_ptr; out <
Num_Nodes; out++) {
254 flag = ((
Node_List[out].determined) && (flag)) ?
true : false;
255 }
256 }
257 if (!flag) {
258 (void) fprintf(
STDERR,
"\n");
260 (void) fprintf(
STDERR,
" In Segment [%ld]\n", nseg);
261 }
262 for (out = determined_ptr; out <
Num_Nodes; out++) {
266 } else {
268 }
269 (void) fprintf(
STDERR,
" -> node %s\n", str);
270 }
271 }
272 err = true;
273 }
274 }
275
276 if (err) {
277 (void) fprintf(
STDERR,
"\n Your description is not correct. NAPA is not able to sort the nodes of your netlist. \n");
278 (void) fprintf(
STDERR,
" Check for missing or mispelled nodes or loops of nodes containing no delay or only delays\n\n");
280 (void) fprintf(
STDERR,
" You are using 'stuck' instructions. This is generally safe, except if you stuck a node \n");
281 (void) fprintf(
STDERR,
" to another node. In this case, the resulting netlist could be impossible to simulate (loop!).\n");
282 (void) fprintf(
STDERR,
" You could try to remove these particular instructions.\n\n");
283 }
284 }
285 return;
286}
void swap_nodes(long i, long j)
void swap_delay_inputs(long i, long j)
EXTERN long Delay_Input[4095L]