半導(dǎo)體廠商如何做芯片的出廠測試
半導(dǎo)體廠商如何做芯片的出廠測試呢,這對芯片來說,是流片后或者上市前的必須環(huán)節(jié)。
本文引用地址:http://cafeforensic.com/article/201710/366411.htm大公司的每日流水的芯片就有幾萬片,測試的壓力是非常大。當(dāng)芯片被晶圓廠制作出來后,就會進入WaferTest的階段。這個階段的測試可能在晶圓廠內(nèi)進行,也可能送往附近的測試廠商代理執(zhí)行。生產(chǎn)工程師會使用自動測試儀器(ATE)運行芯片設(shè)計方給出的程序,粗暴的把芯片分成好的/壞的這兩部分,壞的會直接被舍棄,如果這個階段壞片過多,基本會認為是晶圓廠自身的良品率低下。如果良品率低到某一個數(shù)值之下,晶圓廠需要賠錢。
WT的測試結(jié)果多用這樣的圖表示:
通過了WaferTest后,晶圓會被切割。切割后的芯片按照之前的結(jié)果分類。只有好的芯片會被送去封裝廠封裝。封裝的地點一般就在晶圓廠附近,這是因為未封裝的芯片無法長距離運輸。封裝的類型看客戶的需要,有的需要球形BGA,有的需要針腳,總之這一步很簡單,故障也較少。由于封裝的成功率遠大于芯片的生產(chǎn)良品率,因此封裝后不會測試。
封裝之后,芯片會被送往各大公司的測試工廠,也叫生產(chǎn)工廠。并且進行FinalTest。生產(chǎn)工廠內(nèi)實際上有十幾個流程,F(xiàn)inalTest只是第一步。在FinalTest后,還需要分類,刻字,檢查封裝,包裝等步驟。然后就可以出貨到市場。
FinalTest是工廠的重點,需要大量的機械和自動化設(shè)備。它的目的是把芯片嚴(yán)格分類。以Intel的處理器來舉例,在FinalTest中可能出現(xiàn)這些現(xiàn)象:
1.雖然通過了WaferTest,但是芯片仍然是壞的。
2.封裝損壞。
3.芯片部分損壞。比如CPU有2個核心損壞,或者GPU損壞,或者顯示接口損壞等
4.芯片是好的,沒有故障
這時,工程師需要和市場部一起決定,該如何將這些芯片分類。打比方說,GPU壞了的,可以當(dāng)做無顯示核心的“賽揚”系列處理器。如果CPU壞了2個的,可以當(dāng)“酷睿i3”系列處理器。芯片工作正常,但是工作頻率不高的,可以當(dāng)“酷睿i5”系列處理器。一點問題都沒有的,可以當(dāng)“酷睿i7”處理器。
(上面這段僅是簡化說明“芯片測試的結(jié)果影響著產(chǎn)品最終的標(biāo)簽”這個過程,并不是說Intel的芯片量產(chǎn)流水線是上文描述的這樣。實際上Intel同時維持著多個產(chǎn)品流水線,i3和i7的芯片并非同一流水線上產(chǎn)品。)
那這里的FinalTest該怎樣做?
以處理器舉例,F(xiàn)inalTest可以分成兩個步驟:1。自動測試設(shè)備(ATE)。2。系統(tǒng)級別測試(SLT)。2號是必要項。1號一般小公司用不起。
ATE的測試一般需要幾秒,而SLT需要幾個小時。ATE的存在大大的減少了芯片測試時間。
ATE負責(zé)的項目非常之多,而且有很強的邏輯關(guān)聯(lián)性。測試必須按順序進行,針對前列的測試結(jié)果,后列的測試項目可能會被跳過。這些項目的內(nèi)容屬于公司機密,我僅列幾個:比如電源檢測,管腳DC檢測,測試邏輯(一般是JTAG)檢測,burn-in,物理連接PHY檢測,IP內(nèi)部檢測(包括Scan,BIST,F(xiàn)unction等),IP的IO檢測(比如DDR,SATA,PLL,PCIE,Display等),輔助功能檢測(比如熱力學(xué)特性,熔斷等)。
這些測試項都會給出Pass/Fail,根據(jù)這些Pass/Fail來分析芯片的體質(zhì),是測試工程師的工作。
SLT在邏輯上則簡單一些,把芯片安裝到主板上,配置好內(nèi)存,外設(shè),啟動一個操作系統(tǒng),然后用軟件烤機測試,記錄結(jié)果并比較。另外還要檢測BIOS相關(guān)項等。
圖為測試廠房的布置
而所有的這些工作,都需要芯片設(shè)計工程師在流片之前都設(shè)計好。測試工作在芯片內(nèi)是由專屬電路負責(zé)的,這部分電路的搭建由DFT工程師來做,在流片后,DFT工程師還要生成配套輸入矢量,一般會生成幾萬個。這些矢量是否能夠正常的檢測芯片的功能,需要產(chǎn)品開發(fā)工程師來保證。此外還需要測試工程師,產(chǎn)品工程師,和助手來一同保證每天能夠完成幾萬片芯片的生產(chǎn)任務(wù)不會因為測試邏輯bug而延遲。
考慮到每一次測試版本迭代都是幾十萬行的代碼,保證代碼不能出錯。需要涉及上百人的測試工程師協(xié)同工作,這還不算流水線技工,因此測試是費時費力的工作。實際上,很多大公司芯片的測試成本已經(jīng)接近研發(fā)成本。
1、為什么要進行芯片測試?
芯片復(fù)雜度越來越高,為了保證出廠的芯片沒有問題,需要在出廠前進行測試以確保功能完整性等。而芯片作為一個大規(guī)模生產(chǎn)的東西,大規(guī)模自動化測試是唯一的解決辦法,靠人工或者說benchtest是沒法完成這樣的任務(wù)的。
2、芯片測試在什么環(huán)節(jié)進行?
芯片測試實際上是一個比較大的范疇,一般是從測試的對象上分為wafertest和finaltest,對象分別是尚未進行封裝的芯片,和已經(jīng)封裝好的芯片。為啥要分兩段?簡單的說,因為封裝也是有cost的,為了盡可能的節(jié)約成本,可能會在芯片封裝前,先進行一部分的測試,以排除掉一些壞掉的芯片。而為了保證出廠的芯片都是沒問題的,finaltest也即FT測試是最后的一道攔截,也是必須的環(huán)節(jié)。
3、怎么樣進行芯片測試?
這需要專業(yè)的ATE也即automatictestequipment。以finaltest為例,首先根據(jù)芯片的類型,比如automotive,MixedSignal,memory等不同類型,選擇適合的ATE機臺。在此基礎(chǔ)上,根據(jù)芯片的測試需求,(可能有專門的testspecification的文檔,或者干脆讓測試工程師根據(jù)datasheet來設(shè)計testspec),做一個完整的testplan。在此基礎(chǔ)上,設(shè)計一個外圍電路loadboard,一般我們稱之為DIBorPIBorHIB,以連接ATE機臺的instrument和芯片本身。同時,需要進行test程序開發(fā),根據(jù)每一個測試項,進行編程,操控instrument連接到芯片的引腳,給予特定的激勵條件,然后去捕捉芯片引腳的反應(yīng),例如給一個電信號,可以是特定的電流,電壓,或者是一個電壓波形,然后捕捉其反應(yīng)。根據(jù)結(jié)果,判定這一個測試項是pass或者fail。在一系列的測試項結(jié)束以后,芯片是好還是不好,就有結(jié)果了。好的芯片會放到特定的地方,不好的根據(jù)fail的測試類型分別放到不同的地方。
所以樓主的問題里,對于各種功能的測試,確實可能需要一行一行寫代碼來做測試開發(fā),這也是我日常工作的一大部分。
芯片fail可以是下面幾個方面:
1.功能fail,某個功能點點沒有實現(xiàn),這往往是設(shè)計上導(dǎo)致的,通常是在設(shè)計階段前仿真來對功能進行驗證來保證,所以通常設(shè)計一塊芯片,仿真驗證會占用大約80%的時間
2.性能fail,某個性能指標(biāo)要求沒有過關(guān),比如2G的cpu只能跑到1.5G,數(shù)模轉(zhuǎn)換器在要求的轉(zhuǎn)換速度和帶寬的條件下有效位數(shù)enob要達到12位,卻只有10位,以及l(fā)na的noise figure指標(biāo)不達標(biāo)等等。這種問題通常是由兩方面的問題導(dǎo)致的,一個是前期在設(shè)計系統(tǒng)時就沒做足余量,一個就是物理實現(xiàn)版圖太爛。這類問題通常是用后仿真來進行驗證的。
3.生產(chǎn)導(dǎo)致的fail。這個問題出現(xiàn)的原因就要提到單晶硅的生產(chǎn)了。學(xué)過半導(dǎo)體物理的都知道單晶硅是規(guī)整的面心立方結(jié)構(gòu),它有好幾個晶向,通常我們生長單晶是是按照111晶向進行提拉生長。但是由于各種外界因素,比如溫度,提拉速度,以及量子力學(xué)的各種隨機性,導(dǎo)致生長過程中會出現(xiàn)錯位,這個就稱為缺陷。缺陷產(chǎn)生還有一個原因就是離子注入導(dǎo)致的,即使退火也未能校正過來的非規(guī)整結(jié)構(gòu)。這些存在于半導(dǎo)體中的問題,會導(dǎo)致器件的失效,進而影響整個芯片。所以為了在生產(chǎn)后能夠揪出失效或者半失效的芯片,就會在設(shè)計時加入專門的測試電路,比如模擬里面的testmux,數(shù)字里面的scan chain(測邏輯),mbist(測存儲),boundry scan(測io及binding),來保證交付到客戶手上的都是ok的芯片。而那些失效或半失效的產(chǎn)品要么廢棄,要么進行閹割后以低端產(chǎn)品賣出。這個就叫做dft測試。通常dft測試會按照需求在封裝前或封裝后進行測試,工廠里有專門的ate測試機臺,用探針來連接測試的io進行dft測試。通常dft測試不會測試功能,因為這貨是按時間收錢的..測試用例越簡潔有效越好。而且用例太復(fù)雜,會影響出貨速度,比如出100w的貨,一塊芯片測試一秒,單dft測試24小時不停就要11天多。
4、一般的芯片測試都包含哪些測試類型?
一般來說,包括引腳連通性測試,漏電流測試,一些DC(directcurrent)測試,功能測試(functionaltest),Trimtest,根據(jù)芯片類型還會有一些其他的測試,例如AD/DA會有專門的一些測試類型。
芯片測試的目的是在找出沒問題的芯片的同時盡量節(jié)約成本,所以,容易檢測或者比較普遍的缺陷類型會先檢測。一般來講,首先會做的是連通性測試,我們稱之為continuitytest。這是檢查每個引腳的連通性是否正常。
評論