The SOLVE line

Syntax

  SOlve estimate gen bias transient ac i/o

Description

The SOLVE line instructs PADRE to perform a solution for one or more specified bias points.

Parameters

estimate
  INitial   =  logical  (default is false)
  PREvious  =  logical  (default is true)
  PROject   =  logical  (default is false)
  EUler     =  logical  (default is false)
  LOcal     =  logical  (default is false)

The above parameters are used to specify how the initial guess for the solution is to be obtained. The first bias point for a given structure must have the INITIAL parameter specified. From then PADRE will use the previous solution (PREVIOUS) by default. If there are two previous solutions present and equivalent bias steps are taken on any electrodes that are changed, an extrapolation (PROJECT) from the preceding two solutions can be used to sometimes get an improved initial guess, which is particularly good for IV curves that are being traced to a fine resolution. If a full Jacobian is available, another (single point) projected guess is EULER which also works quite well for fine IV curve tracing. LOCAL is a special, off-state guess which guesses local values for quasi-Fermi levels based on bias which is typically optimal for for large steps in reverse bias.

bias

  V1         =  real
  I1         =  real
  V2         =  real
  I2         =  real
   .
   .
   .
  V9         =  real
  I9         =  real
  V0         =  real
  I0         =  real
  VStep      =  real     (default is 0.0)
  IStep      =  real     (default is 0.0)
  NSteps     =  integer  (default is 0)
  MULTIply   =  logical  (default is false)
  ELectrode  =  integer
  N.bias     =  real
  P.bias     =  real
  CH.mult    =  real     (default is 1.0)

