亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

利用垂直斷層成像的檢查方法

文檔序號:6849517閱讀:674來源:國知局
專利名稱:利用垂直斷層成像的檢查方法
相關(guān)申請本發(fā)明請求保護(hù)1999年11月8日遞交的美國臨時(shí)專利申請No.60/163,932的權(quán)利。
把I/O插腳焊接到印刷電路板的通孔上并且進(jìn)一步焊接到印刷電路板表面上的導(dǎo)電焊墊上,從而形成集成電路器件的I/O插腳與印刷電路板之間的電氣互連。
用來檢查各個(gè)組件、集成電路器件以及印刷電路板之間的電連接的方法已經(jīng)公知,例如,已經(jīng)使用了手動(dòng)或自動(dòng)的光學(xué)檢測技術(shù),檢查各個(gè)組件和集成電路器件的位置以及與印刷電路板之間的連接。但是,光學(xué)檢測技術(shù)不能勝任對相當(dāng)高密度的集成電路與印刷電路板之間的互連的檢查,例如,這種技術(shù)通常不足以檢查日漸普及的球-柵格-陣列(BGA)(Ball-Grid-Array)型的器件。
為了檢查高密度板和BGA型器件,相信利用穿透性輻射的檢查系統(tǒng)更優(yōu)于光學(xué)檢測系統(tǒng)。利用穿透性輻射例如x射線技術(shù)能夠檢查BGA型器件的電連接,包括所有周邊接合點(diǎn)和隱藏在集成電路外殼下的接合點(diǎn)。為了形成位于集成電路外殼下的接合點(diǎn)的圖像,檢查系統(tǒng)應(yīng)當(dāng)能夠在穿過裝置的I/O插腳的高度處產(chǎn)生水平斷面圖像(這里也稱為水平“斷層”圖像)。
已知能夠產(chǎn)生水平斷層圖像的x射線檢查系統(tǒng)。例如,美國專利Nos.5,097,492和5,594,770描述了兩種產(chǎn)生水平斷面圖像的另一種方法。在美國專利No.5,097,492中所示的裝置是利用X射線分層攝影原理產(chǎn)生水平斷面圖像。但是,該技術(shù)的一個(gè)缺點(diǎn)是得到的水平斷面圖像通常包括由所關(guān)注的平面以外的結(jié)構(gòu)產(chǎn)生的模糊不清的假像。美國專利No.5,594,770不是依賴于X射線分層照相原理,而是采取使用固定式檢測器的層析X射線攝影術(shù)原理。根據(jù)該技術(shù),獲取并且組合預(yù)定數(shù)量的離軸透射圖像,從而產(chǎn)生所關(guān)注的平面的水平斷層圖像。
已經(jīng)很好地證明了層析X射線合成的理論,利用層析X射線合成方法,能夠在沿著垂直軸設(shè)置的不同焦平面處產(chǎn)生穿過測試目標(biāo)的水平斷層圖像。盡管該技術(shù)在水平看穿試驗(yàn)?zāi)繕?biāo)和確定例如焊接接合點(diǎn)的質(zhì)量方面具有優(yōu)點(diǎn),但可能喪失有關(guān)幾個(gè)水平斷層圖像之間相關(guān)性的有價(jià)值信息。具體地,有價(jià)值的缺陷圖形信息例如可穿過幾個(gè)水平斷層延伸的空隙圖形(空穴)在單個(gè)水平斷層圖像中可能非常淡薄,特別是水平焦平面未穿過空隙的中心的地方。在帶引線裝置的情況下,可能會(huì)有高的跨接,即插腳之間的跨接,但跨接發(fā)生在高于焊點(diǎn)輪廓的高度處。由于檢查每個(gè)和逐個(gè)斷層是不可行的,因此這些缺陷可能漏掉。
因此,希望具有檢查電連接的改進(jìn)的方法和裝置。
根據(jù)本發(fā)明的第二方案,提供一種利用垂直斷層圖像檢查缺陷的方法。這些缺陷可以包括(但不限于)I/O插腳的斷開或翹起、器件的傾斜、焊料不足或過量、空穴和跨接。
根據(jù)本發(fā)明的第三方案,提供一種檢查BGA接合點(diǎn)的方法。該方法包括在斷層圖像中測量以預(yù)定的角度穿過BGA接合點(diǎn)的多個(gè)直徑;然后應(yīng)用一定的準(zhǔn)則把測得的直徑與預(yù)期的直徑相比較。
按照本發(fā)明的一個(gè)優(yōu)選實(shí)施例,提供一種利用垂直斷層信息檢查連接情況的方法和裝置。已經(jīng)很好地證明了層析X射線攝影術(shù)的理論和層析X射線攝影術(shù)再現(xiàn)的實(shí)踐,利用層析X射線攝影術(shù)能夠?qū)⒋┻^目標(biāo)的位于不同焦平面的水平斷層合成起來。本領(lǐng)域普通技術(shù)人員已經(jīng)知曉用于產(chǎn)生這些水平斷層圖像的技術(shù)和設(shè)備。在這方面,參見美國專利Nos.5,594,770、5,097,492和4,688,241,這里將它們的內(nèi)容合并進(jìn)來作為參考。重要的是指出這里使用的術(shù)語“水平斷層圖像”和“垂直斷層圖像”指的是包含與圖像有關(guān)的信息的資料組,圖像可以實(shí)際顯示也可以不顯示。


