next up previous contents
Next: 5.2.3 Results Up: 5.2 Optimization of Analytical Previous: 5.2.1 Analyzed Transistor

5.2.2 Optimization

Figure 5.6 shows a graph describing the modeling of the optimization target function. A device with analytical doping concentrations is generated, from a description file, using makedevice [3]. This transistor is analyzed using a device simulator and the extracted on-current is used as the target and the off-current as a constraint.

Figure 5.6: Structure of the model evaluated in one optimization loop.
\includegraphics[width=0.8\linewidth]{graphics/appb_flow.eps}

Because of the larger parameter space compared to the previous example and the simulation flow, consisting of only one generation step and two electrical characterization steps, direct optimization is performed.

This task is defined by an experiment file shown in Figure 5.7. In this file the free parameters, the maximum doping, the depth and the deviation (n_peak, y_peak, and sig_peak), for the optimization are assigned. These parameters are inputs of the evaluated model (modular.mod) listed in Figure 5.8. The target function and the inequality constraint are assigned to the output variable target and constraint respectively.

Figure 5.7: Experiment file for the device optimization with nonlinear constraints.
(optimizer
 (model                 "modular.mod")
 (free                  n_peak y_peak sig_peak)
 (target                target)
 (inequality-constraint constraint))

In Figure 5.8 the evaluated model function is assigned. It consists of the analytical device generation submodel (mkdev) assigned in Figure 5.9, the electrical characterization (ion and ioff) defined in Figure 5.10, and the evaluation of the target and constraint from the extracted results (evaluation).

Figure 5.8: Module file describing the model evaluated during the optimization.
(network-model 
 (submodel mkdev "mkdev.mod")

 (submodel ion   "device.mod" 
           (inputs  (private (ion yes))
           (connect (infile  mkdev pif-wafer)))
           (outputs (public  (current ion))))

 (submodel ioff  "device.mod"
           (inputs  (private (ion no))
           (connect (infile  mkdev pif-wafer)))
           (outputs (public  (current ioff))))

 (submodel evaluation
           (arithmetic-model
            (inputs  (ion    float)
                     (ioff   float))
            (outputs (target float)
                     (constraint float))                  
            (operators 
             (target (- ion))
             (constraint (* 1e11 
                            (- 4.4e-13 ioff)))))
            (inputs (connect 
                     (ion  ion  current)
                     (ioff ioff current)))
            (outputs (public target constraint))))

In Figure 5.9 submodel referenced as mkdef in Figure 5.8 is defined. In the section inputs the three parameters of the optimization process (n_peak, y_peak, and sig_peak) are assigned with there start, minimum, and maximum values. The outputs part defines one output variable (pif-wafer) and its data type (filename) so that it can be used as an input for other submodels and output-mapping connects this variable with a result of a tool (in this case the result wafer of the tool pbfm is mapped to the output port pif-wafer).

Figure 5.9: Module file describing the device generation.
(process-model devicegenerator
 (inputs 
  (n_peak   bound-float  18.0    16.0    19.5)
  (y_peak   bound-float   0.02    0.0     0.1)
  (sig_peak bound-float   0.01    0.001   0.05))

  (outputs (pif-wafer filename))

  (output-mapping (pif-wafer pbfm.wafer))

  (tool-flow
    (mkdev (tool
            (controls
             (command          "makedevice")
             (cmdline          "ipd")
             (ipd              (file "makedevice.ipd")))
            (results   
             (wafer            "makedevice.pif" filename))))
    (pbfm (tool
           (controls 
            (command           "pbfm")
            (cmdline           "-a -k <(mkdev.wafer)> makedevice.pbf"))
           (results  
            (wafer             "makedevice.pbf" filename))))))

In tool-flow a series of programs is listed. It contains the analytical device generator makedevice which generates the geometry and doping distribution of the transistor using a description file. This data is stored in an ASCII PIF file5.1 and for the device simulation it must be transformed into a binary PIF using the tool pbfm.

The input variables (e.g., n_peak) of the device generator are passed to the program by inserting them into the generator's input deck. To do this the framework searches for the pattern <(n_peak)> in the file makedevice.ipd and replaces it with the actual value of this variable. The same mechanism is used for passing the filename of the ASCII wafer to the command line of the tool pbfm (the command line of this program contains the options -a and -k, the input filename represented by <(mkdev.wafer)>, and the output filename makedevice.pbf).

After the device generation the transistor is analyzed using a device simulator (see Figure 5.8). For the simulation of the on- and off-currents the same submodel ( device.mod) is used. To distinguish between these to operating points, an additional variable (ion) is added. This variable is assigned as private, so it cannot be overwritten from outside, e.g., within the network-model which contains this submodel.

In the submodel for the electrical characterization (see Figure 5.10) the device simulator MINIMOS-NT[3] is used. To determine if an on- or off-current has to be simulated the variable ion is passed to the simulator. The drain current is extracted from the result file and mapped to the output port current.

Figure 5.10: Module file describing the device characterization.
(process-model devicesimulation
  (inputs (vdd          float     1.5)
          (ion          string)
          (infile       filename))

  (outputs (current     float))
  
  (output-mapping (current mmnt.curve ID))

  (tool-flow
   (mmnt (tool 
          (controls 
           (command     "mmnt")
           (cmdline     "ipd")
           (ipd         (file "mmnt.ipd")))
          (results  
           (curve       "mmnt.crv" operating-point)
           (curve-file  "mmnt.crv" filename))))))

The last submodel evaluated is the evaluation model (see Figure 5.8). The goal of the optimization is to maximize the on-current so the target function is defined as the negative current value because the optimizer minimizes this value. This model also defines the constraint, which keeps the off-current below the value of the uniformly doped device.



Footnotes

... file5.1
The PIF [13] data format can be represented in an ASCII form, where in can be easily viewed and modified using a text editor, and in a binary representation for an efficient access for simulators and various data manipulation programs.

next up previous contents
Next: 5.2.3 Results Up: 5.2 Optimization of Analytical Previous: 5.2.1 Analyzed Transistor

R. Plasun