176 lines
4.1 KiB
C
176 lines
4.1 KiB
C
/* 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. */
|
|
|
|
#include <config.h>
|
|
|
|
#include <devdefs.h>
|
|
#include <ifsim.h>
|
|
|
|
#include "dev.h"
|
|
|
|
/* Enable the following devices */
|
|
#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"
|
|
|
|
/*
|
|
* 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"
|
|
|
|
|
|
#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,
|
|
<RAinfo,
|
|
&MESinfo,
|
|
&MOS1info,
|
|
&MOS2info,
|
|
&MOS3info,
|
|
&MOS6info,
|
|
&RESinfo,
|
|
&SWinfo,
|
|
&TRAinfo,
|
|
&VCCSinfo,
|
|
&VCVSinfo,
|
|
&VSRCinfo,
|
|
};
|
|
|
|
|
|
int
|
|
num_devices(void)
|
|
{
|
|
return sizeof(DEVices)/sizeof(SPICEdev *);
|
|
}
|
|
|
|
|
|
IFdevice **
|
|
devices_ptr(void)
|
|
{
|
|
return (IFdevice **) DEVices;
|
|
}
|
|
|
|
|
|
SPICEdev **
|
|
devices(void)
|
|
{
|
|
return DEVices;
|
|
}
|
|
|
|
|