::SpiceGenTcl::Xyce::SemiconductorDevicesTop, Main, Index
ClassesTop, Main, Index
Bjt [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
genSPICEString | Modify substrate pin string in order to complain square brackets enclosure, see BJT info in reference manual of Xyce. |
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::Xyce::SemiconductorDevices::Bjt]Bjt, Top, Main, Index
Creates object of class Bjt
that describes semiconductor bipolar junction transistor device.
Parameters
name | Name of the device without first-letter designator Q. |
ncNode | Name of node connected to collector pin. |
nbNode | Name of node connected to base pin. |
neNode | Name of node connected to emitter pin. |
-area | Scale factor, optional. |
-ic1 | Initial conditions for vbe, optional. |
-ic2 | Initial conditions for vce, optional. |
-m | Multiplier of area and perimeter, optional. |
-model | Name of the model. |
-ns | Name of node connected to substrate pin, optional. |
-temp | Device temperature, optional. |
-tj | Name of node connected to thermal pin, optional, requires -ns. |
Description
Example of class initialization:
method constructor {name ncNode nbNode neNode args} { # Creates object of class `Bjt` that describes semiconductor bipolar junction transistor device. # name - name of the device without first-letter designator Q # ncNode - name of node connected to collector pin # nbNode - name of node connected to base pin # neNode - name of node connected to emitter pin # -model - name of the model # -area - scale factor, optional # -m - multiplier of area and perimeter, optional # -temp - device temperature, optional # -ic1 - initial conditions for vbe, optional # -ic2 - initial conditions for vce, optional # -ns - name of node connected to substrate pin, optional # -tj - name of node connected to thermal pin, optional, requires -ns # ``` # 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::Xyce::SemiconductorDevices::Bjt new 1 netc netb nete -model bjtmod -ns nets -area 1e-3 # ``` # Synopsis: name ncNode nbNode neNode -model value ?-ns value ?-tj value?? ?-area value? ?-m value? # ?-temp value? ?-off? ?-ic1 value? ?-ic2 value? set arguments [argparse -inline { {-model= -required} -area= -m= -temp= {-off -boolean} -ic1= -ic2= -ns= {-tj= -require {ns}} }] lappend params "model [dget $arguments model] -posnocheck" if {[dexist $arguments area]} { set areaVal [dget $arguments area] if {([llength $areaVal]>1) && ([@ $areaVal 1]=="-eq")} { lappend params "area [@ $areaVal 0] -poseq" } else { lappend params "area $areaVal -pos" } } dict for {paramName value} $arguments { if {$paramName ni {model area off ns tj}} { lappend params "$paramName $value" } } set pinList [list "nc $ncNode" "nb $nbNode" "ne $neNode"] if {[dexist $arguments ns]} { lappend pinList "ns [dget $arguments ns]" if {[dexist $arguments tj]} { lappend pinList "tj [dget $arguments tj]" } } next q$name $pinList $params }
genSPICEString [::SpiceGenTcl::Xyce::SemiconductorDevices::Bjt]Bjt, Top, Main, Index
Modify substrate pin string in order to complain square brackets enclosure, see BJT info in reference manual of Xyce
method genSPICEString {} { # Modify substrate pin string in order to complain square brackets enclosure, # see BJT info in reference manual of Xyce set SPICEStr [next] if {[dexist [my getPins] ns]} { set SPICEList [split $SPICEStr] set SPICEStr [join [lreplace $SPICEList 4 4 "\[[@ $SPICEList 4]\]"]] } return $SPICEStr }
BjtGPModel [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
argsPreprocess | See ::SpiceGenTcl::KeyArgsBuilder.argsPreprocess |
buildArgStr | See ::SpiceGenTcl::KeyArgsBuilder.buildArgStr |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
Mixins
constructor [::SpiceGenTcl::Xyce::SemiconductorDevices::BjtGPModel]BjtGPModel, Top, Main, Index
Creates object of class BjtGPModel
that describes Gummel-Poon model of semiconductor bipolar transistor.
Parameters
name | Name of the model. |
type | Npn or pnp. |
args | Keyword model parameters, for details please refer to Xyce reference manual, 2.3.17 section. |
Description
Example of class initialization:
method constructor {name type 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 refer to Xyce reference manual, 2.3.17 section. # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::SemiconductorDevices::DiodeModel new bjtmod npn -is 1e-15 -bf 200 -vaf 100 -cje 1e-10 # ``` # Synopsis: name type ?-option value ...? set paramsNames [list af bf bfm br brm bv c2 c4 ccs cdis cjc cje cjs csub eg esub fc ik ikf ikr iob irb is isc ise itf jbf jbr jlc jle jrb jtf kf mc me mjc mje mjs ms nc ne nf nk nkf nle nr pc pe ps psub pt ptf rb rbm rc re tb tcb tempmodel tf tnom tr va vaf var vb vbf vjc vje vjs vrb vtf xcjc xtb xtf xti] set params [my argsPreprocess $paramsNames {*}$args] next $name $type [linsert $params 0 [list level 1]] }
D [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
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::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
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::Xyce::SemiconductorDevices::Diode]Diode, Top, Main, Index
Creates object of class Diode
that describes semiconductor diode device.
Parameters
name | Name of the device without first-letter designator D. |
npNode | Name of node connected to positive pin. |
nmNode | Name of node connected to negative pin. |
-area | Area scale factor, 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. |
-ic | Initial condition, optional. |
-m | Multiplier of area and perimeter, optional. |
-model | Name of the model. |
-pj | Perimeter scale factor, optional. |
-temp | Device temperature, optional. |
Description
Example of class initialization:
method constructor {name npNode nmNode args} { # Creates object of class `Diode` that describes semiconductor diode device. # name - name of the device without first-letter designator D # npNode - name of node connected to positive pin # nmNode - 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 # -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. # ``` # D<name> <(+) node> <(-) node> <model name> [device parameters] # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::SemiconductorDevices::Diode new 1 netp netm -model diomod -area 1e-6 # ``` # Synopsis: name npNode nmNode -model value ?-area value? ?-pj value? ?-ic value? ?-m value? ?-temp value? # ?-custparams param1 \{param1Val ?-eq|-poseq|-posnocheck|-pos|-nocheck?\} ...? set arguments [argparse -inline { {-model= -required} -area= -pj= -ic= -m= -temp= {-custparams -catchall} }] lappend params "model [dget $arguments model] -posnocheck" if {[dexist $arguments area]} { set areaVal [dget $arguments area] if {([llength $areaVal]>1) && ([@ $areaVal 1]=="-eq")} { lappend params "area [@ $areaVal 0] -poseq" } else { lappend params "area $areaVal -pos" } } if {[dexist $arguments pj]} { set pjVal [dget $arguments pj] if {([llength $pjVal]>1) && ([@ $pjVal 1]=="-eq")} { lappend params "pj [@ $pjVal 0] -poseq" } else { lappend params "pj $pjVal -pos" } } dict for {paramName value} $arguments { if {$paramName ni {model custparams area pj}} { lappend params "$paramName $value" } } if {[dget $arguments custparams]!=""} { 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 "$paramName $value" } } next d$name [list "np $npNode" "nm $nmNode"] $params }
DiodeModel [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
argsPreprocess | See ::SpiceGenTcl::KeyArgsBuilder.argsPreprocess |
buildArgStr | See ::SpiceGenTcl::KeyArgsBuilder.buildArgStr |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
Mixins
constructor [::SpiceGenTcl::Xyce::SemiconductorDevices::DiodeModel]DiodeModel, Top, Main, Index
Creates object of class DiodeModel
that describes semiconductor diode model.
Parameters
name | Name of the model. |
args | Keyword model parameters, for details please refer to Xyce reference manual, 2.3.8 section. |
Description
Example of class initialization:
method constructor {name args} { # Creates object of class `DiodeModel` that describes semiconductor diode model. # name - name of the model # args - keyword model parameters, for details please refer to Xyce reference manual, 2.3.8 section. # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::SemiconductorDevices::DiodeModel new diodemod -is 1e-14 -n 1.2 -rs 0.01 -cj0 1e-9 # ``` # Synopsis: name ?-option value ...? set paramsNames [list level af bv cj cj0 cjo cjp cjsw eg fc fcs ibv ibvl ikf is isr js jsw kf m mjsw n nbv nbvl nr ns php rs tbv1 tbv2 tikf tnom trs trs1 trs2 tt vb vj vjsw xti] next $name d [my argsPreprocess $paramsNames {*}$args] }
J [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
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::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
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::Xyce::SemiconductorDevices::Jfet]Jfet, Top, Main, Index
Creates object of class Jfet
that describes semiconductor junction FET device.
Parameters
name | Name of the device without first-letter designator J. |
ndNode | Name of node connected to drain pin. |
ngNode | Name of node connected to gate pin. |
nsNode | Name of node connected to source pin. |
-area | Scale factor, optional. |
-model | Name of the model. |
-temp | Device temperature, optional. |
Description
Example of class initialization:
method constructor {name ndNode ngNode nsNode args} { # Creates object of class `Jfet` that describes semiconductor junction FET device. # name - name of the device without first-letter designator J # ndNode - name of node connected to drain pin # ngNode - name of node connected to gate pin # nsNode - name of node connected to source pin # -model - name of the model # -area - scale factor, optional # -temp - device temperature, optional # ``` # J<name> <drain node> <gate node> <source node> <model name> [area value] [device parameters] # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::SemiconductorDevices::Jfet new 1 netd netg nets -model jfetmod -area {area*2 -eq} -temp 25 # ``` # Synopsis: name ndNode ngNode nsNode -model value ?-area value? ?-temp value? set arguments [argparse -inline { {-model= -required} -area= -temp= }] lappend params "model [dget $arguments model] -posnocheck" if {[dexist $arguments area]} { set areaVal [dget $arguments area] if {([llength $areaVal]>1) && ([@ $areaVal 1]=="-eq")} { lappend params "area [@ $areaVal 0] -poseq" } else { lappend params "area $areaVal -pos" } } dict for {paramName value} $arguments { if {$paramName ni {model area}} { lappend params "$paramName $value" } } next j$name [list "nd $ndNode" "ng $ngNode" "ns $nsNode"] $params }
Jfet1Model [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
argsPreprocess | See ::SpiceGenTcl::KeyArgsBuilder.argsPreprocess |
buildArgStr | See ::SpiceGenTcl::KeyArgsBuilder.buildArgStr |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
Mixins
constructor [::SpiceGenTcl::Xyce::SemiconductorDevices::Jfet1Model]Jfet1Model, Top, Main, Index
Creates object of class Jfet1Model
that describes JFET level 1 model with Parker Skellern modification.
Parameters
name | Name of the model. |
type | Njf or pjf. |
args | Keyword model parameters, for details please refer to Xyce reference manual, 2.3.18 section. |
Description
Example of class initialization:
method constructor {name type 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 refer to Xyce reference manual, 2.3.18 section. # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::SemiconductorDevices::Jfet1Model new jfetmod njf -vto 2 -beta 1e-3 -lambda 1e-4 -cgd 1e-12 # ``` # Synopsis: name type ?-option value ...? set paramsNames [list af b beta cgd cgs delta fc is kf lambda pb rd rs tempmodel theta tnom vto] set params [my argsPreprocess $paramsNames {*}$args] next $name $type [linsert $params 0 [list level 1]] }
Jfet2Model [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
argsPreprocess | See ::SpiceGenTcl::KeyArgsBuilder.argsPreprocess |
buildArgStr | See ::SpiceGenTcl::KeyArgsBuilder.buildArgStr |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
Mixins
constructor [::SpiceGenTcl::Xyce::SemiconductorDevices::Jfet2Model]Jfet2Model, Top, Main, Index
Creates object of class Jfet2Model
that describes JFET level 2 model with Parker Skellern modification.
Parameters
name | Name of the model. |
type | Njf or pjf. |
args | Keyword model parameters, for details please refer to Xyce reference manual, 2.3.18 section. |
Description
Example of class initialization:
method constructor {name type 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 refer to Xyce reference manual, 2.3.18 section. # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::SemiconductorDevices::Jfet2Model new jfetmod njf -vto -2 -beta 10e-4 -rs 1e-4 -vbi 1.2 # ``` # Synopsis: name type ?-option value ...? set paramsNames [list af b beta cgd cgs delta fc is kf lambda pb rd rs tempmodel theta tnom vto] set params [my argsPreprocess $paramsNames {*}$args] next $name $type [linsert $params 0 [list level 2]] }
M [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
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::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
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::Xyce::SemiconductorDevices::Mesfet]Mesfet, Top, Main, Index
Creates object of class Mesfet
that describes semiconductor MESFET device.
Parameters
name | Name of the device without first-letter designator Z. |
ndNode | Name of node connected to drain pin. |
ngNode | Name of node connected to gate pin. |
nsNode | Name of node connected to source pin. |
-area | Emitter scale factor, optional. |
-model | Name of the model. |
-temp | Device temperature, optional. |
Description
Example of class initialization:
method constructor {name ndNode ngNode nsNode args} { # Creates object of class `Mesfet` that describes semiconductor MESFET device. # name - name of the device without first-letter designator Z # ndNode - name of node connected to drain pin # ngNode - name of node connected to gate pin # nsNode - name of node connected to source pin # -model - name of the model # -area - emitter scale factor, optional # -temp - device temperature, optional # ``` # Z<name> < drain node> <gate node> <source node> <model name> [area value] [device parameters] # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::SemiconductorDevices::Mesfet new 1 netd netg nets -model mesfetmod -area {area*2 -eq} # ``` # Synopsis: name ndNode ngNode nsNode -model value ?-area value? ?-temp value? set arguments [argparse -inline { {-model= -required} -area= -temp= }] lappend params "model [dget $arguments model] -posnocheck" if {[dexist $arguments area]} { set areaVal [dget $arguments area] if {([llength $areaVal]>1) && ([@ $areaVal 1]=="-eq")} { lappend params "area [@ $areaVal 0] -poseq" } else { lappend params "area $areaVal -pos" } } dict for {paramName value} $arguments { if {$paramName ni {model area}} { lappend params "$paramName $value" } } next z$name [list "nd $ndNode" "ng $ngNode" "ns $nsNode"] $params }
Mesfet1Model [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Model.addParam |
argsPreprocess | See ::SpiceGenTcl::KeyArgsBuilder.argsPreprocess |
buildArgStr | See ::SpiceGenTcl::KeyArgsBuilder.buildArgStr |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Model.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
genSPICEString | See ::SpiceGenTcl::Model.genSPICEString |
getParams | See ::SpiceGenTcl::Model.getParams |
setParamValue | See ::SpiceGenTcl::Model.setParamValue |
Properties
Readable: -name
, -type
Writable: -name
, -type
Superclasses
Mixins
constructor [::SpiceGenTcl::Xyce::SemiconductorDevices::Mesfet1Model]Mesfet1Model, Top, Main, Index
Creates object of class Mesfet1Model
that describes MESFET model by Statz e.a..
Parameters
name | Name of the model. |
type | Nmf or pmf. |
args | Keyword model parameters, for details please refer to Xyce reference manual, 2.3.19 section. |
Description
Example of class initialization:
method constructor {name type 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 refer to Xyce reference manual, 2.3.19 section. # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::SemiconductorDevices::Jfet2Model new jfetmod njf -vto -2 -beta 10e-4 -rs 1e-4 -vbi 1.2 # ``` # Synopsis: name type ?-option value ...? set paramsNames [list af alpha b beta cgd cgs fc is kf lambda pb rd rs tempmodel tnom vto] set params [my argsPreprocess $paramsNames {*}$args] next $name $type [linsert $params 0 [list level 1]] }
Mosfet [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
constructor | Constructor for the class. |
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
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::Xyce::SemiconductorDevices::Mosfet]Mosfet, Top, Main, Index
Creates object of class Mosfet
that describes semiconductor MOSFET device.
Parameters
name | Name of the device without first-letter designator M. |
ndNode | Name of node connected to drain pin. |
ngNode | Name of node connected to gate pin. |
nsNode | Name of node connected to source pin. |
-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 two 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. |
Description
Example of class initialization:
method constructor {name ndNode ngNode nsNode args} { # Creates object of class `Mosfet` that describes semiconductor MOSFET device. # name - name of the device without first-letter designator M # ndNode - name of node connected to drain pin # ngNode - name of node connected to gate pin # nsNode - 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 two 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. # ``` # M<name> <drain node> <gate node> <source node> # + <bulk/substrate node> <model name> # + [L=<value>] [W=<value>] # + [AD=<value>] [AS=<value>] # + [PD=<value>] [PS=<value>] # + [NRD=<value>] [NRS=<value>] # + [M=<value] [IC=<value, ...>] # ``` # Example of class initialization: # ``` # ::SpiceGenTcl::Xyce::Mosfet new 1 netd netg nets -model mosfetmod -l 1e-6 -w 10e-3 -n4 netsub -n5 net5 # ``` # Synopsis: name ndNode ngNode nsNode -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 { {-model= -required} -m= -l= -w= {-ad= -forbid {nrd}} {-as= -forbid {nrs}} -pd= -ps= {-nrd= -forbid {ad}} {-nrs= -forbid {as}} -temp= {-ic= -validate {[llength $arg]==3}} -n4= {-n5= -require {n4}} {-n6= -require {n5}} {-n7= -require {n7}} {-custparams -catchall} }] lappend params "model [dget $arguments model] -posnocheck" if {[dexist $arguments ic]} { lappend params "ic [join [dget $arguments ic] ,] -nocheck" } dict for {paramName value} $arguments { if {$paramName ni {model off ic n4 n5 n6 n7 custparams}} { lappend params "$paramName $value" } } if {[dget $arguments custparams]!=""} { 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 "$paramName $value" } } set pinList [list "nd $ndNode" "ng $ngNode" "ns $nsNode"] if {[dexist $arguments n4]} { lappend pinList "n4 [dget $arguments n4]" if {[dexist $arguments n5]} { lappend pinList "n5 [dget $arguments n5]" if {[dexist $arguments n6]} { lappend pinList "n6 [dget $arguments n6]" if {[dexist $arguments n7]} { lappend pinList "n7 [dget $arguments n7]" } } } } next m$name $pinList $params }
Q [::SpiceGenTcl::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
genSPICEString | See Bjt.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::Xyce::SemiconductorDevices]Top, Main, Index
Method summary
addParam | See ::SpiceGenTcl::Device.addParam |
checkFloatingPins | See ::SpiceGenTcl::Device.checkFloatingPins |
configure | Configure properties. |
deleteParam | See ::SpiceGenTcl::Device.deleteParam |
duplListCheck | See ::SpiceGenTcl::DuplChecker.duplListCheck |
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