圖1表示具有沿虛線表示的Z軸的多個(gè)水平斷層圖像位置的BGA接合點(diǎn)。盡管形成水平斷層圖像的優(yōu)點(diǎn)在于水平“看透”目標(biāo)和確定焊接接合點(diǎn)的質(zhì)量,但是喪失了不同水平斷層的相關(guān)信息的有用信息。例如穿過幾個(gè)水平斷層的空隙(空穴)的特征等有價(jià)值的缺陷特征信息可能在該水平斷層中明顯地削弱,取決于所分析的水平斷層圖像的數(shù)量和它們之間的間隔。通常,只分析少數(shù)有意義的斷層,特別是在例如焊墊/組件、球和焊墊/電路板的高度處,可能會(huì)錯(cuò)過水平斷層圖像之間的空間中的空穴。但是,由于它從幾個(gè)水平斷層中獲得信息,例如空穴的特征在垂直斷層中非常突出。
另一個(gè)例子是帶有引線的器件的兩個(gè)插腳之間的高跨接,由于跨接不是位于焊墊/組件水平斷層的高度,檢查可能產(chǎn)生的每個(gè)和逐個(gè)水平斷層又是不現(xiàn)實(shí)的,所以經(jīng)常出錯(cuò)。由于垂直斷層是產(chǎn)生的所有水平斷層的組合的效果,所以可以檢測高跨接。
利用這里描述的垂直斷層技術(shù)能夠檢測到其它有價(jià)值的特征信息,例如在二維或平的水平斷層中很難看到的非潤濕的或傾斜的組件。按照優(yōu)選實(shí)施例,利用能夠獲得形成水平斷層圖像的資料的系統(tǒng)來取得這種資料。然后如下所述,可以利用水平斷層圖像數(shù)據(jù)產(chǎn)生垂直斷層圖像數(shù)據(jù)。
因?yàn)樵谘刂鳽軸的不同點(diǎn)但沿著X軸和Y軸的相同點(diǎn)處構(gòu)建每個(gè)水平斷層圖像,因此能夠再構(gòu)建出垂直斷層而不必需登錄X和Y軸中的水平斷層。圖2表示由多個(gè)水平斷層得到的垂直斷層的合成。
在Z軸方向上,優(yōu)選實(shí)施例首先試圖確定被檢查的連接的“最佳”水平斷層圖像。為了該目的最好使用這里稱之為Z定位法的軟件為基礎(chǔ)的技術(shù),通常,Z定位法有兩種截然不同的優(yōu)選應(yīng)用。第一種,可以利用它來識別用于合成垂直斷層的最佳水平斷層。第二種,可以利用它來識別用于分析焊接連接、BGA接合點(diǎn)和電子組件等中的缺陷的最佳水平斷層。圖8是表示用于檢查接合點(diǎn)例如BGA接合點(diǎn)的優(yōu)選方法的綜合流程圖。下面將給出有關(guān)Z定位法的其它細(xì)節(jié)。
對于垂直斷層應(yīng)用來說,首先用Z定位法找出用于合成檢查接合點(diǎn)的垂直斷層圖像的最優(yōu)選的Z軸位置;然后,把從Z定位法得到的Z位置保持在預(yù)期的垂直斷層的中心處,然后再利用位于最佳斷層上下的幾個(gè)水平斷層創(chuàng)建該垂直斷層。把來自彼此相互疊摞在其頂上的每個(gè)水平斷層的相應(yīng)列的像素組合合成一個(gè)垂直斷層。這就可以提供例如在(X,Y)標(biāo)定的特定位置處的器件的一列接合點(diǎn)的垂直剖面,根據(jù)所需要的垂直斷層圖像的取向,需要在不同的Y軸位置(保持X不變)或在不同的X軸位置(保持Y不變)處產(chǎn)生不同的垂直斷層。利用這里稱為XY定位法和將在下面描述的軟件為基礎(chǔ)的技術(shù)來確定最佳垂直斷層。
這里提供幾種運(yùn)算法則,基于垂直斷層圖像中的缺陷特征來檢測缺陷。圖3表示傾斜的BGA器件的垂直斷層圖像的一個(gè)例子。使用例如來自NicoletImaging Systems of San Diego,California的MV-6000之類的自動(dòng)缺陷識別系統(tǒng),對缺陷特征分析垂直斷層圖像,就能夠自動(dòng)地檢查器件的取向。下面給出這種分析工具的例子。Z定位法找出焦平面中的水平斷層的方法在作出一系列的斷層之后,由于對缺陷需要檢查位于適當(dāng)?shù)慕蛊矫婊騔軸位置的斷層,所以選擇正確的斷層的問題變得很重要。如上所述,不僅可以利用Z定位法來識別用于合成垂直斷層的最佳水平斷層,還可以利用Z定位法來找出識別用于分析缺陷的最佳水平斷層。
Z定位法有選擇地但自動(dòng)地把所關(guān)注的區(qū)域進(jìn)行分段,并利用該信息計(jì)算下面定義的焊料量Σgray=0bga_gray(background_gray-gray)*histogram[gray]]]>計(jì)算每個(gè)水平斷層圖像的總和,必須根據(jù)取樣定理(取樣的比率<=2*變化的頻率)進(jìn)行斷層標(biāo)高的選擇,總和值是斷層的特征值,然后檢索這些特征值找到特定的圖案從而檢測出“最佳”斷層。因?yàn)樗P(guān)注的區(qū)域例如由于翹曲而很難精確地定位,所以最好在所關(guān)注的預(yù)期區(qū)域的上下或穿過它的幾個(gè)高度處合成水平斷層圖像,然后可以利用這里描述的Z定位法來識別所關(guān)注的特定區(qū)域的所需要的水平斷層圖像,所需要的水平斷層圖像在這里稱為“最佳”斷層。因此,“最佳斷層”不準(zhǔn)備指不同水平斷層圖像的定性對比,而是指位于所需要的Z軸位置的用來分析所關(guān)注的區(qū)域的水平斷層圖像。
例如,在所關(guān)注的區(qū)域是BGA接合點(diǎn)的情況下,通過查看所合成的水平水平斷層圖像的總和值的分布,就可以識別穿過球中心的水平斷層。具體地,這種情況下的特征值具體對應(yīng)于濾掉了噪音之后的總和分布中的最明顯的峰值,可以用該斷層來運(yùn)行分析的算法。用下面的方法可以得到更好質(zhì)量的斷層。在確定了最明顯的峰值之后,利用最小二乘方擬合來擬合該峰值和位于該峰值下面的下一個(gè)點(diǎn)和位于該峰值上面的下一個(gè)點(diǎn)。擬合后的等式的導(dǎo)數(shù)設(shè)定為零,找出最大值或最優(yōu)高度。由離軸圖像的同樣的初始設(shè)定產(chǎn)生位于上述計(jì)算的最優(yōu)高度的另一個(gè)斷層。這就是算法可以處理的斷層,從而分析接合點(diǎn)的特征并找出缺陷。重溫該詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員會(huì)很清楚其它類型的所關(guān)注區(qū)域的其它特征值。
另外,可以檢索總和值的分布來找到如上計(jì)算出來的所關(guān)注區(qū)域中的焊料量低于噪聲電平的Z軸上的位置。Z軸上的該位置通常對應(yīng)于焊墊/導(dǎo)線界面的高度。
為了增加成功識別最佳斷層的機(jī)會(huì),最好識別一些無障礙支座。無障礙支座能夠限定檢索的范圍,從而提高效率和速度。
垂直分割斷層從給定的水平斷層u1,u2,u3……un構(gòu)建垂直斷層v的處理如下。水平斷層u1,u2,u3……un定義為u[i]=ui
ui
[1] ui
[2] ………ui
[n]ui[1]
ui[1][1] ui[1][2] ………ui[1][n]ui[m]
ui[m][1] ui[m][2] ………ui[m][n]其中i=斷層的個(gè)數(shù),m,n是每個(gè)水平斷層中的列數(shù)和行數(shù),然后,垂直斷層v定義如下u1
u1
[1] u1
[2] ………u1
[n]u2
u2
[1] u2
[2] ………u2
[n]uz
uz
[1] uz
[2] ………uz
[n]其中z是水平斷層的個(gè)數(shù),u1
,u2
,u3
,……uz
是來自所有斷層的相應(yīng)像素。
一旦合成了垂直斷層信息,對其進(jìn)行分析從而檢測缺陷。圖7是表示利用垂直斷層成像的優(yōu)選檢查方法的常見流程圖。至于分析垂直斷層圖像的步驟,例如可以在BGA接合點(diǎn)上使用的幾個(gè)優(yōu)選方法,用來在垂直斷層中的特征上檢測缺陷如下所述。
1.斷開或翹起的球/導(dǎo)線現(xiàn)在參見圖4,可以利用BGA接合點(diǎn)中球的高度的測量來確定該球是否斷開或翹起。一個(gè)優(yōu)選的方法按如下方法進(jìn)行,矩形窗口垂直穿過接合點(diǎn)的垂直斷層;確定所關(guān)注區(qū)域中的接合點(diǎn)的輪廓;把位于一列中的每行中的數(shù)據(jù)進(jìn)行平均,給出最終輪廓向量中的點(diǎn)P。對輪廓中的所有列進(jìn)行該操作,然后利用最終向量計(jì)算差值向量,如下所述。
差值向量=P[I]-P[I+2] 對于I=0,N其中N是輪廓的列數(shù)。最大和最小值位置中的差值給出像素的高度,將該測量到的高度與閾值進(jìn)行對比,得出接合點(diǎn)的定性評價(jià)。通過計(jì)算位于最大和最小位置之間的中間點(diǎn)來計(jì)算每個(gè)導(dǎo)線的位置,中間點(diǎn)的相對位置的比較將顯示出缺陷插腳。
2.不恰當(dāng)?shù)暮更c(diǎn)輪廓可以采用位于不同高度的導(dǎo)線和焊點(diǎn)輪廓的寬度(w)的測量結(jié)果來確定焊點(diǎn)輪廓是否形成得適當(dāng)。通過放置穿過焊接接合點(diǎn)的垂直斷層的矩形窗口和測量它在該位置的寬度可以進(jìn)行測量。然后最好沿著z軸在包括與焊墊、焊點(diǎn)輪廓和球的中間相對應(yīng)的幾個(gè)點(diǎn)處重復(fù)。最大和最小寬度將顯示接合點(diǎn)是否有缺陷,例如,在球的邊緣的焊點(diǎn)輪廓的缺乏會(huì)超出較小的寬度。
3.空穴空穴的位置和它的測量很好地配合,空穴很容易被定位在垂直斷層中,并且它的尺寸相當(dāng)于測量到的像素量。用來檢測空穴的方法如下。首先把空穴區(qū)域分段,這里使用的分段指的是將所關(guān)注的區(qū)域劃分為段或區(qū),使得每個(gè)段保持與它的鄰段不同的一些屬性。在這種情況下,圖象中的空穴區(qū)域顯示出比焊料和/或球即背景亮得多。空穴區(qū)域需要識別為位于灰色亮度范圍內(nèi)。然后檢查分段的區(qū)域的連接情況,方法如下。把圍繞有疑問的像素的所有像素相互連接起來。如果每個(gè)像素與區(qū)域內(nèi)的所有其它像素相連接,該區(qū)域內(nèi)的一組像素稱為是被連接起來的。用連接起來的來定義如果在區(qū)域S中存在從p到q的通道則像素p和像素q被連接起來并且p和q都屬于區(qū)域S中的該組像素。在某些情況下,我們可能發(fā)現(xiàn)幾個(gè)空穴,每個(gè)空穴隔離開并且計(jì)算它們的尺寸用于分析。圍繞接合點(diǎn)的區(qū)域有時(shí)也可以象沿著空穴一樣被分段,圍繞該接合點(diǎn)的區(qū)域需要舍棄掉,因?yàn)樗旧聿皇强昭ā?br> 4.傾斜的器件或者用簡單的三角法或者用回歸法,在器件的相對端處在垂直斷層中將插腳定位(或任一或所有中間插腳)并計(jì)算它們之間的夾角,就可以很容易地測量傾斜的器件。
用于識別傾斜器件的優(yōu)選方法如下。利用在上面的編號為2的段落中定義的定位器定位接合點(diǎn)的中心。一旦把所關(guān)注的所有接合點(diǎn)的中心定了位,通過如下所示的線性等式給出由如上述的相同的定位器得到的z位置、x和y位置的值z[I]=a*x[I]+b*y[I]+c其中I=連接點(diǎn)數(shù)1,N;a,b,c是將從數(shù)據(jù)來確定的系數(shù);和x[I],y[I],z[I]是接合點(diǎn)在X,Y,Z中的位置。
計(jì)算(dz/dx)和(dz/dy)提供對裝置的傾斜度的測量結(jié)果。
圖3表示傾斜的BGA器件的垂直斷層圖像和圖5表示分析垂直斷層圖像數(shù)據(jù)的另一種方法。如圖5所示,通過定位BGA器件的相對的端處的球的中心并比較各個(gè)球中心的Z軸位置,就可以識別傾斜的器件。
5.跨接可以有效地在垂直斷層中識別兩個(gè)接合點(diǎn)之間處于不同高度的跨接的位置。如果僅僅觀察某些水平斷層來試圖有效地判斷跨接的存在或不存在,可能錯(cuò)過這種類型的缺陷。優(yōu)選的方法如下把垂直斷層的高度和寬度間距大小的矩形窗口放置在接合點(diǎn)之間,將該面積分段以隔開跨接。對每行的所有列中的被分段的像素?cái)?shù)進(jìn)行計(jì)數(shù),如果所有行具有正(>0)計(jì)數(shù)值,則這兩個(gè)接合點(diǎn)被認(rèn)為是跨接的。
6.不充分的/過量的焊料可以計(jì)算位于導(dǎo)線/焊點(diǎn)輪廓中的不同高度處的焊料量,來判斷焊點(diǎn)輪廓的質(zhì)量,這有助于確定不充分的焊點(diǎn)輪廓。優(yōu)選的方法如下把矩形窗口穿過該接合點(diǎn)放置在三個(gè)位置一焊墊、焊點(diǎn)輪廓和球處;提取所關(guān)注的區(qū)域。焊料量的計(jì)算如下Σi=1bagdgray(background_gray-i)*h[i]]]>其中i是像素的亮度,而h是像素的直方圖。輔助的BGA測量技術(shù)隨著BGA和FCA類型圓形元件的普及,也增加了對這些柵格陣列的自動(dòng)檢查的關(guān)注。BGA或FCA的一個(gè)有辨別力的特征是具有圓形,完好形成的BGA接合點(diǎn)是圓形的。因此,BGA或FCA接合點(diǎn)相對于預(yù)期圓形的偏離將用來表示接合點(diǎn)的完善性。圖9是表示用于檢查BGA接合點(diǎn)的優(yōu)選方法的流程圖。以下說明用于評估這種接合點(diǎn)的質(zhì)量的優(yōu)選方法。
1.用任何以質(zhì)心為基礎(chǔ)的粗略的定位器定位BGA接合點(diǎn)。該位置將是下面步驟2的良好起始點(diǎn)。把代表BGA球的像素分段或從背景環(huán)境(在這種情況下例如電路板)和雜亂信號或噪音中分離出來。
然后對所有被分段的像素的X位置求和并且除以N(N是分了段的像素的總數(shù))Σi=1NX[i])/N]]>然后對所有被分段的像素的Y位置求和并且除以N(N是分了段的像素的總數(shù))Σi=1NY[i])/N]]>接合點(diǎn)的XY位置可能不是足夠好,因?yàn)閳D像中的空穴或其它假像可能導(dǎo)致明顯偏離目標(biāo)的實(shí)際中心。然后需要精確的定位器來得到更好的位置。
2.利用精確的定位器使得在段落1中找到的位置更好,該位置應(yīng)當(dāng)與圖像中的噪音或雜亂信號或者球中的空穴無關(guān)而保持良好。在BGA Refine中提出優(yōu)選的精確定位器,在下面的軟件附錄1中給出。
如圖6所示,考慮定了位的接合點(diǎn)中心來定位定位器窗口。根據(jù)球的直徑來計(jì)算定位器窗口偏移量。利用矩形定位器窗口在穿過球中心沿著X軸的4個(gè)位置和穿過球中心沿著Y軸的4個(gè)位置處定位球邊緣。在這8個(gè)位置中,通過利用圖6中的球的每一側(cè)上的5點(diǎn)導(dǎo)數(shù)邊緣定位器和作為兩個(gè)位置的中點(diǎn)確定的中心檢測球邊緣。
對來自窗口5,6,7和8的X位置進(jìn)行平均,從而給出新的X位置;對來自窗口1,2,3和4的Y位置進(jìn)行平均,從而給出新的Y位置。新的X,Y是球的中心。
該5點(diǎn)導(dǎo)數(shù)定義如下提取上面每個(gè)窗口中的所有像素。在X方向的窗口的情況下,對任何特定行的所有列中的所有像素進(jìn)行平均,來找出行輪廓。對所有行進(jìn)行該操作得到整個(gè)輪廓。然后將5點(diǎn)導(dǎo)數(shù)應(yīng)用到整個(gè)輪廓上,如下式Out[I]=2*(P[I+4]-P[I])+(P[I+3]-P[I+1])對于(I=1,輪廓的尺寸)3.一旦精確地把接合點(diǎn)定了位,以4個(gè)或更多個(gè)不同的角度測量BGA的直徑。隨著所使用的角度的數(shù)量的增大,計(jì)算時(shí)間增加,但定性測定的精度同樣增加。記錄測量到的直徑,提供球的實(shí)際直徑。用偏差的平方和來測量測得的直徑與期望直徑的偏差。換句話說,該偏差是Σi=1N(D-d[i])2]]>其中D=每個(gè)球的預(yù)期的直徑d[i]=對于i=1,N所測量到的直徑N=直徑測量的數(shù)量上面得到的值是由于焊點(diǎn)輪廓形狀與預(yù)期的理想情況之間的偏差引起的誤差的平方的總和。該總和越小,接合點(diǎn)越好?!昂玫摹盉GA焊點(diǎn)輪廓將具有接近0的值,與此同時(shí)“壞的”具有很大的值。從有關(guān)“好的”和“壞的”接合點(diǎn)的數(shù)據(jù)的分布能夠統(tǒng)計(jì)地確定實(shí)際的差距。為了給出有關(guān)目前優(yōu)選實(shí)施例的額外的詳細(xì)說明,下面在軟件附錄2中給出有關(guān)焊接質(zhì)量判斷的以軟件為基礎(chǔ)的解決方法的實(shí)施例。
根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例,用于確定BGA接合點(diǎn)的質(zhì)量的方法應(yīng)用到從所分析的水平斷層圖像中得到的數(shù)據(jù)上。或者是,該方法可以應(yīng)用到利用穿透性輻射技術(shù)例如X射線分層攝影法產(chǎn)生的實(shí)際斷層圖像上。XY定位找出正確的垂直斷層的方法如上所述,可以利用層析X射線照相組合分析在不同的焦平面穿過目標(biāo)的水平斷層圖像。從包含在水平斷層圖像中的這些數(shù)據(jù)中,通過沿著X軸或沿著Y軸改變位置可以在所關(guān)注的區(qū)域中產(chǎn)生不同的垂直斷層圖像。通過下面的方法提出用于找到給出垂直斷層的正確位置的優(yōu)選方法。
XY定位的方法是有選擇地但是自動(dòng)地把接合點(diǎn)的區(qū)域分段,并利用該信息計(jì)算如下定義的焊料量Σgray=0bkgndgray(background_gray-gray)*histogram[gray]]]>計(jì)算每個(gè)垂直斷層圖像的總和值。必須根據(jù)取樣定理(取樣的比率<=2*變化的頻率)進(jìn)行斷層的取樣,總和值是斷層的特征值。然后檢索這些特征值找到用來檢測最佳斷層的特定圖案。最顯著的最大值是最佳斷層的近似位置,連同位于該顯著最大值之上的一個(gè)斷層和之下的一個(gè)斷層的數(shù)值和位置一起,得到該斷層的特征值和它的Z坐標(biāo)位置。用最小平方配合方法,把二次方程式模型與該數(shù)據(jù)配合,并且把導(dǎo)數(shù)設(shè)為0來確定它的最大值。用器件的導(dǎo)線寬度或球直徑和間距來限定最佳X(或Y)的檢索范圍。這或是對該接合點(diǎn)的側(cè)邊的檢索范圍或是對所關(guān)注的接合點(diǎn)的列的檢索范圍。為了增加識別最佳斷層圖像的成功機(jī)會(huì),最好識別一些無障礙支座。無障礙支座允許檢索的范圍受到限制,改善檢查的精度和速度。
盡管上面結(jié)合特定的實(shí)施例已經(jīng)描述了本發(fā)明,應(yīng)當(dāng)理解本發(fā)明不限于這些具體的實(shí)施例。相反地,準(zhǔn)備覆蓋落入到本發(fā)明的構(gòu)思和范圍內(nèi)的所有變形、改進(jìn)和等同物,如下面的權(quán)利要求所述。軟件附錄1<pre listing-type="program-listing">#define TEMPLATE_SIZE 5#define NUM_WIN 5#define NUM_EDGE_TYPE 2extern roi_t*imgroip;voidBGARefine(jitype*jip){/*Structures*/roi_t *roi;roi_t *tmproi;profile_t p;profile_t delta_grays;/*****Local variables *********/int gray;int xloc=0,yloc=0;int x_roi,y_roi;int win_w=0,win_h=0;int ball_diam=0,total_area=0;int templocX,templocY=0;int scr_x=0,scr_y=0;int left_scr_x=0,lef_scr_y=0;int right_scr_x=0,right_scr_y=0;int i=0,orient=0;int correction=0,win_offset=0;int save_templocX,save_templocY=0;int left_delta,right_deltaint left_index=0;int left_gray=0;int right_indcx=0;int right_gray=0;int ball_width=0,bump_width=0;int xcenter[NUM_WIN];int ycenter[NUM_WIN];int diag =READPAR(diag_BGARefine);int drop_percent=READPAR(BGARefine_edge_drop_percent[JTYPE()]);int p_bump_diameter=PARPIXELS(ball_diameter[JTYPE()]);int p_pad_pitch=PARPLXELS(pad_spacing[JTYPE()]);int penumbra_width=PARPIXELS(penumbra_width[JTYPE()]);&lt;dp n="d14"/&gt;int win_dy =PARPIXELS(BGARefine_win_dy[JTYPE()]);int win_dx =PARPIXELS(BGARefine_win_dx[JIYPE()]);int win_dw =PARPIXELS(BGARefine_win_dw[JTYPE()]);int win_dh =PARPIXELS(BGARefine_win_dh[JTYPE()]);#ifdef_OAI_int x_scr=GETXSCREEN(RoiGetMil2Pix(imgroip))+GETBBINT(ilst_delta_x,JNUM());int y_scr=GETYSCREEN(RoiGetMil2Pix(imgroip))+GETBBINT(ilst_delta_y,JNUM()); #elseint x_scr=XSCREEN()+OffsetGetX(offet);int y_scr=Y(jié)SCREEN()+OffsetGetY(offset); #endiftemplocX=x_scr;templocY=y(tǒng)_scr;/*size windows and other parameters*/ball_diam=p_bump_diameter+2*penumbra_width;win_w=IABS(2*p_pad_pitch-3*p_bump_diameter/2);win_h=(ball_diam)/4;win_offset=ball_diam/NUM_WIN;win_offset=MAX(1,win_offset);RoiCenterShift(win_dx,win_dy,&amp;amp;templocX,&amp;amp;templocY,ORIEN());save_templocX=templocX;savc_tcmplocY=templocY;win_w=win_w+win_dw;win_h=win_h+win_dh;for(orient=0;orient<=90;orient+=90){ templocX=save_templocX; templocY=save_templocY; RoiCenterShift(0,-ball_diam/2,&amp;amp;templocX,&amp;amp;templocY,orient); for(i=0;i<NUM_WIN;i++) { RoiCenterShift(0,win_offset,&amp;amp;templocX,&amp;amp;templocY,orient); RoiCreate(imgroip,templocX,templocY,win_w,win_h,orient,&amp;amp;roi); /*Save the initial joint location in roi coordinates*/ RoiViewToRoi(roi,templocX,templocY,&amp;amp;x_roi,&amp;amp;y_roi); DiagDisplayRoi(roi,diag);DiagWindowBlink(roi,OVER_GREEN,diag);&lt;dp n="d15"/&gt; RoiColAvg(roi,&amp;amp;p,diag); ProfDeltaGray(&amp;amp;p,&amp;amp;delta_grays,STD_SLOPE_DELTA,diag); /*Locate the outer edge of the ball*/ ProfMin(&amp;amp;delta_grays,0,delta_grays.size/2,&amp;amp;left_index, &amp;amp;left_delta,diag); ProfMax(&amp;amp;delta_grays,delta_grays.size/2,delta_grays.size-1, &amp;amp;right_index,&amp;amp;right_delta,diag); if(READPAR(diags_on)) {correction=STD_SLOPE_DELTA/2;/*convert to screen coordinates and display thelocation*/RoiToView(roi,left_index+correction,y_roi,&amp;amp;left_scr_x,&amp;amp;left_scr_y);DiagDisplayDots(left_scr_x,left_scr_y,OVER_GREEN,diag);/*convert to screen coordinates and display thelocatlon*/RoiToView(roi,right_index+correction,y_roi,&amp;amp;right_scr_x,&amp;amp;right_scr_y);DiagDisplayDots(right_scr_x,right_scr_y,OVER_GREEN,diag);if(DiagPrintText(diag)){fprintf(stderr,″Left(Green Dot)Edge found@x=%d y=%d\n″, left_scr_x,left_scr_y);fprintf(stderr.″Right(Green Dot)Edge found@x=%d y=%d\n″, right_scr_x,right_scr_y); } } if(orient=90) xcenter[i]=left_scr_x+right_scr_x; else ycenter[i]=left_scr_y+right_scr_y; RoiDestroy(roi); }/*for loop for num of window*/}/*loop for orient*/for(i=0;i<NUM_WIN;i++){&lt;dp n="d16"/&gt; xloc+=xcenter[i]; yloc+=y(tǒng)center[i];}xloc=(5+(10*xloc)/(2*NUM_WIN))/10;yloc=(5+(10*yloc)/(2*NUM_WIN)/10;}</pre>軟件附錄2<pre listing-type="program-listing"> templocX=x_scr;templocY=y(tǒng)_scr;/*size windows and other parameters*/ball_diam=p_bump_diameter+2*penumbra_width;win_w=IABS(2*p_pad_pitch-3*p_bump_diameter/2);win_h=(ball_diam)/4;RoiCenterShift(win_dx,win_dy,&amp;amp;templocX,&amp;amp;templocY,ORIENO);for(orient=0,i=0;i<NUM_ORIENT;i++,orient+=45){RoiCreate(imgroip,templocX,templocY,(win_w+win_dw),(win_h+win_dh),orient,&amp;amp;roi);RoiColAvg(roi,&amp;amp;p,diag);ProfDeltaGray(&amp;amp;p,&amp;amp;dclta_grays,STD_SLOPE__DELTA,diag);ProfMin(&amp;amp;delta_grays,0,delta_grays.size/2,&amp;amp;left_min_slope_index,&amp;amp;left_min_slope,diag);ProfScanFirstAbove(&amp;amp;delta_grays,left_min_slope_index,delts_grays.size/2,0,&amp;amp;left_bot_edge,diag);ProfMax(&amp;amp;delta_grays,delta_grays.si2e/2,delta_grays.size-1,&amp;amp;right_max_slope_index,&amp;amp;right_max_slope,diag);ProfScanFirstBelow(&amp;amp;delta_grays,right_max_slope_index,delta_grays.size/2,0,&amp;amp;right_bot_dge,diag);/*Locate the outer edge of the ball on the left side of the window*/ProfMin(&amp;amp;p,0,p.size/2,&amp;amp;left_min_index,&amp;amp;left_min_gray,diag);ProfMax(&amp;amp;p,0,p.size/2,&amp;amp;left_max_index,&amp;amp;left_max_gray,diag);ToolDropThresh(left_max_gray,left_min_gray,ball_drop_percent,&amp;amp;left_ball thresh_gray,diag);ProfScanFirstAbove(&amp;amp;p,p.size/2,0,left_ball_thresh_gray,&amp;amp;left_ball_edge_loc,diag);/*Locate the outer edge of the ball on the right side of the window*/&lt;dp n="d17"/&gt; ProfMin(&amp;amp;p,p.size-1.p.size/2,&amp;amp;right_min_index,&amp;amp;right_min_gray,diag); ProfMax(&amp;amp;p,p.size-1,p.size/2,&amp;amp;right_max_index,&amp;amp;right_max_gray,diag); ToolDropThresh(right_max_gray,right_min_gray,ball_drop_percent,&amp;amp;right_ball_thresh_gray,diag); ProfScanFirstAbove(&amp;amp;p,p.size/2,p.size-1,right_ball_thresh_gray,&amp;amp;right_ball_edge_loc,diag); /*locate the left edge of the ring*/ ToolDropThresh(left_max_gray,left_min_gray,ring_drop_percent,&amp;amp;left_ring_thresh_gray,diag); ProfScanFirstAbove(&amp;amp;p,p.size/2,0,left_ring_thresh_gray,&amp;amp;left_ring_edge_loc,diag); /*locate the right ring edge of the ball*/ ToolDropThresh(right_max_gray,right_min_gray,ring_drop_percent, &amp;amp;right_ring_thresh_gray,diag); ProfScanFirstAbove(&amp;amp;p,p.size/2,p.size-1,right_ring_thresh_gray, &amp;amp;right_ring_edge_loc,diag); inner_ball_width[i]=IABS(left_ball_edge_loc-right_ball_edge_loc); outer_ball_width[i]=IABS(left_ring_edge_loc-right_ring_edge_loc); bump_width[i]=((float)outer_ball_width[i]*PIXEL2MIL()); ball_width[i]=((float)outer_ball_width[i]*PIXEL2MIL()); RoiDestroy(roi);}/*for loop for diff orientations*/</pre>
權(quán)利要求
1.一種利用垂直斷層成像的檢查方法,包括步驟獲取對應(yīng)于多個(gè)穿過所關(guān)注的目標(biāo)的水平斷層圖像的數(shù)據(jù);從該數(shù)據(jù)中劃定所關(guān)注的垂直區(qū)域;和在落入到所關(guān)注的垂直區(qū)域中的數(shù)據(jù)的基礎(chǔ)上構(gòu)建垂直斷層圖像。
2.根據(jù)權(quán)利要求1的檢查方法,其特征在于劃定所關(guān)注的垂直區(qū)域的步驟包括定位穿過所關(guān)注的區(qū)域的最佳水平斷層圖像。
3.根據(jù)權(quán)利要求2的檢查方法,其特征在于構(gòu)建垂直斷層圖像的步驟包括從位于最佳水平斷層圖像之上和之下的水平斷層圖像合成垂直斷層圖像。
4.根據(jù)權(quán)利要求2的檢查方法,其特征在于定位最佳水平斷層圖像的步驟包括對于至少兩個(gè)水平斷層圖像計(jì)算位于至少兩個(gè)水平斷層圖像中的每一個(gè)中的焊料量。
5.根據(jù)權(quán)利要求4的檢查方法,其特征在于定位最佳水平斷層圖像的步驟還包括檢查計(jì)算出的焊料量的分布。
6.根據(jù)權(quán)利要求2的檢查方法,其特征在于定位最佳水平斷層圖像的步驟包括識別位于水平斷層圖像中的一個(gè)或多個(gè)支座。
7.根據(jù)權(quán)利要求1的檢查方法,其特征在于劃定所關(guān)注的垂直區(qū)域的步驟包括定位最佳垂直斷層圖像。
8.根據(jù)權(quán)利要求7的檢查方法,其特征在于定位最佳垂直斷層圖像的步驟包括對于至少兩個(gè)垂直斷層圖像計(jì)算位于至少兩個(gè)垂直斷層圖像的每一個(gè)中的焊料量。
9.根據(jù)權(quán)利要求8的檢查方法,其特征在于定位最佳垂直斷層圖像的步驟還包括查看計(jì)算出的焊料量的分布。
10.根據(jù)權(quán)利要求1的檢查方法,其特征在于獲取數(shù)據(jù)的步驟包括對所關(guān)注的目標(biāo)施以穿透性輻射;和檢測穿過所關(guān)注的目標(biāo)的輻射。
11.一種利用垂直斷層成像的檢查方法,包括步驟獲取對應(yīng)于穿過所關(guān)注的目標(biāo)的多個(gè)水平斷層圖像的數(shù)據(jù);從該數(shù)據(jù)中劃定所關(guān)注的垂直區(qū)域;在落入到所關(guān)注的垂直區(qū)域中的數(shù)據(jù)的基礎(chǔ)上構(gòu)建垂直斷層圖像;和分析該垂直斷層圖像來確定是否存在缺陷。
12.根據(jù)權(quán)利要求11的檢查方法,其特征在于分析垂直斷層圖像包括確定BGA接合點(diǎn)是否翹起。
13.根據(jù)權(quán)利要求12的檢查方法,其特征在于確定BGA接合點(diǎn)是否翹起包括確定BGA接合點(diǎn)的高度的測量;和將該高度與極限值對比。
14.根據(jù)權(quán)利要求12的檢查方法,其特征在于確定BGA接合點(diǎn)是否翹起包括計(jì)算多個(gè)相鄰的BGA接合點(diǎn)的中點(diǎn);和將所計(jì)算的至少兩個(gè)中點(diǎn)相互對比。
15.根據(jù)權(quán)利要求11的檢查方法,其特征在于分析垂直斷層圖像包括確定焊料輪廓是否形成得適當(dāng)。
16.根據(jù)權(quán)利要求11的檢查方法,其特征在于分析垂直斷層圖像包括確定是否存在空穴。
17.根據(jù)權(quán)利要求16的檢查方法,當(dāng)存在空穴時(shí),還包括確定空穴大小的步驟。
18.根據(jù)權(quán)利要求11的檢查方法,其特征在于分析垂直斷層圖像包括確定器件是否傾斜。
19.根據(jù)權(quán)利要求11的檢查方法,其特征在于分析垂直斷層圖像包括確定是否存在跨接。
20.根據(jù)權(quán)利要求11的檢查方法,其特征在于分析垂直斷層圖像包括檢測是否存在不充分的焊料量。
21.一種檢查BGA接合點(diǎn)的方法,包括步驟尋找BGA接合點(diǎn)的位置;用精確定位器矯正該位置;在斷層圖像中測量以預(yù)定的角度穿過BGA接合點(diǎn)的多個(gè)直徑;和應(yīng)用一種準(zhǔn)則把測量到的直徑與預(yù)期的直徑相比較。
22.根據(jù)權(quán)利要求21的檢查BGA接合點(diǎn)的方法,其特征在于在BGA接合點(diǎn)的位置的中心處測量多個(gè)直徑。
23.根據(jù)權(quán)利要求21的檢查BGA接合點(diǎn)的方法,其特征在于尋找BGA接合點(diǎn)的位置的步驟包括將以質(zhì)心為基礎(chǔ)的粗略的定位器施加于斷層圖像上。
24.根據(jù)權(quán)利要求21的檢查BGA接合點(diǎn)的方法,其特征在于精確定位器包括在BGA接合點(diǎn)上施以多個(gè)定位器窗口;在一個(gè)定位器窗口中定位兩個(gè)球邊緣;和確定兩個(gè)球邊緣之間的中點(diǎn)。
25.根據(jù)權(quán)利要求24的檢查BGA接合點(diǎn)的方法,其特征在于在一個(gè)定位器窗口中定位兩個(gè)球邊緣包括在BGA的任何一側(cè)上施以偏差邊緣定位器。
26.根據(jù)權(quán)利要求25的檢查BGA接合點(diǎn)的方法,其特征在于對于多個(gè)定位器窗口中的每一個(gè)重復(fù)在定位器窗口中定位兩個(gè)球邊緣的步驟。
27.根據(jù)權(quán)利要求21的檢查BGA接合點(diǎn)的方法,其特征在于準(zhǔn)則包括按如下形式計(jì)算總和&Sigma;i=1N(D-d[i])2]]>其中D是預(yù)期的直徑而d[i]是測量到的直徑。
28.根據(jù)權(quán)利要求27的檢查BGA接合點(diǎn)的方法,其特征在于該準(zhǔn)則還包括將總和值與極限值進(jìn)行對比。
29.一種用于檢查所關(guān)注的區(qū)域的方法,包括步驟獲取對應(yīng)于穿過所關(guān)注的目標(biāo)的多個(gè)水平斷層圖像的數(shù)據(jù);從多個(gè)水平斷層圖像中定位最佳的水平斷層圖像,該定位步驟包括對于至少兩個(gè)水平斷層圖像計(jì)算位于至少兩個(gè)水平斷層圖像中的焊料量;和查看計(jì)算出的焊接量的分布。
全文摘要
一種利用垂直斷層成像的檢查方法。首先獲取穿過所關(guān)注的目標(biāo)的多個(gè)水平斷層圖像;再從代表水平斷層圖像的數(shù)據(jù)中劃定所關(guān)注的垂直區(qū)域;然后在落入所關(guān)注的垂直區(qū)域內(nèi)的水平斷層圖像數(shù)據(jù)的基礎(chǔ)上構(gòu)建垂直斷層圖像;最后分析垂直斷層圖像數(shù)據(jù)從而檢測出缺陷。另外,提供一種檢測BGA接合點(diǎn)中的缺陷的方法,該方法包括定位該接合點(diǎn)的中心,該方法還包括測量穿過接合點(diǎn)中心的多個(gè)直徑和應(yīng)用準(zhǔn)則來把測得的直徑與預(yù)期的直徑相比較。
文檔編號H01L21/60GK1409816SQ00816889
公開日2003年4月9日 申請日期2000年11月7日 優(yōu)先權(quán)日1999年11月8日
發(fā)明者羅希特·帕特奈克 申請人:泰瑞達(dá)因公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1