The parameters V1, V2, ..., V9, V0 represent the bias voltages (for non-current boundaries only) and I1, I2, ..., I9, I0 represent the terminal currents in units of Amps/um (for current boundary contacts only - see CONTACT line) applied at contacts 1, 2, ..., 9, 0. The defaults for these parameters are the potentials (currents) from the previous bias point. Note that for the INITIAL bias point, 0 volts will be assumed for any voltage that is not specified. VSTEP (ISTEP) is a voltage (current) increment to be added (or multiplied if MULTIPLY is set) to one or more electrodes, as specified by the integer assigned to ELECTRODE. If more than one electrode is to be stepped, ELECTRODE should then be an n-digit integer, where each of the n-digits is a separate electrode number (and if there are 10 electrodes, don't put electrode 0 first in the sequence!). NSTEPS is the number of bias increments (steps) to be taken; i.e., if VSTEP (ISTEP) is specified, the specified electrode is incremented NSTEPS times. N.BIAS and P.BIAS specify fixed quasi-Fermi potentials for carriers (electrons and holes, respectively) that are not being solved for. If N.BIAS or P.BIAS are not specified, then PADRE either will choose local quasi-Fermi potentials based on bias and doping if the FIX.QF parameter is set on the METHOD line, will set the quasi-Fermi levels where applicable to values which produce the least amount of free carriers (maximum bias for electrons and minimum bias for holes). CH.MULT is a multiplicative factor used to adjust all Helmoholtz coefficients (see C.HELM on the MATERIAL line) in the device. gen

  Generation  =  real       (default is 0)
  DOse.rad    =  real       (default is 0)
  ABsorption  =  real       (default is 0)
  DIr.gen     =  character  (default is "y")
  PK.gen      =  real       (default is 0)
  REg.gen     =  vector

GENERATE and DOSE.RAD specify blanket radiation terms; the superposition of the two is applied. GENERATE is given in units /s-cm**3 while DOSE.RAD is specified in rad; the corresponding generation rate is obtained from DOSE.RAD multiplication with the material generation constant (see GEN.CON on the MATERIAL line). ABSORPTION defines an absorption coefficient for the radiation (in /um). If an absoption coefficient is specified, DIR.GEN defines the coordinate axis along which the radiation penetrates, and PK.GEN defines the position along that axis where the peak generation rate occurs; the rate therefore falls of exponentially, according to teh value of ABSORPTION, away from PK.GEN in both directions along the DIR.GEN axis. Finally, by default the generation terms are applied to all regions; specific regions can be targeted using REG.GEN.

transient

  TSTEp        =  real     (default is 0)
  TSTOp        =  real
  TDelta       =  real
  TEnd.refine  =  logical  (default is false)
  RAmptime     =  real     (default is 0)
  ENdramp      =  real     (default is 0)
  SEu          =  logical  (default is false)
  DT.seu       =  real
  G.tau        =  real

TSTEP is the time-step to be taken. For automatic time-step runs (see the METHOD line), TSTEP is used to select the first time step only. TSTOP specifies the end of the time interval to be simulated so that if the simulation begins at t = t0, it will end at t = TSTOP. TDELTA defines a stopping time relative to the start of the execution of the line it occurs; i.e., the simulation will stop at at t = t0+TDELTA. If equal time-steps are desired, set TAuto=false in the method command line. TEND.REFINE refines the timestep as it approaches the end of a transient sequence using DELTA t = (DELTA t(end)) / iceil(epsilon + DELTA t(end) / DELTA t) where DELTA t(end) = TSTOP - t.

RAMPTIME and ENDRAMP apply any bias changes as linear ramps. RAMPTIME specifies a ramp interval in seconds; i.e., the ramp will begin at t = t0 and end at t = t0 + RAMPTIME. Alternatively, ENDRAMP specifies the exact end of the ramp in running time; i.e. the ramp will start at t = t0 and end at t = ENDRAMP.

The SEU flag activates single event upset simulation mode, defined by previous P.TRACK lines. For those particle tracks which have been given a time dependent generation rate on the respective P.TRACK lines, t(gen) = 0 corresponds to t0. Without defined time dependencies, the track charge is generated as a pulse over DT.SEU; the default for DT.SEU is determined by TSTOP (DT.SEU=TSTOP-t0) or TDELTA (DT.SEU=TDELTA) depending on which is set. G.TAU defines the rise or fall time for the applied blanket radiation rate (GENERATION or DOSE.RAD) in sec; the default is to apply or remove the generation immediately.

ac

  AC.analysis  =  logical   (default is false)
  FRequency    =  real
  FStep        =  real      (default is 0)
  MULT.freq    =  logical   (default is false)
  NFsteps      =  integer   (default is 0)
  VSs          =  real      (default is 0.1*kT/q)
  TErminal     =  integer   (default is all)
  S.omega      =  real      (default is 1.0)
  MAx.inner    =  integer   (default is 25)
  TOlerance    =  real      (default is 1.0e-5)

AC.ANALYSIS indicates AC sinusoidal small-signal analysis be performed after the DC condition is solved. FREQUENCY is the frequency (in Hz) at which the analysis is performed. The analysis can be repeated at a number of frequencies (without resolving DC) using FSTEP which is a frequency increment, added to the previous frequency by default or multiplied by setting MULT.FREQ. NFSTEPS defines the number of increments. VSS is the magnitude of the applied small-signal bias; TERMINAL is the contact to which AC bias is applied. More than one contact number may be specified (via concatenation), but each will be solved separately. Each contact that is specified yields a column of the admittance matrix as defined by equation (2.17). If the sor ac method is used (see METHOD line), S.OMEGA is the relaxation parameter, MAX.INNER is the maximum number of sor iterations and TOLERANCE is the sor convergence criterion.

noise analysis

  noise.anal   =  logical   (default is false)
  i.noise      =  logical   (default is false)
  e.noise      =  integer   (default is false)

NOISE.ANALYSIS indicates that the user wants to compute the noise parameters for a multiterminal device. PADRE can compute both diffusion noise (including nonlinear processes) as well as the generation-recombination noise based on the specification in the model line. Noise.analysis is performed after both DC and AC conditions are solved for. The frequency (in Hz) spacing of the AC solutions are preserved. I.NOISE=t specifies that ac short-circuit current noise parameters are desired, I.NOISE=f specifies that ac open-circuit voltage noise parameters are desired. Also, see the OPTIONS, MATERIAL, and MODEL lines. E.NOISE is the electrode which is ac-grounded.

i/o

  Outfile    =  filename
  Currents   =  logical   (default is true)
  NO.append  =  logical   (default is false)
  AScii      =  logical   (default is true)
  SAve       =  integer   (default is 1)
  T.SAve     =  vector
  EFile      =  filename                        [Expert]
  AFile      =  filename                        [Expert]
  Ufile      =  filename                        [Expert]
  Nfile      =  character
  MOstrans   =  integer   (default is 0)

OUTFILE optionally specifies the name of the output file for the solution of this bias point. The file names may contain up to 20 characters. If an electrode is stepped so that more than one solution is generated by this line and NO.APPEND is not set, the last non-blank character of the supplied file name will have its ascii code incremented by one for each bias point in succession, resulting in a unique file per bias point. If CURRENTS is specified, the electron, hole, and displacement currents, and the electric field, will be computed and stored with the solution. IF ASCII is specified, OUTFILE will be ascii as opposed to binary. By default the solutions are saved at every bias point. Alternatively a frequency of saves can be specified by SAVE, i.e. if SAVE=2, solutions will be saved only for every other bias point. Alternately T.SAVE gives a list of times at which solutions will be written for transient simulations. EFILE, AFILE and UFILE are output files containing the nonlinear error/residual, Jacobian matrix and update at every Newton iteration, used for the purposes of debugging. NFILE contains noise parameters bewteen various pairs of terminals. MOSTRANS0 defines the gate of a MOSFET for which static estimates of transconductance, capacitance and cutoff frequency will be printed based on the current and previous solution values.

Examples

The following performs an initial bias point, saving the solution to the data file OUT0:

  SOLVE  INIT OUTF=OUT0

In the next example, bias stepping is illustrated. The two solve lines produce the following bias conditions:

  Bias point #     V1     V2     V3    
  1               0.0    0.5    -0.5   
  2               1.0    0.5    0.0    
  3               2.0    0.5    0.0    
  4               3.0    0.5    0.0    
  5               4.0    0.5    0.0    
  6               5.0    0.5    0.0    

The solutions for these bias points will be saved to the files OUT1, OUTA, OUTB, OUTC, OUTD and OUTE. Note that the initial guess for the first bias point is obtained directly from the preceding solution because the PREVIOUS option was specified. The initial guesses for bias points 2 and 3 will also be obtained as if PREVIOUS had been specified since two electrodes (numbers 1 and 3) had their biases changed on bias point 2. However, for bias points 4, 5 and 6, PADRE will use a projection to obtain an initial guess since starting with bias point 4, both of its preceding solutions (bias points 2 and 3) only had the same electrode bias (number 1) altered.

  SOLVE  PREV V1=0 V2=.5 V3=-.5 OUTF=OUT1
  SOLVE  PROJ V1=1 V2=.5 V3=0 VSTEP=1 NSTEPS=4 
  +      ELECT=1 OUTF=OUTA

Here is a case where two electrodes are stepped (2 and 3). The bias points solved for will be (0,0,1), (0,.5,1.5), (0,1,2) and (0,2,3). PADRE will use the PROJECT option to predict an initial guess for the third and fourth bias points since the bias voltages on both electrodes 2 and 3 have been altered by the same amount between each point.

  SOLVE  PROJ V1=0 V2=0 V3=1 VSTEP=.5 NSTEPS=2 ELECT=23
  SOLVE  PROJ V2=2 V3=3

If no new voltages are specified and a VSTEP is included, the first bias point solved for is the preceding one incremented appropriately by VSTEP. This is illustrated by repeating the above example as a three line sequence:

  SOLVE  V1=0 V2=0 V3=1
  SOLVE  PROJ VSTEP=.5 NSTEPS=2 ELECT=23
  SOLVE  PROJ VSTEP=1  NSTEPS=1 ELECT=23

The following sequence is an example of a time-dependent solution. The METHOD line specifies the second-order discretization and automatic time-step selection option, along with Newton-Richardson. The first SOLVE line then computes the solution for a device with 1 volt on V1 and 0 on V2 in steady-state. The second SOLVE line specifies that V1 is to be ramped to 2 volts over a period of 10ns and is left on until 25 ns. Each solution is written to a file; the name of the file is incremented in a manner similar to that described above for a dc simulation (UP1, UP2, etc.). Note that an initial time step had to be specified on this line. The third SOLVE line ramps V1 down from 2 volts to -1 volts in 20 ns (end of ramp is at t = 45ns). The device is then solved at this bias for another 55 ns (out to 100 ns). Note that again each solution is saved in a separate file (DOWN1, DOWN2, etc.) and that no initial time-step was required since one had been estimated from the last transient solution for the previous SOLVE line. Finally, the fourth SOLVE line performs the steady-state solution at V1=-1 and V2=0.

  METHOD 2ND TAUTO AUTONR
  SOLVE  V1=1 V2=0
  SOLVE  V1=2 TSTART=1E-12 TSTOP=25E-9 RAMPTIME=10E-9 
  +      OUTF=UP1
  SOLVE  V1=-1 TSTOP=100E-9 RAMPTIME=20E-9 OUTF=DOWN1
  SOLVE  V1=-1 V2=0

The following is a single event upset simulation. Assuming a particle track have been defined using a previous P.TRACK line and that no G(t) dependence was defined on that line (see the P.TRACK line documentation), the track charge will be generated uniformly over the first 20ps of the simulation which will last until 1us.

  SOLVE  SEU TSTART=1e-14 TSTOP=1e-6 DT.SEU=20e-12

The following is a blanket radiation simulation using rise and fall times. Starting from a dc solution (V1=-10 volts), a generation rate of 1.0e24 eh pairs/cm**3, falling exponentially away from y=0 with a characteristic length of 0.01mm, is applied to regions 1 and 2. The rise time of the pulse is 1ps. At t=1ns, the pulse is removed with a fall time of 5ps, and the simulation is continued until t=1ms.

  SOLVE  V1=-10
  SOLVE  GEN=1E24 REG.GEN=1,2 ABSORP=0.01 DIR.GEN=y
  +      G.TAU=1E-12 TSTEP=1E-14 TSTOP=1E-9
  SOLVE  G.TAU=5E-12 TSTOP=1E-6

Finally, an AC example is presented. Assume the device to be simulated has 3 electrodes. Starting from solved DC conditions at V1 = 0, 0.5, 1.0, 1.5 and 2.0 volts, 10 mV AC signals of frequency 1 MHz, 10 MHz, 100 MHz, 1 GHz, 10 GHz and 100GHz are applied to each electrode in the device. And for each of these frequencies, also compute the current noise parameters, and write the output in the "noisefile". Note that the number of AC solutions to be performed is 5*6*3=90.

  SOLVE  PROJ V1=0 V2=0 V3=0 VSTEP=0.5 NSTEPS=4 ELECT=1
  +      AC FREQ=1E6 FSTEP=10 MULT.F NFSTEP=5 VSS=0.01
  +      NOISE  I.NOISE=t  NFILE=noisefile