而所有的這些工作,都需要芯片設(shè)計(jì)工程師在流片之前都設(shè)計(jì)好。測(cè)試工作在芯片內(nèi)是由專(zhuān)屬電路負(fù)責(zé)的,這部分電路的搭建由DFT工程師來(lái)做,在流片后,DFT工程師還要生成配套輸入矢量,一般會(huì)生成幾萬(wàn)個(gè)。這些矢量是否能夠正常的檢測(cè)芯片的功能,需要產(chǎn)品開(kāi)發(fā)工程師來(lái)保證。此外還需要測(cè)試工程師,產(chǎn)品工程師,和助手來(lái)一同保證每天能夠完成幾萬(wàn)片芯片的生產(chǎn)任務(wù)不會(huì)因?yàn)闇y(cè)試邏輯bug而延遲。
考慮到每一次測(cè)試版本迭代都是幾十萬(wàn)行的代碼,保證代碼不能出錯(cuò)。需要涉及上百人的測(cè)試工程師協(xié)同工作,這還不算流水線技工,因此測(cè)試是費(fèi)時(shí)費(fèi)力的工作。實(shí)際上,很多大公司芯片的測(cè)試成本已經(jīng)接近研發(fā)成本。
1、為什么要進(jìn)行芯片測(cè)試?
芯片復(fù)雜度越來(lái)越高,為了保證出廠的芯片沒(méi)有問(wèn)題,需要在出廠前進(jìn)行測(cè)試以確保功能完整性等。而芯片作為一個(gè)大規(guī)模生產(chǎn)的東西,大規(guī)模自動(dòng)化測(cè)試是唯一的解決辦法,靠人工或者說(shuō)benchtest是沒(méi)法完成這樣的任務(wù)的。
2、芯片測(cè)試在什么環(huán)節(jié)進(jìn)行?
芯片測(cè)試實(shí)際上是一個(gè)比較大的范疇,一般是從測(cè)試的對(duì)象上分為wafertest和finaltest,對(duì)象分別是尚未進(jìn)行封裝的芯片,和已經(jīng)封裝好的芯片。為啥要分兩段?簡(jiǎn)單的說(shuō),因?yàn)榉庋b也是有cost的,為了盡可能的節(jié)約成本,可能會(huì)在芯片封裝前,先進(jìn)行一部分的測(cè)試,以排除掉一些壞掉的芯片。而為了保證出廠的芯片都是沒(méi)問(wèn)題的,finaltest也即FT測(cè)試是最后的一道攔截,也是必須的環(huán)節(jié)。
3、怎么樣進(jìn)行芯片測(cè)試?
這需要專(zhuān)業(yè)的ATE也即automaTIctestequipment。以finaltest為例,首先根據(jù)芯片的類(lèi)型,比如automoTIve,MixedSignal,memory等不同類(lèi)型,選擇適合的ATE機(jī)臺(tái)。在此基礎(chǔ)上,根據(jù)芯片的測(cè)試需求,(可能有專(zhuān)門(mén)的testspecificaTIon的文檔,或者干脆讓測(cè)試工程師根據(jù)datasheet來(lái)設(shè)計(jì)testspec),做一個(gè)完整的testplan。在此基礎(chǔ)上,設(shè)計(jì)一個(gè)外圍電路loadboard,一般我們稱(chēng)之為DIBorPIBorHIB,以連接ATE機(jī)臺(tái)的instrument和芯片本身。同時(shí),需要進(jìn)行test程序開(kāi)發(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è)試類(lèi)型分別放到不同的地方。
所以樓主的問(wèn)題里,對(duì)于各種功能的測(cè)試,確實(shí)可能需要一行一行寫(xiě)代碼來(lái)做測(cè)試開(kāi)發(fā),這也是我日常工作的一大部分。
芯片fail可以是下面幾個(gè)方面:
1.功能fail,某個(gè)功能點(diǎn)點(diǎn)沒(méi)有實(shí)現(xiàn),這往往是設(shè)計(jì)上導(dǎo)致的,通常是在設(shè)計(jì)階段前仿真來(lái)對(duì)功能進(jìn)行驗(yàn)證來(lái)保證,所以通常設(shè)計(jì)一塊芯片,仿真驗(yàn)證會(huì)占用大約80%的時(shí)間
2.性能fail,某個(gè)性能指標(biāo)要求沒(méi)有過(guò)關(guān),比如2G的cpu只能跑到1.5G,數(shù)模轉(zhuǎn)換器在要求的轉(zhuǎn)換速度和帶寬的條件下有效位數(shù)enob要達(dá)到12位,卻只有10位,以及l(fā)na的noise figure指標(biāo)不達(dá)標(biāo)等等。這種問(wèn)題通常是由兩方面的問(wèn)題導(dǎo)致的,一個(gè)是前期在設(shè)計(jì)系統(tǒng)時(shí)就沒(méi)做足余量,一個(gè)就是物理實(shí)現(xiàn)版圖太爛。這類(lèi)問(wèn)題通常是用后仿真來(lái)進(jìn)行驗(yàn)證的。
3.生產(chǎn)導(dǎo)致的fail。這個(gè)問(wèn)題出現(xiàn)的原因就要提到單晶硅的生產(chǎn)了。學(xué)過(guò)半導(dǎo)體物理的都知道單晶硅是規(guī)整的面心立方結(jié)構(gòu),它有好幾個(gè)晶向,通常我們生長(zhǎng)單晶是是按照111晶向進(jìn)行提拉生長(zhǎng)。但是由于各種外界因素,比如溫度,提拉速度,以及量子力學(xué)的各種隨機(jī)性,導(dǎo)致生長(zhǎng)過(guò)程中會(huì)出現(xiàn)錯(cuò)位,這個(gè)就稱(chēng)為缺陷。缺陷產(chǎn)生還有一個(gè)原因就是離子注入導(dǎo)致的,即使退火也未能校正過(guò)來(lái)的非規(guī)整結(jié)構(gòu)。這些存在于半導(dǎo)體中的問(wèn)題,會(huì)導(dǎo)致器件的失效,進(jìn)而影響整個(gè)芯片。所以為了在生產(chǎn)后能夠揪出失效或者半失效的芯片,就會(huì)在設(shè)計(jì)時(shí)加入專(zhuān)門(mén)的測(cè)試電路,比如模擬里面的testmux,數(shù)字里面的scan chain(測(cè)邏輯),mbist(測(cè)存儲(chǔ)),boundry scan(測(cè)io及binding),來(lái)保證交付到客戶(hù)手上的都是ok的芯片。而那些失效或半失效的產(chǎn)品要么廢棄,要么進(jìn)行閹割后以低端產(chǎn)品賣(mài)出。這個(gè)就叫做dft測(cè)試。通常dft測(cè)試會(huì)按照需求在封裝前或封裝后進(jìn)行測(cè)試,工廠里有專(zhuān)門(mén)的ate測(cè)試機(jī)臺(tái),用探針來(lái)連接測(cè)試的io進(jìn)行dft測(cè)試。通常dft測(cè)試不會(huì)測(cè)試功能,因?yàn)檫@貨是按時(shí)間收錢(qián)的..測(cè)試用例越簡(jiǎn)潔有效越好。而且用例太復(fù)雜,會(huì)影響出貨速度,比如出100w的貨,一塊芯片測(cè)試一秒,單dft測(cè)試24小時(shí)不停就要11天多。