cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Choose Language Hide Translation Bar
pankajsync
Level I

Threshold voltage Calculation

I would like to add a new column 'Vth' in my table with the following calculation:-

First I need to find the index i of column 'IDS' where the 'IDS' is nearest to 1e-9 (or Log10[IDS] = -9); and then Vth = VGS(i). It should be grouped by Site, Measurement, SWP, Device, Wafer columns as well. That is, each unique combination of Site, Measurement, SWP, Wafer, Device will have one Vth value.

One technique to find exact VTH could be
Find VGS, logIDS, which is just above -9..-- Call it VGS_u, log(IDS)_u

Find VGS, logIDS, which is just below -9..-- Call it VGS_i, log(IDS)_i

calculate slope, m = abs(log(IDS)_u-log(IDS)_i)./abs( abs(VGS_u-VGS_i))

Exact VTH = VGS_i + 1/m*(9-abs(log(IDS)_i)))


Note the SWP column is sweep of VGS in forward (0) and reverse (1) direction; therefore the lower and higher values of VGS need to be taken care of in proper manner. Plot logIDS (y-axis) vs. VGS (x-axis) and overlay by SWP (for a given  Site, Measurement, Wafer, Device), to know what I am talking about.

6 REPLIES 6
Phil_Kay
Staff

Re: Threshold voltage Calculation

Hi,

Maybe someone who works in semiconductor will know more about what you are trying to do and can help you.

I am struggling to understand what you need to do (I have never worked in semiconductor). So it would help if you could provide a table with just a few rows to illustrate what it is that you need to do with the larger data table. It is much easier when you can see what you are trying to achieve - describing in words is often difficult.

Regards,

Phil

ian_jmp
Staff

Re: Threshold voltage Calculation

It's been a while since I thought about such things. I took a quick look at your data. In connection with the plot below, can you explain further how you would want to combine the results from the forward and reverse sweep to get one VTH value for each combination, please?

 

Screenshot 2021-07-15 at 10.50.46.png

 

Having looked at a few other combinations, I know that their data is not always so nice. Is the '-9' value you mention universal?

pankajsync
Level I

Re: Threshold voltage Calculation

ian_Jmp, Yes exactly. But I want VTH value separately for forward and reverse sweeps. I just wanted to highlight that in 'forward' sweep, the row number would be increasing (as VGS increases) while for reverse sweep, the row number would decreasing (as VGS increases). You may have already noticed that already; I just added as a caution because upper and lower values of VGS values (around -9 current) can be confusing in forward and reverse sweeps.

Yes logIDS=-9 = universal.

Re: Threshold voltage Calculation

Hi,

 

Based on the graph below, it does not appear that it is always possible to find consecutive values of log10[IDS] straddling -9, (x5), so you'd have to decide how you'd like to report that. Also, in cases where log10[IDS] does cross -9, (x6) the closest values above and below -9 may not fall on consecutive rows, so care must be taken to define what you want there, as well.

 

brady_brady_0-1626468017532.png

 

ian_jmp
Staff

Re: Threshold voltage Calculation

You could consider using this kind of approach (also saved in the attached table):

NamesDefaultToHere(1);

// Make sure :"Log10[IDS]"n  has the 'Response Limits' property set appropriately
dt = DataTable("CC_JMP_Final.jmp");

// Perform a 'flexible fit' (knotted spline with ten knots) and use the profiler to optimise the response.
// Use a 'By' variable to get a fit for each distinct level
fm = dt << Fit Model(
					Y( :"Log10[IDS]"n ),
					Effects( :VGS & Knotted( 10 ) ),
					By( :SWP ),
					Run( Profiler(1, Maximize and Remember), :"Log10[IDS]"n )
					);

// Collect optimised 'X' values into a table
firstReport = fm[1] << Report;
dt2 = firstReport[NumberColBox(24)] << makeCombinedDataTable;

It may or may not be a reasonable way to try to handle some of the issues mentioned by @brady_brady above. It's certainly not a recommendation, but it might get you thinking. It's also doing way more work than is required, but has the advantage that it's using inbuilt functionality and no real scripting. Using it on the full table took about three minutes on my laptop.

lkimhui
Staff

Re: Threshold voltage Calculation

Hi Pankaj,

 

I tried to do it this way and hope that it turns out to be a solution for your case.

First, select all 5 columns to be combined, right-click on one of the columns > New Formula Column > Character > Concatenate with Space. Secondly, right-click on this new column > New Formula Column > Group By.

 

Then create a new column to calculate Abs(Delta LogIDS to -9). Right-click on this newly calculated column > New Formula Column > Aggregate > Minimum.

Finally, create a new column (Vth) by using the IF condition. If Min Abs(Delta LogIDS) = Abs(Delta LogIDS) then return VGS value else return blank.

You can clean up the table by subsetting rows with Vth value in it and use TABLE > UPDATE to add Vth column back to your original table.

*Do take note that at times you might find duplicated rows. And they can be due to:

1. Double measurement with same IDS value, OR

2. There is more than one entry of a unique combination sharing the same nearest to 1e-9 IDS Value.

 

I also plotted Vth values on Wafer 8983-07, partition by Wafer / Device / Measurement / Site, and overlay by SWP. Is this something you looking for? Vth value for each of the unique combinations?

You may refer to the attached table for details.

 

Vth.JPG

Kim Hui, Lim