WMVu web header

WMVU Revision History


This page summarizes the changes, enhancements and fixes to the WMVU program.


v1.20 [09/04/2024]

Space Character as NULL bin

Fixed a parsing error when a map file defined the space character (0x020) as the null bin.




v1.18 [06/27/2024]

UF-3000 High Column/Row Count

UF-3000 allocates 9 bits plus a sign bit to define array coordinates. For a wafer with more than 512 rows or columns one can get an overflow in the count into the 10th bit; a location not allocated to the coordinate position. The UF-3000 reader has been updated to check this overflow bit; this allows row/column range up to 1023. You must set the INPUT_VARIANT=2 in the UF-3000.txt file located in the WMConfig directory to enable this behavior. [Reported by pSemi and found so far only in UF-3000 files submitted by them]


UF-3000 Axis Orientation Fix

Fixed our interpretation of the array origin location and the direction of increasing X and Y. Previous versions may have displayed a mirrored image of the die locations for the wafer. [Reported by pSemi]




v1.13 [12/12/2023]

G85 HEX-4 Write Fix

Fixed the G85 writer so that it writes the correct attribute to identify a bin format of HEXADECIMAL-4.


SEMI-E142 DECIMAL-6 Bin Codes

We were recently presented with a SEMI E-142 file where the bin code was defined as ASCII with 6 characters. Added support for the DECIMAL-6 bin format for SEMI-E142 wafer maps.




v1.12 [12/11/2023]

G85 with Hexadecimal-4 Bin Codes

We recently ran across a G85 map file that used Integer2 (which we are calling Hexadecimal-4) bin codes which we did not support. This has been added to the list of supported bin code types.


MAP 001 Bug Fix

We fixed a bug reading MAP 001 format files reported by a customer.


SECS/EG Binary Map Parser Bug Fixed

Customer reported a bug in reading a SECS/EG binary map file. Fixed a bug that corrected this.




v1.11 [08/10/2023]

Added support for reading/writing the new BEIJING wafer map format.




v1.09 [03/26/2023]

Support for ASCII files encoded using UTF-16 (instead of UTF-8) is now supported.




v1.08 [02/02/2023]

revised for consistency with WMEdit.




v1.07 [12/22/2022]

Added support for a rectangular wafer map geometry. There is now a control in the Wafer Map Properties grid, to select the wafer map shape, which can be circle (the default), or rectangle. This setting is only used for visualization purposes.




v1.06 [11/14/2022]

Modified/improved the automatic wafer center calculation algorithm.




v1.04 [10/12/2022]

Software Updates

This version improves the parsing of UF3000 files. In addition to the pass/edge/fail flags in the wafer map die results, the new version now also reads the category data and interpret it as a bin code. This allows more differentiation, primarily among the fail devices.


v1.03 [10/02/2022]

Software Updates

Modified the TEL(P-8) parser so that if more records are found in the file beyond the 1 byte record count data field, those records will be read and added to the wafer map. This is helpful when the number of records exceeds 256 entries, which is the maximum allowed for the TEL(P-8) spec.

Modified the TEL(P-8) writer so that if the number of contiguous devices is larger than 255, multiple records will be written to ensure that the maximum device count for each record does not exceed 255.

Added a new menu item: Edit > Delete NULL Rows/Columns. This feature will remove all rows and columns containing only NULL devices from the outside of the wafer map.


v1.02 [09/02/2022]

Fixed Display Issues related to centering array on the wafer

The core issue was several different sparsely populated wafer files we received which caused problems for the code which calculates the apparent wafer center based on the array. Specifically, we encountered wafers with:

  1. rows/columns of NULL bins on all sides.
  2. rows/columns of NULL bins on only some sides
  3. many NULL devices spread across the wafer
  4. partial wafers, such as where a wafer had been split into quadrants.

A new algorithm which examined only the non-NULL rows and columns of the array was developed. Rather than using the existing approach for calculating the apparent wafer center, which tried to calculate the centroid, a new method which estimates the wafer center based on bisectors was tested i.e. using the standard approach for determining a circle center based on three points along its curve:

Linear Algebra: Finding an equation of a circle that passes through three points (via Mathematics Stack Exchange)

The algorithm first identifies devices along the wafer edge by looking at the first and last non-NULL device on each row. These devices are then ordered in a radial manner. The [col, row] position of each edge device is treated as Cartesian coordinates. Three devices at a time are used to estimate the wafer center in this way. By selecting non-adjacent devices, the accuracy of the method is improved. And by iterating over all edge devices an average center is calculated. This proves to be very accurate.

Examples of Centering with New Algorithm

many extra columns on left and right

many extra columns on left and right


extra rows and columns

extra rows and columns on all sides; many internal null devices.


large wafer flat on bottom

large wafer flat on bottom


many extra null columns on right and extra null rows on bottom

many extra null columns on right and extra null rows on bottom


Partial Wafer Map Files

Finally, for partial wafers, it was necessary to refine the algorithm and ignore devices running all the way across the wafer where one would not expect them (which indicated a partial wafer). This means even if only a quarter of the wafer is present, the bisectors method can still be used to estimate the wafer center. Note that this still works with a sparse distribution:

map of upper left quarter of wafer with full array of nulls.

map of upper left quarter of wafer with full array of nulls.


map of upper left quarter of wafer with clipped nulls.

map of upper left quarter of wafer with clipped nulls.



While this new method works very well for these sparsely distributed wafers, we found that it was less accurate for some of the complete wafer files we tested it against. These were wafers which tended to have fewer rows/columns and devices. For this reason, both centering methods are available. The default (Centroid) works best for most wafers. The API also supports the newer method (Bisectors).

To access these options in WMEdit (and WMVU) the new Wafer Outline submenu looks like this:

dialog box for selecting the centering method.

Andrew, the options in this dialog are confusing after reading the prior explanation. You will need to explain these please. (Centroid vs Bisector)



Phantom Devices Displayed

There was a fix in this version to remove the phantom devices reported when viewing a wafer with very large device count and NULL padded rows and columns.

phantom devices appear for large device count maps with NULL padded rows and columns

Phantom devices appear for large device count maps with NULL padded rows and columns




v1.01 [05/13/2022]

Initial Release

The first release of WMVU.