The SEMI E142 Wafer Map XML FileNovember 30, 2016 The SEMI E-142 map specification is quite powerful and flexible. That enables the format to serve many different purposes, but also makes it quite difficult to write a comprehensive and robust reader. Currently we only export SEMI E-142 and we only use a subset of the possible constructions. Flat/Notch OrientationThe wafer generally has a flat or notch use to orient it correctly. We've seen some variation in the 0 and 180 interpretation but the one shown below is per the standard: Origin Location and DirectionThe wafer map is an array organized as rows and columns. However the so called origin where the row and columns are counted from can vary. Sometimes this origin is determined by the behavior of the wafer prober. Too often, there is no information in the file that clearly indicates the origin. Here is what should be included: If not specified, E142 indicates that LowerLeft is the default and Axis direction default = UpRight. Reference DevicesThere should always be at least one reference die referenced in the map data. We need to know two things for the reference information to be useful:
If there is more than one reference die then they should each have a unique name or identifier. Bin TypeEach die has to be assigned to a bin. There are a number of allowed formats for the bin. These are: ASCII - A single ASCII character (1 byte per die). Decimal -- a 3 digit decimal in the range from 000-255; again taking up one byte per die hexadecimal -- a 2 digit hexadecimal in the range from 00-FF (again taking up one byte per die integer2 -- a 4 digit hexadecimal value in the range from 0000-FFFF taking up two bytes per die. Spacing and Delimiters 1. When BinTytpe=Decimal there must be spaces added between each device and each row of devices should be on a new line: 000 001 001 002 001 002 001 001 002 002 001 000 000 002 001 001 001 001 2. When BinTytpe=ASCII, Hexadecimal or Integer2 there must not be spaces between bins and each row should be on a new line NullBin This is a special bin code that represents either non-existent die (since the wafer is round and the array is rectangular) or die that are simply not probed. Map TypeThere are a number of ways to list out the bin ID's. Some are easily "man readable" and some not. If not specified in the file the default (according to the spec) is 2DArray. 2DArray All the die in a row are represented in a single BinCode entry. The length of each row and the number of rows corresponds with the the row/column dimensions specified earlier in the file. Locations in the layout that do not contain a die (or a die that was probed) should be assigned to the NullBin value. In the illustration above, any die position not labeled = 0. So the Map output would look like this: <bincode>0000000</bincode> <bincode>000UXYX</bincode> <bincode>00UUUUU</bincode> <bincode>0UXXYXX</bincode> <bincode>0UXYXXX</bincode> <bincode>0XXXXYX</bincode> Row/Column This encoding relies on a starting XY array position and a length (number of die) followed by a list of bin values whose length is equal to the number of die. I guess the advantage here is that one does not have to explicitly list the null die locations. So for the same illustration the encoding would look like this: 003 001 4 U X Y Z 002 002 5 U U U U 001 003 6 U X X Y X X 001 004 6 U X Y X X X 001 005 6 X X X X Y X A carriage return/linefeed is not needed between the "rows" using this encoding but it would make the file easier to view manually. 003 001 4 U X Y Z 002 002 5 U U U U 001 003 6 U X X Y X X 001 004 6 U X Y X X X 001 005 6 X X X X Y X It does not even require that there be any particular order to the column/row data as long as the origin is properly known. Array Format This format relies on the reading software knowing the column width and number of rows and then dividing the long string of bin values by row. According to the spec, the array starts at the top left. (Not sure how this interacts with other parameters such as the Array Origin.)The data structure is one long string of bin values. and the data in the XML file might look like this: 000000000UXYX00UUUU0UXXYXX0UXYXXX0XXXXYX |