霍杰,張克佳,崔潔
(中國電子科技集團公司第四十五研究所,北京100176)
一種Wafer Map文件讀取解析算法的研究
霍杰,張克佳,崔潔
(中國電子科技集團公司第四十五研究所,北京100176)
目前各生產廠使用的晶圓圖譜(WaferMap)文件類型多種多樣,對WaferMap文件的讀取產生很大困難。常規解決辦法是針對每種文件類型,編寫不同的程序算法進行讀取。這種情況下每出現一種新WaferMap類型文件,就需要軟件添加程序,用于讀取并解析該類型文件。為了解決這個問題,對多種類型WaferMap文件進行研究,找出不同類型WaferMap文件的共性,得出一種通用型WaferMap文件讀取算法。凡文件內含有餅圖的WaferMap文件,都可以采用該算法讀取解析,解決了對新WaferMap類型,需要添加新程序,讀取并解析該文件的問題。
WaferMap解析;WaferMap算法;餅圖
Wafer Map文件是晶圓測試設備生成反應測試結果的文件。文件內包含晶圓上每個芯片的布局,測試結果以及晶圓其他相關信息。實際生產中,由于測試儀器不同,測試設備不同,生成的Wafer Map文件類型多種多樣,主流的文件格式有如下幾種:txt、tma、sinf、generic。下面圖示幾種不同類型的Wafer Map文件。圖1與圖2均為tma格式Wafer Map文件,但其內容及書寫方式不完全相同,使用普通的讀取解析方式,很難將這兩份tma文件都成功讀取與解析。

圖1 tma格式Wafer Map文件格式

圖2 tma格式Wafer Map文件格式
通過上面圖示可以看出同種文件格式其內部格式并不能一定相同。如果通過添加新的軟件算法涵蓋各種Wafer Map文件格式的方法是困難的,根據客戶提供的具體Wafer Map文件開發新算法,當客戶新增Wafer Map文件類型后,又需要升級軟件進行擴充,這大大增加了軟件工作量,并且需要持續不斷的開發。

圖3 sinf格式Wafer Map文件格式

