**Hints, Tips and Solutions**

**Defining VWF Curve Target For Curve Calibration **

VWF allows a curve as target for optimization. This feature greatly benefits the users who need to calibrate TCAD simulation against measured curve such as SIMS. VWF offers multiple ways to use experimental curve as the target of optimization. In this article, two ways of defining curve target are discussed, 1) using vector target; 2) using target definition language of Dbinternal. Which method to choose depends on the optimizer that is being used to solve the problem. Method (1) is suitable for Levenberg-Marquardt, whereas method (2) needs to be used if any of the global optimizers (e.g. genetic optimization) is being selected.

**Using Vector Target**

Vector target uses the **Y** vector in a two-column matrix (**X, Y**). The matrix is formed in the format of TonyPlot user data file as shown in Figure 1. This file can be directly loaded into VWF ( Figure 2), and only its **Y** values are used by VWF as the target for optimization. Once loaded the** Y** values are allowed to be manually modified. The vector target method requires the Levenberg-Marquardt optimization algorithm to be chosen. During curve calibration process, the Y column values in extracted curve from simulations will be compared to the **Y** values stored in VWF, an error vector is computed and passed to the Levenberg-Marquardt optimizer. The optimizer minimizes the difference between values of simulated** Y** and measured **Y** to achieve the purpose of calibration.

Figure 1. Example of TonyPlot user data file. |

Figure 2. Loading vector target file. |

In order to make a meaningful comparison between calculated **Y**s ( s denotes simulated values) and measured **Y**m (m denotes measured values), the two vectors must be ensured to have the same length and each** Y **element yi will be sampled at the same xi element from **X** vector. In reality, it can happen that the measured and simulated curves differ both in dimension as well as in their **X** values. In our method, the measured curve is therefore re-sampled to form a new **Y**m based on the **X**s vector from extracted curve using numerical interpolation. For example, a measured data file (red curve in Figure 3) contains 92 entries, and the extracted green curve from TCAD simulation has 15 entries. The size of original measured curve needs to be reduced to 15 rows, and values of **Y** element are then obtained by interpolating the original measured data using the **X** vector from extracted curve (green curve). A script has been written for this purpose, and reduced size measured curve can be easily generated as shown in Figure 4. With newly generated vector target correct comparison between simulated data and measured data is guaranteed. The same script can also be used to add more data points to the original measurement file to match the data length in extracted curve from TCAD simulation.

Figure 3. Example of measured and simulated curves. |

Figure 4. Re-sampling measurement data. |

**Using Target Definition Language of Dbinternal**

VWF can use Dbinternal simulator to compute a scalar target from a given vector target. With this method the error computation for optimization will be transferred from VWF to Dbinternal simulator. The scalar target allows to use all available optimization algorithms in VWF for calibration. Users can also define their own error evaluation formula.

The error computation is performed using evalmath language of Dbinternal. In Figure 5 a short example is demonstrated. In the example two curves are read into two variables, and the variables are used for evaluating the error between two curves. The file Extracted.dat stores the data from simulation, and file sims.dat contains the data from measurement. Two files must contain the same X vector in order to have a meaningful error evaluation in the subsequent steps. Therefore, the interpolation method described above may be applied to the measurement data to make sure measurement data participated in error evaluation are sampled at the same x points as those for extracted curve. An extract statement is needed to make calculated error target available for VWF.

Figure 5. Defining error as target using target definition language. |

Once the target evaluation block is imported to VWF, by right-clicking mouse in front of extract statement, a small window pops up to allow a selection of “error_target” to be an optimization target (Figure 6 and 7). For calibration purpose the target evaluation block should be combined with TCAD deck so that the extracted data will be updated automatically according to the parameter changes in the simulation.

Figure 6. Selecting “error_target” as optimization target. |

Figure 7. “error_target” loaded to VWF. |

**Conclusion**

In this article we outlined how a calibration task is run in VWF. We demonstrated the usage of different optimization strategies, Levenberg-Marquardt and global optimization, to calibrate model parameters to reproduce SIMS data. Interpolation was used to sample the measured data at the simulated depths. This setup allows for a fully automated calibration without user interaction.