The software structure for croc_wlt can be illustrated as follows:
-
wlt
-
hardware
probe_cards
-
wpac
wpac
monitor_edge_sensors
-
probe_station
cm300xi
-
instruments
instrument
utils
status_keithley
status_tti
-
analysis
data_processors
utils
-
duts
chips
wafers
-
config
main_config
plotter_config
analyzer_config
daq_config
chiptester
wafertester
jsonplotter
waferanalyzer
wafermap
-
wlt
The Python package, which can be installed following the instructions found in the user guide.
hardware
Subpackage for controlling the wafer-level testing hardware. It is divided in three Python subpackages, which control the probe station, the auxiliary card and the instruments (power supplies, source-meter unit).
hardware.wpac
Inside this package, the module wpac
can be found, which defines the Wpac
class used for interfacing with the auxiliary card. The class employs the
pyserial
package in order to send command strings to the WPAC and read
back the answer.
The wpac
module can also be executed directly in order to reset the WPAC (and
the probe card) and read back all probe card registers after configuring them.
The package also contains a utility script for the wafer contact procedure:
monitor_edge_sensors
. This script, when run, monitors and prints the status of
the probe card edge sensors in a loop (with approximately 0.5 s) of sleep time.
The monitor_edge_sensors
script uses the curses
Python module for its
text user interface and for printing the color-coded edge sensor status.
hardware.probe_station
The cm300xi
python module defines the CM300xi
class used for managing
the probe station via GPIB commands. The class contains, for example, methods
for changing the position of the chuck, getting to contact/separation height and
loading a wafer into the probe station.
The module imports the Linux GPIB library (version 4.1.0) which can be found on the SourceForge page for the project.
hardware.instruments
Subpackage for controlling the TTi power supplies and the source-meter unit. It
contains the library for controlling these devices (in the instrument
module)
and a collection of higher-level methods for controlling them (utils
module).
The classes defined in instrument
use the pyserial
package for sending
SCPI commands to the associated instruments.
hardware.probe_cards
The module contains the definition of the probe card dictionaries that contain hardware-related information about the different probe cards which can be used.
chiptester
The chiptester
module is the one in which all the chip-level testing is
performed, via the class ChipTester
defined inside.
Inside ChipTester
, the testing routines for the chips can be found.
The chiptester
module can be executed directly in order to start a testing
procedure according to the settings defined in the config
subpackage. More
information about using chiptester
can be found in the Software guide
page.
wafertester
This is the croc_wlt module used for managing the probe station during the testing. It takes care of controlling the movements of the probe station chuck, such as moving to the next die or getting to contact height.
More information about using wafertester
can be found in the
Software guide page.
wafermap
Utility module for producing wafer maps using the CERN ROOT framework. In
this module, the WaferMap
class is defined, which is the object used to produce
wafer maps.
jsonplotter
Module which produces graphical plots from the JSON data with the test outputs according to an input Python configuration file.
It takes as input a list of JSON files or a folder with the chiptester
output.
This module is intended for visualisation tests on a small set of chips during the development stage.
waferanalyzer
Extension of the jsonplotter
module managing the wafer-level overview data in
the form of wafer maps and final chip quality metrics.
It takes as input a folder with the wafertester
output.
This module is intended for the production-level testing of complete wafers.
analysis
Utility subpackage providing relevant functionality for the jsonplotter
and
waferanalyzer
modules.
analysis.utils
Utility functions used for analysing the JSON output of the tests inside the
jsonplotter
and waferanalyzer
modules.
analysis.data_processors
Collection of simple functions for post-processing of input data, which can be used inside configuration files for analysis of test data, e.g. linear fits or statistical metrics.
config
Configuration subpackage for croc_wlt. The main settings of the software can
be found and edited in the wlt.config.main_config
module. The subpackage also
contains default configuration files for jsonplotter
and waferanalyzer
.
Moreover, the daq_config
module contains the data used to generate the DAQ
configuration files.
duts
Subpackage with definitions related to the Devices Under Test (DUTs) for
wafer-level testing. It contains the chips
and wafers
modules, which define
data related to these two DUT types.