This page summarizes the changes, enhancements and fixes to the WMEdit program.
Modified the G85 map writer output per request of one of our users to better conform to the spec:
Modified the G85 writer to fix some bugs related to the position of elements and attributes.
Added support for the HEXADECIMAL-2 bin format for E5-1296 wafer map files. This format uses a space character between the devices in the array.
Ran across a E5-1296 map file that used the space character as the NULL bin. Fixed an issue with trimming spaces that was causing the program to incorrectly interpret the position of the null bins.
The ability to control the starting ROW for CSV files as well as assigning CSV columns to X,Y and BIN has been added. This enables users to directly read certain CSV files that previously would have to be hand-edited in Excel to remove extraneous information aa well as re-ordering the columns.
These controls are not interactive but are made in the csv.txt file located in the directory <root_install>\WMConfig\WMFormats
[PARAMETERS] CSV_ROW_START=9 CSV_ROW_END= CSV_COL_X=4 CSV_COL_Y=5 CSV_COL_BIN=2 CSV_SEPARATORS=" ,"
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]
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]
h3>v1.37 [06/18/2024] SINF Header ModificationsWhen writing SINF, changed order of SINF header to match specification example. Changed case of DUTMS: units from upper case to lower case. Removed units designator after the value for XDIES: and YDIES: [changes requested by pSemi]
Added support for the @@ bin code used in SINF files (@@ can be used to represent SKIP die)
Corrected a minor issue related to parsing UF-3000 binary map files.
Corrected the mapping from ASCII-2 type bin codes and HEXADECIMAL-2 bin format.
Fixed a bug in the UF-3000 parser associated with origin and axis direction.
Fixed a bug related to proper mapping of reference devices.
Improved the mapping of bin values between the ASCII-2 and HEXADECIMAL-2 bin formats. This arose when converting from UF-3000 (for which we output ASCII bin codes) and SEMI E-142 where we wanted to use HEX bin codees.
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.
We recently ran across a G85 map file with bin format labeled as "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.
We fixed a bug reading MAP 001 format files reported by a customer.
Customer reported a bug in reading a SECS/EG binary map file. Fixed a bug that corrected this.
Added support for reading/writing the new BEIJING wafer map format.
Improved menu handling.
Support for ASCII files encoded using UTF-16 (instead of UTF-8) is now supported. Please note that this is not a full support for unicode but rather using just the 8 bits supported by UTF-8. When saving an ascii format, the output is encoded as UTF-8.
Updated the license library to support product ID = 13902
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.
Modified/improved the automatic wafer center calculation algorithm.
Fixed inconsistencies in the wafer map configuration files related to the DEVICE_ID keyword.
Ensured that the DEVICE header value comes first when writing SINF files. Special request for a customer who's parser requires this.
Modified the TEL(P-8) and TEL(P-12) parsers to open wafer map files even if the supporting format, lot and map files are not found in the same folder.
TEL(P-12) Writer ModuleAdded support for writing the TEL(P-12) wafer map format. Untested by users as of this date.
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.
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.
New Feature - Delete Empty Rows/ColumnsAdded 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. It is very useful when one gets a map file with empty rows and/or columns in order to get an accurate row and column count.
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:
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
extra rows and columns on all sides; many internal null devices.
large wafer flat 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 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:
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
Fixed a bug which was causing reference devices to sometimes be placed in an incorrect location during parsing and conversion, if the format (such as WWF) used an origin offset.
Added the abilty to edit the offset origin option to the WWF wafer map format. We added this so that when a user encounters a poorly constructed WWF file -- device coordinates not computed around the location of the reference device at 0,0 -- the usre could override the incorrect reference location and manually enter a correct one. [Reported by Micross when converting WWF to SECS/EG.]
Added support for a new wafer map format parser - ROYCE XML. This map file is supported by the Royce MP-300 die mounter.
Fixed a bug in the dialog where changing device or step size units was not correctly updating both values.
Fixed a bug where sometimes changing a bin mapping resulted in a loss of bin quality. i.e. if you had an input BIN=01 and a QUALITY = PASS and you changed the bin to 02, the QUALITY attribute would be lost or reset to UNKNOWN. This no longer happens.
When a file can't be opened or can't be written because the required license is not available, the error message is now much clearer.
CSV Parsing EnhancementPrior to this version, all bin codes had to have the same length i.e. one could not have a bin-code = 1 and another bin-code=25. This version now scans the bin codes and it finds the "longest" length and uses that to set the bin code type. Shorter bin codes are expanded.
Improved KLARF file parsinga) Reading wafer size (Note that LotID, WaferId, and Flat Side were already being read)
b) Changed NULL bin value to ___.
c) Changed PASS bin value to 255.
d) FAIL bins are now assigned values matching their class number.
e) FAIL bins are now assigned descriptions matching their class description.
In order to make this release timely, we did not have time to address more known KLARF issues:
1) This KLARF file is not parsed correctly:iPQQ_mcadi_smCA_+5pct_IMG.txt because it contains variable length defects based on the inclusion of images associated with the defect. I will need to recheck the spec and include support for this in the next version.
2) I have not added support for the SampleCenterLocation.
Added Support for KLARF reader (no writer at this time)
Added support for a new variant to the TEL(P-8) wafer map format to parse, or ignore the PASS/FAIL/UNTESTED quality of devices in the array. This is an additional byte of data which can be set for each device in the array.
Added support for a new option called OFFSET_ORIGIN to the wafer map format definition files. When this option is set to YES, any explicit [col, row] offset in the wafer map array will be preserved. The offset is always treated as an offset to the absolute device positions.
This version generates a WAFCONT.DAT file when generating a TEL P8 output file along with the LOT.DAT file. The reason is to enable loading of the three files (WAFER.DAT, LOT.DAT, WAFCONT.DAT) back into a TEL P8 prober when used in inking mode.
Header Tags EditableWhen the wafer map is converted to a binary format, the header tags defined in the wafer map configuration file are added to the Wafer Map Properties window, so that they can be edited before saving.
Bug FixFixed a condition where the current wafer map name in the Wafer Map Properties window was blank.
Linkage from Header ValuesWhen the wafer map format value representing the wafer ID is changed in the Header Data section of the Wafer Map Properties window, the wafer map names and current wafer map name are also updated in the Wafer Map section.
Modify Flag Triggered by Header ChangesChanges to the Header Date section trigger the modified flag so that the user will be prompted to save the file before exiting.
Changing wafer map formats will keep the bin format the same provided that both the source and target formats support that bin format.
Padding Bin ValuesWhen padding bin values the padding will now take place from the left, not right. So for example if you are going from CSV value of 1 to a HEX bin format the 1 will be mapped to 0x01 and not to 0x10.
The configuration file for TEL P8 now includes variant flags for the reader and writer which control their behavior. This has become necessary because we are encountering in the field TEL P8 files with different headers and with different usages of the bin code bytes.
If the variant value = 0 then the behavior of the program (as we interpret the specification) does not change.
If the variant value = 1, then the program expects that the TEL P8 file has a 25 byte header consisting of 20 bytes describing the LOT_ID followed by 5 bytes of the space character.
If the variant value = 2, then the bin value byte comes before the device flag byte. (the default is to expect the device flag byte first, followed by the bin value byte.)
if the variant value = 3, then this is equivalent to activating both variant 1 and variant 2.
If no variant value is set, then the default is assumed (variant value = 0)
The keywords used to set the variant in the c:\wcad\WMEdit\WMConfig\WMFormats\TEL(P-8).txt
are:
INPUT_VARIANT=N
OUTPUT_VARIANT=M
Previous version produced output for NULL devices. This version fixes that and only devices with non-null bin codes are output in CSV.
Corrected an incorrect computation of the center of the wafer array that resulted in an offset between the map array and the wafer outline.
Added support for a new wafer map format - CSV. The CSV parser/writer uses a simple 3 column definition: col, row, bin. Commas are optional as separators and spaces or tabs will also act as field delimiters. The parser uses the existing PID 13612. The writer used the new PID 13718.
Bug Fix in E5-1296 Map WriterFixed a bug in the E5-1296 writer to include the MAP_TYPE information. This was not present and E5-1296 files being saved with the ASCII-2 bin format would not import correctly when re-opened.
Wafer Size and Flat Side DirectivesAdded drop downs enabling the user to set wafer size and flat side. These may be needed when importing a map file (i.e. CSV) which does not contain such information and converting to a map file that does require that information (which is almost all map files)
Viking Output File NameSaving to the VIKING wafer map format will indicate if the save file name was changed to meet the format requirements. The changed name is also now correctly displayed in the title bar and recent file list. (Note: this is required because the Viking machine has strict rules about the file name and won't open a valid file if the file name does not conform to the rules.)
TEL P8 Error Message EnhancementImproved the message in the log file when a TEL(P-8) file can not be opened because of a missing LOT.DAT file. The message refers to a missing supporting file, since this may come up with another format we support in the future, and the LOT.DAT file name is not always the same. (Opening a TEL wafer.dat file requires the presence of a LOT.DAT file which contains needed wafer info.)
Added Support for Reference DevicesAdded a Reference Devices group to the Wafer Map Properties window. This group displays the column, row, and XY position (if defined) of reference devices in the wafer map. The reference devices can be edited and new reference devices can be added. (Note: not all wafer map formats support all reference device data. Some only support [col, row], some support (x, y) and some support only certain named bins. The latter is already supported using the bin quality drop down list.)
Added a Reference row to the Wafer Map Colors window. The fill, line and text colors of reference devices can be defined. This enables easy identification of reference device locations on the wafer map. Note that the REFERENCE quality will override this style, if defined, for the same device. The reason to not rely solely on the quality parameter is that formats defining reference devices in the [col,row] format may not necessarily always have the same bin value for every reference device.
Fixed a bug where the color assigned to highlight selected devices could not be changed from the Map Colors Window dialog.
Link to On-line HelpAdded a Help > Online Manual menu item which opens the link to the online user manual for WMEdit.
Remove Unused Bin CodesAdded an Edit > Delete Unused Bins
menu item which removes all bins defined in the map header which are not found/used in the wafer map array.
Added a new bin Quality attribute type - UNTESTED.
Display Improvement for Very Dense Wafer MapsImproved the viewing of wafers with very large device counts. In earlier versions, if the dimension of a device was smaller than one pixel on the screen then it would not produce any display at all.
When either the device or step size is modified in the Wafer Map Properties window, the other value is also updated; the display is refreshed to account for the change in device or step size.
The first release of WMEdit used primarily for testing and documentation.