WaferProber

From SweepMe! Wiki
Jump to navigation Jump to search

A wafer prober is an instrument to automatically electrically contact positions on silicon wafer. A wafer is typically organized in rectangular 'dies' that have identical structures and are also called chips or sites. These dies can contain different test structures that are addressed by subsites (or subdies).

Concept

The module is designed to call a probe plan from an external software (e.g. Nucleus, Velox) or from a probe plan file, depending on the instrument driver. The user can then select wafers, dies, or subsites to be used in tables or simply ask for using the current one. The combination of all selected wafers, selected dies and selected subsites is used for the measurement run.

User interface

  • Use the selection box "Sweep value wafer" to choose which source is used to vary wafers.
  • Use the selection box "Sweep value die" to choose which source is used to vary dies.
  • Use the selection box "Sweep value subsite" to choose which source is used to vary subsite.
  • The button "Update" is used to retrieve the probe plan. It connects to the wafer prober and ask for all information about wafers, dies, and subsites. In case information are loaded from a wafer map file, a file dialog opens where the user can select a file.
  • Use the right-click menu of the die table or the current table to easily change the selection or to skip a wafer/die/subsite during a run.

Sweep values

The standard sweep values are "Wafer table", "Die table", and "Subsite table" which means that the selections within the tables at the bottom of the module are used. Further sweep values are "Current wafer", "Current die" and "Current subsite" which means that either the corresponding table is not used. Instead the wafer prober remains at the current wafer, current die, or current subsite.

The sweep value of the module is defined to be a string of the format 'Waf[<wafer_identifier>]_Die[<die_identifier>]_Sub[<subsite_identifier>]' where <wafer_identifier>, <die_identifier>, and <subsite_identifier> are an index or any string that indicates a position to go. This sweep value is going into the data file name if the WaferProber module is above the MakeFile module. Further, this sweep value string is handed over to the driver for further processing. In case there is no variation of a wafer, a die, or a subsite the corresponding part in the sweep value is missing. For example, a semi-automatic wafer prober that does not support changing wafers, the sweep value would be just 'Die[<die_identifier>]_Sub[<subsite_identifier>]'

Driver programming

Module specific concepts

  • The modules hands over the current sweep value to the driver during the semantic function apply by defining self.value in the driver. The sweep value is a string given by "Waf[<wafer_identifier>]_Die[<die_identifier>]_Sub[<subsite_identifier>]" where <wafer_identifier> indicates the wafer, <die_identifier> indicates the die, and <subsite_identifier> indicates the subsite. These values are created based on the content of the wafer table, the die table, or the subsite table of the module.
  • Further, the module defines the variable "self.sweepvalues" in the driver during the semantic function apply. It is a dictionary that containes the following keys - values:
   * "Wafer" -> the wafer to be measured
   * "Die" -> the die to be measured
   * "Subsite"  -> the subsite to be measured
   * "NextWafer"  -> the next wafer
   * "NextDie"  -> the next die
   * "NextSubsite"  -> the next subsite
  • If the user selected "Current die" or "Current subsite" as sweep mode, the sweep value is asked for using 'get_CurrentDieAndSubsite'. This function should return the same format of string as used by 'get_ProbePlan'.
  • It is the duty of the device class to extract the correct value for die and subsite in the function 'apply' from the sweepvalue.

Module specific functions

There are function that are only called by the WaferProber module. We recommend to use the device class 'WaferProber-Cascade_Nucleus' as a template.

get_ProbePlan

use this function to return a list of dies and a list of subsites. The variable 'self.port' can be used if the port_manager is used.

get_ProbePlanFileName

use this function to return the name of the probe plan file. The variable 'self.port' can be used if the port_manager is used. If not applicabale return an empty string or a short message like "Probe plan updated" as a message for the user.

get_ActualDieText

use this function to return a string of the current die index that is used to refresh the user interface

get_ActualSubsiteText

use this function to return a string of the current subsite index that is used to refresh the user interface