English
中文
Automatic analysis of FET transfer transfer characteristics data recorded by a Kathley semiconductor test system. Calculated mobility, threshold voltage and on/off ratio of each test will be given.
- Now a combined package of
FETAnal
andNICSA
on Windows,CLab
, is released! It takes up about the same space as either of the modules but does both modules' job. Click the button above to download
- A cross-platform python program
- High robustness
- User friendly
- Automatic analysis in batch mode
- Build-in smoothing function for the transfer curve
- Produces detailed information such as mobility-voltage correlation μ(Vgs)
- Starting from this version, please note that the configuration file was renamed from
Config.ini
toFETAnal.config
, which bears more functions - Optimized user interface (For Windows users)
- Users can now create a desktop shortcut with preset setups by simply double-clicking
CreateDesktopShortcuts.exe
(For Windows users) - The executable is now compiled by
Nuitka
, which translates Python into a C level program and runs twice as fast as the native CPython interpreter! (For Windows users) - The release package switched to a better backend for GUI (Tk/Tcl → Qt for Windows users, MacOS → Tk/Tcl or Qt for Mac users)
- Experimental features:
- Customizable window size
- Automatic placement of the the console window (for Windows only) and the figure window so that they will not overlap
- Changed the figure title to the name of the input file
- Switched to
xlrd
: no more dependency on Microsoft Excel OLE, and process faster - Added support for *nix systems (Mac/Linux)
- Solved the "space-in-filename" issue
- Current settings will be printed out in the terminal for checking
- Automatically get
ColGateV
andColIDrain
- Bug fixes
The requirements listed below are recommended for running this program. If not met, however, workarounds are also provided here.
-
Windows 7 64-bit OS or higher
-
It is recommended to use the compiled program, because it is now a C-level program and runs much faster. You can download the release package, extract it to anywhere, and run
FETAnal\FETAnal.exe
-
[Ad] Alternatively, you can download
CLab
, which includesFETAnal
but is more thanFETAnal
! -
If you, as a developer, want to debug the source code and use your own Python environment, you can download the developers' package. It is no longer under maintenance since version 1.0.4. Although it is not recommended, if you would still like to do so, please refer to the documentation of previous versions
with an executable,FETAnal.exe
, served as "wrapper script", which enables the drag-drop function and prevents abrupt exit on error. You must make sure you have-
Python 2.7/3.4 or higher and with the following libraryNumpy >= 1.12 [also required by Matplotlib]Matplotlib >= 2.2xlrd >= 1.0
-
No VC runtime library required
-
- Mac OS X 10.10 or higher
Fortunately, Python 2.7 with Matplotlib 1.3 and Numpy 1.8 was built-in to Mac OS X. However, xlrd
should be set up additionally; Or, if you do not want to deal with those pip
stuff, we provide this package with xlrd 1.2.0 integrated (which was extracted from official website PyPI.org).
-
Must be with a desktop environment to display GUI
-
Python >= 2.7 with
- Numpy >= 1.8
- Matplotlib >= 1.3
- xlrd >= 1.0
After proper deployment, only FETAnal and FETAnal.config need to be downloaded. Place them in the same folder. Run chmod +x FETAnal
in bash to make it executable.
For *nix systems (Mac OS X and Linux), if you have deployed a Python3 environment rather than Python2, you may want to change the first line of FETAnal
to #!/usr/bin/env python3
instead.
- Be sure to follow the instructions in the previous section to download and set up properly.
- For Windows Version 1.081, you can run
CreateDesktopShortcuts.exe
first for more convenient usage; - Make sure you have set up all experimental parameters properly in
FETAnal.config
following the instructions inside, including the dielectric layer property, length-to-width ratio, column number in the spreadsheet, etc. The section Examples will show you more detailedly about the settings. - If you leave
ColGateV
andColIDrain
zeros, the program will automatically find the column numbers of Vgs and Ids from spreadsheets, in which case you must make sure that the column headers are named exactly as "GateV" and "IDRAIN"/"IDLIN", respectively. - If you leave
W
andL
zeros, the program will automatically find the widths and lengths of channel from filenames, in which case you must name the spreadsheet files this way: *<width>*<length>*.xls, where <width> or <length> must be an interger followed by the same unit, "um" (some acceptable versions: 100um, 1mm, 50 um, 50-um, 50_um, etc.). - The config file of the 1.041 version was written with some experimental functions. If they mess things up, which are not likely, please delete those lines.
-
For Windows and Mac OS X, double-click on the executable to run;
- For Mac OS X, make sure that the default application for executables is "Utilities → Terminal"
- For Mac OS X, execution of Internet files may be blocked by the system's gatekeeper; you can manually allow running this program in System Preferences → Security & Privacy → General
-
For either Windows, Mac, or Linux, you can also run
<path/to/>FETAnal
in cmd/bash to lunch the program; -
When prompted to "Enter `-config' or .xls files array or their path", you can do any of the following:
-
Entering
-config
, which will openFETAnal.config
for you to check or change the settings; -
Entering a folder's name, after which all the .xls or .xlsx files inside will be analyzed;
-
Entering a single filename, or a series of filenames, each separated with space, after which these .xls or .xlsx files will be analyzed
- No need to worry if any spreadsheet among them are not generated by transfer characteristics measurements, since they will be ignored by the program;
- Note that if the filename/dirname contains spaces, you need to use quotation marks to wrap around it (or in Mac OS, you can use
\
to escape a space character) - The filename/dirname should not be longer than 260 characters, which is caused by Python, so please don't blame me for that :)
-
Dragging the folder/file/files of interest to the terminal, which can save effort in inputing (Typically, the system will take care of the "space-in-filename" issue for you, so you do not need to do anything else);
-
[For Windows only], dragging the folder/file/files to the executable can do the same trick with above;
- For the compiled version, it would be more convenient if you create a desktop link (shortcut) to
FETAnal.exe
, because then you can drag the folder/file/files directly to that shortcut and open it withFETAnal
- For the compiled version, it would be more convenient if you create a desktop link (shortcut) to
-
-
For either Windows, Mac OS, or linux, to run
<path/to/>FETAnal [bar] [foo]
in cmd/bash is equivalent to running the program without arguments followed by entering[bar] [foo]
to the program;
- Data processing: each transfer curve is smoothed with a Savitzky-Golay filter, and then every five points are taken for a linear fit. The mobility (μ) and threshold voltage (Vth) are then extracted using the following equation:
√Ids = √[(μ C' W)/(2L)] (Vgs − Vth)
- For each spreadsheet, unless not applicable, the program will print some important results to the terminal as shown in the picture above. They are: maximal mobility (μ) and threshold voltage (V_th) in both forward scan (f) and backward scan (b), and on/off ratio.
- The aforementioned results will also be saved to
./Results/Results_mmddyy_HHMMSS.csv
, which you may open with Microsoft Excel. If multiple files are analyzed, the path of the first file will be taken as the storage path. A more detailed and exhaustive report is saved to./Results/Data_mmddyy_HHMMSS.csv
, including the correlation between mobility/threshold voltage and gate voltage, μ(Vgs) and Vth(Vgs). - Figure of transfer curves will be shown in a separate GUI window, where square (scatter gram) is for √I-V, solid line for smoothed transfer curve, dashed line for linear fit (where μ is maximal), "+" (scatter gram) for mobility-voltage correlation, and different colors for distinguishing a forward scan from a backward one.
- These figures are stored at "./Results/<filename>.png" (or .svg, .bmp or some other formats else if you change
PICEXT
inFETAnal.config
). - Scroll the mouse wheel on the figure to view the previous/next one.
- Two examples are provided here. You can download them as a zip file here.
- For 'arc CNT', set DIELECTRIC = 0, W, L = 0, 0, and TD[0] = 300 which means the dielectric layer is SiOx of 300 nm thick, and the length-to-width ratio will be automatically extracted from filenames.
- For 'cytop', set DIELECTRIC = -1 and DCP = 3.7e-9, since the reported capacitance of CYTOP dielectric layer (processed through a certain procedure) is 3.7×10−9 F/cm2; besides, set W, L = 20, 1, which means the length-to-width ratio of the channel is 1/20 for every test (so you do not need to specify in the filename). Note that in this folder, 'TPDBP-C-3-o' recorded the data of output characteristics rather than transfer characteristics, but do not worry since the program will leave it alone and process the data in other files properly.
- If you want to compile the Python script on Windows, you may use
Nuitka
by runningCompile\make.bat
.It is crucial not to install(Already fixed by higher versions)numpy
higher than 1.16.2 normatplotlib
higher than 3.0.2. If you don't believe that, just try and you'll know why. - This tool is rather unreliable at the current stage, and it is usually very tricky to compile executables. Please see the corresponding section in
NICSA
for reference