::SpiceGenTcl::Ngspice::SemiconductorDevicesTop, Main, Index
ClassesTop, Main, Index
Bjt [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Subclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::Bjt]Bjt, Top, Main, Index
Creates object of class Bjt
that describes semiconductor bipolar junction transistor device.
Details
Parameters
-area | Emitter scale factor, optional. |
-areab | Base scale factor, optional. |
-areac | Collector scale factor, optional. |
-dtemp | Temperature offset, optional. |
-ic | Initial conditions for vds and vgs, in form of two element list, optional. |
-m | Multiplier of area and perimeter, optional. |
-model | Name of the model. |
-ns | Name of node connected to substrate pin, optional. |
-off | Initial state, optional. |
-temp | Device temperature, optional. |
-tj | Name of node connected to thermal pin, optional, requires -ns. |
name | Name of the device without first-letter designator Q. |
nb | Name of node connected to base pin. |
nc | Name of node connected to collector pin. |
ne | Name of node connected to emitter pin. |
Description
QXXXXXXX nc nb ne <ns> <tj> mname <area=val> <areac=val> + <areab=val> <m=val> <off> <ic=vbe,vce> <temp=val> + <dtemp=val>
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::Bjt new 1 netc netb nete -model bjtmod -ns nets -area 1e-3
method constructor {args} { # Creates object of class `Bjt` that describes semiconductor bipolar junction transistor device. # name - name of the device without first-letter designator Q # nc - name of node connected to collector pin # nb - name of node connected to base pin # ne - name of node connected to emitter pin # -model - name of the model # -area - emitter scale factor, optional # -areac - collector scale factor, optional # -areab - base scale factor, optional # -m - multiplier of area and perimeter, optional # -temp - device temperature, optional # -dtemp - temperature offset, optional # -ic - initial conditions for vds and vgs, in form of two element list, optional # -ns - name of node connected to substrate pin, optional # -tj - name of node connected to thermal pin, optional, requires -ns # -off - initial state, optional # ``` # QXXXXXXX nc nb ne <ns> <tj> mname <area=val> <areac=val> # + <areab=val> <m=val> <off> <ic=vbe,vce> <temp=val> # + <dtemp=val> # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::Bjt new 1 netc netb nete -model bjtmod -ns nets -area 1e-3 # ``` # Synopsis: name nc nb ne -model value ?-ns value ?-tj value?? ?-area value? ?-areac value? # ?-areab value? ?-m value? ?-ic \{value value\}? ?-temp value|-dtemp value? ?-off? set arguments [argparse -inline -pfirst -help {Creates object of class 'Bjt' that describes semiconductor bipolar junction transistor device} { {-model= -required -help {Name of the model}} {-area= -help {Emitter scale factor}} {-areac= -help {Collector scale factor}} {-areab= -help {Base scale factor}} {-m= -help {Multiplier of area and perimeter}} {-ic= -validate {[llength $arg]==2} -help {Initial conditions for vds and vgs, in form of two element list}} {-temp= -forbid {dtemp} -help {Device temperature}} {-dtemp= -forbid {temp} -help {Temperature offset}} {-ns= -help {Name of node connected to substrate pin}} {-tj= -require {ns} -help {Name of node connected to thermal pin}} {-off -boolean -help {Initial state}} {name -help {Name of the device without first-letter designator}} {nc -help {Name of node connected to collector pin}} {nb -help {Name of node connected to base pin}} {ne -help {Name of node connected to emitter pin}} }] lappend params [list model [dget $arguments model] -posnocheck] if {[dget $arguments off]==1} { lappend params {off -sw} } if {[dexist $arguments ic]} { lappend params [list ic [join [dget $arguments ic] ,] -nocheck] } dict for {paramName value} $arguments { if {$paramName ni {model ns tj ic off name nc nb ne}} { lappend params [list $paramName {*}$value] } } set pinList [list [list nc [dget $arguments nc]] [list nb [dget $arguments nb]] [list ne [dget $arguments ne]]] if {[dexist $arguments ns]} { lappend pinList [list ns [dget $arguments ns]] if {[dexist $arguments tj]} { lappend pinList [list tj [dget $arguments tj]] } } next q[dget $arguments name] $pinList $params }
BjtGPModel [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::BjtGPModel]BjtGPModel, Top, Main, Index
Creates object of class BjtGPModel
that describes Gummel-Poon model of semiconductor bipolar transistor.
Details
Parameters
args | Keyword model parameters, for details please see Ngspice manual, chapter 8. |
name | Name of the model. |
type | Npn or pnp. |
Description
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::DiodeModel new bjtmod npn -is 1e-15 -bf 200 -vaf 100 -cje 1e-10
method constructor {args} { # Creates object of class `BjtGPModel` that describes Gummel-Poon model of semiconductor bipolar transistor. # name - name of the model # type - npn or pnp # args - keyword model parameters, for details please see Ngspice manual, chapter 8. # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::DiodeModel new bjtmod npn -is 1e-15 -bf 200 -vaf 100 -cje 1e-10 # ``` # Synopsis: name type ?-option value ...? set paramsNames {level subs is ibe ibc iss bf nf {va vaf} ikf {nk nkf} ise ne br nr {vb var} ikr isc nc rb irb rbm re rc cje {pe vje} {me mje} tf xtf vtf itf ptf cjc {pc vjc} mjc xcjc tr cjs {ps vjs} {ms mjs} xtb eg xti kf af fc {tref tnom} tlev tlevc tre1 tre2 trc1 trc2 trb1 trb2 trbm1 trbm2 tbf1 tbf2 tbr1 tbr2 tikf1 tikf2 tikr1 tikr2 tirb1 tirb2 tnc1 tnc2 tne1 tne2 tnf1 tnf2 tnr1 tnr2 tvaf1 tvaf2 tvar1 tvar2 ctc cte cts tvjc tvje titf1 titf2 ttf1 ttf2 ttr1 ttr2 tmje1 tmje2 tmjc1 tmjc2 rco gamma qco vg cn d} next {*}[my ArgsPreprocess $paramsNames {name type} {} {*}[linsert $args 2 -level 1]] }
D [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Diode [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Subclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::Diode]Diode, Top, Main, Index
Creates object of class Diode
that describes semiconductor diode device.
Details
Parameters
-area | Area scale factor, optional. |
-dtemp | Temperature offset, optional. |
-ic | Initial condition, optional. |
-lm | Length of metal capacitor, optional. |
-lp | Length of polysilicon capacitor, optional. |
-m | Multiplier of area and perimeter, optional. |
-model | Name of the model. |
-off | Initial state, optional. |
-pj | Perimeter scale factor, optional. |
-temp | Device temperature, optional. |
-wm | Width of metal capacitor, optional. |
-wp | Width of polysilicon capacitor, optional. |
name | Name of the device without first-letter designator D. |
nm | Name of node connected to negative pin. |
np | Name of node connected to positive pin. |
Description
DXXXXXXX n+ n- mname <area=val> <m=val> + <ic=vd> <temp=val> <dtemp=val> + <lm=val> <wm=val> <lp=val> <wp=val> <pj=val>
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::Diode new 1 netp netm -model diomod -l 1e-6 -w 10e-6
method constructor {args} { # Creates object of class `Diode` that describes semiconductor diode device. # name - name of the device without first-letter designator D # np - name of node connected to positive pin # nm - name of node connected to negative pin # -model - name of the model # -area - area scale factor, optional # -m - multiplier of area and perimeter, optional # -pj - perimeter scale factor, optional # -ic - initial condition, optional # -temp - device temperature, optional # -dtemp - temperature offset, optional # -lm - length of metal capacitor, optional # -wm - width of metal capacitor, optional # -lp - length of polysilicon capacitor, optional # -wp - width of polysilicon capacitor, optional # -off - initial state, optional # ``` # DXXXXXXX n+ n- mname <area=val> <m=val> # + <ic=vd> <temp=val> <dtemp=val> # + <lm=val> <wm=val> <lp=val> <wp=val> <pj=val> # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::Diode new 1 netp netm -model diomod -l 1e-6 -w 10e-6 # ``` # Synopsis: name np nm -model value ?-area value? ?-pj value? ?-ic value? ?-m value? # ?-temp value|-dtemp value? ?-lm value? ?-wm value? ?-lp value? ?-wp value? ?-off? set arguments [argparse -inline -pfirst -help {Creates object of class 'Diode' that describes diode} { {-model= -required -help {Name of the model}} {-area= -help {Area scale factor}} {-pj= -help {Perimeter scale factor}} {-ic= -help {Initial condition}} {-m= -help {Multiplier of area and perimeter}} {-temp= -forbid {dtemp} -help {Device temperature}} {-dtemp= -forbid {temp} -help {Temperature offset}} {-lm= -help {Length of metal capacitor}} {-wm= -help {Width of metal capacitor}} {-lp= -help {Length of polysilicon capacitor}} {-wp= -help {Width of polysilicon capacitor}} {-off -boolean -help {Initial state}} {name -help {Name of the device without first-letter designator}} {np -help {Name of node connected to positive pin}} {nm -help {Name of node connected to negative pin}} }] lappend params [list model [dget $arguments model] -posnocheck] if {[dget $arguments off]==1} { lappend params {off -sw} } dict for {paramName value} $arguments { if {$paramName ni {model off name np nm}} { lappend params [list $paramName {*}$value] } } next d[dget $arguments name] [list [list np [dget $arguments np]] [list nm [dget $arguments nm]]] $params }
DiodeModel [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::DiodeModel]DiodeModel, Top, Main, Index
Creates object of class DiodeModel
that describes semiconductor diode model.
Details
Parameters
args | Keyword model parameters, for details please see Ngspice manual, chapter 7. |
name | Name of the model. |
Description
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::DiodeModel new diodemod -is 1e-14 -n 1.2 -rs 0.01 -cj0 1e-9
method constructor {args} { # Creates object of class `DiodeModel` that describes semiconductor diode model. # name - name of the model # args - keyword model parameters, for details please see Ngspice manual, chapter 7. # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::DiodeModel new diodemod -is 1e-14 -n 1.2 -rs 0.01 -cj0 1e-9 # ``` # Synopsis: name ?-option value ...? set paramsNames {level jws n rs {vb vrb var bv} ibv nbv ikr jtun jtunsw ntun xtitun keg isr nr fc fcs mjsw php tt lm lp wm wp xom xoi xm xp eg trs2 tm1 tm2 ttt1 ttt2 xti tlev tlevc ctp tcv {js is} {if ikf} {cjo cj0} {cjp cjsw} {m mj} {vj pb} {tref tnom} {trs1 trs} {cta ctc}} next {*}[my ArgsPreprocess $paramsNames {name type} type {*}[linsert $args 1 d]] }
J [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Jfet [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Subclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet]Jfet, Top, Main, Index
Creates object of class Jfet
that describes semiconductor junction FET device.
Details
Parameters
-area | Emitter scale factor, optional. |
-ic | Initial conditions for vds and vgs, in form of two element list, optional. |
-model | Name of the model. |
-off | Initial state, optional. |
-temp | Device temperature, optional. |
name | Name of the device without first-letter designator J. |
nd | Name of node connected to drain pin. |
ng | Name of node connected to gate pin. |
ns | Name of node connected to source pin. |
Description
JXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs> <temp =t>
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet new 1 netd netg nets -model jfetmod -area {area*2 -eq} -temp 25
method constructor {args} { # Creates object of class `Jfet` that describes semiconductor junction FET device. # name - name of the device without first-letter designator J # nd - name of node connected to drain pin # ng - name of node connected to gate pin # ns - name of node connected to source pin # -model - name of the model # -area - emitter scale factor, optional # -temp - device temperature, optional # -ic - initial conditions for vds and vgs, in form of two element list, optional # -off - initial state, optional # ``` # JXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs> <temp =t> # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet new 1 netd netg nets -model jfetmod -area {area*2 -eq} -temp 25 # ``` # Synopsis: name nd ng ns -model value ?-area value? ?-off? ?-ic \{value value\}? ?-temp value? set arguments [argparse -inline -pfirst -help {Creates object of class 'Jfet' that describes semiconductor junction FET device} { {-model= -required -help {Name of the model}} {-area= -help {Scale factor}} {-off -boolean -help {Initial state}} {-ic= -validate {[llength $arg]==2} -help {Initial conditions for vds and vgs, in form of two element list}} {-temp= -help {Device temperature}} {name -help {Name of the device without first-letter designator}} {nd -help {Name of node connected to drain pin}} {ng -help {Name of node connected to gate pin}} {ns -help {Name of node connected to source pin}} }] lappend params [list model [dget $arguments model] -posnocheck] if {[dexist $arguments area]} { set areaVal [dget $arguments area] if {([llength $areaVal]>1) && ([@ $areaVal 1] eq {-eq})} { lappend params [list area [@ $areaVal 0] -poseq] } else { lappend params [list area $areaVal -pos] } } if {[dget $arguments off]==1} { lappend params {off -sw} } if {[dexist $arguments ic]} { lappend params [list ic [join [dget $arguments ic] ,] -nocheck] } dict for {paramName value} $arguments { if {$paramName ni {model area off ic name nd ng ns}} { lappend params [list $paramName $value] } } next j[dget $arguments name] [list [list nd [dget $arguments nd]] [list ng [dget $arguments ng]] [list ns [dget $arguments ns]]] $params }
Jfet1Model [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet1Model]Jfet1Model, Top, Main, Index
Creates object of class Jfet1Model
that describes JFET level 1 model with Parker Skellern modification.
Details
Parameters
args | Keyword model parameters, for details please see Ngspice manual, chapter 9. |
name | Name of the model. |
type | Njf or pjf. |
Description
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet1Model new jfetmod njf -vto 2 -beta 1e-3 -lambda 1e-4 -cgd 1e-12
method constructor {args} { # Creates object of class `Jfet1Model` that describes JFET level 1 model with Parker Skellern modification. # name - name of the model # type - njf or pjf # args - keyword model parameters, for details please see Ngspice manual, chapter 9. # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet1Model new jfetmod njf -vto 2 -beta 1e-3 -lambda 1e-4 -cgd 1e-12 # ``` # Synopsis: name type ?-option value ...? set paramsNames {level vto beta lambda rd rs cgs cgd pb is b kf af nlev gdsnoi fc tnom tcv vtotc bex betatce xti eg} next {*}[my ArgsPreprocess $paramsNames {name type} {} {*}[linsert $args 2 -level 1]] }
Jfet2Model [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet2Model]Jfet2Model, Top, Main, Index
Creates object of class Jfet2Model
that describes JFET level 2 model with Parker Skellern modification.
Details
Parameters
args | Keyword model parameters, for details please see Ngspice manual, chapter 9. |
name | Name of the model. |
type | Njf or pjf. |
Description
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet2Model new jfetmod njf -vto -2 -beta 10e-4 -rs 1e-4 -vbi 1.2
method constructor {args} { # Creates object of class `Jfet2Model` that describes JFET level 2 model with Parker Skellern modification. # name - name of the model # type - njf or pjf # args - keyword model parameters, for details please see Ngspice manual, chapter 9. # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet2Model new jfetmod njf -vto -2 -beta 10e-4 -rs 1e-4 -vbi 1.2 # ``` # Synopsis: name type ?-option value ...? set paramsNames {level acgam beta cgd cgs delta fc hfeta hfe1 hfe2 hfgam hfg1 hfg2 ibd is lfgam lfg1 lfg2 mvst n p q rs rd taud taug vbd vbi vst vto xc xi z rg lg ls ld cdss afac nfing tnom temp} next {*}[my ArgsPreprocess $paramsNames {name type} {} {*}[linsert $args 2 -level 2]] }
M [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Mesfet [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Subclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::Mesfet]Mesfet, Top, Main, Index
Creates object of class Mesfet
that describes semiconductor MESFET device.
Details
Parameters
-area | Scale factor, optional. |
-ic | Initial conditions for vds and vgs, in form of two element list, optional. |
-model | Name of the model. |
-off | Initial state, optional. |
name | Name of the device without first-letter designator Z. |
nd | Name of node connected to drain pin. |
ng | Name of node connected to gate pin. |
ns | Name of node connected to source pin. |
Description
ZXXXXXXX ND NG NS MNAME <AREA> <OFF> <IC=VDS,VGS>
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::Mesfet new 1 netd netg nets -model mesfetmod -area {area*2 -eq}
method constructor {args} { # Creates object of class `Mesfet` that describes semiconductor MESFET device. # name - name of the device without first-letter designator Z # nd - name of node connected to drain pin # ng - name of node connected to gate pin # ns - name of node connected to source pin # -model - name of the model # -area - scale factor, optional # -ic - initial conditions for vds and vgs, in form of two element list, optional # -off - initial state, optional # ``` # ZXXXXXXX ND NG NS MNAME <AREA> <OFF> <IC=VDS,VGS> # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::Mesfet new 1 netd netg nets -model mesfetmod -area {area*2 -eq} # ``` # Synopsis: name nd ng ns -model value ?-area value? ?-off? ?-ic \{value value\} ? set arguments [argparse -inline -pfirst -help {Creates object of class 'Mesfet' that describes semiconductor junction FET device} { {-model= -required -help {Name of the model}} {-area= -help {Scale factor}} {-off -boolean -help {Initial state}} {-ic= -validate {[llength $arg]==2} -help {Initial conditions for vds and vgs, in form of two element list}} {name -help {Name of the device without first-letter designator}} {nd -help {Name of node connected to drain pin}} {ng -help {Name of node connected to gate pin}} {ns -help {Name of node connected to source pin}} }] lappend params [list model [dget $arguments model] -posnocheck] if {[dexist $arguments area]} { set areaVal [dget $arguments area] if {([llength $areaVal]>1) && ([@ $areaVal 1] eq {-eq})} { lappend params [list area [@ $areaVal 0] -poseq] } else { lappend params [list area $areaVal -pos] } } if {[dget $arguments off]==1} { lappend params {off -sw} } if {[dexist $arguments ic]} { lappend params [list ic [join [dget $arguments ic] ,] -nocheck] } next z[dget $arguments name] [list [list nd [dget $arguments nd]] [list ng [dget $arguments ng]] [list ns [dget $arguments ns]]] $params }
Mesfet1Model [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::Mesfet1Model]Mesfet1Model, Top, Main, Index
Creates object of class Mesfet1Model
that describes MESFET model by Statz e.a..
Details
Parameters
args | Keyword model parameters, for details please see Ngspice manual, chapter 10. |
name | Name of the model. |
type | Nmf or pmf. |
Description
Example of class initialization:
::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet2Model new jfetmod njf -vto -2 -beta 10e-4 -rs 1e-4 -vbi 1.2
method constructor {args} { # Creates object of class `Mesfet1Model` that describes MESFET model by Statz e.a.. # name - name of the model # type - nmf or pmf # args - keyword model parameters, for details please see Ngspice manual, chapter 10. # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::SemiconductorDevices::Jfet2Model new jfetmod njf -vto -2 -beta 10e-4 -rs 1e-4 -vbi 1.2 # ``` # Synopsis: name type ?-option value ...? set paramsNames {level vto beta b alpha lambda rd rs cgs cgd pb kf af fc} next {*}[my ArgsPreprocess $paramsNames {name type} {} {*}[linsert $args 2 -level 1]] }
Mosfet [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Subclasses
constructor [::SpiceGenTcl::Ngspice::SemiconductorDevices::Mosfet]Mosfet, Top, Main, Index
Creates object of class Mosfet
that describes semiconductor MOSFET device.
Details
Parameters
-ad | Diffusion area of drain, optional, forbid -nrd. |
-as | Diffusion area of source, optional,forbid -nrs. |
-custparams | Key that collects all arguments at the end of device definition, to provide an ability to add custom parameters in form -custparams param1 param1Val param2 {param2eq -eq} param3 param3Val ... Must be specified after all others options. Optional. |
-ic | Initial conditions for vds, vgs and vbs, in form of three element list, optional, require 4th node. |
-l | Length of channel, optional. |
-m | Multiplier, optional. |
-model | Name of the model. |
-n4 | Name of 4th node; |
-n5 | Name of 5th node, require -n4, optional. |
-n6 | Name of 6th node, require -n5, optional. |
-n7 | Name of 7th node, require -n6, optional. |
-nrd | Equivalent number of squares of the drain diffusions. |
-nrs | Equivalent number of squares of the source diffusions. |
-off | Initial state, optional. |
-pd | Perimeter area of drain, optional. |
-ps | Perimeter area of source, optional. |
-temp | Device temperature. |
-w | Width of channel, optional. |
name | Name of the device without first-letter designator M. |
nd | Name of node connected to drain pin. |
ng | Name of node connected to gate pin. |
ns | Name of node connected to source pin. |
Description
MXXXXXXX nd ng ns nb mname <m=val> <l=val> <w=val> + <ad=val> <as=val> <pd=val> <ps=val> <nrd=val> + <nrs=val> <off> <ic=vds,vgs,vbs> <temp=t>
Example of class initialization:
::SpiceGenTcl::Ngspice::Mosfet new 1 netd netg nets -model mosfetmod -l 1e-6 -w 10e-3 -n4 netsub -n5 net5
method constructor {args} { # Creates object of class `Mosfet` that describes semiconductor MOSFET device. # name - name of the device without first-letter designator M # nd - name of node connected to drain pin # ng - name of node connected to gate pin # ns - name of node connected to source pin # -model - name of the model # -m - multiplier, optional # -l - length of channel, optional # -w - width of channel, optional # -ad - diffusion area of drain, optional, forbid -nrd # -as - diffusion area of source, optional,forbid -nrs # -pd - perimeter area of drain, optional # -ps - perimeter area of source, optional # -nrd - equivalent number of squares of the drain diffusions # -nrs - equivalent number of squares of the source diffusions # -temp - device temperature # -ic - initial conditions for vds, vgs and vbs, in form of three element list, optional, require 4th node # -off - initial state, optional # -n4 - name of 4th node; # -n5 - name of 5th node, require -n4, optional # -n6 - name of 6th node, require -n5, optional # -n7 - name of 7th node, require -n6, optional # -custparams - key that collects all arguments at the end of device definition, to provide an ability # to add custom parameters in form `-custparams param1 param1Val param2 {param2eq -eq} param3 param3Val ...` # Must be specified after all others options. Optional. # ``` # MXXXXXXX nd ng ns nb mname <m=val> <l=val> <w=val> # + <ad=val> <as=val> <pd=val> <ps=val> <nrd=val> # + <nrs=val> <off> <ic=vds,vgs,vbs> <temp=t> # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Ngspice::Mosfet new 1 netd netg nets -model mosfetmod -l 1e-6 -w 10e-3 -n4 netsub -n5 net5 # ``` # Synopsis: name nd ng ns -model value ?-n4 value ?-n5 value ?-n6 value ?-n7 value???? ?-m value? # ?-l value? ?-w value? ?-ad value|-nrd value? ?-as value|-nrs value? ?-temp value? ?-off? ?-pd value? # ?-ps value? ?-ic \{value value value\}? # ?-custparams param1 \{param1Val ?-eq|-poseq|-posnocheck|-pos|-nocheck?\} ...? set arguments [argparse -inline -pfirst -help {Creates object of class `Mosfet` that describes semiconductor MOSFET device} { {-model= -required -help {Name of the model}} {-m= -help Multiplier} {-l= -help {Length of channel}} {-w= -help {Width of channel}} {-ad= -forbid {nrd} -help {Diffusion area of drain}} {-as= -forbid {nrs} -help {Diffusion area of source}} {-pd= -help {Perimeter area of drain}} {-ps= -help {Perimeter area of source}} {-nrd= -forbid {ad} -help {Equivalent number of squares of the drain diffusions}} {-nrs= -forbid {as} -help {Equivalent number of squares of the source diffusions}} {-temp= -help {Device temperature}} {-off -boolean -help {Initial state}} {-ic= -validate {[llength $arg]==3} -require n4 -help {Initial conditions for vds, vgs and vbs, in form of three element list}} {-n4= -help {Name of 4th node}} {-n5= -require {n4} -help {Name of 5th node}} {-n6= -require {n5} -help {Name of 6th node}} {-n7= -require {n7} -help {Name of 7th node}} {-custparams -catchall -help {Key that collects all arguments at the end of device definition, to provide an ability to add custom parameters in form '-custparams param1 param1Val param2 {param2eq -eq} param3 param3Val ...'}} {name -help {Name of the device without first-letter designator}} {nd -help {Name of node connected to drain pin}} {ng -help {Name of node connected to gate pin}} {ns -help {Name of node connected to source pin}} }] lappend params [list model [dget $arguments model] -posnocheck] if {[dget $arguments off]==1} { lappend params {off -sw} } if {[dexist $arguments ic]} { lappend params [list ic [join [dget $arguments ic] ,] -nocheck] } dict for {paramName value} $arguments { if {$paramName ni {model off ic n4 n5 n6 n7 custparams name nd ng ns}} { lappend params [list $paramName {*}$value] } } if {[dget $arguments custparams] ne {}} { if {[llength [dget $arguments custparams]]%2!=0} { return -code error {Custom parameters list must be even length} } set custParamDict [dcreate {*}[dget $arguments custparams]] dict for {paramName value} $custParamDict { lappend params [list $paramName {*}$value] } } set pinList [list [list nd [dget $arguments nd]] [list ng [dget $arguments ng]] [list ns [dget $arguments ns]]] if {[dexist $arguments n4]} { lappend pinList [list n4 [dget $arguments n4]] if {[dexist $arguments n5]} { lappend pinList [list n5 [dget $arguments n5]] if {[dexist $arguments n6]} { lappend pinList [list n6 [dget $arguments n6]] if {[dexist $arguments n7]} { lappend pinList [list n7 [dget $arguments n7]] } } } } next m[dget $arguments name] $pinList $params }
Q [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name
Superclasses
Z [::SpiceGenTcl::Ngspice::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
addPin | See ::SpiceGenTcl::Device.addPin |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
genSPICEString | See ::SpiceGenTcl::Device.genSPICEString |
getParams | See ::SpiceGenTcl::Device.getParams |
getPins | See ::SpiceGenTcl::Device.getPins |
setParamValue | See ::SpiceGenTcl::Device.setParamValue |
setPinNodeName | See ::SpiceGenTcl::Device.setPinNodeName |
Properties
Readable: -name
Writable: -name