PyGFETdb package

Submodules

PyGFETdb.AnalyzeData module

@author: Anton Guimerà @version: 0.1b

Revsion history

  • 0.1b – First version

TODO implement graph for selected channels

PyGFETdb.AnalyzeData.CalcDCparams(DevDC)
PyGFETdb.AnalyzeData.CalcGM(DevDC, DevAC=None, Order=10)
PyGFETdb.AnalyzeData.CalcGMCh(DCdat, ACdat=None, Order=10)
PyGFETdb.AnalyzeData.CalcNoiseIrms(Dev, Fmin=None, Fmax=None, IsOkFilt=True)
PyGFETdb.AnalyzeData.CalcNoiseIrmsCh(ChDat, Fmin=None, Fmax=None, IsOkFilt=True)
PyGFETdb.AnalyzeData.CheckIsOK(DevDC, DevAC=None, RdsRange=[400, 10000.0])
PyGFETdb.AnalyzeData.FitACNoise(Dev, Fmin=None, Fmax=None, IsOkFilt=True)
PyGFETdb.AnalyzeData.InterpolatePSD(DevACVals, Points=100)

PyGFETdb.DB module

Created on Tue Feb 20 13:42:01 2018

@author: aguimera

PyGFETdb.DBAnalyze module

Created on Tue Jun 27 15:08:05 2017

@author: aguimera

