« PreviousContinue »
Thus knowing a, b, and c, y can be calculated from z, the transformed value of x, by
Two forms of data input are employed. The C-V data are read from a file which is titled CVIN. The file CVIN is entered into the computer before cvl is executed. Each line of CVIN consists of a line number, the capacitance in picofarads, and the applied voltage in volts, where reverse bias is considered positive. Data are listed in order of decreasing capacitance. A sample CVIN file, based on data reported in (10), is given in Appendix C.
The second form of data input involves entry of scaling and diffused layer parameters as called for by INPUT statements. The program statements which request these data are lines 2514 to 2585 (see listing in Appendix A). The relevant parameters are (1) Gl or 1ST LOG, the minimum value of dopant density which is within the range of the plot (that is, the dopant density at the origin of the plot), (2) G2 or CHAR/DEC, the number of teletypewriter carriage spaces between decades of dopant density (the plot is semi-log), (3) G3 or LINES/UM, the number of teletypewriter line feeds to represent 1 um on the plot (all positive values are permitted), (4) D or DIAMETER, the diameter of the diode in mils, (5) X5 or JCT DEPTH, the junction depth of the diffused layer, in micrometres, (6) NO or SURFACE DENS, the density of diffusant atoms at the surface of the diffused layer (as measured for instance by junction depth and sheet resistivity on a pilot slice (15]) in (centímetres) 3, and (7) N3 or ESTIMATED NB, the background dopant density within the diffused layer in (centimetres)-3. example of such data input is given in the sample calculation of Appendix C.
Data output is in the form of a plot of dopant density versus distance from the junction, N(B) vs. B. Following this plot, final values of A and N(A) representing the maximum penetration of the depletion region into the diffused layer and the net dopant density at that point, are printed out (lines 3990 to 3992) along with the percent peripheral capacitance correction at the last data point (i.e., the maximum peripheral capacitance correction), and an indication of whether the range of the INERF subroutine has been exceeded (see sec. 3.4.). Finally a true Gaussian profile is calculated and plotted for comparison with the experimental plot. The experimental N(B) vs. B values are written into a file named NBVSB, and the numerical values of the true Gaussian plot are written into a file named IDEAL. These can be listed if desired after the program has run as is done in Appendix C.
The ERF subroutine consists of lines 1400 to 1565 in the listing of Appendix A. When this subroutine is called it operates on the variable E, calculating El = erf(E) and Jl = erfc(E) where E corresponds to x in eqs (13) through (15). If E
nd Jl are set equal to 0 and 1 respectively (lines 1400 to 1406). If E > 9, El and Jl are set to equal 1 and 0 respectively (lines 1410 to 1416).
<E<l, El and Jl are calculated from eqs (13) and (14). In lines 1430 to 1434 the first 10 terms (to N = 9) of the power series are summed. Additional terms would contribute to the seventh and higher significant figures which is beyond the range of BASIC. In line 1440 the series is multiplied by the pre-factor indicated in eq (13) to get El erf(E).
If 9 > E > 1, Jl = erfc(E) is calculated from eq (15). The first approximation to the continued fraction is of the form 2x/(2x2 + 1), as calculated in lines 1500 to 1508 and represented by F5. A second approximation to the continued fraction includes the term 2x2 + 5 in eq (15) and is calculated in lines 1510, 1512, and 1520 to 1526 and represented by F9. The first and second approximations are compared in lines 1528 and 1530. If the first and second approximations differ by 1 part in 106 or more, a third approximation is calculated in lines 1538 to 1546 and 1520 to 1526 to include the term 2x2 + 9 in eq (15). The second and third approximations are then compared to determine whether the continued fraction has converged.
Continued iterations are made, each time comparing the present with the previous approximation, until a relative difference of less than 1 part in 106 is obtained. In line 1550 the continued fraction is multiplied by the pre-factor indicated in eq (15) to get Jl erfc(E).
Each approximation of the continued fraction is expressed as a quotient of two expressions (line 1526). As the order of the approximation increases, the number of terms which are multiplied together to construct the two expressions increases. The two expressions could become excessively large and cause overflow. This is prevented by dividing several terms by E3 = 1025 whenever the denominator of this quotient exceeds 1025. This is done in lines 1532 to 1537. The division by this scale factor does not affect the result since it is applied to both numerator and denominator of the quotient.
The INERF subroutine consists of lines 1000 to 1080 in the listing of Appendix A. When this subroutine is called, it operates on the variable H9 and calculates E = erfc-?(H9) by a table look-up approach. Note that H9 in the program corresponds to x in eq (16) and E corresponds
If H9 > 1 (x > 1 in figure 2) the inverse complementary error function is not defined; E is set equal to zero and the flag 25 (which is printed when the main program is run) is set equal to 2 (lines 1000 to 1003). If H9 = 1, E is set equal to zero (lines 1004 to 1007). The transformed variable HO which corresponds to z is calculated in line 1010 by eq (17). If HO is less than 2 (corresponding to H9 less than 1.39 x 10-7) E is set equal to 3.76656 and flag 25 is set equal to 1 in lines 1012 to 1018. This lower limit arises because (1) the transformation of eq (17) was defined to be applicable for x in the range 10-7 to 1, (2) the value of x corresponding to z = O does not appear in the data table which runs form z = 1 to 100, and (3) the parabolic fit requires that z not be less than 22 (eq (18)) so that interpolation cannot be performed for values of x (19) for which 2 (HO) is less than 2. Factors (2) and (3) therefore serve to make the lower limit of H9 be 1.39 x 10-7 rather than 10-7.
In lines 1020 to 1045, 21, 22, 23, yi, y2, and y3 are defined as H1, H2, H3, H5, H6, and H7, respectively (see figure 3). The coefficients of the parabolic fit a, b, and c or 11, 13, and 14 are calculated by means of eqs (23), (24), and (22), respectively in lines 1050 to 1065. The unknown E (y) is then calculated in line 1070 as in eq (25).
The TABLE data file consists of lines 150 to 188 in the listing of Appendix A. As discussed in sections 2.4. and 3.4. and referring to eqs (16) and (17), TABLE is a list of y (E) values which correspond to integer values of 2 (HO) from 1 to 100 inclusive and which facilitate the computation of the function E erfc-1 (19) for H9 values from 1.39 x 10-7 to 1.
The PLOT Subroutine
The purThe PLOT subroutine consists of lines 2150 to 2460 in the listing of Appendix A. pose of the PLOT subroutine is to produce a semilog plot of dopant density N(B) across the paper of the teletypewriter printout versus distance from the junction B down the paper. The subroutine is also used to plot the true Gaussian profile for comparison with the experimental profile.
The PLOT subroutine can be understood with the help of the flow chart of figure 4 and the partial table of symbols in table 1. Some of the line numbers in the main program are also found in table 1. The flags 23, 26, and 27 are all initially zero. The FLOT subroutine operates on the quantities Xl and Yl which are calculated from B and N2 (where N2 corresponds to N(B)) in lines 3240 and 3270. These in turn are derived from the C-V data (lines 3000 to 3230) in the first plot and calculated values (lines 4010 to 4050) in the second plot. The first Xl, el pair (26 = 0) is stored as X2, Y2. The Yl values of succeeding Xl, el pairs are accumulated in Y2 until an Xi, Yl pair is input for which X2 > Xl, that is, which should be plotted at a farther position along the depth axis. When this occurs Y2 is averaged and integerized. If no data points have yet been plotted (XO 0), + signs are printed at decade intervals along the dopant density axis and xo is set equal to 1 before proceeding further. The depth X2 is compared with the line space on the plot xo. If X2 > X0, a series of tick marks in the form of + signs are printed along the depth axis until xo is advanced to X2 (where the data point is to be plotted). The origin of the depth axis is the first of these
Y2=Y1+Y2 Z = 2+1
PRINT TICK MARKS ON NIB)
PRINT TICK MARK ON B AXIS; NO DATA POINT
PLOT POINT IN APPROPRIATE
хо хо + 1
distance from junction into the specimen, um
tick marks and not the set of tick marks denoting the scale on the dopant density axis as shown in figure 5. There are six possible ways in which the data point may appear in the plot. (1) If Y2 < 3, the data point is off scale at the low end (dopant density too small); this is represented by the symbol < to the left of the tick mark preceded by the value of 2 to indicate how many data points are off scale at that depth value (lines 2260 and 2310). (2) If Y2 > 71, the data point is off scale at the high end (dopant density too large); this is represented by the symbol > to the left of the tick mark preceded again by the value of 2 (lines 2300 and 2370). (3) If a single xi, Yl pair (for which 2 = 1) falls on the depth axis, an asterisk * is printed on the axis at that depth value in place of the usual + sign (lines 2270 and 2330). (4) If an average of several xi, Yl pairs (2 > 1) falls on the depth axis, a 0 is printed on the depth axis at that depth value in place of the usual + sign and the value of 2 is printed to the left of the O (lines 2270, 2329, and 2342). (5) If a single X1, Yl pair (Z = 1) falls within the range of the plot but not on the depth axis, a printed at the proper number of carriage spaces at the proper depth position (lines 2290 and 2350). (6) If more than one Xl, Yl pair (2 > 1) falls at the same position along the depth axis and Y2 is such that it is within the range of the plot but not on the depth axis, a 0 is printed at the proper number of carriage spaces at the proper depth position, and the value of 2 is printed to the left of the tick mark (lines 2290, 2349, and 2362). After the point is plotted xo is incremented (that is, the depth axis is advanced one line), 2 is reset to 1, X1 and Yl are changed to X2 and Y2, and a new x1, Yl pair is sought (lines 2380 to 2406). The process continues until either all the C-V data have been processed (lines 3001, 3290, 2155, 2385) or the true Gaussian plot has been completed. Note that the quantities 23, 26, and XO are reset to zero before the start of the second plot (lines 4000 to 4002). The flag 27 at line 3282 determines whether experimental or calculated values of X1 and Yl are sent to the PLOT sub routine.
An example plot, showing the six possible print-outs discussed above, is shown in figure 5. In practice it is desirable to choose G1 and G2 so that as few points as possible are off scale. It is also desirable to choose G3 so that no more Xl, Yl pairs than necessary are
averaged and represented by a single data point on the plot. Averaged points mean reduced resolution.
It should be noted that the PLOT subroutine breaks down when 10 or more Xi, Yl pairs are averaged to produce one printed data point. Because 2 is printed in 12 format (line 2312), and because one of those two spaces is reserved for the sign (even though the sign is positive and not printed), a two-digit number cannot be represented, and the print-out reverts to exponential format. The data point may or may not be plotted properly depending on whether it lies outside or inside the field of the exponential number and tick mark. This problem could be resolved by printing 2 in 13 format and adjusting the TAB(x) arguments accordingly. A carriage space otherwise available for plotting would be sacrificed, however.
As one further comment, it is possible to nearly disable the PLOT subroutine by a proper choice of scale factor G3 when plots are not desired. If G3 is made sufficiently small, for example, 0.01, all dopant density values corresponding to distances of less than 50 um are averaged and plotted as a single point. In addition the true Gaussian plot will probably not appear at all since, for such small values of G3, xl is always 1 (line 3270). The FORNEXT loop (lines 4010 to 4050) is therefore completed for all necessary B values before any points are plotted, and the program advances to line 4060 and exists.
Figure 5. A plot artificially constructed to show the six types of printed out-