Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / api / sim / sim_API.h
1 #include "avt_API_types.h"
2
3 #define Timing void
4 #define Noise void
5 #define PwlFunction void
6
7 #define SIM_FALL 'D'
8 #define SIM_RISE 'U'
9 #define SIM_STATE 'S'
10
11 #define SIM_RAMP 'r'
12 #define SIM_TANH 't'
13
14 #define SIM_MIN 'm'
15 #define SIM_MAX 'M'
16 #define SIM_ALL 'A'
17
18 void sim_API_Action_Initialize ();
19 void sim_API_Action_Terminate ();
20 void sim_SetSlopeForm (SimulationContext *sc, PwlFunction *f);
21
22 //*************************************
23 // General parameters
24 //*************************************
25
26 /*
27 MAN sim_SetSimulatorType
28 CATEG gns
29 DESCRIPTION
30 sim_SetSimulatorType specifies the type of simulator towards whom the simulation
31 netlists are created. Supported simulators types are 'NGSPICE' and 'ELDO'.
32 RETURN VALUE
33 none.
34 ERRORS
35 none.
36 */
37 extern void sim_SetSimulatorType (SimulationContext *sc, char *type);
38
39 /*
40 MAN sim_CreateContext
41 CATEG gns
42 DESCRIPTION
43 sim_CreateContext creates a simulation context, relatively to a netlist. Electrical simulations directives are applied to this netlist and
44 stored in the newly created simulation context.
45 RETURN VALUE
46 Pointer on the newly created simulation context.
47 ERRORS
48 none.
49 */
50 extern SimulationContext *sim_CreateContext (Netlist *netlist);
51
52 /*
53 MAN sim_CreateNetlistContext
54 CATEG gns
55 DESCRIPTION
56 sim_CreateNetlistContext creates a simulation context, relatively to the current gns netlist which is flattened to transistor level.
57 RETURN VALUE
58 Pointer on the newly created simulation context.
59 ERRORS
60 none.
61 */
62 SimulationContext *sim_CreateNetlistContext();
63
64 /*
65 MAN sim_GetContextNetlist
66 CATEG gns
67 DESCRIPTION
68 sim_GetContextNetlist returns the netlist the simulation context {sc} is associated to.
69 */
70 Netlist *sim_GetContextNetlist(SimulationContext *sc);
71
72 /*
73 MAN sim_CreateContext
74 CATEG gns
75 DESCRIPTION
76 sim_FreeContext deletes a previously created simulation context. The netlist associated with the simulation context is not affected.
77 RETURN VALUE
78 none.
79 ERRORS
80 none.
81 */
82 void sim_FreeContext (SimulationContext *model);
83
84 /*
85 MAN sim_SetDelayVTH
86 CATEG gns
87 DESCRIPTION
88 sim_SetDelayVTH sets the threshold voltage for delay calculations. Delay is computed
89 between the vth-crossing ins
90 RETURN VALUE
91 none.
92 ERRORS
93 none.
94 */
95 extern void sim_SetDelayVTH (SimulationContext *sc, double vth);
96
97 /*
98 MAN Simulation_SetSlopeVTH
99 CATEG gns
100 DESCRIPTION
101 sim_SetSlopeVTH specifies the bounds of the slope (percentage of vdd).
102 RETURN VALUE
103 none.
104 ERRORS
105 none.
106 */
107 extern void sim_SetSlopeVTH (SimulationContext *sc, double vth_low, double vth_high);
108
109 /*
110 MAN sim_SetSimulationSlope
111 CATEG gns
112 DESCRIPTION
113 sim_SetSimulationSlope sets the default input slope for electrical simulation.
114 The unit is the second.
115 RETURN VALUE
116 none.
117 ERRORS
118 none.
119 */
120 extern void sim_SetSimulationSlope (SimulationContext *sc, double slope);
121
122 /*
123 MAN sim_SetSimulationTime
124 CATEG gns
125 DESCRIPTION
126 sim_SetSimulationTime sets the duration of the electrical simulation.
127 Unit is SECOND.
128 RETURN VALUE
129 none.
130 ERRORS
131 none.
132 */
133 extern void sim_SetSimulationTime (SimulationContext *sc, double time);
134
135 /*
136 MAN sim_SetSimulationStep
137 CATEG gns
138 DESCRIPTION
139 sim_SetSimulationStep sets the step used during the electrical simulation.
140 The unit is the second.
141 RETURN VALUE
142 none.
143 ERRORS
144 none.
145 */
146 extern void sim_SetSimulationStep (SimulationContext *sc, double step);
147
148 /*
149 MAN sim_SetSimulationSupply
150 CATEG gns
151 DESCRIPTION
152 sim_SetSimulationSupply sets the applied power supply during the electrical simulation.
153 The unit is the volt.
154 RETURN VALUE
155 none.
156 ERRORS
157 none.
158 */
159 extern void sim_SetSimulationSupply (SimulationContext *sc, double v_max);
160
161 /*
162 MAN sim_SetInputSwing
163 CATEG gns
164 DESCRIPTION
165 sets the swing to use for input connector/signal. Those values are used for instance when setting an input slope on a connector.
166 RETURN VALUE
167 none.
168 */
169 void sim_SetInputSwing (SimulationContext *sc, double v_vss, double v_max);
170
171 /*
172 MAN sim_SetOutputSwing
173 CATEG gns
174 DESCRIPTION
175 sets the swing to use for output signal when computing a delay to the output signal or the slope on an output signal.
176 RETURN VALUE
177 none.
178 */
179 void sim_SetOutputSwing (SimulationContext *sc, double v_vss, double v_max);
180
181 /*
182 MAN sim_GetSimulationSupply
183 CATEG gns
184 DESCRIPTION
185 sim_GetSimulationSupply returns the simulation voltage defined for the alimentation connector.
186 The unit is the volt.
187 RETURN VALUE
188 returns a double.
189 ERRORS
190 none.
191 */
192 extern double sim_GetSimulationSupply();
193
194 /*
195 MAN simn_SetSimulationTemp
196 CATEG gns
197 DESCRIPTION
198 sim_SetSimulationTemp sets the applied temperature during the electrical simulation.
199 The unit is the celsius degree.
200 RETURN VALUE
201 none.
202 ERRORS
203 none.
204 */
205 extern void sim_SetSimulationTemp (SimulationContext *sc, double temp);
206
207 /*
208 MAN sim_AddSimulationTechnoFile
209 CATEG gns
210 DESCRIPTION
211 sim_AddSimulationTechnoFile adds a technology file in list of technology files used to
212 parametrize the electrical simulation.
213 RETURN VALUE
214 none.
215 ERRORS
216 none.
217 */
218 extern void sim_AddSimulationTechnoFile (SimulationContext *sc, char *tech_file);
219
220 /*
221 MAN sim_SetSimulationCall
222 CATEG gns
223 DESCRIPTION
224 sim_SetSimulationCall sets the string which will be called to run the electrical simulator.
225 RETURN VALUE
226 none.
227 ERRORS
228 none.
229 */
230 extern void sim_SetSimulationCall (SimulationContext *sc, char *sim_call);
231
232 /*
233 MAN sim_NoiseSetAnalyseType
234 CATEG gns
235 DESCRIPTION
236 sim_NoiseSetAnalyseType sets the type of noise analysis. Allowed values are SIM_MIN and SIM_MAX.
237 RETURN VALUE
238 none.
239 ERRORS
240 none.
241 */
242 extern void sim_NoiseSetAnalyseType (SimulationContext *sc, char noise_type);
243
244 /*
245 MAN sim_SetSimulationOutputFile
246 CATEG gns
247 DESCRIPTION
248 sim_SetSimulationOutputFile specifies the extension of the file generated by the electrical simulator.
249 RETURN VALUE
250 none.
251 ERRORS
252 none.
253 */
254 extern void sim_SetSimulationOutputFile (SimulationContext *sc, char *output_file);
255
256 //*************************************
257 // Input PWL - DC values
258 //*************************************
259
260 /*
261 MAN sim_AddStuckLevel
262 CATEG gns
263 DESCRIPTION
264 sim_AddStuckLevel stucks the node to VDD if level is 1, to GND if level is 0.
265 RETURN VALUE
266 none.
267 ERRORS
268 none.
269 */
270 extern void sim_AddStuckLevel (SimulationContext *sc, char *node, int level);
271
272 /*
273 MAN sim_AddStuckLevelVector
274 CATEG gns
275 DESCRIPTION
276 sim_AddStuckLevelVector stucks the input bit vector to the hexadecimal value (VDD
277 if the bit value is 1, GND if the bit value is 0).
278 RETURN VALUE
279 none.
280 ERRORS
281 none.
282 */
283 extern void sim_AddStuckLevelVector (SimulationContext *sc, char *node, char *level);
284
285 /*
286 MAN sim_AddStuckVoltage
287 CATEG gns
288 DESCRIPTION
289 sim_AddStuckVoltage stucks the input to the value.
290 RETURN VALUE
291 none.
292 ERRORS
293 none.
294 */
295 extern void sim_AddStuckVoltage (SimulationContext *sc, char *node, double voltage);
296
297 /*
298 MAN sim_AddSlope
299 CATEG gns
300 DESCRIPTION
301 sim_AddSlope sets a rising slope on the input if sense is 'U', a falling slope
302 if sense is 'D'.
303 RETURN VALUE
304 none.
305 ERRORS
306 none.
307 */
308 extern void sim_AddSlope (SimulationContext *sc, char *node, double start_time, double transition_time, char sense);
309
310 /*
311 MAN sim_AddSlope
312 CATEG gns
313 DESCRIPTION
314 sim_AddSlope sets a rising slope on the input (an internal signal) if sense is 'U', a falling slope
315 if sense is 'D'.
316 RETURN VALUE
317 none.
318 ERRORS
319 none.
320 */
321 extern void sim_AddSignalSlope (SimulationContext *sc, char *node, double start_time, double transition_time, char sense);
322
323 PwlFunction *sim_builtin_tanh ();
324 PwlFunction *sim_builtin_ramp ();
325
326 /*
327 MAN sim_SetExternalCapacitance
328 CATEG gns
329 DESCRIPTION
330 sim_SetExternalCapacitance sets a capacitance {value} on the toplevel connector {node}.
331 RETURN VALUE
332 none.
333 ERRORS
334 none.
335 */
336
337 void sim_SetExternalCapacitance(SimulationContext *sc, char *node, double value);
338
339
340 /*
341 MAN sim_AddWaveForm
342 CATEG gns
343 DESCRIPTION
344 sim_AddWaveForm sets rising and falling transitions on the node, according to the string 'pattern'.
345 Specifying 1 in 'pattern' sets rising slope, 0 a falling slope.
346 RETURN VALUE
347 none.
348 ERRORS
349 none.
350 */
351 extern void sim_AddWaveForm (SimulationContext *sc, char *node, double trise, double tfall, double periode, char *pattern);
352
353 //*************************************
354 // Initial IC values
355 //*************************************
356 /*
357 MAN sim_AddInitLevel
358 CATEG gns
359 DESCRIPTION
360 sim_AddInitLevel initialize a node voltage to VDD if level = 1, to GND if level = 0.
361 RETURN VALUE
362 none.
363 ERRORS
364 none.
365 */
366 extern void sim_AddInitLevel (SimulationContext *sc, char *node, int level);
367
368 /*
369 MAN sim_AddInitVoltage
370 CATEG gns
371 DESCRIPTION
372 sim_AddInitVoltage initialize a node voltage to the value voltage.
373 RETURN VALUE
374 none.
375 ERRORS
376 none.
377 */
378 extern void sim_AddInitVoltage (SimulationContext *sc, char *node, double voltage);
379
380
381 /*
382 MAN sim_AddOutLoad
383 CATEG gns
384 DESCRIPTION
385 sim_AddOutLoad adds the capacitance 'load' on the specified 'node' output connector.
386 RETURN VALUE
387 none.
388 ERRORS
389 none.
390 */
391 void sim_AddOutLoad (SimulationContext *sc, char *node, double load);
392
393 //*************************************
394 // Mesure PRINT points
395 //*************************************
396 /*
397 MAN sim_AddMeasure
398 CATEG gns
399 DESCRIPTION
400 sim_AddMeasure prints the signal voltage to the simulator output file.
401 This function is needed to compute timing.
402 RETURN VALUE
403 none.
404 ERRORS
405 none.
406 */
407 extern void sim_AddMeasure (SimulationContext *sc, char *node);
408
409 /*
410 MAN sim_AddMeasureCurrent
411 CATEG gns
412 DESCRIPTION
413 sim_AddMeasureCurrent prints the node current to the simulator output file.
414 RETURN VALUE
415 none.
416 ERRORS
417 none.
418 */
419 extern void sim_AddMeasureCurrent (SimulationContext *sc, char *node);
420
421 //*************************************
422 // Simulation primitives
423 //*************************************
424 /*
425 MAN sim_RunSimulation
426 CATEG gns
427 DESCRIPTION
428 sim_RunSimulation launches the electrical simulation.
429 RETURN VALUE
430 none.
431 ERRORS
432 none.
433 */
434 extern void sim_RunSimulation (SimulationContext *sc, char *sim_call);
435
436 //*************************************
437 // Computing primitives
438 //*************************************
439
440 /*
441 MAN sim_ExtractMinSlope
442 CATEG gns
443 DESCRIPTION
444 After a simulation run, sim_ExtractMinSlope extracts the minimum slope of a node.
445 RETURN VALUE
446 sim_ExtractMinSlope returns the computed slope.
447 ERRORS
448 none.
449 */
450 extern double sim_ExtractMinSlope (SimulationContext *sc, char *node);
451
452 /*
453 MAN sim_ExtractMaxSlope
454 CATEG gns
455 DESCRIPTION
456 After a simulation run, sim_ExtractMaxSlope extracts the minimum slope of a node.
457 RETURN VALUE
458 sim_ExtractMaxSlope returns the computed slope.
459 ERRORS
460 none.
461 */
462 extern double sim_ExtractMaxSlope (SimulationContext *sc, char *node);
463
464
465 /*
466 MAN sim_ExtractMinDelay
467 CATEG gns
468 DESCRIPTION
469 After a simulation run, sim_ExtractMinDelay extracts the minimum delay between two nodes.
470 RETURN VALUE
471 sim_ExtractMinDelay returns the computed delay.
472 ERRORS
473 none.
474 */
475 extern double sim_ExtractMinDelay (SimulationContext *sc, char *node_a,char *node_b);
476
477 /*
478 MAN sim_ExtractMaxDelay
479 CATEG gns
480 DESCRIPTION
481 After a simulation run, sim_ExtractMaxDelay gets the maximum delay between two nodes.
482 RETURN VALUE
483 sim_ExtractMaxDelay returns the computed delay.
484 ERRORS
485 none.
486 */
487 extern double sim_ExtractMaxDelay (SimulationContext *sc, char *node_a,char *node_b);
488
489 /*
490 MAN sim_ComputeAllDelay
491 CATEG gns
492 DESCRIPTION
493 After a simulation run, sim_ComputeAllDelay computes all the delays between two nodes.
494 RETURN VALUE
495 sim_ComputeAllDelay returns the list of computed delays.
496 ERRORS
497 none.
498 */
499 extern Timing *sim_ExtractAllTimings (SimulationContext *sc, char *node_a,char *node_b);
500
501 /*
502 MAN sim_ExtractMinTransitionDelay
503 CATEG gns
504 DESCRIPTION
505 After a simulation run, sim_ExtractMinTransitionDelay extracts the mininum delay between two nodes, see sim_ExtractMinDelay.
506 Parameter 'transition' can be for example "U1D2". In this configuration, delay will be extracted between the second
507 rise transition of 'node_a' and the third falling transition of 'node_b'.
508 RETURN VALUE
509 sim_ExtractMinTransitionDelay returns a delay.
510 ERRORS
511 none.
512 */
513 extern double sim_ExtractMinTransitionDelay (SimulationContext *sc, char *node_a,char *node_b,char *transition);
514
515 /*
516 MAN sim_ExtractMaxTransitionDelay
517 CATEG gns
518 DESCRIPTION
519 After a simulation run, sim_ExtractMaxTransitionDelay extracts the maximum delay between two nodes, see sim_ExtractMaxDelay.
520 Parameter 'transition' can be for example "U1D2". In this configuration, delay will be extracted between the second
521 rise transition of 'node_a' and the third falling transition of 'node_b'.
522 RETURN VALUE
523 sim_ExtractMaxTransitionDelay returns a delay.
524 ERRORS
525 none.
526 */
527 extern double sim_ExtractMaxTransitionDelay (SimulationContext *sc, char *node_a,char *node_b,char *transition);
528
529 /*
530 MAN sim_ExtractMinTransitionSlope
531 CATEG gns
532 DESCRIPTION
533 After a simulation run, sim_ExtractMinTransitionSlope extracts the minimum slope of a node.
534 Parameter 'transition' can be for example "U1". In this configuration, slope will be extracted from the
535 second rising transition of the node.
536 RETURN VALUE
537 sim_ExtractMaxTransitionDelay returns a slope.
538 ERRORS
539 none.
540 */
541 extern double sim_ExtractMinTransitionSlope (SimulationContext *sc, char *node,char *transition);
542
543 /*
544 MAN sim_ExtractMaxTransitionSlope
545 CATEG gns
546 DESCRIPTION
547 After a simulation run, sim_ExtractMaxTransitionSlope extracts the maximum slope of a node.
548 Parameter 'transition' can be for example "D2". In this configuration, slope will be extracted from the third falling transition of the node.
549 RETURN VALUE
550 sim_ExtractMaxTransitionSlope returns a slope.
551 ERRORS
552 none.
553 */
554 extern double sim_ExtractMaxTransitionSlope (SimulationContext *sc, char *node,char *transition);
555
556 /*
557 MAN sim_ComputeSetup
558 CATEG gns
559 DESCRIPTION
560 sim_ComputeSetup computes the setup time of 'data' relatively to 'command'. Setup time is computed by
561 observing the latest 'data' transition, relatively to 'command', that generates a transition on
562 the memory point.
563 data : name of the data
564 tstart_d : start time of the pulse on data
565 tslope_d : slope of the pulse on data
566 sens_d : transition of the data : 'U' for rising, 'D' for falling
567 cmd : name of the command
568 tstart_min : minimum starting time of the pulse on cmd
569 tstart_max : maximum starting time of the pulse on cmd
570 tslope_c : slope of the pulse on cmd
571 sens_c : transition of the cmd : 'U' for rising, 'D' for falling
572 mem : name of the memory point
573 data_val : expected value on mem : 1 for VDD, 0 for VSS
574 RETURN VALUE
575 sim_ComputeSetup returns the setup computed.
576 ERRORS
577 none.
578 */
579 extern double sim_ComputeSetup (SimulationContext *sc, char *data,double tstart_d,double tslope_d, char sense_d, char *cmd,double t_start_min_c, double t_start_max_c, double tslope_c,char sense_c, char *mem, int data_val);
580
581
582 /*
583 MAN sim_ComputeHold
584 CATEG gns
585 DESCRIPTION
586 sim_ComputeHold computes the hold time of 'data' relatively to 'command'. Hold time is computed by observing
587 the latest 'data' transition, relatively to command, that doesn't generate
588 any transition on the memory point.
589 data : name of the data
590 tstart_d : start time of the pulse on data
591 tslope_d : slope of the pulse on data
592 sens_d : transition of the data : 'U' for rising, 'D' for falling
593 cmd : name of the command
594 tstart_min : minimum starting time of the pulse on cmd
595 tstart_max : maximum starting time of the pulse on cmd
596 tslope_c : slope of the pulse on cmd
597 sens_c : transition of the cmd : 'U' for rising, 'D' for falling
598 mem : name of the memory point
599 data_val : expected value on mem : 1 for VDD, 0 for VSS
600 RETURN VALUE
601 sim_ComputeHold returns the setup computed.
602 ERRORS
603 none.
604 */
605 extern double sim_ComputeHold (SimulationContext *sc, char *data, double tstart_d,double tslope_d, char sense_d, char *cmd,double t_start_min_c, double t_start_max_c, double tslope_c,char sense_c, char *mem, int data_val);
606
607 /*
608 MAN sim_ComputeAccess
609 CATEG gns
610 DESCRIPTION
611 sim_ComputeAccess gives the access time of 'dout' relatively to 'command'. Access time is computed by observing
612 the delay between the transition on 'command' and the transition on 'dout'.
613 RETURN VALUE
614 sim_ComputeAccess returns the access computed.
615 ERRORS
616 none.
617 */
618 extern double sim_ComputeAccess (SimulationContext *sc, char *dout, int dout_val,char *cmd, double tstart_c, double tslope_c, char sens_c, char *mem, int mem_val, double *out_slope);
619
620 /*
621 MAN elp_GetCapaFromConnector
622 CATEG gns
623 DESCRIPTION
624 elp_GetCapaFromConnector gives the capacitance of a transistor's connector.
625 RETURN VALUE
626 elp_GetCapaFromConnector returns a capacitance in F.
627 ERRORS
628 none.
629 */
630 extern double elp_GetCapaFromConnector (SimulationContext *sc, Connector *locon);
631
632 /*
633 MAN sim_ComputeDelay
634 CATEG gns
635 DESCRIPTION
636 sim_ComputeDelay gives a list of delays between a constant input and a list of outputs.
637 RETURN VALUE
638 sim_ComputeDelay returns a list of delays.
639 ERRORS
640 none.
641 */
642 extern List *sim_ComputeDelay (SimulationContext *sc, char *input, char sens, List *list_output);
643
644 /*
645 MAN sim_ComputeMaxDelayTransition
646 CATEG gns
647 DESCRIPTION
648 sim_ComputeMaxDelayTransition gives the maximum delay corresponding to a transition between the input and the output.
649 RETURN VALUE
650 sim_ComputeMaxDelayTransition returns a delay.
651 ERRORS
652 none.
653 */
654 extern double sim_ComputeMaxDelayTransition (SimulationContext *sc, char *input, double input_start, double input_slope,char *output, char *transition);
655
656 /*
657 MAN sim_ComputeMinDelayTransition
658 CATEG gns
659 DESCRIPTION
660 sim_ComputeMinDelayTransition gives the minimum delay corresponding to a transition between the input and the output.
661 RETURN VALUE
662 sim_ComputeMinDelayTransition returns a delay.
663 ERRORS
664 none.
665 */
666 extern double sim_ComputeMinDelayTransition (SimulationContext *sc, char *input, double input_start, double input_slope,char *output, char *transition);
667
668 /*
669 MAN sim_GetTimingFromList
670 CATEG gns
671 DESCRIPTION
672 sim_GetTimingFromList gives a timing object corresponding to a list.
673 RETURN VALUE
674 sim_GetTimingFromList returns a timing object.
675 ERRORS
676 none.
677 */
678 extern Timing *sim_GetTimingFromList (List *list);
679
680 /*
681 MAN sim_GetTimingNext
682 CATEG gns
683 DESCRIPTION
684 sim_GetTimingNext gives the next timing object.
685 RETURN VALUE
686 sim_GetTimingNext returns a timing object.
687 ERRORS
688 none.
689 */
690 extern Timing *sim_GetTimingNext (Timing *timing);
691
692 /*
693 MAN sim_GetTiming
694 CATEG gns
695 DESCRIPTION
696 sim_GetTiming retrieves the timing between the root node name 'rootname' and the destination node name 'nodename'.
697 RETURN VALUE
698 sim_GetTiming returns the pointer on the timing, NULL if this corresponding timing doesn't exist.
699 ERRORS
700 none.
701 */
702 extern Timing *sim_GetTiming (char *root,char *node);
703
704 /*
705 MAN sim_GetTimingByEvent
706 CATEG gns
707 DESCRIPTION
708 sim_GetTimingByEvent retrieves the timing between the root node name 'rootname' and the destination node name 'nodename'.
709 This timing must respect the good event on 'rootname' and 'nodename'.
710 Event is the expected event from root to node, it can be 'U' (rising) or 'D' (falling) and can be followed by an integer.
711 RETURN VALUE
712 sim_GetTimingByEvent returns the pointer on the timing, NULL if this corresponding timing doesn't exist.
713 ERRORS
714 none.
715 */
716 extern Timing *sim_GetTimingByEvent (char *root,char *node,char *event);
717
718 /*
719 MAN sim_GetTimingDelay
720 CATEG gns
721 DESCRIPTION
722 sim_GetTimingDelay gets the delay corresponding to the timing.
723 RETURN VALUE
724 sim_GetTimingDelay returns a delay.
725 ERRORS
726 none.
727 */
728 extern double sim_GetTimingDelay (Timing *timing);
729
730 /*
731 MAN sim_GetTimingMinDelay
732 CATEG gns
733 DESCRIPTION
734 sim_GetTimingMinDelay gets the minimun delay corresponding to the timing.
735 RETURN VALUE
736 sim_GetTimingMinDelay returns a delay.
737 ERRORS
738 none.
739 */
740 extern double sim_GetTimingMinDelay (Timing *timing);
741
742 /*
743 MAN sim_GetTimingMaxDelay
744 CATEG gns
745 DESCRIPTION
746 sim_GetTimingMaxDelay gets the maximun delay corresponding to the timing.
747 RETURN VALUE
748 sim_GetTimingMaxDelay returns a delay.
749 ERRORS
750 none.
751 */
752 extern double sim_GetTimingMaxDelay (Timing *timing);
753
754 /*
755 MAN sim_GetTimingSlope
756 CATEG gns
757 DESCRIPTION
758 sim_GetTimingSlope gets the slope corresponding to the timing.
759 RETURN VALUE
760 sim_GetTimingSlope returns a slope.
761 ERRORS
762 none.
763 */
764 extern double sim_GetTimingSlope (Timing *timing);
765
766 /*
767 MAN sim_GetTimingMinSlope
768 CATEG gns
769 DESCRIPTION
770 sim_GetTimingMinSlope gets the minimum slope corresponding to the timing.
771 RETURN VALUE
772 sim_GetTimingMinSlope returns a slope.
773 ERRORS
774 none.
775 */
776 extern double sim_GetTimingMinSlope (Timing *timing);
777
778 /*
779 MAN sim_GetTimingMaxSlope
780 CATEG gns
781 DESCRIPTION
782 sim_GetTimingMaxSlope gets the maximum slope corresponding to the timing.
783 RETURN VALUE
784 sim_GetTimingMaxSlope returns a slope.
785 ERRORS
786 none.
787 */
788 extern double sim_GetTimingMaxSlope (Timing *timing);
789
790 /*
791 MAN sim_GetTimingRoot
792 CATEG gns
793 DESCRIPTION
794 sim_GetTimingRoot gets the name of the root node corresponding to the timing.
795 RETURN VALUE
796 sim_GetTimingRoot returns a name.
797 ERRORS
798 none.
799 */
800 extern char *sim_GetTimingRoot (Timing *timing);
801
802 /*
803 MAN sim_GetTimingNode
804 CATEG gns
805 DESCRIPTION
806 sim_GetTimingNode gets the name of the node (destination) corresponding to the timing.
807 RETURN VALUE
808 sim_GetTimingNode returns a name.
809 ERRORS
810 none.
811 */
812 extern char *sim_GetTimingNode (Timing *timing);
813
814 /*
815 MAN sim_GetTimingRootInNetlist
816 CATEG gns
817 DESCRIPTION
818 sim_GetTimingRootInNetlist gets the name of the root node in the netlist corresponding to the timing.
819 RETURN VALUE
820 sim_GetTimingRootInNetlist returns a name.
821 ERRORS
822 none.
823 */
824 extern char *sim_GetTimingRootInNetlist (Timing *timing);
825
826 /*
827 MAN sim_GetTimingNodeInNetlist
828 CATEG gns
829 DESCRIPTION
830 sim_GetTimingNodeInNetlist gets the name of node (destination) in the netlist corresponding to the timing.
831 RETURN VALUE
832 sim_GetTimingNodeInNetlist returns a name.
833 ERRORS
834 none.
835 */
836 extern char *sim_GetTimingNodeInNetlist (Timing *timing);
837
838 /*
839 MAN sim_GetTimingRootEvent
840 CATEG gns
841 DESCRIPTION
842 sim_GetTimingRootEvent gets the event of the root node corresponding to the timing.
843 Event is SIM_FALL or SIM_RISE.
844 RETURN VALUE
845 sim_GetTimingRootEvent returns an event.
846 ERRORS
847 none.
848 */
849 extern char sim_GetTimingRootEvent (Timing *timing);
850
851 /*
852 MAN sim_GetTimingNodeEvent
853 CATEG gns
854 DESCRIPTION
855 sim_GetTimingNodeEvent gets the event of the node (destination) corresponding to the timing.
856 Event is SIM_FALL or SIM_RISE.
857 RETURN VALUE
858 sim_GetTimingNodeEvent returns an event.
859 ERRORS
860 none.
861 */
862 extern char sim_GetTimingNodeEvent (Timing *timing);
863
864 /*
865 MAN sim_NoiseExtract
866 CATEG gns
867 DESCRIPTION
868 After a simulation run, sim_NoiseExtract extracts the maximum noise on a node between
869 two moments.
870 The initial time (tinit) and the tfinal time (tfinal) represent the timing bounds
871 to extract noise.
872 vthnoise is the threshold voltage to extract noise (percentage of vdd).
873 RETURN VALUE
874 none.
875 ERRORS
876 none.
877 */
878 extern void sim_NoiseExtract (SimulationContext *sc, char *node, double vthnoise, double tinit, double tfinal);
879
880 /*
881 MAN sim_NoiseGetVth
882 CATEG gns
883 DESCRIPTION
884 sim_NoiseGetVth gets the noise threshold voltage on the node 'name'.
885 RETURN VALUE
886 none.
887 ERRORS
888 none.
889 */
890 extern double sim_NoiseGetVth (SimulationContext *sc, char *name);
891
892 /*
893 MAN sim_NoiseGetPeakList
894 CATEG gns
895 DESCRIPTION
896 sim_NoiseGetPeakList gets a list of peaks relatively to node 'name'.
897 RETURN VALUE
898 sim_NoiseGetPeakList returns a 'List'.
899 ERRORS
900 none.
901 */
902 extern List *sim_NoiseGetPeakList (SimulationContext *sc, char *name);
903
904 /*
905 MAN sim_NoiseGetMomentList
906 CATEG gns
907 DESCRIPTION
908 sim_NoiseGetMomentList gets a list of moment of passage on noise threshold
909 voltage relatively to node 'name'.
910 RETURN VALUE
911 sim_NoiseGetMomentList returns a 'List'.
912 ERRORS
913 none.
914 */
915 extern List *sim_NoiseGetMomentList (SimulationContext *sc, char *name);
916
917 /*
918 MAN sim_NoiseGetMoment
919 CATEG gns
920 DESCRIPTION
921 sim_NoiseGetMoment gets a the moment of passage on noise threshold
922 voltage from a pointer on a pointer list returned by sim_NoiseGetMomentList.
923 RETURN VALUE
924 sim_NoiseGetMoment returns a moment.
925 ERRORS
926 none.
927 */
928 extern double sim_NoiseGetMoment (SimulationContext *sc, List *noise_tclist);
929
930 /*
931 MAN sim_NoiseGetPeakValue
932 CATEG gns
933 DESCRIPTION
934 sim_NoiseGetPeakValue gets the peak value (voltage) relatively to the node 'name' and a pointer
935 on a List returned by sim_NoiseGetPeakList.
936 RETURN VALUE
937 sim_NoiseGetPeakValue returns a voltage.
938 ERRORS
939 none.
940 */
941 extern double sim_NoiseGetPeakValue (SimulationContext *sc, char *name,List *noise_peaklist);
942
943 /*
944 MAN sim_NoiseGetPeakMoment
945 CATEG gns
946 DESCRIPTION
947 sim_NoiseGetPeakMoment gets the peak moment relatively to a pointer
948 on a List returned by sim_NoiseGetPeakList.
949 RETURN VALUE
950 sim_NoiseGetPeakMoment returns a moment (time).
951 ERRORS
952 none.
953 */
954 extern double sim_NoiseGetPeakMoment (SimulationContext *sc, List *noise_peaklist);
955
956 /*
957 MAN sim_NoiseExtractMaxPeakValue
958 CATEG gns
959 DESCRIPTION
960 sim_NoiseExtractMaxPeakValue gets the maximum peak value relatively to the node 'name'.
961 RETURN VALUE
962 sim_NoiseExtractMaxPeakValue returns a voltage.
963 ERRORS
964 none.
965 */
966 extern double sim_NoiseExtractMaxPeakValue (SimulationContext *sc, char *name);
967
968 /*
969 MAN sim_NoiseExtractMinPeakValue
970 CATEG gns
971 DESCRIPTION
972 sim_NoiseExtractMinPeakValue gets the minimum peak value relatively to the node 'name'.
973 RETURN VALUE
974 sim_NoiseExtractMinPeakValue returns a voltage.
975 ERRORS
976 none.
977 */
978 extern double sim_NoiseExtractMinPeakValue (SimulationContext *sc, char *name);
979
980 /*
981 MAN sim_NoiseExtractMaxPeakMoment
982 CATEG gns
983 DESCRIPTION
984 sim_NoiseExtractMaxPeakMoment gets the moment of the maximum peak relatively to the node 'name'.
985 RETURN VALUE
986 sim_NoiseExtractMaxPeakMoment returns a moment.
987 ERRORS
988 none.
989 */
990 extern double sim_NoiseExtractMaxPeakMoment (SimulationContext *sc, char *name);
991
992 /*
993 MAN sim_NoiseExtractMinPeakMoment
994 CATEG gns
995 DESCRIPTION
996 sim_NoiseExtractMinPeakMoment gets the moment of the minimum peak relatively to the node 'name'.
997 RETURN VALUE
998 sim_NoiseExtractMinPeakMoment returns a moment.
999 ERRORS
1000 none.
1001 */
1002 extern double sim_NoiseExtractMinPeakMoment (SimulationContext *sc, char *name);
1003
1004 /*
1005 MAN sim_NoiseGetMomentBeforePeak
1006 CATEG gns
1007 DESCRIPTION
1008 sim_NoiseGetMomentBeforePeak gets the moment of passage on noise threshold voltage
1009 relatively to node 'name' and before a peak which is a pointer on a List returned by sim_NoiseGetPeakList.
1010 RETURN VALUE
1011 sim_NoiseGetMomentBeforePeak returns a moment.
1012 ERRORS
1013 none.
1014 */
1015 extern double sim_NoiseGetMomentBeforePeak (SimulationContext *sc, char *name,List *peak);
1016
1017 /*
1018 MAN sim_NoiseGetMomentAfterPeak
1019 CATEG gns
1020 DESCRIPTION
1021 sim_NoiseGetMomentAfterPeak gets the moment of passage on noise threshold voltage
1022 relatively to node 'name' and after a peak which is a pointer on a List returned by sim_NoiseGetPeakList.
1023 RETURN VALUE
1024 sim_NoiseGetMomentAfterPeak returns a moment.
1025 ERRORS
1026 none.
1027 */
1028 extern double sim_NoiseGetMomentAfterPeak (SimulationContext *sc, char *name,List *peak);
1029
1030 /*
1031 MAN sim_NoiseGetPeakDuration.
1032 CATEG gns
1033 DESCRIPTION
1034 sim_NoiseGetPeakDuration gets the duration of a peak which is a pointer on a
1035 List returned by sim_NoiseGetPeakList.
1036 RETURN VALUE
1037 sim_NoiseGetPeakDuration returns a duration.
1038 ERRORS
1039 none.
1040 */
1041 extern double sim_NoiseGetPeakDuration (SimulationContext *sc, char *name,List *peak);
1042
1043 /*
1044 MAN sim_NoiseExtractMomentBeforeMaxPeak.
1045 CATEG gns
1046 DESCRIPTION
1047 sim_NoiseExtractMomentBeforeMaxPeak extracts the moment of passage on noise threshold voltage
1048 before the maximum peak relatively to node 'name'.
1049 RETURN VALUE
1050 sim_NoiseExtractMomentBeforeMaxPeak returns a moment.
1051 ERRORS
1052 none.
1053 */
1054 extern double sim_NoiseExtractMomentBeforeMaxPeak (SimulationContext *sc, char *name);
1055
1056 /*
1057 MAN sim_NoiseExtractMomentBeforeMinPeak.
1058 CATEG gns
1059 DESCRIPTION
1060 sim_NoiseExtractMomentBeforeMinPeak extracts the moment of passage on noise threshold voltage
1061 before the minimum peak relatively to node 'name'.
1062 RETURN VALUE
1063 sim_NoiseExtractMomentBeforeMinPeak returns a moment.
1064 ERRORS
1065 none.
1066 */
1067 extern double sim_NoiseExtractMomentBeforeMinPeak (SimulationContext *sc, char *name);
1068
1069 /*
1070 MAN sim_NoiseExtractMomentAfterMaxPeak.
1071 CATEG gns
1072 DESCRIPTION
1073 sim_NoiseExtractMomentAfterMaxPeak extracts the moment of passage on noise threshold voltage
1074 after the maximum peak relatively to node 'name'.
1075 RETURN VALUE
1076 sim_NoiseExtractMomentAfterMaxPeak returns a moment.
1077 ERRORS
1078 none.
1079 */
1080 extern double sim_NoiseExtractMomentAfterMaxPeak (SimulationContext *sc, char *name);
1081
1082 /*
1083 MAN sim_NoiseExtractMomentAfterMinPeak.
1084 CATEG gns
1085 DESCRIPTION
1086 sim_NoiseExtractMomentAfterMinPeak extracts the moment of passage on noise threshold voltage
1087 after the minimum peak relatively to node 'name'.
1088 RETURN VALUE
1089 sim_NoiseExtractMomentAfterMinPeak returns a moment.
1090 ERRORS
1091 none.
1092 */
1093 extern double sim_NoiseExtractMomentAfterMinPeak (SimulationContext *sc, char *name);
1094
1095 /*
1096 MAN sim_NoiseExtractMaxPeakDuration.
1097 CATEG gns
1098 DESCRIPTION
1099 sim_NoiseExtractMaxPeakDuration extracts the duration of the maximum peak relatively to node 'name'.
1100 RETURN VALUE
1101 sim_NoiseExtractMaxPeakDuration returns a duration.
1102 ERRORS
1103 none.
1104 */
1105 extern double sim_NoiseExtractMaxPeakDuration (SimulationContext *sc, char *name);
1106
1107 /*
1108 MAN sim_NoiseExtractMinPeakDuration.
1109 CATEG gns
1110 DESCRIPTION
1111 sim_NoiseExtractMinPeakDuration extracts the duration of the minimum peak relatively to node 'name'.
1112 RETURN VALUE
1113 sim_NoiseExtractMinPeakDuration returns a duration.
1114 ERRORS
1115 none.
1116 */
1117 extern double sim_NoiseExtractMinPeakDuration (SimulationContext *sc, char *name);
1118
1119 /*
1120 MAN sim_DriveLut
1121 CATEG gns
1122 DESCRIPTION
1123 sim_DriveLut drives a look up table of delays, X-axis correspond to slew variations and
1124 Y-axis correspond to load variations.
1125 'lcin' is the name of the input connector, 'lcout' is the name of the output connector.
1126 'transition' is the expected transition between 'lcin' and 'lcout'.
1127 'slew_range' is a list of slew, 'load_range' is a list of load.
1128 RETURN VALUE
1129 none.
1130 ERRORS
1131 none.
1132 */
1133 //extern void sim_DriveLut (SimulationContext *sc, char *lcin, char *lcout, char *transition, List *slew_range, List *load_range);
1134
1135 /*
1136 MAN sim_DriveNodeState
1137 CATEG gns
1138 DESCRIPTION
1139 sim_DriveNodeState drives successives states of the 'node_state2drive' in the file 'filename'
1140 (which also contains file's extension). 'node_ref' is the node reference, 'type' can be
1141 SIM_RISE or SIM_FALL and represents the event on 'node_ref' which will sample 'node_state2drive'.
1142 RETURN VALUE
1143 none.
1144 ERRORS
1145 none.
1146 */
1147 extern void sim_DriveNodeState (SimulationContext *sc, char *filename,char *node_ref,char *node_state2drive,char type);
1148
1149 /*
1150 MAN sim_ExtractCommutInstant
1151 CATEG gns
1152 DESCRIPTION
1153 sim_ExtractCommutInstant extract the first instant when the node reach the
1154 voltage value 'voltage'.
1155 RETURN VALUE
1156 none.
1157 ERRORS
1158 none.
1159 */
1160 extern double sim_ExtractCommutInstant (SimulationContext *sc, char *node,double voltage);
1161
1162
1163 /*
1164 MAN sim_DriveTransistorAsInstance
1165 CATEG gns
1166 DESCRIPTION
1167 sim_DriveTransistorAsInstance(<context>, <mode>) indicates is the transistor should be driven as instances.
1168
1169 eg. M124 src grid drain bulk ... => XM124 src grid drain bulk ...
1170
1171 the value for mode is 'y' to enable the transformation else 'n'
1172 RETURN VALUE
1173 none.
1174 ERRORS
1175 none.
1176 */
1177 extern void sim_DriveTransistorAsInstance (SimulationContext *sc, char mode);
1178
1179 extern Netlist *sim_GetNetlist (char *name);
1180
1181
1182 /*
1183 MAN sim_SaveContext
1184 CATEG gns
1185 DESCRIPTION
1186 sim_SaveContext(<context>, <label>) duplicate the <context> so the simulation initial conditions can be stored for automatic resimulations. The resulting simulation context is generaly used when creation timing lines who can be recomputed dynamically during a stability analysis process for instance. If label!=NULL, it can be used to retrieve the saved simulation context.
1187 RETURN VALUE
1188 returns a `SimulationContext *'.
1189 ERRORS
1190 none.
1191 SEE ALSO
1192 sim_GetSavedContext, sim_AddAlias
1193 */
1194 //extern SimulationContext *sim_SaveContext (SimulationContext *sc, char *label);
1195
1196
1197 /*
1198 MAN sim_GetSavedContext
1199 CATEG gns
1200 DESCRIPTION
1201 sim_GetSavedContext(<context>, <label>) returns a previously saved simulation context. If the context if not found, NULL is returned.
1202 RETURN VALUE
1203 returns a `SimulationContext *'.
1204 ERRORS
1205 none.
1206 SEE ALSO
1207 sim_SaveContext, sim_AddAlias
1208 */
1209 //extern SimulationContext *sim_GetSavedContext(SimulationContext *src, char *label);
1210
1211
1212 /*
1213 MAN sim_AddAlias
1214 CATEG gns
1215 DESCRIPTION
1216 sim_AddAlias(<context>, <src>, <dest>) create a signal alias. The effect is to translate all the simulation delay or slope computation from one signal to another. This function is very usefull when only one simulation is used to compute the delay or slope for a range of signal. When automatically recomputing the timing line delay for com(2) for instance, is com(2) is aliased to com(1), com(1) will be used to compute the delay or slope.
1217 RETURN VALUE
1218 none.
1219 ERRORS
1220 none.
1221 SEE ALSO
1222 sim_SaveContext
1223 */
1224 //void sim_AddAlias(SimulationContext *sc, char *source, char *destination);
1225
1226
1227 void SET_CONTEXT(SimulationContext *sc);
1228 SimulationContext *GET_CONTEXT();
1229
1230
1231 /*
1232 MAN sim_AddSpiceMeasure
1233 CATEG gns
1234 DESCRIPTION
1235 RETURN VALUE
1236 none.
1237 ERRORS
1238 none.
1239 SEE ALSO
1240 */
1241 void sim_AddSpiceMeasure(SimulationContext *sc, char *delay, char *slope, char *sig1, char *sig2, char *transition, char delay_type);
1242 /*
1243 MAN sim_AddSpiceMeasureSlope
1244 CATEG gns
1245 DESCRIPTION
1246 Add a slope measure of sig that can be extracted by the
1247 label (slope).
1248 Transition is a string containing the transition of sig.
1249 Tolerated transition are 'U' and 'D'.
1250 The <delay_type> can be SIM_MIN or SIM_MAX meaning the node choosen to compute the delay or the slope
1251 is the closer or the farther one.
1252 RETURN VALUE
1253 none.
1254 ERRORS
1255 none.
1256 SEE ALSO
1257 */
1258 void sim_AddSpiceMeasureSlope(SimulationContext *sc, char *slope, char *sig, char *transition, char delay_type);
1259 /*
1260 MAN sim_AddSpiceMeasureDelay
1261 CATEG gns
1262 DESCRIPTION
1263 Add a measure of delay between sig1 and sig2 that can be extracted by the
1264 label (delay).
1265 Transition is a string containing the transition of sig1 and sig2.
1266 The <delay_type> can be SIM_MIN or SIM_MAX meaning the node choosen to compute the delay or the slope
1267 is the closer or the farther one.
1268 Tolerated transition are 'U' and 'D'.
1269 RETURN VALUE
1270 none.
1271 ERRORS
1272 none.
1273 SEE ALSO
1274 */
1275 void sim_AddSpiceMeasureDelay(SimulationContext *sc, char *delay, char *sig1, char *sig2, char *transition, char delay_type);
1276 /*
1277 MAN sim_ReadMeasure
1278 CATEG gns
1279 DESCRIPTION
1280 Reads the simulation results from {filename} and return the value corresponding to the measure {label}.
1281 On failure, returns {-1}.
1282 RETURN VALUE
1283 returns -1 on failure.
1284 ERRORS
1285 none.
1286 SEE ALSO
1287 */
1288 double sim_ReadMeasure(char *filename, char *label);
1289
1290 /*
1291 MAN sim_ResetMeasures
1292 CATEG gns
1293 DESCRIPTION
1294 Resets all the measures set in the simulation context.
1295 */
1296 void sim_ResetMeasures(SimulationContext *model);
1297
1298 //int sim_GetSpiceMeasure(SimulationContext *sc, char *label, double *value);
1299 /*
1300 MAN sim_GetSpiceMeasureSlope
1301 CATEG gns
1302 DESCRIPTION
1303 Returns the slope computed for the label, 0.0 if slope has not been computed.
1304 RETURN VALUE
1305 ERRORS
1306 none.
1307 SEE ALSO
1308 */
1309 double sim_GetSpiceMeasureSlope(SimulationContext *model, char *label);
1310 /*
1311 MAN sim_GetSpiceMeasureDelay
1312 CATEG gns
1313 DESCRIPTION
1314 Returns the delay computed for the label, 0.0 if delay has not been computed.
1315 RETURN VALUE
1316 ERRORS
1317 none.
1318 SEE ALSO
1319 */
1320
1321
1322 double sim_GetSpiceMeasureDelay(SimulationContext *model, char *label);
1323
1324 /*
1325 MAN sim_SpiceMeasure
1326 CATEG gns
1327 DESCRIPTION
1328 Add a delay measure between sig1 and sig2 that can be extracted by the
1329 label (delay).
1330 Add a slope measure of sig that can be extracted by the
1331 label (slope).
1332 Transition is a string containing the transition of sig1 and sig2.
1333 Tolerated transition are 'U' and 'D'.
1334 The <delay_type> can be SIM_MIN or SIM_MAX meaning the node choosen to compute the delay or the slope
1335 is the closer or the farther one.
1336 After simulation completed get the delay and the slope computed
1337 for each label and store it into the adress pointed by valued(delay)
1338 and values(slope).
1339 RETURN VALUE
1340 none.
1341 ERRORS
1342 none.
1343 SEE ALSO
1344 sim_SpiceMeasureDelay, sim_SpiceMeasureSlope
1345 */
1346 void sim_SpiceMeasure(SimulationContext *model, char *delay, double *valued, char *slope, double *values, char *sig1, char *sig2, char *transition, char delay_type);
1347
1348 /*
1349 MAN sim_SpiceMeasureDelay
1350 CATEG gns
1351 DESCRIPTION
1352 Add a measure of delay between sig1 and sig2 that can be extracted by the
1353 label (delay).
1354 Transition is a string containing the transition of sig1 and sig2.
1355 Tolerated transition are 'U' and 'D'.
1356 The <delay_type> can be SIM_MIN or SIM_MAX meaning the node choosen to compute the delay or the slope
1357 is the closer or the farther one.
1358 After simulation completed get the delay computed for the label
1359 and store it into the adress pointed by value.
1360 RETURN VALUE
1361 none.
1362 ERRORS
1363 none.
1364 SEE ALSO
1365 */
1366 void sim_SpiceMeasureDelay(SimulationContext *model, char *delay, double *value, char *sig1, char *sig2, char *transition, char delay_type);
1367
1368 /*
1369 MAN sim_SpiceMeasureSlope
1370 CATEG gns
1371 DESCRIPTION
1372 Add a slope measure of sig that can be extracted by the
1373 label (slope).
1374 Transition is a string containing the transition of sig.
1375 Tolerated transition are 'U' and 'D'.
1376 The <delay_type> can be SIM_MIN or SIM_MAX meaning the node choosen to compute the delay or the slope
1377 is the closer or the farther one.
1378 After simulation completed get the slope computed for the label
1379 and store it into the adress pointed by value.
1380 RETURN VALUE
1381 none.
1382 ERRORS
1383 none.
1384 SEE ALSO
1385 */
1386 void sim_SpiceMeasureSlope(SimulationContext *model, char *slope, double *value, char *sig, char *transition, char delay_type);
1387
1388 void sim_DumpDelayDetail(SimulationContext *model, char *name1, char *name2, char *transition, FILE *f);
1389
1390 void sim_RenameModel(SimulationContext *sc, char *name);
1391
1392 double sim_SpreadRC(SimulationContext *sc, char *input, char *output, char *dir, double input_delay, double delta_delay);
1393
1394 /*
1395 MAN sim_DefineInclude
1396 CATEG gns
1397 DESCRIPTION
1398 Sets the filename containing the netlist to apply the pattern to. When this option is used, the gns rule netlist won't be used for the simulation. It will be replaced by the external file given in <filename> at the simulation time.
1399 RETURN VALUE
1400 none.
1401 */
1402 void sim_DefineInclude(SimulationContext *sc, char *filename);
1403
1404 /*
1405 MAN cpe_DefineCorrelation
1406 CATEG tcl+cpe
1407 SYNOPSIS
1408 cpe_DefineCorrelation <net1> <relation> <net2>\$
1409 DESCRIPTION
1410 Defines the relation between 2 signals to help computing propagation condition for simulations.
1411 ARGS
1412 net1 % First net name.
1413 relation % Value '{=}' means {net1}={net2}\$ Value '{!=}' means {net1}=not({net2})
1414 net2 % Second net name.
1415 EXAMPLE % {cpe_DefineCorrelation clk != clkb}
1416 */
1417 void cpe_DefineCorrelation(void);
1418