pingspice.analysis.mosfet.MOSFET_Helper(HelperBase)
class documentation
Part of pingspice.analysis.mosfet
(View In Hierarchy)
Helper for MOSFET_Finder
.
Construct me with an instance of analysis.param.Specs
that's been populated with attributes defining device-specific variables,
the device's parameter-finding goals, and any known parameters.
Class Variable | w | Dict with default emphases for each setup ID, each entry's value scaling its target's weight by the square of that value. If no entry, default emphasis is 0.5, which works out to unity. |
Class Variable | s211_scale | Extra weight (scaling) for highest Vgs curve, left end increasing to right end. |
Method | __init__ | MOSFET_Helper(specs) |
Method | timeSetup | Sets up TRAN simulation args for step, stop, and possibly stop time. |
Method | transform_v2rds | Transform Ids (or Isd for P-channel) and V(drain) into Rds. |
Method | transform_v2nrds | Transform Vds (or Vsd for P-channel) with constant known Ids into Rds, normalized to Rds at nominal Tj. Make sure that one of the swept Tj values is at or very close to nominal. |
Method | transform_vgs2nvgs | Transform Vgs (or Vsg for P-channel) with constant known Ids into normalized with Vgs=1.0 at nominal Tj. Make sure that one of the swept Tj values is at or very close to nominal. |
Method | transform_i2q | Transform current and time into charge with trapezoidal integration. |
Method | transform_ttrig | Undocumented |
Method | weight_Ids_si | Weighting of setups 211, 221, 222. For setup 223, unity weight because Ids isn't the vector of interest. |
Method | weight_Ids_wi | Weighting of setup 242. |
Method | weight_Rds | Weighting of setup 223 for Rds with controlled drain current. |
Method | weight_vdd | Weighting of setups 241, 351, 361, and 371, for drain voltage after a resistor. |
Method | weight_tempsens | Weighting of setups 261, 271, 272, for temperature sensitivity. |
Method | weight_gate | Weighting of setup 321, for gate charge, and of setups 351, 361, and 371 for gate voltage. |
Method | weight_drain | Weighting of setups 351, 361, 371, for drain voltage with controlled current. |
Inherited from HelperBase:
Class Variable | weightN | Weight of number of steps column vs excess range column in prettyStep . |
Method | timeSetupCommon | Call this from your subclass's override of timeSetup
to get common stuff done. |
Method | get_rrParams | Call this to get a 4-tuple with parameters V, I, dI, and dt for reverse recovery. |
Method | TRAN | Adds an analysis.sim.TRAN
analyzer to the supplied analyzerDict for the specified setup
ID, with (name, value) tuples for any keywords supplied. |
Method | gcd_seq | Returns the greatest common denominator of values in sequence X,
or None if there is no GCD. |
Method | sss | Returns a 3-list with the start, stop, and step values for doing a DC
sweep of values in sequence X that lands exactly on all its values,
or None if no such sweep is possible. |
Method | Tj_sa | Returns the additional arguments for a secondary DC sweep of the junction temperature that best fits the 'tj' values for goals of the specified setup ID. |
Static Method | decimal | Undocumented |
Method | prettyStep | Finds a "pretty" step size to go from Zmin (or slightly below) to Zmax (or slightly above) in as close as possible (but not more than) Nmax steps with limited precision. |
Static Method | includesZero | Undocumented |
Method | prettyRange | Undocumented |
Method | mms | Returns a suitable min, max, and step for a DC sweep of a vector. |
Method | warp | Warps the values of x that are close to x0. |
Method | emphasis | Returns the square of the emphasis for the specified setup ID, multiplied by the product of any arguments. |
Method | transform_bias | Undocumented |
Method | transform_capacitance | Undocumented |
Method | weight_capacitance | Weighting of 'cap' tranformed value for setups 4xx. |
Method | _bc_fix | Called by transform_bias
and transform_capacitance
to obtain a cleaned-up version of bias1 and cap1. |
Transform Ids (or Isd for P-channel) and V(drain) into Rds.
Transform Vds (or Vsd for P-channel) with constant known Ids into Rds, normalized to Rds at nominal Tj. Make sure that one of the swept Tj values is at or very close to nominal.
Transform Vgs (or Vsg for P-channel) with constant known Ids into normalized with Vgs=1.0 at nominal Tj. Make sure that one of the swept Tj values is at or very close to nominal.
Transform current and time into charge with trapezoidal integration.
Weighting of setups 211, 221, 222. For setup 223, unity weight because Ids isn't the vector of interest.
For setup 211, the highest Ids at the highest Vgs curve is weighted more to help encourage the Ids vs Vds curve to bend downward.
Weighting of setups 241, 351, 361, and 371, for drain voltage after a resistor.
For setups 351, 361, and 371, weight_drain
and weight_gate
also (and primarily) factor into the weighting.
Weighting of setups 261, 271, 272, for temperature sensitivity.
High for setups 271, 272. Each one is just a single curve for a separate important aspect of the MOSFET operation, with fairly low SSE produced by significant departures from desired.
(Array) weight values are scaled by each expected value of x, and scaled down in aggregate by the cube of the mean expected value.
Weighting of setup 321, for gate charge, and of setups 351, 361, and 371 for gate voltage.
High for setup 321 because the error figures are relatively small compared to IDs, and it's just one curve for an important aspect of the MOSFET operation.
For setups 351, 361, and 371, weight_vdd
and (primarily) weight_drain
also factor into the weighting.
Weighting of setups 351, 361, 371, for drain voltage with controlled current.
Nominal, but higher around 7A for setup 351.
weight_vdd
and weight_gate
also factor into the weighting, secondarily.