WaferProber: Difference between revisions

From SweepMe! Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 6: Line 6:
== User interface ==
== User interface ==


* The button "Get probe plan" is used to retrieve the probe plan.
* Use the selection box "Sweep value wafer" to choose which source is used to vary wafers.
* The button "Go to next die" can be used during the measurement to go to the die that would be the next in the sequence.
* The button "Go to next subsite" can be used during the measurement to go to the subsite that would be the next in the sequence.
* Use the selection box "Sweep value die" to choose which source is used to vary dies.
* 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.
* Use the selection box "Sweep value subsite" to choose which source is used to vary subsite.
* Use the right-click menu of the die table or the current table to easily change the selection.
* 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 ==
== Sweep values ==


The standard sweep values are "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 die" and "Current subsite" which means that either the die table or the subsite table is not used. Instead the wafer prober contacts the current die or current subsite.
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 actual sweep value of the module is defined to be a string of the format 'Die[<die_identifier>]_Sub[<subsite_identifier>]' where <die_identifier> and <subsite_identifier> are an index or any string that indicates a position to go. This sweep value is handed over to the device class and the device class has to make sure during 'apply' that the information about the next die and subsite to go are extracted correctly. Furthermore the sweep value is used for the file name if the module 'WaferProber' is above 'MakeFile' in the sequencer.
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>]'


== Device Class programming ==
== Driver programming ==


=== Module specific concepts ===
=== Module specific concepts ===

Revision as of 23:37, 21 December 2022

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 next sweep value is given by "Die[<die_identifier>]_Sub[<subsite_identifier>]" where <die_identifier> is the next value for the die and <subsite_identifier> is the next value for the subsite. These values are created based on the return values of the function 'get_ProbePlan'
  • 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

get_ActualCoordinateX

use this function to return the x coordinate as string

get_ActualCoordinateY

use this function to return the y coordinate as string

get_CurrentDieAndSubsite

use this function to return information about the current die and current subsite as two strings. The variable 'self.port' can be used if the port_manager is used. The returned strings should be in agreement with the strings that are returned by the function 'get_ProbePlan'.