web page logo for WMLib

Introduction

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.


Function Inputs

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.

array with devices inside the wafer set to DEFAULT and those outside the wafer set to NULL

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.

Using the Map Synthesizer Function

The following description gives an idea of how to use the map synthesizer.


1. Create a New Database

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

2. Add a new wafer map

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

Example Code

In this example here are the parameters we wish to use to create our map file:

and here is the code (VB.NET)

results of the map synthesis