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.
77 lines
2.0 KiB
77 lines
2.0 KiB
/**********
|
|
Permit to use it as your wish.
|
|
Author: 2007 Gong Ding, gdiso@ustc.edu
|
|
University of Science and Technology of China
|
|
**********/
|
|
|
|
#ifndef NDEV_H
|
|
#define NDEV_H
|
|
|
|
|
|
/* circuit level includes */
|
|
#include "ngspice/ifsim.h"
|
|
#include "ngspice/inpmacs.h"
|
|
#include "ngspice/cktdefs.h"
|
|
#include "ngspice/gendefs.h"
|
|
#include "ndevexch.h"
|
|
|
|
/* network function */
|
|
#include <errno.h>
|
|
#include <netinet/in.h> /* IPv4 socket address structres. */
|
|
#include <netdb.h> /* Access to DNS lookups. */
|
|
#include <arpa/inet.h> /* inet_ntop function. */
|
|
#include <sys/socket.h> /* Socket functions. */
|
|
|
|
/* information needed per instance */
|
|
typedef struct sNDEVinstance {
|
|
|
|
struct GENinstance gen;
|
|
|
|
#define NDEVmodPtr(inst) ((struct sNDEVmodel *)((inst)->gen.GENmodPtr))
|
|
#define NDEVnextInstance(inst) ((struct sNDEVinstance *)((inst)->gen.GENnextInstance))
|
|
#define NDEVname gen.GENname
|
|
#define NDEVstate gen.GENstate
|
|
|
|
const int pin[7]; /* max 7 terminals are allowed */
|
|
int term; /* the real number of terminals */
|
|
CKTnode *node[7]; /* the array of CKT node's node pointer */
|
|
char *bname[7]; /* the electrode boundary label for numerical solver */
|
|
sCKTinfo CKTInfo;
|
|
sDeviceinfo Ndevinfo;
|
|
sPINinfo PINinfos[7];
|
|
double * mat_pointer[49]; /* the pointer array to matrix */
|
|
} NDEVinstance;
|
|
|
|
|
|
/* per model data */
|
|
|
|
typedef struct sNDEVmodel { /* model structure for a diode */
|
|
|
|
struct GENmodel gen;
|
|
|
|
#define NDEVmodType gen.GENmodType
|
|
#define NDEVnextModel(inst) ((struct sNDEVmodel *)((inst)->gen.GENnextModel))
|
|
#define NDEVinstances(inst) ((NDEVinstance *)((inst)->gen.GENinstances))
|
|
#define NDEVmodName gen.GENmodName
|
|
|
|
char * NDEVmodelfile;
|
|
char * host;
|
|
int port; /* Port number. */
|
|
int sock; /* Our connection socket. */
|
|
|
|
} NDEVmodel;
|
|
|
|
|
|
|
|
|
|
/* device parameters */
|
|
#define NDEV_MODEL_FILE 1
|
|
/* model parameters */
|
|
#define NDEV_MOD_NDEV 101
|
|
#define NDEV_REMOTE 102
|
|
#define NDEV_PORT 103
|
|
|
|
#include "ndevext.h"
|
|
|
|
|
|
#endif /* NDEV_H */
|