2000-05-03 22:01:30 +02:00
/* NG-SPICE -- An electrical circuit simulator
*
* Copyright ( c ) 1990 University of California
* Copyright ( c ) 2000 Arno W . Peters
*
* Permission to use , copy , modify , and distribute this software and
* its documentation without fee , and without a written agreement is
* hereby granted , provided that the above copyright notice , this
* paragraph and the following three paragraphs appear in all copies .
*
* This software program and documentation are copyrighted by their
* authors . The software program and documentation are supplied " as
* is " , without any accompanying services from the authors. The
* authors do not warrant that the operation of the program will be
* uninterrupted or error - free . The end - user understands that the
* program was developed for research purposes and is advised not to
* rely exclusively on the program for any reason .
*
* IN NO EVENT SHALL THE AUTHORS BE LIABLE TO ANY PARTY FOR DIRECT ,
* INDIRECT , SPECIAL , INCIDENTAL , OR CONSEQUENTIAL DAMAGES , INCLUDING
* LOST PROFITS , ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
* DOCUMENTATION , EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE . THE AUTHORS SPECIFICALLY DISCLAIMS ANY
* WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE . THE
* SOFTWARE PROVIDED HEREUNDER IS ON AN " AS IS " BASIS , AND THE AUTHORS
* HAVE NO OBLIGATIONS TO PROVIDE MAINTENANCE , SUPPORT , UPDATES ,
* ENHANCEMENTS , OR MODIFICATIONS . */
2000-05-01 19:43:38 +02:00
# include <config.h>
2000-06-18 00:54:26 +02:00
# include <devdefs.h>
# include <ifsim.h>
2000-05-01 19:43:38 +02:00
# include "dev.h"
2000-05-03 22:01:30 +02:00
/* Enable the following devices */
2000-05-01 19:43:38 +02:00
# define DEV_asrc
# define DEV_bjt
# define DEV_bsim1
# define DEV_bsim2
# define DEV_bsim3
# define DEV_bsim4
# define DEV_bsim3v1
# define DEV_bsim3v2
# define DEV_cap
# define DEV_cccs
# define DEV_ccvs
# define DEV_csw
# define DEV_dio
# define DEV_ind
# define DEV_isrc
# define DEV_jfet
# define DEV_jfet2
# define DEV_ltra
# define DEV_mes
# define DEV_mos1
# define DEV_mos2
# define DEV_mos3
# define DEV_mos6
# define DEV_res
# define DEV_sw
# define DEV_tra
# define DEV_urc
# define DEV_vccs
# define DEV_vcvs
# define DEV_vsrc
# define DEVICES_USED "asrc bjt bsim1 bsim2 bsim3 bsim3v2 bsim3v1 cap cccs ccvs csw dio ind isrc jfet ltra mes mos1 mos2 mos3 mos6 res sw tra urc vccs vcvs vsrc"
2000-06-11 12:32:50 +02:00
/*
* Analyses
*/
# define AN_op
# define AN_dc
# define AN_tf
# define AN_ac
# define AN_tran
# define AN_pz
# define AN_disto
# define AN_noise
# define AN_sense
# define ANALYSES_USED "op dc tf ac tran pz disto noise sense"
2000-05-01 19:43:38 +02:00
# include "asrc/asrcitf.h"
# include "bjt/bjtitf.h"
# include "cap/capitf.h"
# include "cccs/cccsitf.h"
# include "ccvs/ccvsitf.h"
# include "csw/cswitf.h"
# include "dio/dioitf.h"
# include "ind/inditf.h"
# include "isrc/isrcitf.h"
# include "mos1/mos1itf.h"
# include "mos6/mos6itf.h"
# include "res/resitf.h"
# include "sw/switf.h"
# include "vccs/vccsitf.h"
# include "vcvs/vcvsitf.h"
# include "vsrc/vsrcitf.h"
# include "bsim1/bsim1itf.h"
# include "bsim2/bsim2itf.h"
# include "bsim3/bsim3itf.h"
# include "bsim4/bsim4itf.h"
# include "bsim3v1/bsim3v1itf.h"
# include "bsim3v2/bsim3v2itf.h"
# include "mos2/mos2itf.h"
# include "mos3/mos3itf.h"
# include "jfet/jfetitf.h"
# include "jfet2/jfet2itf.h"
# include "mes/mesitf.h"
# include "ltra/ltraitf.h"
# include "tra/traitf.h"
# include "urc/urcitf.h"
SPICEdev * DEVices [ ] = {
/* URC must appear before the resistor, capacitor, and diode */
& URCinfo ,
& ASRCinfo ,
& BJTinfo ,
& B1info ,
& B2info ,
& BSIM3info ,
& B4info ,
& BSIM3V2info ,
& BSIM3V1info ,
& CAPinfo ,
& CCCSinfo ,
& CCVSinfo ,
& CSWinfo ,
& DIOinfo ,
& INDinfo ,
& MUTinfo ,
& ISRCinfo ,
& JFETinfo ,
& JFET2info ,
& LTRAinfo ,
& MESinfo ,
& MOS1info ,
& MOS2info ,
& MOS3info ,
& MOS6info ,
& RESinfo ,
& SWinfo ,
& TRAinfo ,
& VCCSinfo ,
& VCVSinfo ,
& VSRCinfo ,
} ;
int
num_devices ( void )
{
2000-05-06 16:01:13 +02:00
return sizeof ( DEVices ) / sizeof ( SPICEdev * ) ;
2000-05-01 19:43:38 +02:00
}
2000-07-05 15:10:16 +02:00
2000-05-01 19:43:38 +02:00
IFdevice * *
devices_ptr ( void )
{
return ( IFdevice * * ) DEVices ;
}
2000-06-18 00:54:26 +02:00
2000-07-05 15:10:16 +02:00
2000-06-18 00:54:26 +02:00
SPICEdev * *
devices ( void )
{
return DEVices ;
}
2000-07-05 15:10:16 +02:00