圖4 txt格式Wafer Map文件格式
為一勞永逸的解決Wafer Map文件的讀取解析問題。我們對各種類型Wafer Map文件進行共性分析,提出一種新算法,可以讀取解析這類具有相同共性的Wafer Map文件。
通過分析各種類型Wafer Map文件,發現共同存在以下元素:頭部文件、尾部文件、上下左右邊框、餅圖內容。以上幾種元素不同Wafer Map文件中包含情況不同,但共性特點是均包含餅圖內容。該餅圖內容反映每顆芯片測試結果以及相互間排列關系。針對不同類型Wafer Map文件,我們尋找到其內部餅圖進行讀取解析,即可實現一種算法處理各種類型Wafer Map文件的問題。
根據Wafer Map文件特性,餅圖內容形象地反應晶圓測試結果與排列情況,其占據整個Wafer Map文件的絕大部分內容與空間。因此無論文件內是否存在頭部文件,尾部文件,上下左右邊框等元素,Wafer Map文件的中心行列一定位于餅圖范圍內。根據這一特性,設計爆炸式算法,用于讀取解析不同類型Wafer Map文件。下面簡要陳述爆炸式算法的工作過程。
(1)讀取Wafer Map文件,找到搜尋起始點。將Wafer Map文件內容逐行讀取,定位文件中心位置作為搜尋起始點。由于餅圖內容占據Wafer Map文件內最大空間,可以確保文件中心位置位于餅圖中。
讀取Wafer Map文件并搜尋起始點程序如下:
CStdioFile stdioFile;//創建CStdioFile文件
if(!stdioFile.Open(Path,CFile::modeRead))//以只讀方式打開文件
return false;
CString strTemp;//臨時存放文件內每行字符串
CStringArray fileData;//字符串陣列,存放文件內全部內容
int iWidth=0;
fileData.RemoveAll();
while(stdioFile.ReadString(strTemp))//逐行讀取每行字符串
{iWidth=max(strTemp.GetLength(),iWidth);//獲取文件最大行數。fileData.Add(strTemp);}
int iHeight=fileData.GetSize();//獲取文件內最大列數
stdioFile.Close();
搜尋起始點位置位于文件中心位置,即iWidth/2,iHeight/2位置。
(2)消除餅圖內格式不同的影響。通過多種Wafer Map的圖示可以得出餅圖內每個芯片可以使用單字符或者雙字符表示,同時相互之間可以存在或者無分隔符隔斷。組合以上兩種選項,餅圖存在如下四種表達方式:
①每個芯片使用單字符表示,相互之間存在分隔符隔斷;
②每個芯片使用多字符表示,相互之間存在分隔符隔斷;
③每個芯片使用單字符表示,相互之間無分隔符隔斷;
④每個芯片使用多字符表示,相互之間無分隔符隔斷。
其中第4種情況無法區分每個芯片,實際生產中不會出現此種方式的Wafer Map文件,只需要考慮前3種情況即可。上述3種情況格式不一,為消除其不同,對第①②③種情況進行轉化,使用0-255的BYTE型表達每個芯片測試結果,芯片相互之間不存在分隔符。經過此轉化后的餅圖格式相同規則簡單,進行再次分析后即可產生Wafer Map圖。
轉化過程為以下幾種,根據餅圖情況進行對應操作:
①餅圖內存在分隔符時,清除餅圖內所有分隔符。
②每個芯片使用多字符表達時,將多字符按照16進制數轉換成10進制。多字符轉換成0-255的BYTE型。
③每個芯片使用單字符表達時,將單字符按照ASCII碼轉化成0-255的BYTE型。
經過以上轉化,Wafer Map文件轉化成統一規則,每個芯片占用1個字節根據該芯片在餅圖內位置,被存儲在BYTE型二維數組內。
(3)解析數據生成Wafer Map。對步驟(2)轉化后的Wafer Map文件進行如下操作后即可提取出文件內有效的Wafer Map圖,并進行了分Bin操作。客戶設置的有效字符為根據Wafer Map內容,用來代表每種Bin芯片的字符,即該每個字符代表一顆芯片測試結果,根據測試結果進行分Bin操作。
具體操作如下:
①根據客戶設置的有效字符,從搜尋起始點進行比對,比對相同時根據該字符的Bin類型設置該芯片Bin值。與所有有效字符都不同的字符作為無效字符設置為0。
②每個比對相同的字符,比對完成后向最近連同的八個方向繼續操作1。通過循環操作①、②可以得出所有相連通的有效字符空間,并根據字符Bin類型設置該芯片Bin值。
③由于頭部文件,尾部文件,上下左右邊框等內容并不是有效字符構成,通過①、②操作,已經有效的清除大部分無效內容,剩余部分主要是餅圖內容,對部分特殊情況,例如頭部或尾部文件包含少量有效字符的情況,采用切邊操作可以排除。由于餅圖是規范的矩形結構,對于單獨突出的相連字符,可以認定屬于頭部,尾部,邊框內容進行剔除。
爆炸式算法可以有效地處理各種含有餅圖的Wafer Map文件,目前絕大多數測試結果都采用餅圖文件輸出方式。該算法可以有效地讀取解析各類Wafer Map文件,無需根據具體的Wafer Map格式進行二次開發設計。減少了軟件開發工作量,提高了設備兼容讀取各種Wafer Map文件的能力。
[1]陳秀川,楊云,郭琦.對VC_MFC類庫中CFile類的派生類的研究和示例[M].南昌航空工業學院學報(自然科學版)[J].2004,18(4):76-80.
A Research of Reading Resolution Algorithm For Wafer Map
HUO Jie,ZHANG Kejia,CUI Jie
(The 45thResearch Institute of CETC,Beijing 100176,China)
The wafer map currently used by factory is difficult to read because of varied forms.The conventional solution is writing different algorithms for each file type.In this case each Wafer Map file needs different software program.Finding different types of Wafer Map files in common and concluding a general algorithm is used to solve this problem.Where the file containing the cake map of the Wafer Map file,the algorithm can be used to read,analysis and solve the new type of Wafer Map.
WaferMap Resolution;WaferMap Algorithm;Cake Map
TP311
A
1004-4507(2016)10-0010-05
2016-08-04