You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
2.8 KiB
139 lines
2.8 KiB
#ifndef ngspice_EVTPROTO_H
|
|
#define ngspice_EVTPROTO_H
|
|
|
|
/* ===========================================================================
|
|
FILE EVTproto.h
|
|
|
|
MEMBER OF process XSPICE
|
|
|
|
Copyright 1991
|
|
Georgia Tech Research Corporation
|
|
Atlanta, Georgia 30332
|
|
All Rights Reserved
|
|
|
|
PROJECT A-8503
|
|
|
|
AUTHORS
|
|
|
|
9/12/91 Bill Kuhn
|
|
|
|
MODIFICATIONS
|
|
|
|
<date> <person name> <nature of modifications>
|
|
|
|
SUMMARY
|
|
|
|
This file contains ANSI C function prototypes for functions
|
|
in the event-driven simulation algorithm package.
|
|
|
|
INTERFACES
|
|
|
|
None.
|
|
|
|
REFERENCED FILES
|
|
|
|
None.
|
|
|
|
NON-STANDARD FEATURES
|
|
|
|
None.
|
|
|
|
=========================================================================== */
|
|
|
|
#include "ngspice/cktdefs.h"
|
|
#include "ngspice/cpstd.h"
|
|
#include "ngspice/evt.h"
|
|
#include "ngspice/mifdefs.h"
|
|
#include "ngspice/ipc.h"
|
|
|
|
|
|
/* ******************* */
|
|
/* Function Prototypes */
|
|
/* ******************* */
|
|
|
|
|
|
int EVTinit(CKTcircuit *ckt);
|
|
/*int EVTinit2(CKTcircuit *ckt);*/
|
|
|
|
void EVTtermInsert(
|
|
CKTcircuit *ckt,
|
|
MIFinstance *fast,
|
|
char *node_name,
|
|
char *type_name,
|
|
int conn_num,
|
|
int port_num,
|
|
char **err_msg);
|
|
|
|
int EVTsetup(CKTcircuit *ckt);
|
|
int EVTunsetup(CKTcircuit* ckt);
|
|
|
|
int EVTdest(Evt_Ckt_Data_t *evt);
|
|
|
|
int EVTiter(CKTcircuit *ckt);
|
|
|
|
void EVTbackup(CKTcircuit *ckt, double new_time);
|
|
|
|
double EVTnext_time(CKTcircuit *ckt);
|
|
|
|
void EVTqueue_output(
|
|
CKTcircuit *ckt,
|
|
int output_index,
|
|
int udn_index,
|
|
Evt_Output_Event_t *new_event,
|
|
double posted_time,
|
|
double event_time);
|
|
|
|
|
|
void EVTqueue_inst(
|
|
CKTcircuit *ckt,
|
|
int inst_index,
|
|
double posted_time,
|
|
double event_time);
|
|
|
|
void EVTdequeue(CKTcircuit *ckt, double time);
|
|
|
|
int EVTload(CKTcircuit *ckt, int inst_index);
|
|
|
|
void EVTprint(wordlist *wl);
|
|
void EVTprintvcd(wordlist *wl);
|
|
void EVTsave(wordlist *wl);
|
|
void EVTdisplay(wordlist *wl);
|
|
|
|
int EVTop(
|
|
CKTcircuit *ckt,
|
|
long firstmode,
|
|
long continuemode,
|
|
int max_iter,
|
|
Mif_Boolean_t first_call);
|
|
|
|
void EVTop_save(
|
|
CKTcircuit *ckt,
|
|
Mif_Boolean_t op,
|
|
double step);
|
|
|
|
void EVTnode_copy(
|
|
CKTcircuit *ckt,
|
|
int node_index,
|
|
Evt_Node_t *from,
|
|
Evt_Node_t **to);
|
|
|
|
void EVTcall_hybrids(CKTcircuit *ckt);
|
|
|
|
void EVTdump(
|
|
CKTcircuit *ckt,
|
|
Ipc_Anal_t mode,
|
|
double step);
|
|
|
|
void EVTaccept(
|
|
CKTcircuit *ckt, /* main circuit struct */
|
|
double time); /* time at which analog soln was accepted */
|
|
|
|
struct INPtables;
|
|
bool Evtcheck_nodes(
|
|
CKTcircuit *ckt, /* The circuit structure */
|
|
struct INPtables *stab); /* Symbol table. */
|
|
|
|
struct dvec *EVTfindvec(char *node);
|
|
void Evt_purge_free_outputs(void);
|
|
|
|
#endif
|