5.4. MOSFET modeling using artificial neural network

As shown in section 3.3, modeling of nonlinear analog devices using model cards as static objects has the advantage of separating the nonlinear function and the enclosing process. As long as model class methods accept terminal voltages and return both nonlinear function value and partial derivatives, the actual method implementation is of no importance. We used this property to develop a model class whose methods model MOSFET drain current using artificial neural network. It was shown that an artificial feed-forward neural network may be trained to behave like a nonlinear device, given the sufficient input-output data set, obtained either by measurements or simulation [Lito92, Lito93]. Such a network has as many neurons in the input layer as there are input variables (in our case voltages Vgs and Vds), and one output neuron (Ids). Training has shown that one hidden layer with 10 neurons is sufficient to obtain neural network response with an acceptable error. The results of the training were weights and thresholds associated with the neurons, and they were introduced in the defined model card class as parameters. Once the neural network response method was implemented, the MOSFET model did not differ from the example given in section 3.3, with the identical interface type signature.

The following declaration was used to introduce a model class annmos :

class annmos {


double w[32], t[12], x[50]; // weights, thresholds
double oj[11], ojg[11]; // intermediate results
int n, n0, np; // network dimensions
int hidden_transfer, outtransfer; // transfer type
double hidden_gain, outgain; // transfer gains
annmos(int, int, int); // class constructor
>annmos(); // model card preprocessor
void create_unified_neurodata(); // class unifier


double vds_min, vgs_min; // vds normalization
double vds_max, vgs_max; // vgs normalization
double ids_min, ids_max; // ids normalization
double vgsd, vdsd, idsd; // normalized values
double Cgd, Cgs, Cgb; // MOS capacitances
double Cbd, Cbs; // junction capacitances
double type; // device polarization
void neuro_response(double *, double *); // net response


A subcircuit that defines artificial neural network MOSFET model is defined by the use of structural modeling:

The simulation of a CMOS inverter composed of two ANNMOS (Artificial Neural Network MOS) devices is illustrated in the Fig. 5.8. Since the nonlinear function that models MOSFET drain current has continuous first derivatives in the entire range of interest (four orders of magnitude), no convergence problems occurred in the transition regions. It should be noted that this modeling method may be used for any nonlinear device or system, given sufficient input-output relation data.

Fig. 5.8: Comparison of the simulation results of a CMOS inverter composed of standard transistor models (MOS) and artificial neural network models (ANN). Two curves evidently match in the whole voltage domain of interest.