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