license: remove non-GPL verilog-a models.

* delete non-GPL verilog-a models
* remove models from the build
* remove references to .h and .cpp files
* remove from qucs
* remove images
* remove references in qucsconv
* remove references in qucs-lib

There are still references to some model names on the admsXml scripts.

This has to be checked later to figure out if there are special
transformation going on depending on the particular model name.
This commit is contained in:
Guilherme Brondani Torri 2016-01-28 00:04:16 +01:00
parent 4da200e7b7
commit 52251be9e8
39 changed files with 24 additions and 7193 deletions

View File

@ -293,73 +293,6 @@ int SymbolWidget::createSymbol(const QString& Lib_, const QString& Comp_)
x1 = -34; y1 = -9;
x2 = 34; y2 = 9;
}
else if(Comp == "hicumL2V2p1" || Comp == "hic2_full" ||
Comp == "hic0_full" || Comp == "hicumL0V1p2" ||
Comp == "hicumL2V2p23" || Comp == "hicumL2V2p24" ||
Comp == "hicumL2V2p31n" ||
Comp == "hicumL0V1p2g" || Comp == "hicumL0V1p3") {
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
if(FirstProp == "npn" || Comp == "hic2_full" || Comp == "hicumL2V2p23" ||
Comp == "hicumL2V2p1") {
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
} else {
Lines.append(new Line( -5, 10, -5, 16,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, 10, 1, 10,QPen(Qt::darkBlue,2)));
}
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Arcs.append(new struct Arc( -4, -34, 8, 8, 0, 16*360,
QPen(Qt::red,1))); // collector
Arcs.append(new struct Arc(-34, -4, 8, 8, 0, 16*360,
QPen(Qt::red,1))); // base
Arcs.append(new struct Arc( -4, 26, 8, 8, 0, 16*360,
QPen(Qt::red,1))); // emitter
Arcs.append(new struct Arc( 26, -4, 8, 8, 0, 16*360,
QPen(Qt::red,1))); // substrate
Arcs.append(new struct Arc(-34, 16, 8, 8, 0, 16*360,
QPen(Qt::red,1))); // thermal node
// relative boundings
x1 = -34; y1 = -34;
x2 = 34; y2 = 34;
}
else if(Comp == "SUBST") {
Lines.append(new Line(-30,-16, 30,-16,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-30,-12, 30,-12,QPen(Qt::darkBlue,2)));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1021 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1008 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

View File

@ -9,7 +9,7 @@ SET(COMPONENTS_SRCS
DLS_1ton.cpp dff_SR.cpp logical_buf.cpp potentiometer.cpp
DLS_nto1.cpp diac.cpp logical_inv.cpp rectline.cpp
EKV26MOS.cpp digi_sim.cpp logical_nand.cpp relais.cpp
HBT_X.cpp digi_source.cpp logical_nor.cpp resistor.cpp
digi_source.cpp logical_nor.cpp resistor.cpp
MESFET.cpp diode.cpp logical_or.cpp rfedd.cpp
ac_sim.cpp dmux2to4.cpp logical_xnor.cpp rfedd2p.cpp
am_modulator.cpp dmux3to8.cpp logical_xor.cpp rlcg.cpp
@ -27,15 +27,15 @@ attenuator.cpp ground.cpp msgap.cpp
biast.cpp gyrator.cpp mslange.cpp subcircuit.cpp
binarytogrey4bit.cpp ha1b.cpp msline.cpp subcirport.cpp
bjt.cpp hb_sim.cpp msmbend.cpp substrate.cpp
bjtsub.cpp hic0_full.cpp msopen.cpp switch.cpp
bondwire.cpp hic2_full.cpp msrstub.cpp symtrafo.cpp
bsim3v34nMOS.cpp hicumL0V1p2.cpp msstep.cpp tff_SR.cpp
bsim3v34pMOS.cpp hicumL0V1p2g.cpp mstee.cpp thyristor.cpp
capacitor.cpp hicumL0V1p3.cpp msvia.cpp tline.cpp
cccs.cpp hicumL2V2p1.cpp mutual.cpp tline_4port.cpp
ccvs.cpp hicumL2V2p23.cpp mutual2.cpp tr_sim.cpp
circulator.cpp hicumL2V2p24.cpp mux2to1.cpp transformer.cpp
coaxialline.cpp hicumL2V2p31n.cpp mux4to1.cpp triac.cpp
bjtsub.cpp msopen.cpp switch.cpp
bondwire.cpp msrstub.cpp symtrafo.cpp
msstep.cpp tff_SR.cpp
mstee.cpp thyristor.cpp
capacitor.cpp msvia.cpp tline.cpp
cccs.cpp mutual.cpp tline_4port.cpp
ccvs.cpp mutual2.cpp tr_sim.cpp
circulator.cpp mux2to1.cpp transformer.cpp
coaxialline.cpp mux4to1.cpp triac.cpp
comp_1bit.cpp hpribin4bit.cpp mux8to1.cpp tunneldiode.cpp
comp_2bit.cpp hybrid.cpp nigbt.cpp twistedpair.cpp
comp_4bit.cpp iexp.cpp noise_ii.cpp vafile.cpp
@ -53,8 +53,6 @@ d_flipflop.cpp log_amp.cpp phaseshifter.cpp vpulse.cpp
dc_sim.cpp logic_0.cpp photodiode.cpp vrect.cpp
dcblock.cpp logic_1.cpp phototransistor.cpp
dcfeed.cpp logical_and.cpp pm_modulator.cpp
bsim4v30nMOS.cpp
bsim4v30pMOS.cpp
vcresistor.cpp
vacomponent.cpp
mutualx.cpp
@ -76,10 +74,6 @@ binarytogrey4bit.h
bjt.h
bjtsub.h
bondwire.h
bsim3v34nMOS.h
bsim3v34pMOS.h
bsim4v30nMOS.h
bsim4v30pMOS.h
capacitor.h
cccs.h
ccvs.h
@ -125,16 +119,6 @@ ground.h
gyrator.h
ha1b.h
hb_sim.h
HBT_X.h
hic0_full.h
hic2_full.h
hicumL0V1p2.h
hicumL0V1p2g.h
hicumL0V1p3.h
hicumL2V2p1.h
hicumL2V2p23.h
hicumL2V2p24.h
hicumL2V2p31n.h
hpribin4bit.h
hybrid.h
iexp.h

View File

@ -1,238 +0,0 @@
/*
* HBT_X.cpp - device implementations for HBT_X module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "HBT_X.h"
HBT_X::HBT_X()
{
Description = QObject::tr ("HBT model by Ferdinand-Braun-Institut (FBH), Berlin");
Props.append (new Property ("Mode", "1", false,
QObject::tr ("Ignored")));
Props.append (new Property ("Noise", "1", false,
QObject::tr ("Ignored")));
Props.append (new Property ("Debug", "0", false,
QObject::tr ("Ignored")));
Props.append (new Property ("DebugPlus", "0", false,
QObject::tr ("Ignored")));
Props.append (new Property ("Temp", "25.0", false,
QObject::tr ("Device operating temperature, Celsius")));
Props.append (new Property ("Rth", "0.1", false,
QObject::tr ("Thermal resistance, K/W")));
Props.append (new Property ("Cth", "700e-9", false,
QObject::tr ("Thermal capacitance")));
Props.append (new Property ("N", "1", false,
QObject::tr ("Scaling factor, number of emitter fingers")));
Props.append (new Property ("L", "30e-6", false,
QObject::tr ("Length of emitter finger, m")));
Props.append (new Property ("W", "1e-6", false,
QObject::tr ("Width of emitter finger, m")));
Props.append (new Property ("Jsf", "20e-24", false,
QObject::tr ("Forward saturation current density, A/um^2")));
Props.append (new Property ("nf", "1.0", false,
QObject::tr ("Forward current emission coefficient")));
Props.append (new Property ("Vg", "1.3", false,
QObject::tr ("Forward thermal activation energy, V, (0 == disables temperature dependence)")));
Props.append (new Property ("Jse", "0.0", false,
QObject::tr ("B-E leakage saturation current density, A/um^2")));
Props.append (new Property ("ne", "0.0", false,
QObject::tr ("B-E leakage emission coefficient")));
Props.append (new Property ("Rbxx", "1e6", false,
QObject::tr ("Limiting resistor of B-E leakage diode, Ohm")));
Props.append (new Property ("Vgb", "0.0", false,
QObject::tr ("B-E leakage thermal activation energy, V, (0 == disables temperature dependence)")));
Props.append (new Property ("Jsee", "0.0", false,
QObject::tr ("2nd B-E leakage saturation current density, A/um^2")));
Props.append (new Property ("nee", "0.0", false,
QObject::tr ("2nd B-E leakage emission coefficient")));
Props.append (new Property ("Rbbxx", "1e6", false,
QObject::tr ("2nd Limiting resistor of B-E leakage diode, Ohm")));
Props.append (new Property ("Vgbb", "0.0", false,
QObject::tr ("2nd B-E leakage thermal activation energy, V, (0 == disables temperature dependence)")));
Props.append (new Property ("Jsr", "20e-18", false,
QObject::tr ("Reverse saturation current density, A/um^2")));
Props.append (new Property ("nr", "1.0", false,
QObject::tr ("Reverse current emission coefficient")));
Props.append (new Property ("Vgr", "0.0", false,
QObject::tr ("Reverse thermal activation energy, V, (0 == disables temperature dependence)")));
Props.append (new Property ("XCjc", "0.5", false,
QObject::tr ("Fraction of Cjc that goes to internal base node")));
Props.append (new Property ("Jsc", "0.0", false,
QObject::tr ("B-C leakage saturation current density, A/um^2 (0. switches off diode)")));
Props.append (new Property ("nc", "0.0", false,
QObject::tr ("B-C leakage emission coefficient (0. switches off diode)")));
Props.append (new Property ("Rcxx", "1e6", false,
QObject::tr ("Limiting resistor of B-C leakage diode, Ohm")));
Props.append (new Property ("Vgc", "0.0", false,
QObject::tr ("B-C leakage thermal activation energy, V, (0 == disables temperature dependence)")));
Props.append (new Property ("Bf", "100.0", false,
QObject::tr ("Ideal forward beta")));
Props.append (new Property ("kBeta", "0.0", false,
QObject::tr ("Temperature coefficient of forward current gain, -1/K, (0 == disables temperature dependence)")));
Props.append (new Property ("Br", "1.0", false,
QObject::tr ("Ideal reverse beta")));
Props.append (new Property ("VAF", "0.0", false,
QObject::tr ("Forward Early voltage, V, (0 == disables Early Effect)")));
Props.append (new Property ("VAR", "0.0", false,
QObject::tr ("Reverse Early voltage, V, (0 == disables Early Effect)")));
Props.append (new Property ("IKF", "0.0", false,
QObject::tr ("Forward high-injection knee current, A, (0 == disables Webster Effect)")));
Props.append (new Property ("IKR", "0.0", false,
QObject::tr ("Reverse high-injection knee current, A, (0 == disables Webster Effect)")));
Props.append (new Property ("Mc", "0.0", false,
QObject::tr ("C-E breakdown exponent, (0 == disables collector break-down)")));
Props.append (new Property ("BVceo", "0.0", false,
QObject::tr ("C-E breakdown voltage, V, (0 == disables collector break-down)")));
Props.append (new Property ("kc", "0.0", false,
QObject::tr ("C-E breakdown factor, (0 == disables collector break-down)")));
Props.append (new Property ("BVebo", "0.0", false,
QObject::tr ("B-E breakdown voltage, V, (0 == disables emitter break-down)")));
Props.append (new Property ("Tr", "1.0e-15", false,
QObject::tr ("Ideal reverse transit time, s")));
Props.append (new Property ("Trx", "1.0e-15", false,
QObject::tr ("Extrinsic BC diffusion capacitance, F")));
Props.append (new Property ("Tf", "1.0e-12", false,
QObject::tr ("Ideal forward transit time, s")));
Props.append (new Property ("Tft", "0.0", false,
QObject::tr ("Temperature coefficient of forward transit time")));
Props.append (new Property ("Thcs", "0.0", false,
QObject::tr ("Excess transit time coefficient at base push-out")));
Props.append (new Property ("Ahc", "0.0", false,
QObject::tr ("Smoothing parameter for Thcs")));
Props.append (new Property ("Cje", "1.0e-15", false,
QObject::tr ("B-E zero-bias depletion capacitance, F/um^2")));
Props.append (new Property ("mje", "0.5", false,
QObject::tr ("B-E junction exponential factor")));
Props.append (new Property ("Vje", "1.3", false,
QObject::tr ("B-E junction built-in potential, V")));
Props.append (new Property ("Cjc", "1.0e-15", false,
QObject::tr ("B-C zero-bias depletion capacitance, F/um^2")));
Props.append (new Property ("mjc", "0.5", false,
QObject::tr ("B-C junction exponential factor")));
Props.append (new Property ("Vjc", "1.3", false,
QObject::tr ("B-C junction built-in potential, V")));
Props.append (new Property ("kjc", "1.0", false,
QObject::tr ("not used")));
Props.append (new Property ("Cmin", "0.1e-15", false,
QObject::tr ("Minimum B-C depletion capacitance (Vbc dependence), F/um^2")));
Props.append (new Property ("J0", "1e-3", false,
QObject::tr ("Collector current where Cbc reaches Cmin, A/um^2 (0 == disables Cbc reduction)")));
Props.append (new Property ("XJ0", "1.0", false,
QObject::tr ("Fraction of Cmin, lower limit of BC capacitance (Ic dependence)")));
Props.append (new Property ("Rci0", "1e-3", false,
QObject::tr ("Onset of base push-out at low voltages, Ohm*um^2 (0 == disables base push-out)")));
Props.append (new Property ("Jk", "4e-4", false,
QObject::tr ("Onset of base push-out at high voltages, A/um^2, (0 == disables base push-out)")));
Props.append (new Property ("RJk", "1e-3", false,
QObject::tr ("Slope of Jk at high currents , Ohm*um^2")));
Props.append (new Property ("Vces", "1e-3", false,
QObject::tr ("Voltage shift of base push-out onset, V")));
Props.append (new Property ("Rc", "1.0", false,
QObject::tr ("Collector resistance, Ohm/finger")));
Props.append (new Property ("Re", "1.0", false,
QObject::tr ("Emitter resistance, Ohm/finger")));
Props.append (new Property ("Rb", "1.0", false,
QObject::tr ("Extrinsic base resistance, Ohm/finger")));
Props.append (new Property ("Rb2", "1.0", false,
QObject::tr ("Inner Base ohmic resistance, Ohm/finger")));
Props.append (new Property ("Lc", "0.0", false,
QObject::tr ("Collector inductance, H")));
Props.append (new Property ("Le", "0.0", false,
QObject::tr ("Emitter inductance, H")));
Props.append (new Property ("Lb", "0.0", false,
QObject::tr ("Base inductance, H")));
Props.append (new Property ("Cq", "0.0", false,
QObject::tr ("Extrinsic B-C capacitance, F")));
Props.append (new Property ("Cpb", "0.0", false,
QObject::tr ("Extrinsic base capacitance, F")));
Props.append (new Property ("Cpc", "0.0", false,
QObject::tr ("Extrinsic collector capacitance, F")));
Props.append (new Property ("Kfb", "0.0", false,
QObject::tr ("Flicker-noise coefficient")));
Props.append (new Property ("Afb", "0.0", false,
QObject::tr ("Flicker-noise exponent")));
Props.append (new Property ("Ffeb", "0.0", false,
QObject::tr ("Flicker-noise frequency exponent")));
Props.append (new Property ("Kb", "0.0", false,
QObject::tr ("Burst noise coefficient")));
Props.append (new Property ("Ab", "0.0", false,
QObject::tr ("Burst noise exponent")));
Props.append (new Property ("Fb", "0.0", false,
QObject::tr ("Burst noise corner frequency, Hz")));
Props.append (new Property ("Kfe", "0.0", false,
QObject::tr ("Flicker-noise coefficient")));
Props.append (new Property ("Afe", "0.0", false,
QObject::tr ("Flicker-noise exponent")));
Props.append (new Property ("Ffee", "0.0", false,
QObject::tr ("Flicker-noise frequency exponent")));
Props.append (new Property ("Tnom", "20.0", false,
QObject::tr ("Ambient temperature at which the parameters were determined")));
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// B
Lines.append(new Line(-23,-30,-23,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-24,-30,-20,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-23,-27,-20,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-24,-24,-20,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-20,-30,-20,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-20,-27,-20,-24,QPen(Qt::darkBlue,1)));
// T
Lines.append(new Line(-18,-30,-14,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-16,-30,-16,-24,QPen(Qt::darkBlue,1)));
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port(-30, 20)); // thermal node
x1 = -30; y1 = -30;
x2 = 4; y2 = 30;
tx = x2 + 4;
ty = y1 + 4;
Model = "HBT_X";
Name = "T";
}
Component * HBT_X::newOne()
{
HBT_X * p = new HBT_X();
p->recreate(0);
return p;
}
Element * HBT_X::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("FBH HBT");
BitmapFile = (char *) "npn_therm";
if(getNewOne) return new HBT_X();
return 0;
}

View File

@ -1,25 +0,0 @@
/*
* HBT_X.h - device definitions for HBT_X module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef HBT_X_H
#define HBT_X_H
#include "component.h"
class HBT_X : public Component
{
public:
HBT_X();
~HBT_X() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
};
#endif /* HBT_X_H */

View File

@ -47,20 +47,19 @@ libcomponents_a_SOURCES = phaseshifter.cpp gyrator.cpp componentdialog.cpp \
rs_flipflop.cpp d_flipflop.cpp jk_flipflop.cpp coaxialline.cpp vprobe.cpp \
switch.cpp relais.cpp am_modulator.cpp pm_modulator.cpp opt_sim.cpp \
optimizedialog.cpp tline_4port.cpp twistedpair.cpp bondwire.cpp rlcg.cpp \
hicumL2V2p1.cpp HBT_X.cpp verilogfile.cpp vexp.cpp iexp.cpp eqndefined.cpp \
vfile.cpp ifile.cpp mod_amp.cpp hic2_full.cpp thyristor.cpp triac.cpp \
diac.cpp log_amp.cpp hic0_full.cpp potentiometer.cpp rfedd.cpp rfedd2p.cpp \
MESFET.cpp rectline.cpp hicumL0V1p2.cpp hicumL2V2p23.cpp photodiode.cpp \
verilogfile.cpp vexp.cpp iexp.cpp eqndefined.cpp \
vfile.cpp ifile.cpp mod_amp.cpp thyristor.cpp triac.cpp \
diac.cpp log_amp.cpp potentiometer.cpp rfedd.cpp rfedd2p.cpp \
MESFET.cpp rectline.cpp photodiode.cpp \
EKV26MOS.cpp logical_buf.cpp dff_SR.cpp jkff_SR.cpp tff_SR.cpp \
gatedDlatch.cpp logic_0.cpp logic_1.cpp mux2to1.cpp mux4to1.cpp mux8to1.cpp \
DLS_nto1.cpp DLS_1ton.cpp andor4x2.cpp andor4x3.cpp andor4x4.cpp \
dmux2to4.cpp dmux3to8.cpp dmux4to16.cpp ha1b.cpp fa1b.cpp fa2b.cpp \
pad2bit.cpp pad3bit.cpp pad4bit.cpp binarytogrey4bit.cpp vafile.cpp \
greytobinary4bit.cpp comp_1bit.cpp comp_2bit.cpp comp_4bit.cpp \
hpribin4bit.cpp msrstub.cpp phototransistor.cpp nigbt.cpp hicumL2V2p24.cpp \
hicumL0V1p2g.cpp hybrid.cpp ctline.cpp tunneldiode.cpp hicumL0V1p3.cpp \
hicumL2V2p31n.cpp bsim3v34nMOS.cpp bsim3v34pMOS.cpp bsim4v30nMOS.cpp \
bsim4v30pMOS.cpp etr_sim.cpp ecvs.cpp vcresistor.cpp vacomponent.cpp \
hpribin4bit.cpp msrstub.cpp phototransistor.cpp nigbt.cpp \
hybrid.cpp ctline.cpp tunneldiode.cpp \
etr_sim.cpp ecvs.cpp vcresistor.cpp vacomponent.cpp \
mutualx.cpp
nodist_libcomponents_a_SOURCES = $(MOCFILES)
@ -80,18 +79,17 @@ noinst_HEADERS = $(MOCHEADERS) resistor.h components.h capacitor.h vccs.h \
logical_xor.h logical_xnor.h logical_inv.h digi_sim.h digi_source.h \
coupler.h rs_flipflop.h d_flipflop.h jk_flipflop.h coaxialline.h vprobe.h \
switch.h relais.h am_modulator.h pm_modulator.h opt_sim.h tline_4port.h \
twistedpair.h bondwire.h hicumL2V2p1.h HBT_X.h verilogfile.h vexp.h iexp.h \
eqndefined.h vfile.h ifile.h mod_amp.h hic2_full.h thyristor.h triac.h \
diac.h log_amp.h hic0_full.h potentiometer.h rfedd.h rfedd2p.h MESFET.h \
rectline.h hicumL0V1p2.h hicumL2V2p23.h photodiode.h EKV26MOS.h rlcg.h \
twistedpair.h bondwire.h verilogfile.h vexp.h iexp.h \
eqndefined.h vfile.h ifile.h mod_amp.h thyristor.h triac.h \
diac.h log_amp.h potentiometer.h rfedd.h rfedd2p.h MESFET.h \
rectline.h photodiode.h EKV26MOS.h rlcg.h \
logical_buf.h dff_SR.h jkff_SR.h tff_SR.h gatedDlatch.h logic_0.h logic_1.h \
mux2to1.h mux4to1.h mux8to1.h DLS_nto1.h DLS_1ton.h andor4x2.h andor4x3.h \
andor4x4.h dmux2to4.h dmux3to8.h dmux4to16.h ha1b.h fa1b.h fa2b.h pad2bit.h \
pad3bit.h pad4bit.h binarytogrey4bit.h greytobinary4bit.h comp_1bit.h \
comp_2bit.h comp_4bit.h hpribin4bit.h msrstub.h phototransistor.h nigbt.h \
vafile.h hicumL2V2p24.h hicumL0V1p2g.h hybrid.h ctline.h tunneldiode.h \
hicumL0V1p3.h hicumL2V2p31n.h bsim3v34nMOS.h bsim3v34pMOS.h bsim4v30nMOS.h \
bsim4v30pMOS.h etr_sim.h ecvs.h vcresistor.h vacomponent.h \
vafile.h hybrid.h ctline.h tunneldiode.h \
etr_sim.h ecvs.h vcresistor.h vacomponent.h \
mutualx.h
AM_CPPFLAGS = $(X11_INCLUDES) $(QT_INCLUDES) -I$(top_srcdir)/qucs

View File

@ -1,889 +0,0 @@
/*
* bsim3v34nMOS.cpp - device implementations for bsim3v34nMOS module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "bsim3v34nMOS.h"
bsim3v34nMOS::bsim3v34nMOS()
{
Description = QObject::tr ("bsim3v34nMOS verilog device");
Props.append (new Property ("L", "0.35e-6", false,
QObject::tr ("-")));
Props.append (new Property ("W", "5.0e-6", false,
QObject::tr ("-")));
Props.append (new Property ("PS", "8.0e-6", false,
QObject::tr ("-")));
Props.append (new Property ("PD", "8.0e-6", false,
QObject::tr ("-")));
Props.append (new Property ("AS", "12.0e-12", false,
QObject::tr ("-")));
Props.append (new Property ("AD", "12.0e-12", false,
QObject::tr ("-")));
Props.append (new Property ("NRS", "10.0", false,
QObject::tr ("-")));
Props.append (new Property ("NRD", "10.0", false,
QObject::tr ("-")));
Props.append (new Property ("NQSMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("GMIN", "1e-12", false,
QObject::tr ("-")));
Props.append (new Property ("VERSION", "3.24", false,
QObject::tr ("-")));
Props.append (new Property ("PARAMCHK", "0", false,
QObject::tr ("-")));
Props.append (new Property ("MOBMOD", "1", false,
QObject::tr ("-")));
Props.append (new Property ("CAPMOD", "3", false,
QObject::tr ("-")));
Props.append (new Property ("NOIMOD", "4", false,
QObject::tr ("-")));
Props.append (new Property ("BINUNIT", "1", false,
QObject::tr ("-")));
Props.append (new Property ("TOX", "150.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("TOXM", "150.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("CDSC", "2.4e-4", false,
QObject::tr ("-")));
Props.append (new Property ("CDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NFACTOR", "1", false,
QObject::tr ("-")));
Props.append (new Property ("XJ", "0.15e-6", false,
QObject::tr ("-")));
Props.append (new Property ("VSAT", "8.0e4", false,
QObject::tr ("-")));
Props.append (new Property ("AT", "3.3e4", false,
QObject::tr ("-")));
Props.append (new Property ("A0", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("AGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("A1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("A2", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("KETA", "-0.047", false,
QObject::tr ("-")));
Props.append (new Property ("NSUB", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NCH", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NGATE", "0", false,
QObject::tr ("-")));
Props.append (new Property ("GAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("GAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("VBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("VBM", "-3.0", false,
QObject::tr ("-")));
Props.append (new Property ("XT", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("K1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("KT1", "-0.11", false,
QObject::tr ("-")));
Props.append (new Property ("KT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KT2", "0.022", false,
QObject::tr ("-")));
Props.append (new Property ("K2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("K3", "80.0", false,
QObject::tr ("-")));
Props.append (new Property ("K3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("W0", "2.5e-6", false,
QObject::tr ("-")));
Props.append (new Property ("NLX", "1.74e-7", false,
QObject::tr ("-")));
Props.append (new Property ("DVT0", "2.2", false,
QObject::tr ("-")));
Props.append (new Property ("DVT1", "0.53", false,
QObject::tr ("-")));
Props.append (new Property ("DVT2", "-0.032", false,
QObject::tr ("-")));
Props.append (new Property ("DVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVT1W", "5.3e6", false,
QObject::tr ("-")));
Props.append (new Property ("DVT2W", "-0.032", false,
QObject::tr ("-")));
Props.append (new Property ("DROUT", "0.56", false,
QObject::tr ("-")));
Props.append (new Property ("DSUB", "0.56", false,
QObject::tr ("-")));
Props.append (new Property ("VTHO", "0.7", false,
QObject::tr ("-")));
Props.append (new Property ("VTH0", "0.7", false,
QObject::tr ("-")));
Props.append (new Property ("UA", "2.25e-9", false,
QObject::tr ("-")));
Props.append (new Property ("UA1", "4.31e-9", false,
QObject::tr ("-")));
Props.append (new Property ("UB", "5.87e-19", false,
QObject::tr ("-")));
Props.append (new Property ("UB1", "-7.61e-18", false,
QObject::tr ("-")));
Props.append (new Property ("UC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("UC1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("U0", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("UTE", "-1.5", false,
QObject::tr ("-")));
Props.append (new Property ("VOFF", "-0.08", false,
QObject::tr ("-")));
Props.append (new Property ("TNOM", "26.85", false,
QObject::tr ("-")));
Props.append (new Property ("CGSO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGDO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGBO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("XPART", "0.4", false,
QObject::tr ("-")));
Props.append (new Property ("ELM", "5.0", false,
QObject::tr ("-")));
Props.append (new Property ("DELTA", "0.01", false,
QObject::tr ("-")));
Props.append (new Property ("RSH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDSW", "0", false,
QObject::tr ("-")));
Props.append (new Property ("PRWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ETA0", "0.08", false,
QObject::tr ("-")));
Props.append (new Property ("ETAB", "-0.07", false,
QObject::tr ("-")));
Props.append (new Property ("PCLM", "1.3", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBLC1", "0.39", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBLC2", "0.0086", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBLCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PSCBE1", "4.24e8", false,
QObject::tr ("-")));
Props.append (new Property ("PSCBE2", "1.0e-5", false,
QObject::tr ("-")));
Props.append (new Property ("PVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("JS", "1.0E-4", false,
QObject::tr ("-")));
Props.append (new Property ("JSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PB", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NJ", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("XTI", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("MJ", "0.5", false,
QObject::tr ("-")));
Props.append (new Property ("PBSW", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("MJSW", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWG", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWG", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("CJ", "5.0E-4", false,
QObject::tr ("-")));
Props.append (new Property ("VFBCV", "-1.0", false,
QObject::tr ("-")));
Props.append (new Property ("VFB", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CJSW", "5.0E-10", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWG", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("TPB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPBSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPBSWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJSWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ACDE", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("MOIN", "15.0", false,
QObject::tr ("-")));
Props.append (new Property ("NOFF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("VOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LINT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("LW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LMAX", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WR", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WINT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WMAX", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("B0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("B1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CKAPPA", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("CF", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CLC", "0.1e-6", false,
QObject::tr ("-")));
Props.append (new Property ("CLE", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("DWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DLC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("ALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("BETA0", "30.0", false,
QObject::tr ("-")));
Props.append (new Property ("IJTH", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("LCDSC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNFACTOR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LXJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVSAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LAGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LA2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKETA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNCH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNGATE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LGAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LGAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVBM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LXT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LK1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LK2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LK3", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LK3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LW0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNLX", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT1W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT2W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDROUT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVTHO", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUTE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LELM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDELTA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LRDSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPRWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LETAB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPCLM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPDIBLC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPDIBLC2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPDIBLCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPSCBE1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPSCBE2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LB0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCKAPPA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCLE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LBETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVFBCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVFB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LACDE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LMOIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCDSC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNFACTOR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WXJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVSAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WAGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WA2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKETA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNCH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNGATE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WGAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WGAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVBM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WXT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WK1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WK2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WK3", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WK3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WW0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNLX", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT1W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT2W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDROUT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVTHO", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUTE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WELM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDELTA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WRDSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPRWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WETAB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPCLM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPDIBLC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPDIBLC2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPDIBLCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPSCBE1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPSCBE2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WB0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCKAPPA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCLE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WBETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVFBCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVFB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WACDE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WMOIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCDSC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNFACTOR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PXJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVSAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PAGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PA2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKETA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNCH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNGATE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PGAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PGAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVBM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PXT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PK1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PK2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PK3", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PK3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PW0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNLX", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT1W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT2W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDROUT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVTHO", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUTE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PELM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDELTA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRDSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPRWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PETAB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPCLM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPDIBLC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPDIBLC2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPDIBLCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPSCBE1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPSCBE2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PWR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PB0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCKAPPA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCLE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVFBCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVFB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PACDE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PMOIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("AF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("EF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("Temp", "26.85", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "bsim3v34nMOS";
Name = "BSIM3_";
}
Component * bsim3v34nMOS::newOne()
{
bsim3v34nMOS * p = new bsim3v34nMOS();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * bsim3v34nMOS::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("bsim3v34nMOS");
BitmapFile = (char *) "bsim3v34nMOS";
if(getNewOne) return new bsim3v34nMOS();
return 0;
}
void bsim3v34nMOS::createSymbol()
{
Lines.append(new Line(-14,-13,-14, 13,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-14, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10,-11, 0,-11,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-11, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 11, 0, 11,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 11, 0, 30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 0, 20, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10,-16,-10, -7,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, 7,-10, 16,QPen(Qt::darkBlue,3)));
Lines.append(new Line( -4, 24, 4, 20,QPen(Qt::darkBlue,2)));
// arrow
Lines.append(new Line( -9, 0, -4, -5,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -9, 0, -4, 5,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -3,-10, 3,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, -8,-10, -6,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, 8,-10, 6,QPen(Qt::darkBlue,3)));
Ports.append(new Port( 0,-30)); // drain
Ports.append(new Port(-30, 0)); // gate
Ports.append(new Port( 0, 30)); // source
Ports.append(new Port( 20, 0)); // bulk
x1 = -30; y1 = -30;
x2 = 20; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* bsim3v34nMOS.h - device definitions for bsim3v34nMOS module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef bsim3v34nMOS_H
#define bsim3v34nMOS_H
#include "component.h"
class bsim3v34nMOS : public Component
{
public:
bsim3v34nMOS();
~bsim3v34nMOS() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* bsim3v34nMOS_H */

View File

@ -1,887 +0,0 @@
/*
* bsim3v34pMOS.cpp - device implementations for bsim3v34pMOS module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "bsim3v34pMOS.h"
bsim3v34pMOS::bsim3v34pMOS()
{
Description = QObject::tr ("bsim3v34pMOS verilog device");
Props.append (new Property ("L", "3.5e-6", false,
QObject::tr ("-")));
Props.append (new Property ("W", "5.0e-6", false,
QObject::tr ("-")));
Props.append (new Property ("PS", "8.0e-6", false,
QObject::tr ("-")));
Props.append (new Property ("PD", "8.0e-6", false,
QObject::tr ("-")));
Props.append (new Property ("AS", "12.0e-12", false,
QObject::tr ("-")));
Props.append (new Property ("AD", "12.0e-12", false,
QObject::tr ("-")));
Props.append (new Property ("NRS", "10.0", false,
QObject::tr ("-")));
Props.append (new Property ("NRD", "10.0", false,
QObject::tr ("-")));
Props.append (new Property ("NQSMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("GMIN", "1e-12", false,
QObject::tr ("-")));
Props.append (new Property ("VERSION", "3.24", false,
QObject::tr ("-")));
Props.append (new Property ("PARAMCHK", "0", false,
QObject::tr ("-")));
Props.append (new Property ("MOBMOD", "1", false,
QObject::tr ("-")));
Props.append (new Property ("CAPMOD", "3", false,
QObject::tr ("-")));
Props.append (new Property ("NOIMOD", "4", false,
QObject::tr ("-")));
Props.append (new Property ("BINUNIT", "1", false,
QObject::tr ("-")));
Props.append (new Property ("TOX", "150.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("TOXM", "150.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("CDSC", "2.4e-4", false,
QObject::tr ("-")));
Props.append (new Property ("CDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NFACTOR", "1", false,
QObject::tr ("-")));
Props.append (new Property ("XJ", "0.15e-6", false,
QObject::tr ("-")));
Props.append (new Property ("VSAT", "8.0e4", false,
QObject::tr ("-")));
Props.append (new Property ("AT", "3.3e4", false,
QObject::tr ("-")));
Props.append (new Property ("A0", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("AGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("A1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("A2", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("KETA", "-0.047", false,
QObject::tr ("-")));
Props.append (new Property ("NSUB", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NCH", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NGATE", "0", false,
QObject::tr ("-")));
Props.append (new Property ("GAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("GAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("VBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("VBM", "-3.0", false,
QObject::tr ("-")));
Props.append (new Property ("XT", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("K1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("KT1", "-0.11", false,
QObject::tr ("-")));
Props.append (new Property ("KT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KT2", "0.022", false,
QObject::tr ("-")));
Props.append (new Property ("K2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("K3", "80.0", false,
QObject::tr ("-")));
Props.append (new Property ("K3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("W0", "2.5e-6", false,
QObject::tr ("-")));
Props.append (new Property ("NLX", "1.74e-7", false,
QObject::tr ("-")));
Props.append (new Property ("DVT0", "2.2", false,
QObject::tr ("-")));
Props.append (new Property ("DVT1", "0.53", false,
QObject::tr ("-")));
Props.append (new Property ("DVT2", "-0.032", false,
QObject::tr ("-")));
Props.append (new Property ("DVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVT1W", "5.3e6", false,
QObject::tr ("-")));
Props.append (new Property ("DVT2W", "-0.032", false,
QObject::tr ("-")));
Props.append (new Property ("DROUT", "0.56", false,
QObject::tr ("-")));
Props.append (new Property ("DSUB", "0.56", false,
QObject::tr ("-")));
Props.append (new Property ("VTHO", "-0.7", false,
QObject::tr ("-")));
Props.append (new Property ("VTH0", "-0.7", false,
QObject::tr ("-")));
Props.append (new Property ("UA", "2.25e-9", false,
QObject::tr ("-")));
Props.append (new Property ("UA1", "4.31e-9", false,
QObject::tr ("-")));
Props.append (new Property ("UB", "5.87e-19", false,
QObject::tr ("-")));
Props.append (new Property ("UB1", "-7.61e-18", false,
QObject::tr ("-")));
Props.append (new Property ("UC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("UC1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("U0", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("UTE", "-1.5", false,
QObject::tr ("-")));
Props.append (new Property ("VOFF", "-0.08", false,
QObject::tr ("-")));
Props.append (new Property ("TNOM", "26.85", false,
QObject::tr ("-")));
Props.append (new Property ("CGSO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGDO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGBO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("XPART", "0.4", false,
QObject::tr ("-")));
Props.append (new Property ("ELM", "5.0", false,
QObject::tr ("-")));
Props.append (new Property ("DELTA", "0.01", false,
QObject::tr ("-")));
Props.append (new Property ("RSH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDSW", "0", false,
QObject::tr ("-")));
Props.append (new Property ("PRWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ETA0", "0.08", false,
QObject::tr ("-")));
Props.append (new Property ("ETAB", "-0.07", false,
QObject::tr ("-")));
Props.append (new Property ("PCLM", "1.3", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBLC1", "0.39", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBLC2", "0.0086", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBLCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PSCBE1", "4.24e8", false,
QObject::tr ("-")));
Props.append (new Property ("PSCBE2", "1.0e-5", false,
QObject::tr ("-")));
Props.append (new Property ("PVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("JS", "1.0E-4", false,
QObject::tr ("-")));
Props.append (new Property ("JSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PB", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NJ", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("XTI", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("MJ", "0.5", false,
QObject::tr ("-")));
Props.append (new Property ("PBSW", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("MJSW", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWG", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWG", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("CJ", "5.0E-4", false,
QObject::tr ("-")));
Props.append (new Property ("VFBCV", "-1.0", false,
QObject::tr ("-")));
Props.append (new Property ("VFB", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CJSW", "5.0E-10", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWG", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("TPB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPBSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPBSWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJSWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ACDE", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("MOIN", "15.0", false,
QObject::tr ("-")));
Props.append (new Property ("NOFF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("VOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LINT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("LW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LMAX", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WR", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WINT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WMAX", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("B0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("B1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CKAPPA", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("CF", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CLC", "0.1e-6", false,
QObject::tr ("-")));
Props.append (new Property ("CLE", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("DWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DLC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("ALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("BETA0", "30.0", false,
QObject::tr ("-")));
Props.append (new Property ("IJTH", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("LCDSC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNFACTOR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LXJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVSAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LAGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LA2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKETA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNCH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNGATE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LGAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LGAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVBM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LXT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LK1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LK2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LK3", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LK3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LW0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNLX", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT1W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDVT2W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDROUT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVTHO", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LUTE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LELM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDELTA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LRDSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPRWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LETAB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPCLM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPDIBLC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPDIBLC2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPDIBLCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPSCBE1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPSCBE2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LPVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LDWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LB0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCKAPPA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LCLE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LBETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVFBCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVFB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LACDE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LMOIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LNOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LVOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCDSC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNFACTOR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WXJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVSAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WAGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WA2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKETA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNCH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNGATE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WGAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WGAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVBM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WXT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WK1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WK2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("WK3", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WK3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WW0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNLX", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT1W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDVT2W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDROUT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVTHO", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WUTE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WELM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDELTA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WRDSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPRWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WETAB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPCLM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPDIBLC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPDIBLC2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPDIBLCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPSCBE1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPSCBE2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WPVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WDWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WB0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCKAPPA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WCLE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WBETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVFBCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVFB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WACDE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WMOIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WNOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WVOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCDSC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNFACTOR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PXJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVSAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PAGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PA2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKETA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNCH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNGATE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PGAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PGAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVBM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PXT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PK1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PK2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PK3", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PK3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PW0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNLX", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT1W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDVT2W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDROUT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDSUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVTHO", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PUTE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PELM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDELTA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRDSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPRWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PETAB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPCLM", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPDIBLC1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPDIBLC2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPDIBLCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPSCBE1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPSCBE2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PPVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PWR", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PB0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PB1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCKAPPA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCLE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVFBCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVFB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PACDE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PMOIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PNOFF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PVOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("AF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("EF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("Temp", "26.85", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "bsim3v34pMOS";
Name = "BSIM3_";
}
Component * bsim3v34pMOS::newOne()
{
bsim3v34pMOS * p = new bsim3v34pMOS();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * bsim3v34pMOS::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("bsim3v34pMOS");
BitmapFile = (char *) "bsim3v34pMOS";
if(getNewOne) return new bsim3v34pMOS();
return 0;
}
void bsim3v34pMOS::createSymbol()
{
Lines.append(new Line(-14,-13,-14, 13,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-14, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10,-11, 0,-11,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-11, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 11, 0, 11,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 11, 0, 30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 0, 20, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10,-16,-10, -7,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, 7,-10, 16,QPen(Qt::darkBlue,3)));
Lines.append(new Line( -4, 24, 4, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, 5, 0, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, -5, 0, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -3,-10, 3,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, -8,-10, -6,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, 8,-10, 6,QPen(Qt::darkBlue,3)));
Ports.append(new Port( 0,-30)); // drain
Ports.append(new Port(-30, 0)); // gate
Ports.append(new Port( 0, 30)); // source
Ports.append(new Port( 20, 0)); // bulk
x1 = -30; y1 = -30;
x2 = 20; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* bsim3v34pMOS.h - device definitions for bsim3v34pMOS module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef bsim3v34pMOS_H
#define bsim3v34pMOS_H
#include "component.h"
class bsim3v34pMOS : public Component
{
public:
bsim3v34pMOS();
~bsim3v34pMOS() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* bsim3v34pMOS_H */

View File

@ -1,629 +0,0 @@
/*
* bsim4v30nMOS.cpp - device implementations for bsim4v30nMOS module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "bsim4v30nMOS.h"
bsim4v30nMOS::bsim4v30nMOS()
{
Description = QObject::tr ("bsim4v30nMOS verilog device");
Props.append (new Property ("GMIN", "1e-12", false,
QObject::tr ("-")));
Props.append (new Property ("PS", "12e-6", false,
QObject::tr ("-")));
Props.append (new Property ("PD", "12e-6", false,
QObject::tr ("-")));
Props.append (new Property ("AS", "12e-12", false,
QObject::tr ("-")));
Props.append (new Property ("AD", "12e-12", false,
QObject::tr ("-")));
Props.append (new Property ("CGBO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGDO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGSO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("L", "3e-6", false,
QObject::tr ("-")));
Props.append (new Property ("W", "6e-6", false,
QObject::tr ("-")));
Props.append (new Property ("MOBMOD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDSMOD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("IGCMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("IGBMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("CAPMOD", "2", false,
QObject::tr ("-")));
Props.append (new Property ("RGATEMOD", "2", false,
QObject::tr ("-")));
Props.append (new Property ("RBODYMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("DIOMOD", "1", false,
QObject::tr ("-")));
Props.append (new Property ("TEMPMOD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("GEOMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("RGEOMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("PERMOD", "1", false,
QObject::tr ("-")));
Props.append (new Property ("TNOIMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("FNOIMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("EPSROX", "3.9", false,
QObject::tr ("-")));
Props.append (new Property ("TOXE", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("TOXP", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("TOXM", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("DTOX", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XJ", "1.5e-7", false,
QObject::tr ("-")));
Props.append (new Property ("GAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("GAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NDEP", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NSUB", "6.0e16", false,
QObject::tr ("-")));
Props.append (new Property ("NGATE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NSD", "1.0e20", false,
QObject::tr ("-")));
Props.append (new Property ("VBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("XT", "1.55e-7", false,
QObject::tr ("-")));
Props.append (new Property ("RSH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("RSHG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("VTH0", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("VFB", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PHIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("K1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("K2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("K3", "80.0", false,
QObject::tr ("-")));
Props.append (new Property ("K3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("W0", "2.5e-6", false,
QObject::tr ("-")));
Props.append (new Property ("LPE0", "1.74e-7", false,
QObject::tr ("-")));
Props.append (new Property ("LPEB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("VBM", "-3.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVT0", "2.2", false,
QObject::tr ("-")));
Props.append (new Property ("DVT1", "0.53", false,
QObject::tr ("-")));
Props.append (new Property ("DVT2", "-0.032", false,
QObject::tr ("-")));
Props.append (new Property ("DVTP0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVTP1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVT1W", "5.3e6", false,
QObject::tr ("-")));
Props.append (new Property ("DVT2W", "-0.032", false,
QObject::tr ("-")));
Props.append (new Property ("U0", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("UA", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("UB", "1.0e-19", false,
QObject::tr ("-")));
Props.append (new Property ("UC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("EU", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("VSAT", "8.0e4", false,
QObject::tr ("-")));
Props.append (new Property ("A0", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("AGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("B0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("B1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KETA", "-0.047", false,
QObject::tr ("-")));
Props.append (new Property ("A1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("A2", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WINT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LINT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("VOFF", "-0.08", false,
QObject::tr ("-")));
Props.append (new Property ("VOFFL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("MINV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NFACTOR", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("ETA0", "0.08", false,
QObject::tr ("-")));
Props.append (new Property ("ETAB", "-0.07", false,
QObject::tr ("-")));
Props.append (new Property ("DROUT", "0.56", false,
QObject::tr ("-")));
Props.append (new Property ("DSUB", "0.56", false,
QObject::tr ("-")));
Props.append (new Property ("CIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CDSC", "2.4e-4", false,
QObject::tr ("-")));
Props.append (new Property ("CDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCLM", "1.3", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBL1", "0.39", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBL2", "0.0086", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBLB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PSCBE1", "4.24e8", false,
QObject::tr ("-")));
Props.append (new Property ("PSCBE2", "1.0e-5", false,
QObject::tr ("-")));
Props.append (new Property ("PVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DELTA", "0.01", false,
QObject::tr ("-")));
Props.append (new Property ("FPROUT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDITS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDITSD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDITSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LAMBDA", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("VTL", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LC", "5.0e-9", false,
QObject::tr ("-")));
Props.append (new Property ("XN", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDSW", "200.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDSWMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDW", "100.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDWMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("RSW", "100.0", false,
QObject::tr ("-")));
Props.append (new Property ("RSWMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRWG", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WR", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NRS", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NRD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("ALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("BETA0", "30.0", false,
QObject::tr ("-")));
Props.append (new Property ("AGIDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("BGIDL", "2.3e9", false,
QObject::tr ("-")));
Props.append (new Property ("CGIDL", "0.5", false,
QObject::tr ("-")));
Props.append (new Property ("EGIDL", "0.8", false,
QObject::tr ("-")));
Props.append (new Property ("AIGBACC", "0.43", false,
QObject::tr ("-")));
Props.append (new Property ("BIGBACC", "0.054", false,
QObject::tr ("-")));
Props.append (new Property ("CIGBACC", "0.075", false,
QObject::tr ("-")));
Props.append (new Property ("NIGBACC", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("AIGBINV", "0.35", false,
QObject::tr ("-")));
Props.append (new Property ("BIGBINV", "0.03", false,
QObject::tr ("-")));
Props.append (new Property ("CIGBINV", "0.006", false,
QObject::tr ("-")));
Props.append (new Property ("EIGBINV", "1.1", false,
QObject::tr ("-")));
Props.append (new Property ("NIGBINV", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("AIGC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("BIGC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CIGC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("AIGSD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("BIGSD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CIGSD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("DLCIG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NIGC", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("POXEDGE", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PIGCD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NTOX", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("TOXREF", "3.0e-9", false,
QObject::tr ("-")));
Props.append (new Property ("XPART", "0.4", false,
QObject::tr ("-")));
Props.append (new Property ("CGS0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGD0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGB0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CKAPPAS", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("CKAPPAD", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("CF", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CLC", "1.0e-7", false,
QObject::tr ("-")));
Props.append (new Property ("CLE", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("DLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("VFBCV", "-1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NOFF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("VOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ACDE", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("MOIN", "15.0", false,
QObject::tr ("-")));
Props.append (new Property ("XRCRG1", "12.0", false,
QObject::tr ("-")));
Props.append (new Property ("XRCRG2", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBPB", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBPD", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBPS", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBDB", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBSB", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("GBMIN", "1.0e-12", false,
QObject::tr ("-")));
Props.append (new Property ("DMCG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DMCI", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DMDG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DMCGT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("MIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XGW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XGL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NGCON", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("IJTHSREV", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("IJTHDREV", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("IJTHSFWD", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("IJTHDFWD", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("XJBVS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("XJBVD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("BVS", "10.0", false,
QObject::tr ("-")));
Props.append (new Property ("BVD", "10.0", false,
QObject::tr ("-")));
Props.append (new Property ("JSS", "1.0e-4", false,
QObject::tr ("-")));
Props.append (new Property ("JSD", "1.0e-4", false,
QObject::tr ("-")));
Props.append (new Property ("JSWS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("JSWD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("JSWGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("JSWGD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CJS", "5.0e-4", false,
QObject::tr ("-")));
Props.append (new Property ("CJD", "5.0e-4", false,
QObject::tr ("-")));
Props.append (new Property ("MJS", "0.5", false,
QObject::tr ("-")));
Props.append (new Property ("MJD", "0.5", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWS", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWD", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWS", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWD", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWGS", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWGD", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWGS", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWGD", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("PBS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWGS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWGD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("TNOM", "27", false,
QObject::tr ("-")));
Props.append (new Property ("UTE", "-1.5", false,
QObject::tr ("-")));
Props.append (new Property ("KT1", "-0.11", false,
QObject::tr ("-")));
Props.append (new Property ("KT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KT2", "0.022", false,
QObject::tr ("-")));
Props.append (new Property ("UA1", "1.0e-9", false,
QObject::tr ("-")));
Props.append (new Property ("UB1", "-1.0e-18", false,
QObject::tr ("-")));
Props.append (new Property ("UC1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("AT", "3.3e4", false,
QObject::tr ("-")));
Props.append (new Property ("PRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NJS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NJD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("XTIS", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("XTID", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPBSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPBSWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJSWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("SA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("SB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("SD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("SAREF", "1e-6", false,
QObject::tr ("-")));
Props.append (new Property ("SBREF", "1e-6", false,
QObject::tr ("-")));
Props.append (new Property ("WLOD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KVSAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLODKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLODKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLODVTH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLODVTH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("STK2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LODK2", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("STETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LODETA0", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("LW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NTNOI", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("KF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("AF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("EF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("TEMP", "27", false,
QObject::tr ("-")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "bsim4v30nMOS";
Name = "BSIM4_";
}
Component * bsim4v30nMOS::newOne()
{
bsim4v30nMOS * p = new bsim4v30nMOS();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * bsim4v30nMOS::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("bsim4v30nMOS");
BitmapFile = (char *) "bsim4v30nMOS";
if(getNewOne) return new bsim4v30nMOS();
return 0;
}
void bsim4v30nMOS::createSymbol()
{
// put in here symbol drawing code and terminal definitions
Lines.append(new Line(-14,-13,-14, 13,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-14, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10,-11, 0,-11,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-11, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 11, 0, 11,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 11, 0, 30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 0, 20, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10,-16,-10, -7,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, 7,-10, 16,QPen(Qt::darkBlue,3)));
Lines.append(new Line( -4, 24, 4, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -9, 0, -4, -5,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -9, 0, -4, 5,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -3,-10, 3,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, -8,-10, -6,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, 8,-10, 6,QPen(Qt::darkBlue,3)));
Ports.append(new Port( 0,-30)); // drain
Ports.append(new Port(-30, 0)); // gate
Ports.append(new Port( 0, 30)); // source
Ports.append(new Port( 20, 0)); // bulk
x1 = -30; y1 = -30;
x2 = 20; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* bsim4v30nMOS.h - device definitions for bsim4v30nMOS module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef bsim4v30nMOS_H
#define bsim4v30nMOS_H
#include "component.h"
class bsim4v30nMOS : public Component
{
public:
bsim4v30nMOS();
~bsim4v30nMOS() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* bsim4v30nMOS_H */

View File

@ -1,626 +0,0 @@
/*
* bsim4v30pMOS.cpp - device implementations for bsim4v30pMOS module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "bsim4v30pMOS.h"
bsim4v30pMOS::bsim4v30pMOS()
{
Description = QObject::tr ("bsim4v30pMOS verilog device");
Props.append (new Property ("GMIN", "1e-12", false,
QObject::tr ("-")));
Props.append (new Property ("PS", "12e-6", false,
QObject::tr ("-")));
Props.append (new Property ("PD", "12e-6", false,
QObject::tr ("-")));
Props.append (new Property ("AS", "12e-12", false,
QObject::tr ("-")));
Props.append (new Property ("AD", "12e-12", false,
QObject::tr ("-")));
Props.append (new Property ("CGBO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGDO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGSO", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("L", "3e-6", false,
QObject::tr ("-")));
Props.append (new Property ("W", "6e-6", false,
QObject::tr ("-")));
Props.append (new Property ("MOBMOD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDSMOD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("IGCMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("IGBMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("CAPMOD", "2", false,
QObject::tr ("-")));
Props.append (new Property ("RGATEMOD", "2", false,
QObject::tr ("-")));
Props.append (new Property ("RBODYMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("DIOMOD", "1", false,
QObject::tr ("-")));
Props.append (new Property ("TEMPMOD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("GEOMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("RGEOMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("PERMOD", "1", false,
QObject::tr ("-")));
Props.append (new Property ("TNOIMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("FNOIMOD", "0", false,
QObject::tr ("-")));
Props.append (new Property ("EPSROX", "3.9", false,
QObject::tr ("-")));
Props.append (new Property ("TOXE", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("TOXP", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("TOXM", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("DTOX", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XJ", "1.5e-7", false,
QObject::tr ("-")));
Props.append (new Property ("GAMMA1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("GAMMA2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NDEP", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NSUB", "6.0e16", false,
QObject::tr ("-")));
Props.append (new Property ("NGATE", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NSD", "1.0e20", false,
QObject::tr ("-")));
Props.append (new Property ("VBX", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("XT", "1.55e-7", false,
QObject::tr ("-")));
Props.append (new Property ("RSH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("RSHG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("VTH0", "-0.6", false,
QObject::tr ("-")));
Props.append (new Property ("VFB", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("PHIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("K1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("K2", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("K3", "80.0", false,
QObject::tr ("-")));
Props.append (new Property ("K3B", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("W0", "2.5e-6", false,
QObject::tr ("-")));
Props.append (new Property ("LPE0", "1.74e-7", false,
QObject::tr ("-")));
Props.append (new Property ("LPEB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("VBM", "-3.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVT0", "2.2", false,
QObject::tr ("-")));
Props.append (new Property ("DVT1", "0.53", false,
QObject::tr ("-")));
Props.append (new Property ("DVT2", "-0.032", false,
QObject::tr ("-")));
Props.append (new Property ("DVTP0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVTP1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVT0W", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DVT1W", "5.3e6", false,
QObject::tr ("-")));
Props.append (new Property ("DVT2W", "-0.032", false,
QObject::tr ("-")));
Props.append (new Property ("U0", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("UA", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("UB", "1.0e-19", false,
QObject::tr ("-")));
Props.append (new Property ("UC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("EU", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("VSAT", "8.0e4", false,
QObject::tr ("-")));
Props.append (new Property ("A0", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("AGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("B0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("B1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KETA", "-0.047", false,
QObject::tr ("-")));
Props.append (new Property ("A1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("A2", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WINT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LINT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("VOFF", "-0.08", false,
QObject::tr ("-")));
Props.append (new Property ("VOFFL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("MINV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NFACTOR", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("ETA0", "0.08", false,
QObject::tr ("-")));
Props.append (new Property ("ETAB", "-0.07", false,
QObject::tr ("-")));
Props.append (new Property ("DROUT", "0.56", false,
QObject::tr ("-")));
Props.append (new Property ("DSUB", "0.56", false,
QObject::tr ("-")));
Props.append (new Property ("CIT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CDSC", "2.4e-4", false,
QObject::tr ("-")));
Props.append (new Property ("CDSCB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CDSCD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PCLM", "1.3", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBL1", "0.39", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBL2", "0.0086", false,
QObject::tr ("-")));
Props.append (new Property ("PDIBLB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PSCBE1", "4.24e8", false,
QObject::tr ("-")));
Props.append (new Property ("PSCBE2", "1.0e-5", false,
QObject::tr ("-")));
Props.append (new Property ("PVAG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DELTA", "0.01", false,
QObject::tr ("-")));
Props.append (new Property ("FPROUT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDITS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDITSD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PDITSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LAMBDA", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("VTL", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("LC", "5.0e-9", false,
QObject::tr ("-")));
Props.append (new Property ("XN", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDSW", "200.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDSWMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDW", "100.0", false,
QObject::tr ("-")));
Props.append (new Property ("RDWMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("RSW", "100.0", false,
QObject::tr ("-")));
Props.append (new Property ("RSWMIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRWG", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PRWB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WR", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NRS", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("NRD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("ALPHA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ALPHA1", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("BETA0", "30.0", false,
QObject::tr ("-")));
Props.append (new Property ("AGIDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("BGIDL", "2.3e9", false,
QObject::tr ("-")));
Props.append (new Property ("CGIDL", "0.5", false,
QObject::tr ("-")));
Props.append (new Property ("EGIDL", "0.8", false,
QObject::tr ("-")));
Props.append (new Property ("AIGBACC", "0.43", false,
QObject::tr ("-")));
Props.append (new Property ("BIGBACC", "0.054", false,
QObject::tr ("-")));
Props.append (new Property ("CIGBACC", "0.075", false,
QObject::tr ("-")));
Props.append (new Property ("NIGBACC", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("AIGBINV", "0.35", false,
QObject::tr ("-")));
Props.append (new Property ("BIGBINV", "0.03", false,
QObject::tr ("-")));
Props.append (new Property ("CIGBINV", "0.006", false,
QObject::tr ("-")));
Props.append (new Property ("EIGBINV", "1.1", false,
QObject::tr ("-")));
Props.append (new Property ("NIGBINV", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("AIGC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("BIGC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CIGC", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("AIGSD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("BIGSD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CIGSD", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("DLCIG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NIGC", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("POXEDGE", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PIGCD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NTOX", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("TOXREF", "3.0e-9", false,
QObject::tr ("-")));
Props.append (new Property ("XPART", "0.4", false,
QObject::tr ("-")));
Props.append (new Property ("CGS0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGD0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGB0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGSL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CGDL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CKAPPAS", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("CKAPPAD", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("CF", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("CLC", "1.0e-7", false,
QObject::tr ("-")));
Props.append (new Property ("CLE", "0.6", false,
QObject::tr ("-")));
Props.append (new Property ("DLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("VFBCV", "-1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NOFF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("VOFFCV", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("ACDE", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("MOIN", "15.0", false,
QObject::tr ("-")));
Props.append (new Property ("XRCRG1", "12.0", false,
QObject::tr ("-")));
Props.append (new Property ("XRCRG2", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBPB", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBPD", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBPS", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBDB", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("RBSB", "50.0", false,
QObject::tr ("-")));
Props.append (new Property ("GBMIN", "1.0e-12", false,
QObject::tr ("-")));
Props.append (new Property ("DMCG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DMCI", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DMDG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("DMCGT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("DWJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("MIN", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XGW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XGL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("XW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NGCON", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("IJTHSREV", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("IJTHDREV", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("IJTHSFWD", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("IJTHDFWD", "0.1", false,
QObject::tr ("-")));
Props.append (new Property ("XJBVS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("XJBVD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("BVS", "10.0", false,
QObject::tr ("-")));
Props.append (new Property ("BVD", "10.0", false,
QObject::tr ("-")));
Props.append (new Property ("JSS", "1.0e-4", false,
QObject::tr ("-")));
Props.append (new Property ("JSD", "1.0e-4", false,
QObject::tr ("-")));
Props.append (new Property ("JSWS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("JSWD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("JSWGS", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("JSWGD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("CJS", "5.0e-4", false,
QObject::tr ("-")));
Props.append (new Property ("CJD", "5.0e-4", false,
QObject::tr ("-")));
Props.append (new Property ("MJS", "0.5", false,
QObject::tr ("-")));
Props.append (new Property ("MJD", "0.5", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWS", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWD", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWS", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWD", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWGS", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("CJSWGD", "5.0e-10", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWGS", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("MJSWGD", "0.33", false,
QObject::tr ("-")));
Props.append (new Property ("PBS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWGS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("PBSWGD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("TNOM", "27", false,
QObject::tr ("-")));
Props.append (new Property ("UTE", "-1.5", false,
QObject::tr ("-")));
Props.append (new Property ("KT1", "-0.11", false,
QObject::tr ("-")));
Props.append (new Property ("KT1L", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KT2", "0.022", false,
QObject::tr ("-")));
Props.append (new Property ("UA1", "1.0e-9", false,
QObject::tr ("-")));
Props.append (new Property ("UB1", "-1.0e-18", false,
QObject::tr ("-")));
Props.append (new Property ("UC1", "-99.0", false,
QObject::tr ("-")));
Props.append (new Property ("AT", "3.3e4", false,
QObject::tr ("-")));
Props.append (new Property ("PRT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NJS", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("NJD", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("XTIS", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("XTID", "3.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPBSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TPBSWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJ", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJSW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TCJSWG", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("SA", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("SB", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("SD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("SAREF", "1e-6", false,
QObject::tr ("-")));
Props.append (new Property ("SBREF", "1e-6", false,
QObject::tr ("-")));
Props.append (new Property ("WLOD", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KVSAT", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("TKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLODKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLODKU0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("KVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LKVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WKVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("PKVTH0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLODVTH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLODVTH", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("STK2", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LODK2", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("STETA0", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LODETA0", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("LW", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWN", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWL", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("LWLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("WWLC", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("NTNOI", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("KF", "0.0", false,
QObject::tr ("-")));
Props.append (new Property ("AF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("EF", "1.0", false,
QObject::tr ("-")));
Props.append (new Property ("TEMP", "27", false,
QObject::tr ("-")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "bsim4v30pMOS";
Name = "BSIM4_";
}
Component * bsim4v30pMOS::newOne()
{
bsim4v30pMOS * p = new bsim4v30pMOS();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * bsim4v30pMOS::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("bsim4v30pMOS");
BitmapFile = (char *) "bsim4v30pMOS";
if(getNewOne) return new bsim4v30pMOS();
return 0;
}
void bsim4v30pMOS::createSymbol()
{
Lines.append(new Line(-14,-13,-14, 13,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-14, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10,-11, 0,-11,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-11, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 11, 0, 11,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 11, 0, 30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 0, 20, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10,-16,-10, -7,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, 7,-10, 16,QPen(Qt::darkBlue,3)));
Lines.append(new Line( -4, 24, 4, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, 5, 0, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, -5, 0, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -3,-10, 3,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, -8,-10, -6,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-10, 8,-10, 6,QPen(Qt::darkBlue,3)));
Ports.append(new Port( 0,-30)); // drain
Ports.append(new Port(-30, 0)); // gate
Ports.append(new Port( 0, 30)); // source
Ports.append(new Port( 20, 0)); // bulk
x1 = -30; y1 = -30;
x2 = 20; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* bsim4v30pMOS.h - device definitions for bsim4v30pMOS module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef bsim4v30pMOS_H
#define bsim4v30pMOS_H
#include "component.h"
class bsim4v30pMOS : public Component
{
public:
bsim4v30pMOS();
~bsim4v30pMOS() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* bsim4v30pMOS_H */

View File

@ -139,25 +139,12 @@
#include "rfedd.h"
#include "rfedd2p.h"
#include "hicumL2V2p1.h"
#include "HBT_X.h"
#include "mod_amp.h"
#include "hic2_full.h"
#include "log_amp.h"
#include "hic0_full.h"
#include "potentiometer.h"
#include "MESFET.h"
#include "EKV26MOS.h"
#include "bsim3v34nMOS.h"
#include "bsim3v34pMOS.h"
#include "bsim4v30nMOS.h"
#include "bsim4v30pMOS.h"
#include "hicumL0V1p2.h"
#include "hicumL0V1p2g.h"
#include "hicumL0V1p3.h"
#include "hicumL2V2p23.h"
#include "hicumL2V2p24.h"
#include "hicumL2V2p31n.h"
#include "photodiode.h"
#include "phototransistor.h"
#include "nigbt.h"

View File

@ -1,364 +0,0 @@
/*
* hic0_full.cpp - device implementations for hic0_full module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "node.h"
#include "hic0_full.h"
hic0_full::hic0_full()
{
Description = QObject::tr ("HICUM Level 0 v1.12 verilog device");
Props.append (new Property ("Type", "npn", true,
QObject::tr ("polarity") + " [npn, pnp]"));
Props.append (new Property ("is", "1.0e-16", false,
QObject::tr ("(Modified) saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mcf", "1.00", false,
QObject::tr ("Non-ideality coefficient of forward collector current")));
Props.append (new Property ("mcr", "1.00", false,
QObject::tr ("Non-ideality coefficient of reverse collector current")));
Props.append (new Property ("vef", "1.0e6", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("iqf", "1.0e6", false,
QObject::tr ("forward d.c. high-injection roll-off current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("iqr", "1.0e6", false,
QObject::tr ("inverse d.c. high-injection roll-off current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("iqfh", "1.0e6", false,
QObject::tr ("high-injection correction current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("tfh", "1.0e6", false,
QObject::tr ("high-injection correction factor")));
Props.append (new Property ("ibes", "1e-18", false,
QObject::tr ("BE saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbe", "1.0", false,
QObject::tr ("BE non-ideality factor")));
Props.append (new Property ("ires", "0.0", false,
QObject::tr ("BE recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mre", "2.0", false,
QObject::tr ("BE recombination non-ideality factor")));
Props.append (new Property ("ibcs", "0.0", false,
QObject::tr ("BC saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbc", "1.0", false,
QObject::tr ("BC non-ideality factor")));
Props.append (new Property ("cje0", "1.0e-20", false,
QObject::tr ("Zero-bias BE depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vde", "0.9", false,
QObject::tr ("BE built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("ze", "0.5", false,
QObject::tr ("BE exponent factor")));
Props.append (new Property ("aje", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value")));
Props.append (new Property ("t0", "0.0", false,
QObject::tr ("low current transit time at Vbici=0")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("dt0h", "0.0", false,
QObject::tr ("Base width modulation contribution")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tbvl", "0.0", false,
QObject::tr ("SCR width modulation contribution")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Storage time in neutral emitter")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("gte", "1.0", false,
QObject::tr ("Exponent factor for emitter transit time")));
Props.append (new Property ("thcs", "0.0", false,
QObject::tr ("Saturation time at high current densities")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ahc", "0.1", false,
QObject::tr ("Smoothing factor for current dependence")));
Props.append (new Property ("tr", "0.0", false,
QObject::tr ("Storage time at inverse operation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("rci0", "150", false,
QObject::tr ("Low-field collector resistance under emitter")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vlim", "0.5", false,
QObject::tr ("Voltage dividing ohmic and satur.region")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vpt", "100", false,
QObject::tr ("Punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vces", "0.1", false,
QObject::tr ("Saturation voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjci0", "1.0e-20", false,
QObject::tr ("Total zero-bias BC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("BC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zci", "0.333", false,
QObject::tr ("BC exponent factor")));
Props.append (new Property ("vptci", "100", false,
QObject::tr ("Punch-through voltage of BC junction")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjcx0", "1.0e-20", false,
QObject::tr ("Zero-bias external BC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdcx", "0.7", false,
QObject::tr ("External BC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zcx", "0.333", false,
QObject::tr ("External BC exponent factor")));
Props.append (new Property ("vptcx", "100", false,
QObject::tr ("Punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fbc", "1.0", false,
QObject::tr ("Split factor = Cjci0/Cjc0")));
Props.append (new Property ("rbi0", "0.0", false,
QObject::tr ("Internal base resistance at zero-bias")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vr0e", "2.5", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vr0c", "1.0e6", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fgeo", "0.656", false,
QObject::tr ("Geometry factor")));
Props.append (new Property ("rbx", "0.0", false,
QObject::tr ("External base series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rcx", "0.0", false,
QObject::tr ("Emitter series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("re", "0.0", false,
QObject::tr ("External collector series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("itss", "0.0", false,
QObject::tr ("Substrate transistor transfer saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Substrate transistor transfer current non-ideality factor")));
Props.append (new Property ("iscs", "0.0", false,
QObject::tr ("SC saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("SC non-ideality factor")));
Props.append (new Property ("cjs0", "1.0e-20", false,
QObject::tr ("Zero-bias SC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vds", "0.3", false,
QObject::tr ("SC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zs", "0.3", false,
QObject::tr ("External SC exponent factor")));
Props.append (new Property ("vpts", "100", false,
QObject::tr ("SC punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cbcpar", "0.0", false,
QObject::tr ("Collector-base isolation (overlap) capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cbepar", "0.0", false,
QObject::tr ("Emitter-base oxide capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("eavl", "0.0", false,
QObject::tr ("Exponent factor")));
Props.append (new Property ("kavl", "0.0", false,
QObject::tr ("Prefactor")));
Props.append (new Property ("kf", "0.0", false,
QObject::tr ("flicker noise coefficient")
+" ("+QObject::tr ("M^(1-AF)")+")"));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("flicker noise exponent factor")));
Props.append (new Property ("vgb", "1.2", false,
QObject::tr ("Bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vge", "1.17", false,
QObject::tr ("Effective emitter bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgc", "1.17", false,
QObject::tr ("Effective collector bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgs", "1.17", false,
QObject::tr ("Effective substrate bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("f1vg", "-1.02377e-4", false,
QObject::tr ("Coefficient K1 in T-dependent bandgap equation")
+" ("+QObject::tr ("V/K")+")"));
Props.append (new Property ("f2vg", "4.3215e-4", false,
QObject::tr ("Coefficient K2 in T-dependent bandgap equation")
+" ("+QObject::tr ("V/K")+")"));
Props.append (new Property ("alt0", "0.0", false,
QObject::tr ("Frist-order TC of tf0")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kt0", "0.0", false,
QObject::tr ("Second-order TC of tf0")
+" ("+QObject::tr ("1/K^2")+")"));
Props.append (new Property ("zetact", "3.0", false,
QObject::tr ("Exponent coefficient in transfer current temperature dependence")));
Props.append (new Property ("zetabet", "3.5", false,
QObject::tr ("Exponent coefficient in BE junction current temperature dependence")));
Props.append (new Property ("zetaci", "0.0", false,
QObject::tr ("TC of epi-collector diffusivity")));
Props.append (new Property ("alvs", "0.0", false,
QObject::tr ("Relative TC of satur.drift velocity")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alces", "0.0", false,
QObject::tr ("Relative TC of vces")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("TC of internal base resistance")));
Props.append (new Property ("zetarbx", "0.0", false,
QObject::tr ("TC of external base resistance")));
Props.append (new Property ("zetarcx", "0.0", false,
QObject::tr ("TC of external collector resistance")));
Props.append (new Property ("zetare", "0.0", false,
QObject::tr ("TC of emitter resistances")));
Props.append (new Property ("alkav", "0.0", false,
QObject::tr ("TC of avalanche prefactor")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("aleav", "0.0", false,
QObject::tr ("TC of avalanche exponential factor")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("flsh", "0", false,
QObject::tr ("Flag for self-heating calculation")));
Props.append (new Property ("rth", "0.0", false,
QObject::tr ("Thermal resistance")
+" ("+QObject::tr ("K/W")+")"));
Props.append (new Property ("cth", "0.0", false,
QObject::tr ("Thermal capacitance")
+" ("+QObject::tr ("Ws/K")+")"));
Props.append (new Property ("tnom", "27", false,
QObject::tr ("Temperature for which parameters are valid")
+" ("+QObject::tr ("C")+")"));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change for particular transistor")
+" ("+QObject::tr ("K")+")"));
Props.append (new Property ("Temp", "26.85", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hic0_full";
Name = "T";
}
Component * hic0_full::newOne()
{
hic0_full * p = new hic0_full();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hic0_full::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("npn HICUM L0 v1.12");
BitmapFile = (char *) "npnsub_therm";
if(getNewOne) return new hic0_full();
return 0;
}
Element * hic0_full::info_pnp(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("pnp HICUM L0 v1.12");
BitmapFile = (char *) "pnpsub_therm";
if(getNewOne)
{
hic0_full* p = new hic0_full();
p->Props.getFirst()->Value = "pnp";
p->recreate(0);
return p;
}
return 0;
}
void hic0_full::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
if(Props.getFirst()->Value == "npn") {
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
} else {
Lines.append(new Line( -5, 10, -5, 16,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, 10, 1, 10,QPen(Qt::darkBlue,2)));
}
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
// relative boundings
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}
QString hic0_full::netlist()
{
QString s = "hic0_full:"+Name;
// output all node names
foreach(Port *p1, Ports)
s += " "+p1->Connection->Name; // node names
// output type npn/pnp property
Property *p2 = Props.first();
if(p2->Value == "npn")
s += " npn=\"1\"";
else
s += " pnp=\"1\"";
// output all remaining properties
for(p2 = Props.next(); p2 != 0; p2 = Props.next())
s += " "+p2->Name+"=\""+p2->Value+"\"";
return s + '\n';
}

View File

@ -1,29 +0,0 @@
/*
* hic0_full.h - device definitions for hic0_full module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hic0_full_H
#define hic0_full_H
#include "component.h"
class hic0_full : public MultiViewComponent
{
public:
hic0_full();
~hic0_full() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
static Element* info_pnp(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
QString netlist();
};
#endif /* hic0_full_H */

View File

@ -1,383 +0,0 @@
/*
* hic2_full.cpp - device implementations for hic2_full module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "hic2_full.h"
hic2_full::hic2_full()
{
Description = QObject::tr ("HICUM Level 2 v2.22 verilog device");
Props.append (new Property ("c10", "2.0E-30", false,
QObject::tr ("GICCR constant")
+" ("+QObject::tr ("A^2s")+")"));
Props.append (new Property ("qp0", "2.0E-14", false,
QObject::tr ("Zero-bias hole charge")
+" ("+QObject::tr ("Coul")+")"));
Props.append (new Property ("ich", "0.0", false,
QObject::tr ("High-current correction for 2D and 3D effects")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("hfe", "1.0", false,
QObject::tr ("Emitter minority charge weighting factor in HBTs")));
Props.append (new Property ("hfc", "1.0", false,
QObject::tr ("Collector minority charge weighting factor in HBTs")));
Props.append (new Property ("hjei", "1.0", false,
QObject::tr ("B-E depletion charge weighting factor in HBTs")));
Props.append (new Property ("hjci", "1.0", false,
QObject::tr ("B-C depletion charge weighting factor in HBTs")));
Props.append (new Property ("ibeis", "1.0E-18", false,
QObject::tr ("Internal B-E saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbei", "1.0", false,
QObject::tr ("Internal B-E current ideality factor")));
Props.append (new Property ("ireis", "0.0", false,
QObject::tr ("Internal B-E recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mrei", "2.0", false,
QObject::tr ("Internal B-E recombination current ideality factor")));
Props.append (new Property ("ibeps", "0.0", false,
QObject::tr ("Peripheral B-E saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbep", "1.0", false,
QObject::tr ("Peripheral B-E current ideality factor")));
Props.append (new Property ("ireps", "0.0", false,
QObject::tr ("Peripheral B-E recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mrep", "2.0", false,
QObject::tr ("Peripheral B-E recombination current ideality factor")));
Props.append (new Property ("mcf", "1.0", false,
QObject::tr ("Non-ideality factor for III-V HBTs")));
Props.append (new Property ("tbhrec", "0.0", false,
QObject::tr ("Base current recombination time constant at B-C barrier for high forward injection")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ibcis", "1.0E-16", false,
QObject::tr ("Internal B-C saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbci", "1.0", false,
QObject::tr ("Internal B-C current ideality factor")));
Props.append (new Property ("ibcxs", "0.0", false,
QObject::tr ("External B-C saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbcx", "1.0", false,
QObject::tr ("External B-C current ideality factor")));
Props.append (new Property ("ibets", "0.0", false,
QObject::tr ("B-E tunneling saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("abet", "40", false,
QObject::tr ("Exponent factor for tunneling current")));
Props.append (new Property ("tunode", "1", false,
QObject::tr ("Specifies the base node connection for the tunneling current")));
Props.append (new Property ("favl", "0.0", false,
QObject::tr ("Avalanche current factor")
+" ("+QObject::tr ("1/V")+")"));
Props.append (new Property ("qavl", "0.0", false,
QObject::tr ("Exponent factor for avalanche current")
+" ("+QObject::tr ("Coul")+")"));
Props.append (new Property ("alfav", "0.0", false,
QObject::tr ("Relative TC for FAVL")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alqav", "0.0", false,
QObject::tr ("Relative TC for QAVL")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("rbi0", "0.0", false,
QObject::tr ("Zero bias internal base resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rbx", "0.0", false,
QObject::tr ("External base series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("fgeo", "0.6557", false,
QObject::tr ("Factor for geometry dependence of emitter current crowding")));
Props.append (new Property ("fdqr0", "0.0", false,
QObject::tr ("Correction factor for modulation by B-E and B-C space charge layer")));
Props.append (new Property ("fcrbi", "0.0", false,
QObject::tr ("Ratio of HF shunt to total internal capacitance (lateral NQS effect)")));
Props.append (new Property ("fqi", "1.0", false,
QObject::tr ("Ration of internal to total minority charge")));
Props.append (new Property ("re", "0.0", false,
QObject::tr ("Emitter series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rcx", "0.0", false,
QObject::tr ("External collector series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("itss", "0.0", false,
QObject::tr ("Substrate transistor transfer saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Forward ideality factor of substrate transfer current")));
Props.append (new Property ("iscs", "0.0", false,
QObject::tr ("C-S diode saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("Ideality factor of C-S diode current")));
Props.append (new Property ("tsf", "0.0", false,
QObject::tr ("Transit time for forward operation of substrate transistor")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("rsu", "0.0", false,
QObject::tr ("Substrate series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("csu", "0.0", false,
QObject::tr ("Substrate shunt capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cjei0", "1.0E-20", false,
QObject::tr ("Internal B-E zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdei", "0.9", false,
QObject::tr ("Internal B-E built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zei", "0.5", false,
QObject::tr ("Internal B-E grading coefficient")));
Props.append (new Property ("ajei", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of internal B-E capacitance")));
Props.append (new Property ("cjep0", "1.0E-20", false,
QObject::tr ("Peripheral B-E zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdep", "0.9", false,
QObject::tr ("Peripheral B-E built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zep", "0.5", false,
QObject::tr ("Peripheral B-E grading coefficient")));
Props.append (new Property ("ajep", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of peripheral B-E capacitance")));
Props.append (new Property ("cjci0", "1.0E-20", false,
QObject::tr ("Internal B-C zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("Internal B-C built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zci", "0.4", false,
QObject::tr ("Internal B-C grading coefficient")));
Props.append (new Property ("vptci", "100", false,
QObject::tr ("Internal B-C punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjcx0", "1.0E-20", false,
QObject::tr ("External B-C zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdcx", "0.7", false,
QObject::tr ("External B-C built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zcx", "0.4", false,
QObject::tr ("External B-C grading coefficient")));
Props.append (new Property ("vptcx", "100", false,
QObject::tr ("External B-C punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fbcpar", "0.0", false,
QObject::tr ("Partitioning factor of parasitic B-C cap")));
Props.append (new Property ("fbepar", "1.0", false,
QObject::tr ("Partitioning factor of parasitic B-E cap")));
Props.append (new Property ("cjs0", "0.0", false,
QObject::tr ("C-S zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vds", "0.6", false,
QObject::tr ("C-S built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zs", "0.5", false,
QObject::tr ("C-S grading coefficient")));
Props.append (new Property ("vpts", "100", false,
QObject::tr ("C-S punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("t0", "0.0", false,
QObject::tr ("Low current forward transit time at VBC=0V")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("dt0h", "0.0", false,
QObject::tr ("Time constant for base and B-C space charge layer width modulation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tbvl", "0.0", false,
QObject::tr ("Time constant for modelling carrier jam at low VCE")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Neutral emitter storage time")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("gtfe", "1.0", false,
QObject::tr ("Exponent factor for current dependence of neutral emitter storage time")));
Props.append (new Property ("thcs", "0.0", false,
QObject::tr ("Saturation time constant at high current densities")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ahc", "0.1", false,
QObject::tr ("Smoothing factor for current dependence of base and collector transit time")));
Props.append (new Property ("fthc", "0.0", false,
QObject::tr ("Partitioning factor for base and collector portion")));
Props.append (new Property ("rci0", "150", false,
QObject::tr ("Internal collector resistance at low electric field")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vlim", "0.5", false,
QObject::tr ("Voltage separating ohmic and saturation velocity regime")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vces", "0.1", false,
QObject::tr ("Internal C-E saturation voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vpt", "0.0", false,
QObject::tr ("Collector punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("tr", "0.0", false,
QObject::tr ("Storage time for inverse operation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("cbepar", "0.0", false,
QObject::tr ("Total parasitic B-E capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cbcpar", "0.0", false,
QObject::tr ("Total parasitic B-C capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("alqf", "0.0", false,
QObject::tr ("Factor for additional delay time of minority charge")));
Props.append (new Property ("alit", "0.0", false,
QObject::tr ("Factor for additional delay time of transfer current")));
Props.append (new Property ("flnqs", "0", false,
QObject::tr ("Flag for turning on and off of vertical NQS effect")));
Props.append (new Property ("kf", "0.0", false,
QObject::tr ("Flicker noise coefficient")));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("Flicker noise exponent factor")));
Props.append (new Property ("cfbe", "-1", false,
QObject::tr ("Flag for determining where to tag the flicker noise source")));
Props.append (new Property ("latb", "0.0", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter width")));
Props.append (new Property ("latl", "0.0", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter length")));
Props.append (new Property ("vgb", "1.17", false,
QObject::tr ("Bandgap voltage extrapolated to 0 K")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("alt0", "0.0", false,
QObject::tr ("First order relative TC of parameter T0")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kt0", "0.0", false,
QObject::tr ("Second order relative TC of parameter T0")));
Props.append (new Property ("zetaci", "0.0", false,
QObject::tr ("Temperature exponent for RCI0")));
Props.append (new Property ("alvs", "0.0", false,
QObject::tr ("Relative TC of saturation drift velocity")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alces", "0.0", false,
QObject::tr ("Relative TC of VCES")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("Temperature exponent of internal base resistance")));
Props.append (new Property ("zetarbx", "0.0", false,
QObject::tr ("Temperature exponent of external base resistance")));
Props.append (new Property ("zetarcx", "0.0", false,
QObject::tr ("Temperature exponent of external collector resistance")));
Props.append (new Property ("zetare", "0.0", false,
QObject::tr ("Temperature exponent of emitter resistance")));
Props.append (new Property ("zetacx", "1.0", false,
QObject::tr ("Temperature exponent of mobility in substrate transistor transit time")));
Props.append (new Property ("vge", "1.17", false,
QObject::tr ("Effective emitter bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgc", "1.17", false,
QObject::tr ("Effective collector bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgs", "1.17", false,
QObject::tr ("Effective substrate bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("f1vg", "-1.02377e-4", false,
QObject::tr ("Coefficient K1 in T-dependent band-gap equation")));
Props.append (new Property ("f2vg", "4.3215e-4", false,
QObject::tr ("Coefficient K2 in T-dependent band-gap equation")));
Props.append (new Property ("zetact", "3.0", false,
QObject::tr ("Exponent coefficient in transfer current temperature dependence")));
Props.append (new Property ("zetabet", "3.5", false,
QObject::tr ("Exponent coefficient in B-E junction current temperature dependence")));
Props.append (new Property ("alb", "0.0", false,
QObject::tr ("Relative TC of forward current gain for V2.1 model")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("flsh", "0", false,
QObject::tr ("Flag for turning on and off self-heating effect")));
Props.append (new Property ("rth", "0.0", false,
QObject::tr ("Thermal resistance")
+" ("+QObject::tr ("K/W")+")"));
Props.append (new Property ("cth", "0.0", false,
QObject::tr ("Thermal capacitance")
+" ("+QObject::tr ("J/W")+")"));
Props.append (new Property ("flcomp", "0.0", false,
QObject::tr ("Flag for compatibility with v2.1 model (0=v2.1)")));
Props.append (new Property ("tnom", "27.0", false,
QObject::tr ("Temperature at which parameters are specified")
+" ("+QObject::tr ("C")+")"));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change w.r.t. chip temperature for particular transistor")
+" ("+QObject::tr ("K")+")"));
Props.append (new Property ("Temp", "27", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hic2_full";
Name = "T";
}
Component * hic2_full::newOne()
{
hic2_full * p = new hic2_full();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hic2_full::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("HICUM L2 v2.22");
BitmapFile = (char *) "npnsub_therm";
if(getNewOne) return new hic2_full();
return 0;
}
void hic2_full::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
// relative boundings
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* hic2_full.h - device definitions for hic2_full module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hic2_full_H
#define hic2_full_H
#include "component.h"
class hic2_full : public Component
{
public:
hic2_full();
~hic2_full() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* hic2_full_H */

View File

@ -1,382 +0,0 @@
/*
* hicumL0V1p2.cpp - device implementations for hicumL0V1p2 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "node.h"
#include "hicumL0V1p2.h"
hicumL0V1p2::hicumL0V1p2()
{
Description = QObject::tr ("HICUM Level 0 v1.2 verilog device");
Props.append (new Property ("Type", "npn", true,
QObject::tr ("polarity") + " [npn, pnp]"));
Props.append (new Property ("is", "1.0e-16", false,
QObject::tr ("(Modified) saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mcf", "1.00", false,
QObject::tr ("Non-ideality coefficient of forward collector current")));
Props.append (new Property ("mcr", "1.00", false,
QObject::tr ("Non-ideality coefficient of reverse collector current")));
Props.append (new Property ("vef", "1.0e6", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("ver", "1.0e6", false,
QObject::tr ("reverse Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("iqf", "1.0e6", false,
QObject::tr ("forward d.c. high-injection roll-off current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("fiqf", "0", false,
QObject::tr ("flag for turning on base related critical current")));
Props.append (new Property ("iqr", "1.0e6", false,
QObject::tr ("inverse d.c. high-injection roll-off current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("iqfh", "1.0e6", false,
QObject::tr ("high-injection correction current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("tfh", "0.0", false,
QObject::tr ("high-injection correction factor")));
Props.append (new Property ("ahq", "0", false,
QObject::tr ("Smoothing factor for the d.c. injection width")));
Props.append (new Property ("ibes", "1e-18", false,
QObject::tr ("BE saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbe", "1.0", false,
QObject::tr ("BE non-ideality factor")));
Props.append (new Property ("ires", "0.0", false,
QObject::tr ("BE recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mre", "2.0", false,
QObject::tr ("BE recombination non-ideality factor")));
Props.append (new Property ("ibcs", "0.0", false,
QObject::tr ("BC saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbc", "1.0", false,
QObject::tr ("BC non-ideality factor")));
Props.append (new Property ("cje0", "1.0e-20", false,
QObject::tr ("Zero-bias BE depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vde", "0.9", false,
QObject::tr ("BE built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("ze", "0.5", false,
QObject::tr ("BE exponent factor")));
Props.append (new Property ("aje", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value")));
Props.append (new Property ("vdedc", "0.9", false,
QObject::tr ("BE charge built-in voltage for d.c. transfer current")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zedc", "0.5", false,
QObject::tr ("charge BE exponent factor for d.c. transfer current")));
Props.append (new Property ("ajedc", "2.5", false,
QObject::tr ("BE capacitance ratio (maximum to zero-bias value) for d.c. transfer current")));
Props.append (new Property ("t0", "0.0", false,
QObject::tr ("low current transit time at Vbici=0")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("dt0h", "0.0", false,
QObject::tr ("Base width modulation contribution")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tbvl", "0.0", false,
QObject::tr ("SCR width modulation contribution")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Storage time in neutral emitter")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("gte", "1.0", false,
QObject::tr ("Exponent factor for emitter transit time")));
Props.append (new Property ("thcs", "0.0", false,
QObject::tr ("Saturation time at high current densities")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ahc", "0.1", false,
QObject::tr ("Smoothing factor for current dependence")));
Props.append (new Property ("tr", "0.0", false,
QObject::tr ("Storage time at inverse operation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("rci0", "150", false,
QObject::tr ("Low-field collector resistance under emitter")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vlim", "0.5", false,
QObject::tr ("Voltage dividing ohmic and satur.region")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vpt", "100", false,
QObject::tr ("Punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vces", "0.1", false,
QObject::tr ("Saturation voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjci0", "1.0e-20", false,
QObject::tr ("Total zero-bias BC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("BC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zci", "0.333", false,
QObject::tr ("BC exponent factor")));
Props.append (new Property ("vptci", "100", false,
QObject::tr ("Punch-through voltage of BC junction")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjcx0", "1.0e-20", false,
QObject::tr ("Zero-bias external BC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdcx", "0.7", false,
QObject::tr ("External BC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zcx", "0.333", false,
QObject::tr ("External BC exponent factor")));
Props.append (new Property ("vptcx", "100", false,
QObject::tr ("Punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fbc", "1.0", false,
QObject::tr ("Split factor = Cjci0/Cjc0")));
Props.append (new Property ("rbi0", "0.0", false,
QObject::tr ("Internal base resistance at zero-bias")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vr0e", "2.5", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vr0c", "1.0e6", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fgeo", "0.656", false,
QObject::tr ("Geometry factor")));
Props.append (new Property ("rbx", "0.0", false,
QObject::tr ("External base series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rcx", "0.0", false,
QObject::tr ("Emitter series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("re", "0.0", false,
QObject::tr ("External collector series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("itss", "0.0", false,
QObject::tr ("Substrate transistor transfer saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Substrate transistor transfer current non-ideality factor")));
Props.append (new Property ("iscs", "0.0", false,
QObject::tr ("SC saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("SC non-ideality factor")));
Props.append (new Property ("cjs0", "1.0e-20", false,
QObject::tr ("Zero-bias SC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vds", "0.3", false,
QObject::tr ("SC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zs", "0.3", false,
QObject::tr ("External SC exponent factor")));
Props.append (new Property ("vpts", "100", false,
QObject::tr ("SC punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cbcpar", "0.0", false,
QObject::tr ("Collector-base isolation (overlap) capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cbepar", "0.0", false,
QObject::tr ("Emitter-base oxide capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("eavl", "0.0", false,
QObject::tr ("Exponent factor")));
Props.append (new Property ("kavl", "0.0", false,
QObject::tr ("Prefactor")));
Props.append (new Property ("kf", "0.0", false,
QObject::tr ("flicker noise coefficient")
+" ("+QObject::tr ("M^(1-AF)")+")"));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("flicker noise exponent factor")));
Props.append (new Property ("vgb", "1.2", false,
QObject::tr ("Bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vge", "1.17", false,
QObject::tr ("Effective emitter bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgc", "1.17", false,
QObject::tr ("Effective collector bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgs", "1.17", false,
QObject::tr ("Effective substrate bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("f1vg", "-1.02377e-4", false,
QObject::tr ("Coefficient K1 in T-dependent bandgap equation")
+" ("+QObject::tr ("V/K")+")"));
Props.append (new Property ("f2vg", "4.3215e-4", false,
QObject::tr ("Coefficient K2 in T-dependent bandgap equation")
+" ("+QObject::tr ("V/K")+")"));
Props.append (new Property ("alt0", "0.0", false,
QObject::tr ("Frist-order TC of tf0")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kt0", "0.0", false,
QObject::tr ("Second-order TC of tf0")
+" ("+QObject::tr ("1/K^2")+")"));
Props.append (new Property ("zetact", "3.0", false,
QObject::tr ("Exponent coefficient in transfer current temperature dependence")));
Props.append (new Property ("zetabet", "3.5", false,
QObject::tr ("Exponent coefficient in BE junction current temperature dependence")));
Props.append (new Property ("zetaci", "0.0", false,
QObject::tr ("TC of epi-collector diffusivity")));
Props.append (new Property ("alvs", "0.0", false,
QObject::tr ("Relative TC of satur.drift velocity")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alces", "0.0", false,
QObject::tr ("Relative TC of vces")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("TC of internal base resistance")));
Props.append (new Property ("zetarbx", "0.0", false,
QObject::tr ("TC of external base resistance")));
Props.append (new Property ("zetarcx", "0.0", false,
QObject::tr ("TC of external collector resistance")));
Props.append (new Property ("zetare", "0.0", false,
QObject::tr ("TC of emitter resistances")));
Props.append (new Property ("zetaiqf", "0.0", false,
QObject::tr ("TC of iqf")));
Props.append (new Property ("alkav", "0.0", false,
QObject::tr ("TC of avalanche prefactor")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("aleav", "0.0", false,
QObject::tr ("TC of avalanche exponential factor")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarth", "0.0", false,
QObject::tr ("Exponent factor for temperature dependent thermal resistance")));
Props.append (new Property ("flsh", "0", false,
QObject::tr ("Flag for self-heating calculation")));
Props.append (new Property ("rth", "0.0", false,
QObject::tr ("Thermal resistance")
+" ("+QObject::tr ("K/W")+")"));
Props.append (new Property ("cth", "0.0", false,
QObject::tr ("Thermal capacitance")
+" ("+QObject::tr ("Ws/K")+")"));
Props.append (new Property ("tnom", "27", false,
QObject::tr ("Temperature for which parameters are valid")
+" ("+QObject::tr ("C")+")"));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change for particular transistor")
+" ("+QObject::tr ("K")+")"));
Props.append (new Property ("Temp", "27", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hicumL0V1p2";
Name = "T";
}
Component * hicumL0V1p2::newOne()
{
hicumL0V1p2 * p = new hicumL0V1p2();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hicumL0V1p2::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("npn HICUM L0 v1.2");
BitmapFile = (char *) "npnsub_therm";
if(getNewOne) return new hicumL0V1p2();
return 0;
}
Element * hicumL0V1p2::info_pnp(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("pnp HICUM L0 v1.2");
BitmapFile = (char *) "pnpsub_therm";
if(getNewOne)
{
hicumL0V1p2* p = new hicumL0V1p2();
p->Props.getFirst()->Value = "pnp";
p->recreate(0);
return p;
}
return 0;
}
void hicumL0V1p2::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
if(Props.getFirst()->Value == "npn") {
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
} else {
Lines.append(new Line( -5, 10, -5, 16,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, 10, 1, 10,QPen(Qt::darkBlue,2)));
}
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
// relative boundings
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}
QString hicumL0V1p2::netlist()
{
QString s = "hicumL0V1p2:"+Name;
// output all node names
foreach(Port *p1, Ports)
s += " "+p1->Connection->Name; // node names
// output type npn/pnp property
Property *p2 = Props.first();
if(p2->Value == "npn")
s += " npn=\"1\"";
else
s += " pnp=\"1\"";
// output all remaining properties
for(p2 = Props.next(); p2 != 0; p2 = Props.next())
s += " "+p2->Name+"=\""+p2->Value+"\"";
return s + '\n';
}

View File

@ -1,29 +0,0 @@
/*
* hicumL0V1p2.h - device definitions for hicumL0V1p2 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hicumL0V1p2_H
#define hicumL0V1p2_H
#include "component.h"
class hicumL0V1p2 : public MultiViewComponent
{
public:
hicumL0V1p2();
~hicumL0V1p2() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
static Element* info_pnp(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
QString netlist();
};
#endif /* hicumL0V1p2_H */

View File

@ -1,393 +0,0 @@
/*
* hicumL0V1p2g.cpp - device implementations for hicumL0V1p2g module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "node.h"
#include "hicumL0V1p2g.h"
hicumL0V1p2g::hicumL0V1p2g()
{
Description = QObject::tr ("HICUM Level 0 v1.2g verilog device");
Props.append (new Property ("Type", "npn", true,
QObject::tr ("polarity") + " [npn, pnp]"));
Props.append (new Property ("is", "1.0e-16", false,
QObject::tr ("(Modified) saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mcf", "1.00", false,
QObject::tr ("Non-ideality coefficient of forward collector current")));
Props.append (new Property ("mcr", "1.00", false,
QObject::tr ("Non-ideality coefficient of reverse collector current")));
Props.append (new Property ("vef", "1.0e6", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("ver", "1.0e6", false,
QObject::tr ("reverse Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("iqf", "1.0e6", false,
QObject::tr ("forward d.c. high-injection roll-off current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("fiqf", "0", false,
QObject::tr ("flag for turning on base related critical current")));
Props.append (new Property ("iqr", "1.0e6", false,
QObject::tr ("inverse d.c. high-injection roll-off current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("iqfh", "1.0e6", false,
QObject::tr ("high-injection correction current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("iqfe", "0.0", false,
QObject::tr ("high-injection roll-off current")));
Props.append (new Property ("ahq", "0.0", false,
QObject::tr ("Smoothing factor for the d.c. injection width")));
Props.append (new Property ("ibes", "1e-18", false,
QObject::tr ("BE saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbe", "1.0", false,
QObject::tr ("BE non-ideality factor")));
Props.append (new Property ("ires", "0.0", false,
QObject::tr ("BE recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mre", "2.0", false,
QObject::tr ("BE recombination non-ideality factor")));
Props.append (new Property ("ibcs", "0.0", false,
QObject::tr ("BC saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbc", "1.0", false,
QObject::tr ("BC non-ideality factor")));
Props.append (new Property ("cje0", "1.0e-20", false,
QObject::tr ("Zero-bias BE depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vde", "0.9", false,
QObject::tr ("BE built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("ze", "0.5", false,
QObject::tr ("BE exponent factor")));
Props.append (new Property ("aje", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value")));
Props.append (new Property ("vdedc", "0.9", false,
QObject::tr ("BE charge built-in voltage for d.c. transfer current")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zedc", "0.5", false,
QObject::tr ("charge BE exponent factor for d.c. transfer current")));
Props.append (new Property ("ajedc", "2.5", false,
QObject::tr ("BE capacitance ratio (maximum to zero-bias value) for d.c. transfer current")));
Props.append (new Property ("t0", "0.0", false,
QObject::tr ("low current transit time at Vbici=0")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("dt0h", "0.0", false,
QObject::tr ("Base width modulation contribution")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tbvl", "0.0", false,
QObject::tr ("SCR width modulation contribution")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Storage time in neutral emitter")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("gte", "1.0", false,
QObject::tr ("Exponent factor for emitter transit time")));
Props.append (new Property ("thcs", "0.0", false,
QObject::tr ("Saturation time at high current densities")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ahc", "0.1", false,
QObject::tr ("Smoothing factor for current dependence")));
Props.append (new Property ("tr", "0.0", false,
QObject::tr ("Storage time at inverse operation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("rci0", "150", false,
QObject::tr ("Low-field collector resistance under emitter")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vlim", "0.5", false,
QObject::tr ("Voltage dividing ohmic and satur.region")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vpt", "100.0", false,
QObject::tr ("Punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vces", "0.1", false,
QObject::tr ("Saturation voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjci0", "1.0e-20", false,
QObject::tr ("Total zero-bias BC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("BC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zci", "0.333", false,
QObject::tr ("BC exponent factor")));
Props.append (new Property ("vptci", "100.0", false,
QObject::tr ("Punch-through voltage of BC junction")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjcx0", "1.0e-20", false,
QObject::tr ("Zero-bias external BC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdcx", "0.7", false,
QObject::tr ("External BC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zcx", "0.333", false,
QObject::tr ("External BC exponent factor")));
Props.append (new Property ("vptcx", "100.0", false,
QObject::tr ("Punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fbc", "1.0", false,
QObject::tr ("Split factor = Cjci0/Cjc0")));
Props.append (new Property ("rbi0", "0.0", false,
QObject::tr ("Internal base resistance at zero-bias")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vr0e", "2.5", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vr0c", "1.0e6", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fgeo", "0.656", false,
QObject::tr ("Geometry factor")));
Props.append (new Property ("rbx", "0.0", false,
QObject::tr ("External base series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rcx", "0.0", false,
QObject::tr ("Emitter series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("re", "0.0", false,
QObject::tr ("External collector series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("itss", "0.0", false,
QObject::tr ("Substrate transistor transfer saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Substrate transistor transfer current non-ideality factor")));
Props.append (new Property ("iscs", "0.0", false,
QObject::tr ("SC saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("SC non-ideality factor")));
Props.append (new Property ("cjs0", "1.0e-20", false,
QObject::tr ("Zero-bias SC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vds", "0.3", false,
QObject::tr ("SC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zs", "0.3", false,
QObject::tr ("External SC exponent factor")));
Props.append (new Property ("vpts", "100.0", false,
QObject::tr ("SC punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cbcpar", "0.0", false,
QObject::tr ("Collector-base isolation (overlap) capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cbepar", "0.0", false,
QObject::tr ("Emitter-base oxide capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("eavl", "0.0", false,
QObject::tr ("Exponent factor")));
Props.append (new Property ("kavl", "0.0", false,
QObject::tr ("Prefactor")));
Props.append (new Property ("kf", "0.0", false,
QObject::tr ("flicker noise coefficient")
+" ("+QObject::tr ("M^(1-AF)")+")"));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("flicker noise exponent factor")));
Props.append (new Property ("vgb", "1.2", false,
QObject::tr ("Bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vge", "1.17", false,
QObject::tr ("Effective emitter bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgc", "1.17", false,
QObject::tr ("Effective collector bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgs", "1.17", false,
QObject::tr ("Effective substrate bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("f1vg", "-1.02377e-4", false,
QObject::tr ("Coefficient K1 in T-dependent bandgap equation")
+" ("+QObject::tr ("V/K")+")"));
Props.append (new Property ("f2vg", "4.3215e-4", false,
QObject::tr ("Coefficient K2 in T-dependent bandgap equation")
+" ("+QObject::tr ("V/K")+")"));
Props.append (new Property ("alt0", "0.0", false,
QObject::tr ("Frist-order TC of tf0")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kt0", "0.0", false,
QObject::tr ("Second-order TC of tf0")
+" ("+QObject::tr ("1/K^2")+")"));
Props.append (new Property ("zetact", "3.0", false,
QObject::tr ("Exponent coefficient in transfer current temperature dependence")));
Props.append (new Property ("zetabet", "3.5", false,
QObject::tr ("Exponent coefficient in BE junction current temperature dependence")));
Props.append (new Property ("zetaci", "0.0", false,
QObject::tr ("TC of epi-collector diffusivity")));
Props.append (new Property ("alvs", "0.0", false,
QObject::tr ("Relative TC of satur.drift velocity")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alces", "0.0", false,
QObject::tr ("Relative TC of vces")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("TC of internal base resistance")));
Props.append (new Property ("zetarbx", "0.0", false,
QObject::tr ("TC of external base resistance")));
Props.append (new Property ("zetarcx", "0.0", false,
QObject::tr ("TC of external collector resistance")));
Props.append (new Property ("zetare", "0.0", false,
QObject::tr ("TC of emitter resistances")));
Props.append (new Property ("zetaiqf", "0.0", false,
QObject::tr ("TC of iqf (bandgap coefficient of zero bias hole charge)")));
Props.append (new Property ("alkav", "0.0", false,
QObject::tr ("TC of avalanche prefactor, identical to alfav of Hicum/L2")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("aleav", "0.0", false,
QObject::tr ("TC of avalanche exponential factor, identical to alqav of Hicum/L2")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("flsh", "0", false,
QObject::tr ("Flag for self-heating calculation")));
Props.append (new Property ("rth", "0.0", false,
QObject::tr ("Thermal resistance")
+" ("+QObject::tr ("K/W")+")"));
Props.append (new Property ("zetarth", "0.0", false,
QObject::tr ("Exponent factor for temperature dependent thermal resistance")));
Props.append (new Property ("cth", "0.0", false,
QObject::tr ("Thermal capacitance")
+" ("+QObject::tr ("Ws/K")+")"));
Props.append (new Property ("tnom", "27", false,
QObject::tr ("Temperature for which parameters are valid")
+" ("+QObject::tr ("C")+")"));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change for particular transistor")
+" ("+QObject::tr ("K")+")"));
Props.append (new Property ("delte", "0.0", false,
QObject::tr ("Emitter part coefficient of the zero bias hole charge temperature variation")));
Props.append (new Property ("deltc", "0.0", false,
QObject::tr ("Collector part coefficient of the zero bias hole charge temperature variation")));
Props.append (new Property ("zetaver", "0.0", false,
QObject::tr ("Bandgap TC parameter of ver")));
Props.append (new Property ("zetavef", "0.0", false,
QObject::tr ("Bandgap TC parameter of vef")));
Props.append (new Property ("ibhrec", "0.0", false,
QObject::tr ("Specific recombination current at the BC barrier for high forward injection")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("Temp", "27", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hicumL0V1p2g";
Name = "T";
}
Component * hicumL0V1p2g::newOne()
{
hicumL0V1p2g * p = new hicumL0V1p2g();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hicumL0V1p2g::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("npn HICUM L0 v1.2g");
BitmapFile = (char *) "npnsub_therm";
if(getNewOne) return new hicumL0V1p2g();
return 0;
}
Element * hicumL0V1p2g::info_pnp(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("pnp HICUM L0 v1.2g");
BitmapFile = (char *) "pnpsub_therm";
if(getNewOne)
{
hicumL0V1p2g* p = new hicumL0V1p2g();
p->Props.getFirst()->Value = "pnp";
p->recreate(0);
return p;
}
return 0;
}
void hicumL0V1p2g::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
if(Props.getFirst()->Value == "npn") {
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
} else {
Lines.append(new Line( -5, 10, -5, 16,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, 10, 1, 10,QPen(Qt::darkBlue,2)));
}
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
// relative boundings
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}
QString hicumL0V1p2g::netlist()
{
QString s = "hicumL0V1p2g:"+Name;
// output all node names
foreach(Port *p1, Ports)
s += " "+p1->Connection->Name; // node names
// output type npn/pnp property
Property *p2 = Props.first();
if(p2->Value == "npn")
s += " npn=\"1\"";
else
s += " pnp=\"1\"";
// output all remaining properties
for(p2 = Props.next(); p2 != 0; p2 = Props.next())
s += " "+p2->Name+"=\""+p2->Value+"\"";
return s + '\n';
}

View File

@ -1,29 +0,0 @@
/*
* hicumL0V1p2g.h - device definitions for hicumL0V1p2g module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hicumL0V1p2g_H
#define hicumL0V1p2g_H
#include "component.h"
class hicumL0V1p2g : public MultiViewComponent
{
public:
hicumL0V1p2g();
~hicumL0V1p2g() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
static Element* info_pnp(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
QString netlist();
};
#endif /* hicumL0V1p2g_H */

View File

@ -1,400 +0,0 @@
/*
* hicumL0V1p3.cpp - device implementations for hicumL0V1p3 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "node.h"
#include "hicumL0V1p3.h"
hicumL0V1p3::hicumL0V1p3()
{
Description = QObject::tr ("HICUM Level 0 v1.3 verilog device");
Props.append (new Property ("Type", "npn", true,
QObject::tr ("polarity") + " [npn, pnp]"));
Props.append (new Property ("is", "1.0e-16", false,
QObject::tr ("(Modified) saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("it_mod", "0", false,
QObject::tr ("Flag for using third order solution for transfer current")));
Props.append (new Property ("mcf", "1.00", false,
QObject::tr ("Non-ideality coefficient of forward collector current")));
Props.append (new Property ("mcr", "1.00", false,
QObject::tr ("Non-ideality coefficient of reverse collector current")));
Props.append (new Property ("vef", "1.0e6", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("ver", "1.0e6", false,
QObject::tr ("reverse Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("aver", "0.0", false,
QObject::tr ("bias dependence for reverse Early voltage")));
Props.append (new Property ("iqf", "1.0e6", false,
QObject::tr ("forward d.c. high-injection roll-off current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("fiqf", "0", false,
QObject::tr ("flag for turning on base related critical current")));
Props.append (new Property ("iqr", "1.0e6", false,
QObject::tr ("inverse d.c. high-injection roll-off current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("iqfh", "1.0e6", false,
QObject::tr ("high-injection correction current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("tfh", "0.0", false,
QObject::tr ("high-injection correction factor")));
Props.append (new Property ("ahq", "0", false,
QObject::tr ("Smoothing factor for the d.c. injection width")));
Props.append (new Property ("ibes", "1e-18", false,
QObject::tr ("BE saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbe", "1.0", false,
QObject::tr ("BE non-ideality factor")));
Props.append (new Property ("ires", "0.0", false,
QObject::tr ("BE recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mre", "2.0", false,
QObject::tr ("BE recombination non-ideality factor")));
Props.append (new Property ("ibcs", "0.0", false,
QObject::tr ("BC saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbc", "1.0", false,
QObject::tr ("BC non-ideality factor")));
Props.append (new Property ("cje0", "1.0e-20", false,
QObject::tr ("Zero-bias BE depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vde", "0.9", false,
QObject::tr ("BE built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("ze", "0.5", false,
QObject::tr ("BE exponent factor")));
Props.append (new Property ("aje", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value")));
Props.append (new Property ("vdedc", "0.9", false,
QObject::tr ("BE charge built-in voltage for d.c. transfer current")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zedc", "0.5", false,
QObject::tr ("charge BE exponent factor for d.c. transfer current")));
Props.append (new Property ("ajedc", "2.5", false,
QObject::tr ("BE capacitance ratio (maximum to zero-bias value) for d.c. transfer current")));
Props.append (new Property ("t0", "0.0", false,
QObject::tr ("low current transit time at Vbici=0")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("dt0h", "0.0", false,
QObject::tr ("Base width modulation contribution")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tbvl", "0.0", false,
QObject::tr ("SCR width modulation contribution")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Storage time in neutral emitter")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("gte", "1.0", false,
QObject::tr ("Exponent factor for emitter transit time")));
Props.append (new Property ("thcs", "0.0", false,
QObject::tr ("Saturation time at high current densities")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ahc", "0.1", false,
QObject::tr ("Smoothing factor for current dependence")));
Props.append (new Property ("tr", "0.0", false,
QObject::tr ("Storage time at inverse operation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("rci0", "150", false,
QObject::tr ("Low-field collector resistance under emitter")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vlim", "0.5", false,
QObject::tr ("Voltage dividing ohmic and satur.region")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vpt", "100", false,
QObject::tr ("Punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vces", "0.1", false,
QObject::tr ("Saturation voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjci0", "1.0e-20", false,
QObject::tr ("Total zero-bias BC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("BC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zci", "0.333", false,
QObject::tr ("BC exponent factor")));
Props.append (new Property ("vptci", "100", false,
QObject::tr ("Punch-through voltage of BC junction")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjcx0", "1.0e-20", false,
QObject::tr ("Zero-bias external BC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdcx", "0.7", false,
QObject::tr ("External BC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zcx", "0.333", false,
QObject::tr ("External BC exponent factor")));
Props.append (new Property ("vptcx", "100", false,
QObject::tr ("Punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fbc", "1.0", false,
QObject::tr ("Split factor = Cjci0/Cjc0")));
Props.append (new Property ("rbi0", "0.0", false,
QObject::tr ("Internal base resistance at zero-bias")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vr0e", "2.5", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vr0c", "1.0e6", false,
QObject::tr ("forward Early voltage (normalization volt.)")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fgeo", "0.656", false,
QObject::tr ("Geometry factor")));
Props.append (new Property ("rbx", "0.0", false,
QObject::tr ("External base series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rcx", "0.0", false,
QObject::tr ("Emitter series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("re", "0.0", false,
QObject::tr ("External collector series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("itss", "0.0", false,
QObject::tr ("Substrate transistor transfer saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Substrate transistor transfer current non-ideality factor")));
Props.append (new Property ("iscs", "0.0", false,
QObject::tr ("SC saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("SC non-ideality factor")));
Props.append (new Property ("cjs0", "1.0e-20", false,
QObject::tr ("Zero-bias SC depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vds", "0.3", false,
QObject::tr ("SC built-in voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zs", "0.3", false,
QObject::tr ("External SC exponent factor")));
Props.append (new Property ("vpts", "100", false,
QObject::tr ("SC punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cbcpar", "0.0", false,
QObject::tr ("Collector-base isolation (overlap) capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cbepar", "0.0", false,
QObject::tr ("Emitter-base oxide capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("eavl", "0.0", false,
QObject::tr ("Exponent factor")));
Props.append (new Property ("kavl", "0.0", false,
QObject::tr ("Prefactor")));
Props.append (new Property ("kf", "0.0", false,
QObject::tr ("flicker noise coefficient")
+" ("+QObject::tr ("M^(1-AF)")+")"));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("flicker noise exponent factor")));
Props.append (new Property ("vgb", "1.2", false,
QObject::tr ("Bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vge", "1.17", false,
QObject::tr ("Effective emitter bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgc", "1.17", false,
QObject::tr ("Effective collector bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgs", "1.17", false,
QObject::tr ("Effective substrate bandgap-voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("f1vg", "-1.02377e-4", false,
QObject::tr ("Coefficient K1 in T-dependent bandgap equation")
+" ("+QObject::tr ("V/K")+")"));
Props.append (new Property ("f2vg", "4.3215e-4", false,
QObject::tr ("Coefficient K2 in T-dependent bandgap equation")
+" ("+QObject::tr ("V/K")+")"));
Props.append (new Property ("alt0", "0.0", false,
QObject::tr ("Frist-order TC of tf0")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kt0", "0.0", false,
QObject::tr ("Second-order TC of tf0")
+" ("+QObject::tr ("1/K^2")+")"));
Props.append (new Property ("zetact", "3.0", false,
QObject::tr ("Exponent coefficient in transfer current temperature dependence")));
Props.append (new Property ("zetabet", "3.5", false,
QObject::tr ("Exponent coefficient in BE junction current temperature dependence")));
Props.append (new Property ("zetaci", "0.0", false,
QObject::tr ("TC of epi-collector diffusivity")));
Props.append (new Property ("alvs", "0.0", false,
QObject::tr ("Relative TC of satur.drift velocity")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alces", "0.0", false,
QObject::tr ("Relative TC of vces")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("TC of internal base resistance")));
Props.append (new Property ("zetarbx", "0.0", false,
QObject::tr ("TC of external base resistance")));
Props.append (new Property ("zetarcx", "0.0", false,
QObject::tr ("TC of external collector resistance")));
Props.append (new Property ("zetare", "0.0", false,
QObject::tr ("TC of emitter resistances")));
Props.append (new Property ("zetaiqf", "0.0", false,
QObject::tr ("TC of iqf")));
Props.append (new Property ("alkav", "0.0", false,
QObject::tr ("TC of avalanche prefactor")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("aleav", "0.0", false,
QObject::tr ("TC of avalanche exponential factor")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarth", "0.0", false,
QObject::tr ("Exponent factor for temperature dependent thermal resistance")));
Props.append (new Property ("tef_temp", "1", false,
QObject::tr ("Flag for turning temperature dependence of tef0 on and off")));
Props.append (new Property ("zetaver", "-1.0", false,
QObject::tr ("TC of Reverse Early voltage")));
Props.append (new Property ("zetavgbe", "1.0", false,
QObject::tr ("TC of AVER")));
Props.append (new Property ("dvgbe", "0.0", false,
QObject::tr ("Bandgap difference between base and BE-junction")));
Props.append (new Property ("aliqfh", "0", false,
QObject::tr ("Frist-order TC of iqfh")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kiqfh", "0", false,
QObject::tr ("Second-order TC of iqfh")
+" ("+QObject::tr ("1/K^2")+")"));
Props.append (new Property ("flsh", "0", false,
QObject::tr ("Flag for self-heating calculation")));
Props.append (new Property ("rth", "0.0", false,
QObject::tr ("Thermal resistance")
+" ("+QObject::tr ("K/W")+")"));
Props.append (new Property ("cth", "0.0", false,
QObject::tr ("Thermal capacitance")
+" ("+QObject::tr ("Ws/K")+")"));
Props.append (new Property ("tnom", "27", false,
QObject::tr ("Temperature for which parameters are valid")
+" ("+QObject::tr ("C")+")"));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change for particular transistor")
+" ("+QObject::tr ("K")+")"));
Props.append (new Property ("Temp", "27", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hicumL0V1p3";
Name = "T";
}
Component * hicumL0V1p3::newOne()
{
hicumL0V1p3 * p = new hicumL0V1p3();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hicumL0V1p3::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("npn HICUM L0 v1.3");
BitmapFile = (char *) "pnpsub_therm";
if(getNewOne) return new hicumL0V1p3();
return 0;
}
Element * hicumL0V1p3::info_pnp(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("pnp HICUM L0 v1.3");
BitmapFile = (char *) "pnpsub_therm";
if(getNewOne)
{
hicumL0V1p3* p = new hicumL0V1p3();
p->Props.getFirst()->Value = "pnp";
p->recreate(0);
return p;
}
return 0;
}
void hicumL0V1p3::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
if(Props.getFirst()->Value == "npn") {
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
} else {
Lines.append(new Line( -5, 10, -5, 16,QPen(Qt::darkBlue,2)));
Lines.append(new Line( -5, 10, 1, 10,QPen(Qt::darkBlue,2)));
}
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
// relative boundings
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}
QString hicumL0V1p3::netlist()
{
QString s = "hicumL0V1p3:"+Name;
// output all node names
foreach(Port *p1, Ports)
s += " "+p1->Connection->Name; // node names
// output type npn/pnp property
Property *p2 = Props.first();
if(p2->Value == "npn")
s += " npn=\"1\"";
else
s += " pnp=\"1\"";
// output all remaining properties
for(p2 = Props.next(); p2 != 0; p2 = Props.next())
s += " "+p2->Name+"=\""+p2->Value+"\"";
return s + '\n';
}

View File

@ -1,29 +0,0 @@
/*
* hicumL0V1p3.h - device definitions for hicumL0V1p3 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hicumL0V1p3_H
#define hicumL0V1p3_H
#include "component.h"
class hicumL0V1p3 : public MultiViewComponent
{
public:
hicumL0V1p3();
~hicumL0V1p3() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
static Element* info_pnp(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
QString netlist();
};
#endif /* hicumL0V1p3_H */

View File

@ -1,294 +0,0 @@
/*
* hicumL2V2p1.cpp - device implementations for hicumL2V2p1 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "hicumL2V2p1.h"
hicumL2V2p1::hicumL2V2p1()
{
Description = QObject::tr ("HICUM Level 2 v2.1 verilog device");
Props.append (new Property ("c10", "1.516E-31", false,
QObject::tr ("GICCR constant")));
Props.append (new Property ("qp0", "5.939E-15", false,
QObject::tr ("Zero-bias hole charge")));
Props.append (new Property ("ich", "1.0E11", false,
QObject::tr ("High-current correction for 2D and 3D effects")));
Props.append (new Property ("hfe", "1.0", false,
QObject::tr ("Emitter minority charge weighting factor in HBTs")));
Props.append (new Property ("hfc", "0.03999", false,
QObject::tr ("Collector minority charge weighting factor in HBTs")));
Props.append (new Property ("hjei", "0.435", false,
QObject::tr ("B-E depletion charge weighting factor in HBTs")));
Props.append (new Property ("hjci", "0.09477", false,
QObject::tr ("B-C depletion charge weighting factor in HBTs")));
Props.append (new Property ("ibeis", "3.47E-20", false,
QObject::tr ("Internal B-E saturation current")));
Props.append (new Property ("mbei", "1.025", false,
QObject::tr ("Internal B-E current ideality factor")));
Props.append (new Property ("ireis", "390E-12", false,
QObject::tr ("Internal B-E recombination saturation current")));
Props.append (new Property ("mrei", "3", false,
QObject::tr ("Internal B-E recombination current ideality factor")));
Props.append (new Property ("ibeps", "4.18321E-21", false,
QObject::tr ("Peripheral B-E saturation current")));
Props.append (new Property ("mbep", "1.045", false,
QObject::tr ("Peripheral B-E current ideality factor")));
Props.append (new Property ("ireps", "1.02846E-14", false,
QObject::tr ("Peripheral B-E recombination saturation current")));
Props.append (new Property ("mrep", "3", false,
QObject::tr ("Peripheral B-E recombination current ideality factor")));
Props.append (new Property ("mcf", "1.0", false,
QObject::tr ("Non-ideality factor for III-V HBTs")));
Props.append (new Property ("ibcis", "3.02613E-18", false,
QObject::tr ("Internal B-C saturation current")));
Props.append (new Property ("mbci", "1.0", false,
QObject::tr ("Internal B-C current ideality factor")));
Props.append (new Property ("ibcxs", "4.576E-29", false,
QObject::tr ("External B-C saturation current")));
Props.append (new Property ("mbcx", "1.0", false,
QObject::tr ("External B-C current ideality factor")));
Props.append (new Property ("ibets", "0.0", false,
QObject::tr ("B-E tunneling saturation current")));
Props.append (new Property ("abet", "36.74", false,
QObject::tr ("Exponent factor for tunneling current")));
Props.append (new Property ("favl", "14.97", false,
QObject::tr ("Avalanche current factor")));
Props.append (new Property ("qavl", "7.2407E-14", false,
QObject::tr ("Exponent factor for avalanche current")));
Props.append (new Property ("alfav", "0.0", false,
QObject::tr ("Relative TC for FAVL")));
Props.append (new Property ("alqav", "0.0", false,
QObject::tr ("Relative TC for QAVL")));
Props.append (new Property ("rbi0", "7.9", false,
QObject::tr ("Zero bias internal base resistance")));
Props.append (new Property ("rbx", "13.15", false,
QObject::tr ("External base series resistance")));
Props.append (new Property ("fgeo", "0.724", false,
QObject::tr ("Factor for geometry dependence of emitter current crowding")));
Props.append (new Property ("fdqr0", "0", false,
QObject::tr ("Correction factor for modulation by B-E and B-C space charge layer")));
Props.append (new Property ("fcrbi", "0.0", false,
QObject::tr ("Ratio of HF shunt to total internal capacitance (lateral NQS effect)")));
Props.append (new Property ("fqi", "1.0", false,
QObject::tr ("Ration of internal to total minority charge")));
Props.append (new Property ("re", "9.77", false,
QObject::tr ("Emitter series resistance")));
Props.append (new Property ("rcx", "10", false,
QObject::tr ("External collector series resistance")));
Props.append (new Property ("itss", "2.81242E-19", false,
QObject::tr ("Substrate transistor transfer saturation current")));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Forward ideality factor of substrate transfer current")));
Props.append (new Property ("iscs", "7.6376E-17", false,
QObject::tr ("C-S diode saturation current")));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("Ideality factor of C-S diode current")));
Props.append (new Property ("tsf", "1.733E-8", false,
QObject::tr ("Transit time for forward operation of substrate transistor")));
Props.append (new Property ("rsu", "800", false,
QObject::tr ("Substrate series resistance")));
Props.append (new Property ("csu", "1.778E-14", false,
QObject::tr ("Substrate shunt capacitance")));
Props.append (new Property ("cjei0", "5.24382E-14", false,
QObject::tr ("Internal B-E zero-bias depletion capacitance")));
Props.append (new Property ("vdei", "0.9956", false,
QObject::tr ("Internal B-E built-in potential")));
Props.append (new Property ("zei", "0.4", false,
QObject::tr ("Internal B-E grading coefficient")));
Props.append (new Property ("aljei", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of internal B-E capacitance")));
Props.append (new Property ("cjep0", "0", false,
QObject::tr ("Peripheral B-E zero-bias depletion capacitance")));
Props.append (new Property ("vdep", "1", false,
QObject::tr ("Peripheral B-E built-in potential")));
Props.append (new Property ("zep", "0.01", false,
QObject::tr ("Peripheral B-E grading coefficient")));
Props.append (new Property ("aljep", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of peripheral B-E capacitance")));
Props.append (new Property ("cjci0", "4.46887E-15", false,
QObject::tr ("Internal B-C zero-bias depletion capacitance")));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("Internal B-C built-in potential")));
Props.append (new Property ("zci", "0.38", false,
QObject::tr ("Internal B-C grading coefficient")));
Props.append (new Property ("vptci", "100", false,
QObject::tr ("Internal B-C punch-through voltage")));
Props.append (new Property ("cjcx0", "1.55709E-14", false,
QObject::tr ("External B-C zero-bias depletion capacitance")));
Props.append (new Property ("vdcx", "0.733", false,
QObject::tr ("External B-C built-in potential")));
Props.append (new Property ("zcx", "0.34", false,
QObject::tr ("External B-C grading coefficient")));
Props.append (new Property ("vptcx", "100", false,
QObject::tr ("External B-C punch-through voltage")));
Props.append (new Property ("fbc", "0.3487", false,
QObject::tr ("Partitioning factor of parasitic B-C capacitance")));
Props.append (new Property ("cjs0", "17.68E-15", false,
QObject::tr ("C-S zero-bias depletion capacitance")));
Props.append (new Property ("vds", "0.621625", false,
QObject::tr ("C-S built-in potential")));
Props.append (new Property ("zs", "0.122136", false,
QObject::tr ("C-S grading coefficient")));
Props.append (new Property ("vpts", "1000", false,
QObject::tr ("C-S punch-through voltage")));
Props.append (new Property ("t0", "1.28E-12", false,
QObject::tr ("Low current forward transit time at VBC=0V")));
Props.append (new Property ("dt0h", "260E-15", false,
QObject::tr ("Time constant for base and B-C space charge layer width modulation")));
Props.append (new Property ("tbvl", "2.0E-13", false,
QObject::tr ("Time constant for modelling carrier jam at low VCE")));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Neutral emitter storage time")));
Props.append (new Property ("gtfe", "1.0", false,
QObject::tr ("Exponent factor for current dependence of neutral emitter storage time")));
Props.append (new Property ("thcs", "46E-15", false,
QObject::tr ("Saturation time constant at high current densities")));
Props.append (new Property ("alhc", "0.08913", false,
QObject::tr ("Smoothing factor for current dependence of base and collector transit time")));
Props.append (new Property ("fthc", "0.8778", false,
QObject::tr ("Partitioning factor for base and collector portion")));
Props.append (new Property ("rci0", "50.4277", false,
QObject::tr ("Internal collector resistance at low electric field")));
Props.append (new Property ("vlim", "0.9", false,
QObject::tr ("Voltage separating ohmic and saturation velocity regime")));
Props.append (new Property ("vces", "0.01", false,
QObject::tr ("Internal C-E saturation voltage")));
Props.append (new Property ("vpt", "10", false,
QObject::tr ("Collector punch-through voltage")));
Props.append (new Property ("tr", "1.0E-11", false,
QObject::tr ("Storage time for inverse operation")));
Props.append (new Property ("ceox", "1.71992E-15", false,
QObject::tr ("Total parasitic B-E capacitance")));
Props.append (new Property ("ccox", "4.9E-15", false,
QObject::tr ("Total parasitic B-C capacitance")));
Props.append (new Property ("alqf", "0.1288", false,
QObject::tr ("Factor for additional delay time of minority charge")));
Props.append (new Property ("alit", "1.0", false,
QObject::tr ("Factor for additional delay time of transfer current")));
Props.append (new Property ("kf", "2.83667E-9", false,
QObject::tr ("Flicker noise coefficient")));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("Flicker noise exponent factor")));
Props.append (new Property ("krbi", "1.0", false,
QObject::tr ("Noise factor for internal base resistance")));
Props.append (new Property ("latb", "10.479", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter width")));
Props.append (new Property ("latl", "0.300012", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter length")));
Props.append (new Property ("vgb", "1.112", false,
QObject::tr ("Bandgap voltage extrapolated to 0 K")));
Props.append (new Property ("alt0", "0.0017580", false,
QObject::tr ("First order relative TC of parameter T0")));
Props.append (new Property ("kt0", "4.07E-6", false,
QObject::tr ("Second order relative TC of parameter T0")));
Props.append (new Property ("zetaci", "0.7", false,
QObject::tr ("Temperature exponent for RCI0")));
Props.append (new Property ("zetacx", "1.0", false,
QObject::tr ("Temperature exponent of mobility in substrate transistor transit time")));
Props.append (new Property ("alvs", "0.001", false,
QObject::tr ("Relative TC of saturation drift velocity")));
Props.append (new Property ("alces", "0.000125", false,
QObject::tr ("Relative TC of VCES")));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("Temperature exponent of internal base resistance")));
Props.append (new Property ("zetarbx", "0.2", false,
QObject::tr ("Temperature exponent of external base resistance")));
Props.append (new Property ("zetarcx", "0.21", false,
QObject::tr ("Temperature exponent of external collector resistance")));
Props.append (new Property ("zetare", "0.7", false,
QObject::tr ("Temperature exponent of emitter resistance")));
Props.append (new Property ("alb", "0.007", false,
QObject::tr ("Relative TC of forward current gain for V2.1 model")));
Props.append (new Property ("rth", "1293.95", false,
QObject::tr ("Thermal resistance")));
Props.append (new Property ("cth", "7.22203E-11", false,
QObject::tr ("Thermal capacitance")));
Props.append (new Property ("tnom", "27.0", false,
QObject::tr ("Temperature at which parameters are specified")));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change w.r.t. chip temperature for particular transistor")));
Props.append (new Property ("Temp", "27", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hicumL2V2p1";
Name = "T";
}
Component * hicumL2V2p1::newOne()
{
hicumL2V2p1 * p = new hicumL2V2p1();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hicumL2V2p1::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("HICUM L2 v2.1");
BitmapFile = (char *) "npnsub_therm";
if(getNewOne) return new hicumL2V2p1();
return 0;
}
void hicumL2V2p1::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* hicumL2V2p1.h - device definitions for hicumL2V2p1 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hicumL2V2p1_H
#define hicumL2V2p1_H
#include "component.h"
class hicumL2V2p1 : public Component
{
public:
hicumL2V2p1();
~hicumL2V2p1() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* hicumL2V2p1_H */

View File

@ -1,383 +0,0 @@
/*
* hicumL2V2p23.cpp - device implementations for hicumL2V2p23 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "hicumL2V2p23.h"
hicumL2V2p23::hicumL2V2p23()
{
Description = QObject::tr ("HICUM Level 2 v2.23 verilog device");
Props.append (new Property ("c10", "2.0E-30", false,
QObject::tr ("GICCR constant")
+" ("+QObject::tr ("A^2s")+")"));
Props.append (new Property ("qp0", "2.0E-14", false,
QObject::tr ("Zero-bias hole charge")
+" ("+QObject::tr ("Coul")+")"));
Props.append (new Property ("ich", "0.0", false,
QObject::tr ("High-current correction for 2D and 3D effects")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("hfe", "1.0", false,
QObject::tr ("Emitter minority charge weighting factor in HBTs")));
Props.append (new Property ("hfc", "1.0", false,
QObject::tr ("Collector minority charge weighting factor in HBTs")));
Props.append (new Property ("hjei", "1.0", false,
QObject::tr ("B-E depletion charge weighting factor in HBTs")));
Props.append (new Property ("hjci", "1.0", false,
QObject::tr ("B-C depletion charge weighting factor in HBTs")));
Props.append (new Property ("ibeis", "1.0E-18", false,
QObject::tr ("Internal B-E saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbei", "1.0", false,
QObject::tr ("Internal B-E current ideality factor")));
Props.append (new Property ("ireis", "0.0", false,
QObject::tr ("Internal B-E recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mrei", "2.0", false,
QObject::tr ("Internal B-E recombination current ideality factor")));
Props.append (new Property ("ibeps", "0.0", false,
QObject::tr ("Peripheral B-E saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbep", "1.0", false,
QObject::tr ("Peripheral B-E current ideality factor")));
Props.append (new Property ("ireps", "0.0", false,
QObject::tr ("Peripheral B-E recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mrep", "2.0", false,
QObject::tr ("Peripheral B-E recombination current ideality factor")));
Props.append (new Property ("mcf", "1.0", false,
QObject::tr ("Non-ideality factor for III-V HBTs")));
Props.append (new Property ("tbhrec", "0.0", false,
QObject::tr ("Base current recombination time constant at B-C barrier for high forward injection")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ibcis", "1.0E-16", false,
QObject::tr ("Internal B-C saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbci", "1.0", false,
QObject::tr ("Internal B-C current ideality factor")));
Props.append (new Property ("ibcxs", "0.0", false,
QObject::tr ("External B-C saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbcx", "1.0", false,
QObject::tr ("External B-C current ideality factor")));
Props.append (new Property ("ibets", "0.0", false,
QObject::tr ("B-E tunneling saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("abet", "40", false,
QObject::tr ("Exponent factor for tunneling current")));
Props.append (new Property ("tunode", "1", false,
QObject::tr ("Specifies the base node connection for the tunneling current")));
Props.append (new Property ("favl", "0.0", false,
QObject::tr ("Avalanche current factor")
+" ("+QObject::tr ("1/V")+")"));
Props.append (new Property ("qavl", "0.0", false,
QObject::tr ("Exponent factor for avalanche current")
+" ("+QObject::tr ("Coul")+")"));
Props.append (new Property ("alfav", "0.0", false,
QObject::tr ("Relative TC for FAVL")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alqav", "0.0", false,
QObject::tr ("Relative TC for QAVL")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("rbi0", "0.0", false,
QObject::tr ("Zero bias internal base resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rbx", "0.0", false,
QObject::tr ("External base series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("fgeo", "0.6557", false,
QObject::tr ("Factor for geometry dependence of emitter current crowding")));
Props.append (new Property ("fdqr0", "0.0", false,
QObject::tr ("Correction factor for modulation by B-E and B-C space charge layer")));
Props.append (new Property ("fcrbi", "0.0", false,
QObject::tr ("Ratio of HF shunt to total internal capacitance (lateral NQS effect)")));
Props.append (new Property ("fqi", "1.0", false,
QObject::tr ("Ration of internal to total minority charge")));
Props.append (new Property ("re", "0.0", false,
QObject::tr ("Emitter series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rcx", "0.0", false,
QObject::tr ("External collector series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("itss", "0.0", false,
QObject::tr ("Substrate transistor transfer saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Forward ideality factor of substrate transfer current")));
Props.append (new Property ("iscs", "0.0", false,
QObject::tr ("C-S diode saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("Ideality factor of C-S diode current")));
Props.append (new Property ("tsf", "0.0", false,
QObject::tr ("Transit time for forward operation of substrate transistor")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("rsu", "0.0", false,
QObject::tr ("Substrate series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("csu", "0.0", false,
QObject::tr ("Substrate shunt capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cjei0", "1.0E-20", false,
QObject::tr ("Internal B-E zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdei", "0.9", false,
QObject::tr ("Internal B-E built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zei", "0.5", false,
QObject::tr ("Internal B-E grading coefficient")));
Props.append (new Property ("ajei", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of internal B-E capacitance")));
Props.append (new Property ("cjep0", "1.0E-20", false,
QObject::tr ("Peripheral B-E zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdep", "0.9", false,
QObject::tr ("Peripheral B-E built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zep", "0.5", false,
QObject::tr ("Peripheral B-E grading coefficient")));
Props.append (new Property ("ajep", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of peripheral B-E capacitance")));
Props.append (new Property ("cjci0", "1.0E-20", false,
QObject::tr ("Internal B-C zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("Internal B-C built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zci", "0.4", false,
QObject::tr ("Internal B-C grading coefficient")));
Props.append (new Property ("vptci", "100", false,
QObject::tr ("Internal B-C punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjcx0", "1.0E-20", false,
QObject::tr ("External B-C zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdcx", "0.7", false,
QObject::tr ("External B-C built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zcx", "0.4", false,
QObject::tr ("External B-C grading coefficient")));
Props.append (new Property ("vptcx", "100", false,
QObject::tr ("External B-C punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fbcpar", "0.0", false,
QObject::tr ("Partitioning factor of parasitic B-C cap")));
Props.append (new Property ("fbepar", "1.0", false,
QObject::tr ("Partitioning factor of parasitic B-E cap")));
Props.append (new Property ("cjs0", "0.0", false,
QObject::tr ("C-S zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vds", "0.6", false,
QObject::tr ("C-S built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zs", "0.5", false,
QObject::tr ("C-S grading coefficient")));
Props.append (new Property ("vpts", "100", false,
QObject::tr ("C-S punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("t0", "0.0", false,
QObject::tr ("Low current forward transit time at VBC=0V")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("dt0h", "0.0", false,
QObject::tr ("Time constant for base and B-C space charge layer width modulation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tbvl", "0.0", false,
QObject::tr ("Time constant for modelling carrier jam at low VCE")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Neutral emitter storage time")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("gtfe", "1.0", false,
QObject::tr ("Exponent factor for current dependence of neutral emitter storage time")));
Props.append (new Property ("thcs", "0.0", false,
QObject::tr ("Saturation time constant at high current densities")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ahc", "0.1", false,
QObject::tr ("Smoothing factor for current dependence of base and collector transit time")));
Props.append (new Property ("fthc", "0.0", false,
QObject::tr ("Partitioning factor for base and collector portion")));
Props.append (new Property ("rci0", "150", false,
QObject::tr ("Internal collector resistance at low electric field")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vlim", "0.5", false,
QObject::tr ("Voltage separating ohmic and saturation velocity regime")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vces", "0.1", false,
QObject::tr ("Internal C-E saturation voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vpt", "0.0", false,
QObject::tr ("Collector punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("tr", "0.0", false,
QObject::tr ("Storage time for inverse operation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("cbepar", "0.0", false,
QObject::tr ("Total parasitic B-E capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cbcpar", "0.0", false,
QObject::tr ("Total parasitic B-C capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("alqf", "0.0", false,
QObject::tr ("Factor for additional delay time of minority charge")));
Props.append (new Property ("alit", "0.0", false,
QObject::tr ("Factor for additional delay time of transfer current")));
Props.append (new Property ("flnqs", "0", false,
QObject::tr ("Flag for turning on and off of vertical NQS effect")));
Props.append (new Property ("kf", "0.0", false,
QObject::tr ("Flicker noise coefficient")));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("Flicker noise exponent factor")));
Props.append (new Property ("cfbe", "-1", false,
QObject::tr ("Flag for determining where to tag the flicker noise source")));
Props.append (new Property ("latb", "0.0", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter width")));
Props.append (new Property ("latl", "0.0", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter length")));
Props.append (new Property ("vgb", "1.17", false,
QObject::tr ("Bandgap voltage extrapolated to 0 K")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("alt0", "0.0", false,
QObject::tr ("First order relative TC of parameter T0")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kt0", "0.0", false,
QObject::tr ("Second order relative TC of parameter T0")));
Props.append (new Property ("zetaci", "0.0", false,
QObject::tr ("Temperature exponent for RCI0")));
Props.append (new Property ("alvs", "0.0", false,
QObject::tr ("Relative TC of saturation drift velocity")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alces", "0.0", false,
QObject::tr ("Relative TC of VCES")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("Temperature exponent of internal base resistance")));
Props.append (new Property ("zetarbx", "0.0", false,
QObject::tr ("Temperature exponent of external base resistance")));
Props.append (new Property ("zetarcx", "0.0", false,
QObject::tr ("Temperature exponent of external collector resistance")));
Props.append (new Property ("zetare", "0.0", false,
QObject::tr ("Temperature exponent of emitter resistance")));
Props.append (new Property ("zetacx", "1.0", false,
QObject::tr ("Temperature exponent of mobility in substrate transistor transit time")));
Props.append (new Property ("vge", "1.17", false,
QObject::tr ("Effective emitter bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgc", "1.17", false,
QObject::tr ("Effective collector bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgs", "1.17", false,
QObject::tr ("Effective substrate bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("f1vg", "-1.02377e-4", false,
QObject::tr ("Coefficient K1 in T-dependent band-gap equation")));
Props.append (new Property ("f2vg", "4.3215e-4", false,
QObject::tr ("Coefficient K2 in T-dependent band-gap equation")));
Props.append (new Property ("zetact", "3.0", false,
QObject::tr ("Exponent coefficient in transfer current temperature dependence")));
Props.append (new Property ("zetabet", "3.5", false,
QObject::tr ("Exponent coefficient in B-E junction current temperature dependence")));
Props.append (new Property ("alb", "0.0", false,
QObject::tr ("Relative TC of forward current gain for V2.1 model")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("flsh", "0", false,
QObject::tr ("Flag for turning on and off self-heating effect")));
Props.append (new Property ("rth", "0.0", false,
QObject::tr ("Thermal resistance")
+" ("+QObject::tr ("K/W")+")"));
Props.append (new Property ("cth", "0.0", false,
QObject::tr ("Thermal capacitance")
+" ("+QObject::tr ("J/W")+")"));
Props.append (new Property ("flcomp", "0.0", false,
QObject::tr ("Flag for compatibility with v2.1 model (0=v2.1)")));
Props.append (new Property ("tnom", "27.0", false,
QObject::tr ("Temperature at which parameters are specified")
+" ("+QObject::tr ("C")+")"));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change w.r.t. chip temperature for particular transistor")
+" ("+QObject::tr ("K")+")"));
Props.append (new Property ("Temp", "27", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hicumL2V2p23";
Name = "T";
}
Component * hicumL2V2p23::newOne()
{
hicumL2V2p23 * p = new hicumL2V2p23();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hicumL2V2p23::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("HICUM L2 v2.23");
BitmapFile = (char *) "npnsub_therm";
if(getNewOne) return new hicumL2V2p23();
return 0;
}
void hicumL2V2p23::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
// relative boundings
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* hicumL2V2p23.h - device definitions for hicumL2V2p23 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hicumL2V2p23_H
#define hicumL2V2p23_H
#include "component.h"
class hicumL2V2p23 : public Component
{
public:
hicumL2V2p23();
~hicumL2V2p23() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* hicumL2V2p23_H */

View File

@ -1,383 +0,0 @@
/*
* hicumL2V2p24.cpp - device implementations for hicumL2V2p24 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "hicumL2V2p24.h"
hicumL2V2p24::hicumL2V2p24()
{
Description = QObject::tr ("HICUM Level 2 v2.24 verilog device");
Props.append (new Property ("c10", "2.0E-30", false,
QObject::tr ("GICCR constant")
+" ("+QObject::tr ("A^2s")+")"));
Props.append (new Property ("qp0", "2.0E-14", false,
QObject::tr ("Zero-bias hole charge")
+" ("+QObject::tr ("Coul")+")"));
Props.append (new Property ("ich", "0.0", false,
QObject::tr ("High-current correction for 2D and 3D effects")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("hfe", "1.0", false,
QObject::tr ("Emitter minority charge weighting factor in HBTs")));
Props.append (new Property ("hfc", "1.0", false,
QObject::tr ("Collector minority charge weighting factor in HBTs")));
Props.append (new Property ("hjei", "1.0", false,
QObject::tr ("B-E depletion charge weighting factor in HBTs")));
Props.append (new Property ("hjci", "1.0", false,
QObject::tr ("B-C depletion charge weighting factor in HBTs")));
Props.append (new Property ("ibeis", "1.0E-18", false,
QObject::tr ("Internal B-E saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbei", "1.0", false,
QObject::tr ("Internal B-E current ideality factor")));
Props.append (new Property ("ireis", "0.0", false,
QObject::tr ("Internal B-E recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mrei", "2.0", false,
QObject::tr ("Internal B-E recombination current ideality factor")));
Props.append (new Property ("ibeps", "0.0", false,
QObject::tr ("Peripheral B-E saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbep", "1.0", false,
QObject::tr ("Peripheral B-E current ideality factor")));
Props.append (new Property ("ireps", "0.0", false,
QObject::tr ("Peripheral B-E recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mrep", "2.0", false,
QObject::tr ("Peripheral B-E recombination current ideality factor")));
Props.append (new Property ("mcf", "1.0", false,
QObject::tr ("Non-ideality factor for III-V HBTs")));
Props.append (new Property ("tbhrec", "0.0", false,
QObject::tr ("Base current recombination time constant at B-C barrier for high forward injection")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ibcis", "1.0E-16", false,
QObject::tr ("Internal B-C saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbci", "1.0", false,
QObject::tr ("Internal B-C current ideality factor")));
Props.append (new Property ("ibcxs", "0.0", false,
QObject::tr ("External B-C saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbcx", "1.0", false,
QObject::tr ("External B-C current ideality factor")));
Props.append (new Property ("ibets", "0.0", false,
QObject::tr ("B-E tunneling saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("abet", "40", false,
QObject::tr ("Exponent factor for tunneling current")));
Props.append (new Property ("tunode", "1", false,
QObject::tr ("Specifies the base node connection for the tunneling current")));
Props.append (new Property ("favl", "0.0", false,
QObject::tr ("Avalanche current factor")
+" ("+QObject::tr ("1/V")+")"));
Props.append (new Property ("qavl", "0.0", false,
QObject::tr ("Exponent factor for avalanche current")
+" ("+QObject::tr ("Coul")+")"));
Props.append (new Property ("alfav", "0.0", false,
QObject::tr ("Relative TC for FAVL")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alqav", "0.0", false,
QObject::tr ("Relative TC for QAVL")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("rbi0", "0.0", false,
QObject::tr ("Zero bias internal base resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rbx", "0.0", false,
QObject::tr ("External base series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("fgeo", "0.6557", false,
QObject::tr ("Factor for geometry dependence of emitter current crowding")));
Props.append (new Property ("fdqr0", "0.0", false,
QObject::tr ("Correction factor for modulation by B-E and B-C space charge layer")));
Props.append (new Property ("fcrbi", "0.0", false,
QObject::tr ("Ratio of HF shunt to total internal capacitance (lateral NQS effect)")));
Props.append (new Property ("fqi", "1.0", false,
QObject::tr ("Ration of internal to total minority charge")));
Props.append (new Property ("re", "0.0", false,
QObject::tr ("Emitter series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rcx", "0.0", false,
QObject::tr ("External collector series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("itss", "0.0", false,
QObject::tr ("Substrate transistor transfer saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Forward ideality factor of substrate transfer current")));
Props.append (new Property ("iscs", "0.0", false,
QObject::tr ("C-S diode saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("Ideality factor of C-S diode current")));
Props.append (new Property ("tsf", "0.0", false,
QObject::tr ("Transit time for forward operation of substrate transistor")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("rsu", "0.0", false,
QObject::tr ("Substrate series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("csu", "0.0", false,
QObject::tr ("Substrate shunt capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cjei0", "1.0E-20", false,
QObject::tr ("Internal B-E zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdei", "0.9", false,
QObject::tr ("Internal B-E built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zei", "0.5", false,
QObject::tr ("Internal B-E grading coefficient")));
Props.append (new Property ("ajei", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of internal B-E capacitance")));
Props.append (new Property ("cjep0", "1.0E-20", false,
QObject::tr ("Peripheral B-E zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdep", "0.9", false,
QObject::tr ("Peripheral B-E built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zep", "0.5", false,
QObject::tr ("Peripheral B-E grading coefficient")));
Props.append (new Property ("ajep", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of peripheral B-E capacitance")));
Props.append (new Property ("cjci0", "1.0E-20", false,
QObject::tr ("Internal B-C zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("Internal B-C built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zci", "0.4", false,
QObject::tr ("Internal B-C grading coefficient")));
Props.append (new Property ("vptci", "100", false,
QObject::tr ("Internal B-C punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjcx0", "1.0E-20", false,
QObject::tr ("External B-C zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdcx", "0.7", false,
QObject::tr ("External B-C built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zcx", "0.4", false,
QObject::tr ("External B-C grading coefficient")));
Props.append (new Property ("vptcx", "100", false,
QObject::tr ("External B-C punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fbcpar", "0.0", false,
QObject::tr ("Partitioning factor of parasitic B-C cap")));
Props.append (new Property ("fbepar", "1.0", false,
QObject::tr ("Partitioning factor of parasitic B-E cap")));
Props.append (new Property ("cjs0", "0.0", false,
QObject::tr ("C-S zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vds", "0.6", false,
QObject::tr ("C-S built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zs", "0.5", false,
QObject::tr ("C-S grading coefficient")));
Props.append (new Property ("vpts", "100", false,
QObject::tr ("C-S punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("t0", "0.0", false,
QObject::tr ("Low current forward transit time at VBC=0V")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("dt0h", "0.0", false,
QObject::tr ("Time constant for base and B-C space charge layer width modulation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tbvl", "0.0", false,
QObject::tr ("Time constant for modelling carrier jam at low VCE")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Neutral emitter storage time")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("gtfe", "1.0", false,
QObject::tr ("Exponent factor for current dependence of neutral emitter storage time")));
Props.append (new Property ("thcs", "0.0", false,
QObject::tr ("Saturation time constant at high current densities")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ahc", "0.1", false,
QObject::tr ("Smoothing factor for current dependence of base and collector transit time")));
Props.append (new Property ("fthc", "0.0", false,
QObject::tr ("Partitioning factor for base and collector portion")));
Props.append (new Property ("rci0", "150", false,
QObject::tr ("Internal collector resistance at low electric field")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vlim", "0.5", false,
QObject::tr ("Voltage separating ohmic and saturation velocity regime")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vces", "0.1", false,
QObject::tr ("Internal C-E saturation voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vpt", "100.0", false,
QObject::tr ("Collector punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("tr", "0.0", false,
QObject::tr ("Storage time for inverse operation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("cbepar", "0.0", false,
QObject::tr ("Total parasitic B-E capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cbcpar", "0.0", false,
QObject::tr ("Total parasitic B-C capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("alqf", "0.0", false,
QObject::tr ("Factor for additional delay time of minority charge")));
Props.append (new Property ("alit", "0.0", false,
QObject::tr ("Factor for additional delay time of transfer current")));
Props.append (new Property ("flnqs", "0", false,
QObject::tr ("Flag for turning on and off of vertical NQS effect")));
Props.append (new Property ("kf", "0.0", false,
QObject::tr ("Flicker noise coefficient")));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("Flicker noise exponent factor")));
Props.append (new Property ("cfbe", "-1", false,
QObject::tr ("Flag for determining where to tag the flicker noise source")));
Props.append (new Property ("latb", "0.0", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter width")));
Props.append (new Property ("latl", "0.0", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter length")));
Props.append (new Property ("vgb", "1.17", false,
QObject::tr ("Bandgap voltage extrapolated to 0 K")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("alt0", "0.0", false,
QObject::tr ("First order relative TC of parameter T0")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kt0", "0.0", false,
QObject::tr ("Second order relative TC of parameter T0")));
Props.append (new Property ("zetaci", "0.0", false,
QObject::tr ("Temperature exponent for RCI0")));
Props.append (new Property ("alvs", "0.0", false,
QObject::tr ("Relative TC of saturation drift velocity")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alces", "0.0", false,
QObject::tr ("Relative TC of VCES")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("Temperature exponent of internal base resistance")));
Props.append (new Property ("zetarbx", "0.0", false,
QObject::tr ("Temperature exponent of external base resistance")));
Props.append (new Property ("zetarcx", "0.0", false,
QObject::tr ("Temperature exponent of external collector resistance")));
Props.append (new Property ("zetare", "0.0", false,
QObject::tr ("Temperature exponent of emitter resistance")));
Props.append (new Property ("zetacx", "1.0", false,
QObject::tr ("Temperature exponent of mobility in substrate transistor transit time")));
Props.append (new Property ("vge", "1.17", false,
QObject::tr ("Effective emitter bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgc", "1.17", false,
QObject::tr ("Effective collector bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgs", "1.17", false,
QObject::tr ("Effective substrate bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("f1vg", "-1.02377e-4", false,
QObject::tr ("Coefficient K1 in T-dependent band-gap equation")));
Props.append (new Property ("f2vg", "4.3215e-4", false,
QObject::tr ("Coefficient K2 in T-dependent band-gap equation")));
Props.append (new Property ("zetact", "3.0", false,
QObject::tr ("Exponent coefficient in transfer current temperature dependence")));
Props.append (new Property ("zetabet", "3.5", false,
QObject::tr ("Exponent coefficient in B-E junction current temperature dependence")));
Props.append (new Property ("alb", "0.0", false,
QObject::tr ("Relative TC of forward current gain for V2.1 model")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("flsh", "0", false,
QObject::tr ("Flag for turning on and off self-heating effect")));
Props.append (new Property ("rth", "0.0", false,
QObject::tr ("Thermal resistance")
+" ("+QObject::tr ("K/W")+")"));
Props.append (new Property ("cth", "0.0", false,
QObject::tr ("Thermal capacitance")
+" ("+QObject::tr ("J/W")+")"));
Props.append (new Property ("flcomp", "0.0", false,
QObject::tr ("Flag for compatibility with v2.1 model (0=v2.1)")));
Props.append (new Property ("tnom", "27.0", false,
QObject::tr ("Temperature at which parameters are specified")
+" ("+QObject::tr ("C")+")"));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change w.r.t. chip temperature for particular transistor")
+" ("+QObject::tr ("K")+")"));
Props.append (new Property ("Temp", "27.0", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hicumL2V2p24";
Name = "T";
}
Component * hicumL2V2p24::newOne()
{
hicumL2V2p24 * p = new hicumL2V2p24();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hicumL2V2p24::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("HICUM L2 v2.24");
BitmapFile = (char *) "npnsub_therm";
if(getNewOne) return new hicumL2V2p24();
return 0;
}
void hicumL2V2p24::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
// relative boundings
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* hicumL2V2p24.h - device definitions for hicumL2V2p24 module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hicumL2V2p24_H
#define hicumL2V2p24_H
#include "component.h"
class hicumL2V2p24 : public Component
{
public:
hicumL2V2p24();
~hicumL2V2p24() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* hicumL2V2p24_H */

View File

@ -1,417 +0,0 @@
/*
* hicumL2V2p31n.cpp - device implementations for hicumL2V2p31n module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#include "hicumL2V2p31n.h"
hicumL2V2p31n::hicumL2V2p31n()
{
Description = QObject::tr ("hicumL2V2p31n verilog device");
Props.append (new Property ("c10", "2.0E-30", false,
QObject::tr ("GICCR constant")
+" ("+QObject::tr ("A^2s")+")"));
Props.append (new Property ("qp0", "2.0E-14", false,
QObject::tr ("Zero-bias hole charge")
+" ("+QObject::tr ("Coul")+")"));
Props.append (new Property ("ich", "0.0", false,
QObject::tr ("High-current correction for 2D and 3D effects")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("hf0", "1.0", false,
QObject::tr ("Weight factor for the low current minority charge")));
Props.append (new Property ("hfe", "1.0", false,
QObject::tr ("Emitter minority charge weighting factor in HBTs")));
Props.append (new Property ("hfc", "1.0", false,
QObject::tr ("Collector minority charge weighting factor in HBTs")));
Props.append (new Property ("hjei", "1.0", false,
QObject::tr ("B-E depletion charge weighting factor in HBTs")));
Props.append (new Property ("ahjei", "0.0", false,
QObject::tr ("Parameter describing the slope of hjEi(VBE)")));
Props.append (new Property ("rhjei", "1.0", false,
QObject::tr ("Smoothing parameter for hjEi(VBE) at high voltage")));
Props.append (new Property ("hjci", "1.0", false,
QObject::tr ("B-C depletion charge weighting factor in HBTs")));
Props.append (new Property ("ibeis", "1.0E-18", false,
QObject::tr ("Internal B-E saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbei", "1.0", false,
QObject::tr ("Internal B-E current ideality factor")));
Props.append (new Property ("ireis", "0.0", false,
QObject::tr ("Internal B-E recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mrei", "2.0", false,
QObject::tr ("Internal B-E recombination current ideality factor")));
Props.append (new Property ("ibeps", "0.0", false,
QObject::tr ("Peripheral B-E saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbep", "1.0", false,
QObject::tr ("Peripheral B-E current ideality factor")));
Props.append (new Property ("ireps", "0.0", false,
QObject::tr ("Peripheral B-E recombination saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mrep", "2.0", false,
QObject::tr ("Peripheral B-E recombination current ideality factor")));
Props.append (new Property ("mcf", "1.0", false,
QObject::tr ("Non-ideality factor for III-V HBTs")));
Props.append (new Property ("tbhrec", "0.0", false,
QObject::tr ("Base current recombination time constant at B-C barrier for high forward injection")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ibcis", "1.0E-16", false,
QObject::tr ("Internal B-C saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbci", "1.0", false,
QObject::tr ("Internal B-C current ideality factor")));
Props.append (new Property ("ibcxs", "0.0", false,
QObject::tr ("External B-C saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("mbcx", "1.0", false,
QObject::tr ("External B-C current ideality factor")));
Props.append (new Property ("ibets", "0.0", false,
QObject::tr ("B-E tunneling saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("abet", "40", false,
QObject::tr ("Exponent factor for tunneling current")));
Props.append (new Property ("tunode", "1", false,
QObject::tr ("Specifies the base node connection for the tunneling current")));
Props.append (new Property ("favl", "0.0", false,
QObject::tr ("Avalanche current factor")
+" ("+QObject::tr ("1/V")+")"));
Props.append (new Property ("qavl", "0.0", false,
QObject::tr ("Exponent factor for avalanche current")
+" ("+QObject::tr ("Coul")+")"));
Props.append (new Property ("alfav", "0.0", false,
QObject::tr ("Relative TC for FAVL")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alqav", "0.0", false,
QObject::tr ("Relative TC for QAVL")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("rbi0", "0.0", false,
QObject::tr ("Zero bias internal base resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rbx", "0.0", false,
QObject::tr ("External base series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("fgeo", "0.6557", false,
QObject::tr ("Factor for geometry dependence of emitter current crowding")));
Props.append (new Property ("fdqr0", "0.0", false,
QObject::tr ("Correction factor for modulation by B-E and B-C space charge layer")));
Props.append (new Property ("fcrbi", "0.0", false,
QObject::tr ("Ratio of HF shunt to total internal capacitance (lateral NQS effect)")));
Props.append (new Property ("fqi", "1.0", false,
QObject::tr ("Ration of internal to total minority charge")));
Props.append (new Property ("re", "0.0", false,
QObject::tr ("Emitter series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("rcx", "0.0", false,
QObject::tr ("External collector series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("itss", "0.0", false,
QObject::tr ("Substrate transistor transfer saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msf", "1.0", false,
QObject::tr ("Forward ideality factor of substrate transfer current")));
Props.append (new Property ("iscs", "0.0", false,
QObject::tr ("C-S diode saturation current")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("msc", "1.0", false,
QObject::tr ("Ideality factor of C-S diode current")));
Props.append (new Property ("tsf", "0.0", false,
QObject::tr ("Transit time for forward operation of substrate transistor")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("rsu", "0.0", false,
QObject::tr ("Substrate series resistance")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("csu", "0.0", false,
QObject::tr ("Substrate shunt capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cjei0", "1.0E-20", false,
QObject::tr ("Internal B-E zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdei", "0.9", false,
QObject::tr ("Internal B-E built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zei", "0.5", false,
QObject::tr ("Internal B-E grading coefficient")));
Props.append (new Property ("ajei", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of internal B-E capacitance")));
Props.append (new Property ("cjep0", "1.0E-20", false,
QObject::tr ("Peripheral B-E zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdep", "0.9", false,
QObject::tr ("Peripheral B-E built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zep", "0.5", false,
QObject::tr ("Peripheral B-E grading coefficient")));
Props.append (new Property ("ajep", "2.5", false,
QObject::tr ("Ratio of maximum to zero-bias value of peripheral B-E capacitance")));
Props.append (new Property ("cjci0", "1.0E-20", false,
QObject::tr ("Internal B-C zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdci", "0.7", false,
QObject::tr ("Internal B-C built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zci", "0.4", false,
QObject::tr ("Internal B-C grading coefficient")));
Props.append (new Property ("vptci", "100", false,
QObject::tr ("Internal B-C punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("cjcx0", "1.0E-20", false,
QObject::tr ("External B-C zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vdcx", "0.7", false,
QObject::tr ("External B-C built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zcx", "0.4", false,
QObject::tr ("External B-C grading coefficient")));
Props.append (new Property ("vptcx", "100", false,
QObject::tr ("External B-C punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("fbcpar", "0.0", false,
QObject::tr ("Partitioning factor of parasitic B-C cap")));
Props.append (new Property ("fbepar", "1.0", false,
QObject::tr ("Partitioning factor of parasitic B-E cap")));
Props.append (new Property ("cjs0", "0.0", false,
QObject::tr ("C-S zero-bias depletion capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("vds", "0.6", false,
QObject::tr ("C-S built-in potential")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zs", "0.5", false,
QObject::tr ("C-S grading coefficient")));
Props.append (new Property ("vpts", "100", false,
QObject::tr ("C-S punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("t0", "0.0", false,
QObject::tr ("Low current forward transit time at VBC=0V")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("dt0h", "0.0", false,
QObject::tr ("Time constant for base and B-C space charge layer width modulation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tbvl", "0.0", false,
QObject::tr ("Time constant for modeling carrier jam at low VCE")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("tef0", "0.0", false,
QObject::tr ("Neutral emitter storage time")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("gtfe", "1.0", false,
QObject::tr ("Exponent factor for current dependence of neutral emitter storage time")));
Props.append (new Property ("thcs", "0.0", false,
QObject::tr ("Saturation time constant at high current densities")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("ahc", "0.1", false,
QObject::tr ("Smoothing factor for current dependence of base and collector transit time")));
Props.append (new Property ("fthc", "0.0", false,
QObject::tr ("Partitioning factor for base and collector portion")));
Props.append (new Property ("rci0", "150", false,
QObject::tr ("Internal collector resistance at low electric field")
+" ("+QObject::tr ("Ohm")+")"));
Props.append (new Property ("vlim", "0.5", false,
QObject::tr ("Voltage separating ohmic and saturation velocity regime")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vces", "0.1", false,
QObject::tr ("Internal C-E saturation voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vpt", "100.0", false,
QObject::tr ("Collector punch-through voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("tr", "0.0", false,
QObject::tr ("Storage time for inverse operation")
+" ("+QObject::tr ("s")+")"));
Props.append (new Property ("vcbar", "0.0", false,
QObject::tr ("Barrier voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("icbar", "0.0", false,
QObject::tr ("Normalization parameter")
+" ("+QObject::tr ("A")+")"));
Props.append (new Property ("acbar", "0.01", false,
QObject::tr ("Smoothing parameter for barrier voltage")));
Props.append (new Property ("delck", "2.0", false,
QObject::tr ("fitting factor for critical current")));
Props.append (new Property ("cbepar", "0.0", false,
QObject::tr ("Total parasitic B-E capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("cbcpar", "0.0", false,
QObject::tr ("Total parasitic B-C capacitance")
+" ("+QObject::tr ("F")+")"));
Props.append (new Property ("alqf", "0.167", false,
QObject::tr ("Factor for additional delay time of minority charge")));
Props.append (new Property ("alit", "0.333", false,
QObject::tr ("Factor for additional delay time of transfer current")));
Props.append (new Property ("flnqs", "0", false,
QObject::tr ("Flag for turning on and off of vertical NQS effect")));
Props.append (new Property ("kf", "0.0", false,
QObject::tr ("Flicker noise coefficient")));
Props.append (new Property ("af", "2.0", false,
QObject::tr ("Flicker noise exponent factor")));
Props.append (new Property ("cfbe", "-1", false,
QObject::tr ("Flag for determining where to tag the flicker noise source")));
Props.append (new Property ("flcono", "0", false,
QObject::tr ("Flag for turning on and off of correlated noise implementation")));
Props.append (new Property ("kfre", "0.0", false,
QObject::tr ("Emitter resistance flicker noise coefficient")));
Props.append (new Property ("afre", "2.0", false,
QObject::tr ("Emitter resistance flicker noise exponent factor")));
Props.append (new Property ("latb", "0.0", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter width")));
Props.append (new Property ("latl", "0.0", false,
QObject::tr ("Scaling factor for collector minority charge in direction of emitter length")));
Props.append (new Property ("vgb", "1.17", false,
QObject::tr ("Bandgap voltage extrapolated to 0 K")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("alt0", "0.0", false,
QObject::tr ("First order relative TC of parameter T0")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("kt0", "0.0", false,
QObject::tr ("Second order relative TC of parameter T0")));
Props.append (new Property ("zetaci", "0.0", false,
QObject::tr ("Temperature exponent for RCI0")));
Props.append (new Property ("alvs", "0.0", false,
QObject::tr ("Relative TC of saturation drift velocity")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("alces", "0.0", false,
QObject::tr ("Relative TC of VCES")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("zetarbi", "0.0", false,
QObject::tr ("Temperature exponent of internal base resistance")));
Props.append (new Property ("zetarbx", "0.0", false,
QObject::tr ("Temperature exponent of external base resistance")));
Props.append (new Property ("zetarcx", "0.0", false,
QObject::tr ("Temperature exponent of external collector resistance")));
Props.append (new Property ("zetare", "0.0", false,
QObject::tr ("Temperature exponent of emitter resistance")));
Props.append (new Property ("zetacx", "1.0", false,
QObject::tr ("Temperature exponent of mobility in substrate transistor transit time")));
Props.append (new Property ("vge", "1.17", false,
QObject::tr ("Effective emitter bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgc", "1.17", false,
QObject::tr ("Effective collector bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("vgs", "1.17", false,
QObject::tr ("Effective substrate bandgap voltage")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("f1vg", "-1.02377e-4", false,
QObject::tr ("Coefficient K1 in T-dependent band-gap equation")));
Props.append (new Property ("f2vg", "4.3215e-4", false,
QObject::tr ("Coefficient K2 in T-dependent band-gap equation")));
Props.append (new Property ("zetact", "3.0", false,
QObject::tr ("Exponent coefficient in transfer current temperature dependence")));
Props.append (new Property ("zetabet", "3.5", false,
QObject::tr ("Exponent coefficient in B-E junction current temperature dependence")));
Props.append (new Property ("alb", "0.0", false,
QObject::tr ("Relative TC of forward current gain for V2.1 model")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("dvgbe", "0", false,
QObject::tr ("Bandgap difference between B and B-E junction used for hjEi0 and hf0")
+" ("+QObject::tr ("V")+")"));
Props.append (new Property ("zetahjei", "1", false,
QObject::tr ("Temperature coefficient for ahjEi")));
Props.append (new Property ("zetavgbe", "1", false,
QObject::tr ("Temperature coefficient for hjEi0")));
Props.append (new Property ("flsh", "0", false,
QObject::tr ("Flag for turning on and off self-heating effect")));
Props.append (new Property ("rth", "0.0", false,
QObject::tr ("Thermal resistance")
+" ("+QObject::tr ("K/W")+")"));
Props.append (new Property ("zetarth", "0.0", false,
QObject::tr ("Temperature coefficient for Rth")));
Props.append (new Property ("alrth", "0.0", false,
QObject::tr ("First order relative TC of parameter Rth")
+" ("+QObject::tr ("1/K")+")"));
Props.append (new Property ("cth", "0.0", false,
QObject::tr ("Thermal capacitance")
+" ("+QObject::tr ("J/W")+")"));
Props.append (new Property ("flcomp", "0.0", false,
QObject::tr ("Flag for compatibility with v2.1 model (0=v2.1)")));
Props.append (new Property ("tnom", "27.0", false,
QObject::tr ("Temperature at which parameters are specified")
+" ("+QObject::tr ("C")+")"));
Props.append (new Property ("dt", "0.0", false,
QObject::tr ("Temperature change w.r.t. chip temperature for particular transistor")
+" ("+QObject::tr ("K")+")"));
Props.append (new Property ("Temp", "27.0", false,
QObject::tr ("simulation temperature")));
createSymbol ();
tx = x2 + 4;
ty = y1 + 4;
Model = "hicumL2V2p31n";
Name = "T";
}
Component * hicumL2V2p31n::newOne()
{
hicumL2V2p31n * p = new hicumL2V2p31n();
p->Props.getFirst()->Value = Props.getFirst()->Value;
p->recreate(0);
return p;
}
Element * hicumL2V2p31n::info(QString& Name, char * &BitmapFile, bool getNewOne)
{
Name = QObject::tr("HICUM L2 V2.31");
BitmapFile = (char *) "hicumL2V2p31n";
if(getNewOne) return new hicumL2V2p31n();
return 0;
}
void hicumL2V2p31n::createSymbol()
{
// normal bipolar
Lines.append(new Line(-10,-15,-10, 15,QPen(Qt::darkBlue,3)));
Lines.append(new Line(-30, 0,-10, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, -5, 0,-15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0,-15, 0,-30,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-10, 5, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 15, 0, 30,QPen(Qt::darkBlue,2)));
// substrate node
Lines.append(new Line( 9, 0, 30, 0,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 9, -7, 9, 7,QPen(Qt::darkBlue,3)));
// thermal node
Lines.append(new Line(-30, 20,-20, 20,QPen(Qt::darkBlue,2)));
Lines.append(new Line(-20, 17,-20, 23,QPen(Qt::darkBlue,2)));
// arrow
Lines.append(new Line( -6, 15, 0, 15,QPen(Qt::darkBlue,2)));
Lines.append(new Line( 0, 9, 0, 15,QPen(Qt::darkBlue,2)));
// H
Lines.append(new Line(-30,-30,-30,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-30,-27,-26,-27,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-26,-30,-26,-24,QPen(Qt::darkBlue,1)));
// I
Lines.append(new Line(-24,-30,-24,-24,QPen(Qt::darkBlue,1)));
// C
Lines.append(new Line(-22,-30,-22,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-30,-19,-30,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-22,-24,-19,-24,QPen(Qt::darkBlue,1)));
// U
Lines.append(new Line(-17,-30,-17,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-14,-30,-14,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-17,-24,-14,-24,QPen(Qt::darkBlue,1)));
// M
Lines.append(new Line(-12,-30,-12,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30, -8,-24,QPen(Qt::darkBlue,1)));
Lines.append(new Line(-12,-30,-10,-28,QPen(Qt::darkBlue,1)));
Lines.append(new Line( -8,-30,-10,-28,QPen(Qt::darkBlue,1)));
// terminal definitions
Ports.append(new Port( 0,-30)); // collector
Ports.append(new Port(-30, 0)); // base
Ports.append(new Port( 0, 30)); // emitter
Ports.append(new Port( 30, 0)); // substrate
Ports.append(new Port(-30, 20)); // thermal node
// relative boundings
x1 = -30; y1 = -30;
x2 = 30; y2 = 30;
}

View File

@ -1,27 +0,0 @@
/*
* hicumL2V2p31n.h - device definitions for hicumL2V2p31n module
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
*/
#ifndef hicumL2V2p31n_H
#define hicumL2V2p31n_H
#include "component.h"
class hicumL2V2p31n : public Component
{
public:
hicumL2V2p31n();
~hicumL2V2p31n() { };
Component* newOne();
static Element* info(QString&, char* &, bool getNewOne=false);
protected:
void createSymbol();
};
#endif /* hicumL2V2p31n_H */

View File

@ -324,25 +324,11 @@ void Module::registerModules (void) {
REGISTER_NONLINEAR_1 (TunnelDiode);
// verilog-a devices
REGISTER_VERILOGA_1 (hicumL2V2p1);
REGISTER_VERILOGA_1 (HBT_X);
REGISTER_VERILOGA_1 (mod_amp);
REGISTER_VERILOGA_1 (hic2_full);
REGISTER_VERILOGA_1 (log_amp);
REGISTER_VERILOGA_2 (hic0_full, info, info_pnp);
REGISTER_VERILOGA_1 (potentiometer);
REGISTER_VERILOGA_1 (MESFET);
REGISTER_VERILOGA_2 (EKV26MOS, info, info_pmos);
REGISTER_VERILOGA_1 (bsim3v34nMOS);
REGISTER_VERILOGA_1 (bsim3v34pMOS);
REGISTER_VERILOGA_1 (bsim4v30nMOS);
REGISTER_VERILOGA_1 (bsim4v30pMOS);
REGISTER_VERILOGA_2 (hicumL0V1p2, info, info_pnp);
REGISTER_VERILOGA_2 (hicumL0V1p2g, info, info_pnp);
REGISTER_VERILOGA_2 (hicumL0V1p3, info, info_pnp);
REGISTER_VERILOGA_1 (hicumL2V2p23);
REGISTER_VERILOGA_1 (hicumL2V2p24);
REGISTER_VERILOGA_1 (hicumL2V2p31n);
REGISTER_VERILOGA_1 (photodiode);
REGISTER_VERILOGA_1 (phototransistor);
REGISTER_VERILOGA_1 (nigbt);

View File

@ -18,10 +18,6 @@
<file>bitmaps/binarytogrey4bit.png</file>
<file>bitmaps/bondwire.png</file>
<file>bitmaps/bottom.png</file>
<file>bitmaps/bsim3v34nMOS.png</file>
<file>bitmaps/bsim3v34pMOS.png</file>
<file>bitmaps/bsim4v30nMOS.png</file>
<file>bitmaps/bsim4v30pMOS.png</file>
<file>bitmaps/buffer.png</file>
<file>bitmaps/capacitor.png</file>
<file>bitmaps/cccs.png</file>
@ -87,7 +83,6 @@
<file>bitmaps/gyrator.png</file>
<file>bitmaps/ha1b.png</file>
<file>bitmaps/hb.png</file>
<file>bitmaps/hicumL2V2p31n.png</file>
<file>bitmaps/home.png</file>
<file>bitmaps/hpribin4bit.png</file>
<file>bitmaps/hybrid.png</file>