PyGFETdb.DBAnalyze.CalcTLM(Groups, Vds=None, Ax=None, Color=None, DebugPlot=False, Label=None)
PyGFETdb.DBAnalyze.CalcTLM2(Groups, Vds=None, Ax=None, Color=None, DebugPlot=False, Label=None, Lerror=4e-07, TrackResistance=None)
PyGFETdb.DBAnalyze.CreateCycleColors(Vals)
PyGFETdb.DBAnalyze.GetParam(Data, Param, Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
PyGFETdb.DBAnalyze.PlotGroupBy(GroupBase, GroupBy, **kwargs)
PyGFETdb.DBAnalyze.PlotGroupBySearchAndGetParam(GroupBase, GroupBy, **kwargs)
PyGFETdb.DBAnalyze.PlotMeanStd(Data, Xvar, Yvar, Vgs=None, Vds=None, Ax=None, Ud0Norm=True, Color='r', PlotOverlap=False, PlotOverlapMean=False, PlotStd=True, label=None, ScaleFactor=1, **kwargs)
PyGFETdb.DBAnalyze.PlotXYVars(Data, Xvar, Yvar, Vgs, Vds, Ud0Norm=True, label=None, Ax=None, Color=None, **kwargs)
PyGFETdb.DBAnalyze.SearchAndGetParam(Groups, Plot=True, Boxplot=False, ParamUnits=None, **kwargs)
PyGFETdb.DBAnalyze.SearchAndPlot(Groups, Func=<function PlotMeanStd>, **kwargs)

PyGFETdb.DBCore module

Created on Tue Nov 15 23:15:19 2016

@author: aguimera

class PyGFETdb.DBCore.PyFETdb(host=None, user=None, passwd=None, db=None, Update=True)

Bases: object

CreateQueryConditions(Conditions)
DeleteCharact(Table, Ids)
FindFillOutput(query, values, Output)
GetCharactFromId(Table, Ids, Trts, Last=False, GetGate=False)
GetCharactInfo(Table, Conditions, Output)
GetData(Conditions, DC=True, AC=True, Last=False, Date=None, IsCmp=None)
GetData2(Conditions, Table, Last=True, GetGate=False)
GetDevicesInfo(Conditions, Output=None)
GetGateFromId(idg)
GetId(Table, Value, Field='Name', NewVals=None)
GetTrtCharact(Table, TrtId, TrtName=None, Last=False, Date=None, IsCmp=None)
GetTrtCharact2(Table, TrtId, TrtName, Last=False)
GetTrtsInfo(Conditions, Output=None)
InsertCharact(DCVals, Fields, ACVals=None, OptFields=None, TrtTypeFields=None, OverWrite=True)
InsertGateCharact(DCVals, Fields, OverWrite=True)
MultiSelect(Table, Conditions, FieldsOut, Order=None)
NewRow(Table, Fields)
PrintQuery = False
UpdateRow(Table, Fields, Condition)

PyGFETdb.DBSearch module

Created on Fri Jan 12 13:12:37 2018

@author: aguimera

PyGFETdb.DBSearch.CheckConditionsCharTable(Conditions, Table)
PyGFETdb.DBSearch.DataSelection(Data, Param, Range, Function=None, InSide=True, Name=None, ParArgs={'Ud0Norm': False, 'Vds': None, 'Vgs': None})
PyGFETdb.DBSearch.FindCommonValues(Parameter, Conditions, Table='ACcharacts', **kwargs)
PyGFETdb.DBSearch.GenBiosensGroups(CondBase, GroupBy='CharTable.FuncStep', AnalyteStep='Tromb', AnalyteGroupBy='CharTable.AnalyteCon')
PyGFETdb.DBSearch.GenGroups(GroupBase, GroupBy, LongName=True)
PyGFETdb.DBSearch.GetFromDB(Conditions, Table='ACcharacts', Last=True, GetGate=True, OutilerFilter=None, DataSelectionConfig=None)

Get data from data base

This function returns data which meets with “Conditions” dictionary for sql selct query constructor.

Conditions : dictionary, conditions to construct the sql select query.

The dictionary should follow this structure:

{‘Table.Field <sql operator>’ : iterable type of values}

Example

{‘Wafers.Name = ‘:(B10803W17, B10803W11), ‘CharTable.IsOK > ‘:(0,)}

Table : string, optional. Posible values ‘ACcharacts’ or ‘DCcharacts’.

The default value is ‘ACcharacts’. Characterization table to get data

The characterization table of Conditions dictionary can be indicated as ‘CharTable’. In that case ‘CharTable’ will be replaced by Table value.

Last : bolean, optional. If True (default value) just the last measured
data for each transistor is returned. If False, all measured data is returned
Last : bolean, optional. If True (default value) the gate measured data
is also obtained
OutilerFilter : dictionary, optional. (default ‘None’),

If defined, dictionary to perform a statistical pre-evaluation of the data. The data that are not between the p25 and p75 percentile are not returned. The dictionary should follow this structure: {‘Param’:Value, –> Characterization parameter, ie. ‘Ids’, ‘Vrms’…

‘Vgs’:Value, –> Vgs evaluation point ‘Vds’:Value, –> Vds evaluationd point ‘Ud0Norm’:Boolean} –> Indicates if Vgs is normalized to CNP

Return : tupple of (Data, Trts) Data: Dictionary with the data arranged as follows:

{‘Transistor Name’:list of PyGFET.DataClass.DataCharAC classes}

Trts: List of transistors

PyGFETdb.DBSearch.RemoveOutilers(Data, OutilerFilter)
PyGFETdb.DBSearch.UpdateCharTableField(Conditions, Value, Table='ACcharacts', Field='Comments')

PyGFETdb.DataClass module

Created on Fri Jun 16 17:43:50 2017

@author: aguimera

class PyGFETdb.DataClass.DataCharAC(Data)

Bases: PyGFETdb.DataClass.DataCharDC

CalcIRMS(Fmin, Fmax)
FFmax = None
FFmin = None
FitNoise(Fmin, Fmax)
GetFgm(**kwargs)
GetFpsd(**kwargs)
GetGmMag(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetGmPh(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetIrms(Vgs=None, Vds=None, Ud0Norm=False, NFmin=None, NFmax=None, **kwargs)
GetIrmsIds(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetIrmsIds15(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetIrmsIds2(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetIrmsVds(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetNoA(Vgs=None, Vds=None, Ud0Norm=False, FFmin=None, FFmax=None, **kwargs)
GetNoAIds2(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetNoB(Vgs=None, Vds=None, Ud0Norm=False, FFmin=None, FFmax=None, **kwargs)
GetPSD(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetVrms(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
NFmax = None
NFmin = None
class PyGFETdb.DataClass.DataCharDC(Data)

Bases: object

CalcFEM(FEMn0=800000000000.0, FEMq=1.602176565e-19, FEMRc=300, FEMCdl=2e-06, FEMRcVgs=None, **kwargs)
CalcGMPoly(PolyOrder=None)
CalcIdsPoly(PolyOrder=None)
CalcUd0()
CheckVgsRange(Vgs, iVds, Ud0Norm)
GetAnalyteCon(**kwargs)
GetComments(**kwargs)
GetContact(**kwargs)
GetDateTime(**kwargs)
GetFEMmu(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetFEMmuGm(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetFEMn(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetFuncStep(**kwargs)
GetGM(Vgs=None, Vds=None, Normalize=False, Ud0Norm=False, **kwargs)
GetGMMax(**kwargs)
GetGMNorm(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetGMV(AbsVal=True, **kwargs)
GetGds(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetIds(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetIg(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetIonStrength(**kwargs)
GetLength(**kwargs)
GetName(**kwargs)
GetPass(**kwargs)
GetPh(**kwargs)
GetRds(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetTime(**kwargs)
GetTypeName(**kwargs)
GetUd0(Vds=None, Vgs=None, Ud0Norm=False, Normalize=False, **kwargs)
GetUd0Vds(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetVds(**kwargs)
GetVdsIndexes(Vds)
GetVgs(Vgs=None, Vds=None, Ud0Norm=False, **kwargs)
GetWL(**kwargs)
GetWidth(**kwargs)
IntMethod = 'linear'
PolyOrder = 10
UpdateData(Data)
PyGFETdb.DataClass.FitFNoise(Freq, psd)
PyGFETdb.DataClass.FitLogFnoise(Freq, psd)
PyGFETdb.DataClass.Fnoise(f, a, b)
PyGFETdb.DataClass.LogFnoise(f, a, b)
class PyGFETdb.DataClass.PyFETPlotDataClass(Size=(9, 6))

Bases: PyGFETdb.PlotDataClass.PyFETPlotBase

AxsProp = {'FEMmu': (1, 0, 'Vgs'), 'FEMmuGm': (1, 0, 'Vgs'), 'FEMn': (0, 0, 'Vgs'), 'FitErrA': (1, 0, 'Vgs'), 'FitErrB': (1, 0, 'Vgs'), 'GM': (0, 0, 'Vgs'), 'GmMag': (1, 1, 'Fgm'), 'GmPh': (0, 1, 'Fgm'), 'Ids': (0, 0, 'Vgs'), 'Ig': (0, 0, 'Vgs'), 'Irms': (1, 0, 'Vgs'), 'NoA': (1, 0, 'Vgs'), 'NoB': (0, 0, 'Vgs'), 'PSD': (1, 1, 'Fpsd'), 'Rds': (0, 0, 'Vgs'), 'Vrms': (1, 0, 'Vgs')}
ColorParams = {'Contact': ('TrtTypes', 'Contact'), 'Date': (None, 'DateTime'), 'Device': ('TrtTypes', 'Devices.Name'), 'Length': ('TrtTypes', 'Length'), 'Pass': ('TrtTypes', 'Pass'), 'Trt': (None, 'Name'), 'Ud0': (None, 'Ud0'), 'W/L': (None, None), 'Wafer': ('TrtTypes', 'Wafers.Name'), 'Width': ('TrtTypes', 'Width')}
GetColorValue(Data, ColorOn)
Plot(Data, Vgs=None, Vds=None, Ud0Norm=False, PltIsOK=True, ColorOnVgs=False, **kwargs)
PlotDataCh(DataDict, Trts, Vgs=None, Vds=None, Ud0Norm=False, PltIsOK=True, ColorOn='Trt')
PlotDataSet(DataDict, Trts=None, Vgs=None, Vds=None, Ud0Norm=False, PltIsOK=True, ColorOn='Trt', MarkOn='Cycle', **kwargs)

PyGFETdb.DataStructures module

@author: Anton Guimerà @version: 0.1b

Revsion history

  • 0.1b – First version

TODO implement graph for selected channels

PyGFETdb.DataStructures.InitACRecord(nVds, nVgs, nFgm, nFpsd, ChNames)
PyGFETdb.DataStructures.InitDCRecord(nVds, nVgs, ChNames, Gate=True)
PyGFETdb.DataStructures.LoadDataFromFile(FileName)

PyGFETdb.GlobalFunctions module

PyGFETdb.Multiprocessing module

PyGFETdb.NoiseModel module

@author: Anton Guimerà @version: 0.1b

Revsion history

  • 0.1b – First version
PyGFETdb.NoiseModel.CalcFreqIndexes(Freq, Fmin=None, Fmax=None)
PyGFETdb.NoiseModel.FitFNoise(Freq, psd, Fmin=None, Fmax=None)

return a, b, pcov

PyGFETdb.NoiseModel.FitLogFnoise(Freq, psd, Fmin=None, Fmax=None)
PyGFETdb.NoiseModel.FitNoise(Freq, psd, Fmin=None, Fmax=None)
PyGFETdb.NoiseModel.Fnoise(f, a, b)

return a/f^b

PyGFETdb.NoiseModel.FnoiseTh(f, a, b, c)

return a/f^b+c

PyGFETdb.NoiseModel.LogFnoise(f, a, b)

return b*f+a

PyGFETdb.NoiseModel.PSDintegral(Freq, psd, Fmin=1, Fmax=5000.0)

return Irms

PyGFETdb.PlotDataClass module

Created on Wed Feb 1 10:31:02 2017

@author: aguimera

class PyGFETdb.PlotDataClass.MyCycle(iterable)

Bases: object

next()
reset()
class PyGFETdb.PlotDataClass.PyFETPlot

Bases: PyGFETdb.PlotDataClass.PyFETPlotBase

AxsProp = {'FitErrA': (1, 'Vgs', 0), 'FitErrB': (1, 'Vgs', 0), 'GMPoly': (0, 'Vgs', 1), 'Gm': (0, 'Vgs', 1), 'GmMag': (2, 'Fgm', 0), 'GmPh': (3, 'Fgm', 0), 'Ids': (0, 'Vgs', 1), 'IdsPoly': (0, 'Vgs', 1), 'Ig': (0, 'Vgs', 0), 'Irms': (1, 'Vgs', 0), 'IrmsIds': (2, 'Ids', 0), 'NoA': (1, 'Vgs', 0), 'NoB': (0, 'Vgs', 0), 'PSD': (2, 'Fpsd', 0), 'Rds': (0, 'Vgs', 1), 'Vrms': (1, 'Vgs', 0)}
ColorParams = {'Contact': ('TrtTypes', 'Contact'), 'Date': (None, 'DateTime'), 'Length': ('TrtTypes', 'Length'), 'Pass': ('TrtTypes', 'Pass'), 'Trt': (None, 'Name'), 'Ud0': (None, 'Ud0'), 'W/L': (None, None), 'Width': ('TrtTypes', 'Width')}
GetColorValue(cy, ColorOn)
Plot(Data, iVds=None, iVgs=None, PltUd0=False, PltIsOK=False, ColorOnVgs=False)
PlotDataCh(Data, PltUd0=False, PltIsOK=False)
PlotDataSet(Data, Trts, PltUd0=False, PltIsOK=False, ColorOn='Trt')
class PyGFETdb.PlotDataClass.PyFETPlotBase

Bases: object

AddAxes(AxNames, Xvar=None)
AddLegend(Axn=None, fontsize='xx-small')
ClearAxes()
ColorSet = <matplotlib.colors.LinearSegmentedColormap object>
CreateFigure(Size=(9, 6))
FigExists()
NextColor()
NextLine()
NextMark()
SetAxesLabels(fontsize='medium', labelsize=5, scilimits=(-2, 2), RdsLim=(100, 15000.0))
SetAxesXLabels(Xvar=None)
line = '-'
lines = <PyGFETdb.PlotDataClass.MyCycle object>
mark = ''
marks = <PyGFETdb.PlotDataClass.MyCycle object>
setNColors(ncolors)
class PyGFETdb.PlotDataClass.PyFETPlotParam

Bases: PyGFETdb.PlotDataClass.PyFETPlotBase

AxsProp = {'FitErrA': (0, None, 1), 'FitErrB': (0, None, 1), 'GMPoly': (1, 'Vds', 0), 'GmMax': (0, None, 0), 'IdsPoly': (1, None, 0), 'Irms': (0, None, 1), 'NoA': (0, None, 1), 'NoB': (0, None, 0), 'Rds': (0, None, 0), 'Ud0': (0, None, 0), 'Vrms': (0, None, 1)}
Plot(Data, xVar, Bias, PltUd0)
PlotDataSet(Data, Trts, xVar, Bias, PltUd0=False)
SetAxesXLabels(Xvar, fontsize='medium', scilimits=(-2, 2))
xVarProp = {'Area': ('TrtTypes', 'Area', 1), 'Date': (None, 'DateTime', 0), 'Length': ('TrtTypes', 'Length', 1), 'Pass': ('TrtTypes', 'Pass', 0), 'W/L': (None, None, 1), 'Width': ('TrtTypes', 'Width', 1)}

PyGFETdb.PlotFunctions module

PyGFETdb.QuantityClass module

PyGFETdb.Thread module

Module contents

Created on Tue Nov 15 17:27:23 2016

@author: aguimera