While in most cases WMLib is used to read and convert wafer maps, occasions arise where a user may only know the wafer diameter and the step size of the device. In such a case it may be useful to be able to create a "blank" wafer map and then manually knock die out or assign certain die as reference or alignment devices.
This is often useful when programming a probe station when no existing map is available.
Map Format
Select from one of the supported (and licensed) WMLib formats.
Wafer ID
A alpha-numeric string that identifies the wafer.
Wafer Flat Location
Location of the wafer flat/notch (0,90,180,270). The flat does not affect which die are considered to be inside the wafer.
Wafer Diameter (Units)
The wafer diameter [units]
StepXY (Units)
The device step size [units]. Device XY dimensions == step XY values.
Default Bin Code
Devices that fall inside the wafer boundary will be assigned the DEFAULT bin code. Devices outside the wafer boundary will be assigned the NULL bin code.
Additional functions can be used to fill in more information about the map file. After that, other WMLib and WMView functions can be used to change die bin codes, create new bin codes for alignment devices and extract starting and ending testable devices for generating probe station programming.
The following description gives an idea of how to use the map synthesizer.
Create a new input and output database with the desired wafer size and wafer map format. Any existing input and output databases will be removed from the library. It is the responsibility of the client application to check whether the output database is modified and could need saving before calling this function. The return value will be StatusOK
if successful, or an error code.
The function newDB
is used to create a new database.
C++
int newDB(const char* format,
WMCLib::XY waferSize);
C#
public int newDB(string format,
XY waferSize);
VB
Public Function newDB(format As String,
waferSize As XY) As Integer
The function addWaferMap
adds a new wafer map to the existing input and output databases. The wafer map will match the current wafer map format and wafer size of the input and output databases. The new wafer map will be a synthesized array using the provided device size and bin values.
Devices which fall completely inside the wafer will be assigned the given binValue parameter. Those devices which fall completely outside the wafer will be assigned the default NULL bin. Those devices which straddle the wafer edge will be assigned the given edgeBinValue parameter.
C++
int addWaferMap(const char* waferID,
WMCLib::Flat flat,
WMCLib::XY deviceSize,
const char* binFormat,
const char* binValue,
const char* edgeBinValue);
C#
public int addWaferMap(string waferID,
int flat,
XY deviceSize,
string binFormat,
string binValue,
string edgeBinValue);
VB
Public Function addWaferMap(waferID As String,
flat As Integer,
deviceSize As XY,
binFormat As String,
binValue As String,
edgeBinValue As String) As Integer
In this example here are the parameters we wish to use to create our map file:
and here is the code (VB.NET)
Dim waferSize As WMNLib.XY = New WMNLib.XY(150.0, 150.0, WMNLib.UnitsMM)
If m_WMNLib.newDB("E5-1296", waferSize) = WMNLib.StatusOK
Then
Dim deviceSize As WMNLib.XY = New WMNLib.XY(3.5, 2.5, WMNLib.UnitsMM)
m_WMNLib.addWaferMap("Synthesized-01", WMNLib.FlatBottom, deviceSize, "ASCII-1", "1", "E")
End If