This page summarizes the changes, enhancements and fixes to the WMBatch 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 issues related to the position of elements and attributes.
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]
When 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.
Fixed the G85 writer so that it writes the correct attribute to identify a bin format of HEXADECIMAL-4.
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 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.
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.
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 uses just the 8 bits supported by UTF-8. When saving an ascii format, the output is encoded as UTF-8.
Updated licensing library to support product ID=13902
Added support for parsing and writing a new wafer map format - TEL(P-12). This file uses the .RMP file plus supporting ones and requires a different license than the TEL P8.
Modified TEL P8 ParserModified the TEL(P-8) parser to open wafer map files even if the supporting format, lot and map files are not found in the same folder.
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.
a) Set a Reference Device by Column and Row
reference device <number> <col> <row>
The default origin/axis direction is upper left = 0,0 with increasing X to the right and increasing Y down. However you can also use the directive "wafer coordinates" to use the wafer coordinates set by the map file.
reference device <number> xy <x> <y> [<units>]
This directive is useful only for map file formats that use a physical distance for defining the location of the reference coordinate.
Added new commands to support setting the wafer origin and reference device column and row. See the command documentation for complete details.
A new format, Royce XML - used by the Royce MP-300 machine - can now be read and written. The Royce XML is based on SEMI E-142 but uses some unique data fields including bin colors. We developed this specifically for a customer who had a Royce MP-300 but who did not have software installed on it that could read other Map file formats.
Updated to use WMLib dated March 25, 2022.
KLARFAdded support for a new wafer map format parser - KLARF.
Tel P8 ParserAdded 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.
Tel P8 WAFCONT.DATAdded writing WAFCONT.DAT file when saving TEL(P-8) wafer maps. This is in support of importing a TEL P8 binary map file to drive the TEL P8 as an inker instead of a prober.
CSV ParserNow supports CSV files where the bin length was not constant - i.e. you can have the following CSV
0,0,1 0,1,25
Prior to this one could not mix bin codes of length 1 character with bincodes of length 2 characters. Repeat Loop Fix
Corrected an error in the directory repeat loop.
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
Modified the CSV Writer so that it does not output a line for any NULL devices. Previous versions output all of the NULL devices which is not necessary since each line specifies the X,Y position in the array.
Modified the WWF format to use ASCII-2 bin format instead of HEXADECIMAL-2. This affected how the bin mapping would work.
SECS-EG Binary ParserFixed a bug in the SECS-EG parser associated with negative bin counts.
Command-line argument changedTo avoid confusion, changed the -batch_file:<filename> command line argument to -command_file:<filename>. This is because when running WMBatch, one normally must generate a DOS batch file (.bat) and a command file. By using the same terminology for both we were potentially producing confusion for users in our documentation.
Added support for HEXADECIMAL-2 bin format to the G85 wafer map format.
Updated library to WMLIB 1.26
added support for UF-3000 binary input (no output)
Added support for a new wafer map format: WWF.
SEMI-E142 SupportAdded support for a new wafer map format: SEMI-E142.
New Underlying LibraryWMBatch now uses the (C++) WMCLib API
Added support for a new wafer map binary format: TEL(P-8)
Added a simple 1 digit output map for some pick and place machines.
Enhance Log FileAdded the date/time of the log data
Added bin code counts to log file
Fixed a bug when multiple input bin codes were mapped to the same output bin code.
Improved the way WMLib and WMBatch map bins from the input to the output database, removing unused bins as needed.
Fixed a bug where the G85 user-defined null bin was not being read correctly.
Added new command file directives to fill regions for the wafer with a specific bin. This can be used to slice a large wafer map into multiple smaller ones.
Modified the VIKING format writer to enforce the specifications for date code and matching file name. This change may cause the user-defined output file name to change to meet the requirements.
New Command File DirectivesAdded new batch commands to set the device and step size.
Corrected problem in reading/mapping bin codes above ASCII 128.
Added support for the STIF (ST Microelectronics) wafer map format.
InstallerModified the installer to support the Flexera licensing dongle.
Added support for a binary wafer map format known as Viking (*.vik). Due to limited documentation the following assumptions have been made:
Axis Direction: Right:Positive Up:Positive
Date/Time not supported during conversion
Added support for SEMI G85
IBIS Bug FixFixed some bugs discovered in the IBIS parser/writer.
Floating Point ComputationsImproved the accuracy of floating point values when converting formats.
Multiple Wafer Maps in a Single FileAdded support for saving multiple wafer map files when the input file contains multiple wafer maps -- provided the format supports it -- but the output wafer map format does not. For example, G85 can contain multiple maps within a single file but SINF cannot.
New Command Directives for Multi-Map FilesAdded new command file directive to select a specific wafer for subsequent commands.
New Input/Output Map Format IBIS was added to WMBatch list of supported formats.
New Input/Output Map Formats were added to WMBatch:
Added support for a new wafer map format called ASY.
Added SECS-EG(TXT) FormatAdded support for a format we call SECS(TXT).
Added new bin mapping commands to control bin quality and description.
A new ASCII format has been added we are calling MAP001. This was requested by a customer. It consists of a header and map. Each row of the map begins with:
MAP001
MAP002
MAP003
and so on.
A new command has been added that enables a user to tell the program to process all files in the input directory. The syntax is:
repeat start files in "input_directory_path" open <FILE.EXT> format MAP001 convert format E5-1296 bin map 00 . bin map XX X bin map 01 1 bin map 99 F save <FILE>_E5.txt repeat end
In this example we have our input files (any qty) in our input_directory_path. The program will open each file (consecutively) it finds in that directory and then perform the commands such as convert, bin mapping and saving.
This is the initial release of WMBatch.