開始玩

← fab24hr 專欄

晶片入門約 5 分鐘

晶片驗證是什麼?下線前怎麼確定設計是對的

晶片驗證(也叫設計驗證、功能驗證)是在晶片做出來之前,確認設計做的事跟規格一樣。設計的人把電路寫好,驗證的人在電腦上給它出很多考題、看答案對不對;都確定了,才下線,交給晶圓廠。它查的是「設計圖」對不對,不是某一顆做出來的晶片好不好。

設計整個怎麼走,見「晶片是怎麼設計出來的?」;這篇把其中「驗證」那一步拆開來講。

為什麼要在做出來之前先驗證?

因為晶片一做出來,電路就改不了。設計交出去之後,要先做一整套光罩(光罩是什麼?),再投片,在晶圓廠走上好幾個月。

這時才發現設計錯了,就得改設計、重做光罩、重新投片,錢和好幾個月一起賠進去(晶片為什麼這麼貴?)。而且設計錯了,做出來的每一顆都一樣錯。

所以大家寧可在電腦上多花時間找錯。一般的說法是,驗證常佔掉設計工作裡很大一塊。

IC 設計流程圖:數位晶片從規格、用硬體描述語言寫出行為、驗證、合成、佈局繞線、檢查,到下線(tape-out)交出去做光罩;實際上常要回頭改好幾次。
晶片先在電腦上設計好、檢查很多遍,才下線,交出去做光罩。下線之前常回頭改好幾次;下線之後再改,就得重做光罩。

驗證怎麼做?一步一步看

第 1 步:對著規格,列出要考什麼

驗證的人先讀規格,把晶片該做的每一件事列成清單:有哪些功能、遇到什麼情況該怎麼反應。考題要照規格出,不能照設計的人寫的電路出:照著電路出題,寫錯的地方也會被當成對的。沒有這份清單,就說不出「驗完了沒有」。

第 2 步:模擬:給輸入,看輸出對不對

模擬是讓電腦假裝自己是這顆晶片,一拍一拍算出每條線是 0 還是 1。驗證的人搭一個「考場」:送進輸入,把輸出跟標準答案比;標準答案常由另外寫的簡單版本算出來。晶片說到底,是很多邏輯閘照輸入決定輸出(邏輯閘是什麼?);在電腦上每一條線都看得到,哪裡算錯,一查就找得到。

除了自己出的題,也讓電腦照規則隨機出很多題,碰碰人想不到的組合。設計每改一次,以前的考題就全部重跑一次,確定改好了這裡、沒弄壞那裡。跳過這一步,設計裡的錯就要等晶片做回來才會發現,那時再改就要重做光罩。

第 3 步:看覆蓋率:還有哪些情況沒考到

考的時候,電腦會記下電路的哪些部分動到了、清單上哪些情況出現過,這叫覆蓋率。考題全對,不代表電路沒錯,可能只是錯的地方還沒考到;覆蓋率指出還缺哪些題,再去補。只看「全部通過」就交出去,沒考到的那一角,常就是之後出事的地方。

第 4 步:形式驗證:用數學證明一定成立

模擬再多,也只能試有限的題目。例如兩個 32 位元的數(各用 32 個 0 或 1 寫成)相加,輸入的組合有 2 的 64 次方種;就算一秒試十億種,也要試五百多年。

形式驗證不出題,而是用數學把所有可能一起想完,證明某件事一定成立,例如「這兩個訊號絕不會同時打開」,或「寫好的行為和合成出來的邏輯閘電路,做的事一模一樣」。不用它,那些很少見、模擬碰不到的組合,就可能一直躲在設計裡。它的限制是電路一大,要想的可能多到算不完,所以像第一個例子那樣的證明,常用在比較小、又特別要緊的部分,跟模擬搭著用。

第 5 步:放到可以重寫的硬體上,跑快一點

軟體模擬要一拍一拍算,整顆大晶片跑起來很慢。所以也會把設計放進一種可以重新寫入電路的晶片(FPGA),或專門用來模仿晶片的大型機器,讓電路真的動起來,快很多。快到可以先把要在這顆晶片上跑的軟體跑起來,看兩邊配不配合;不然軟體要等晶片做回來才能開始試,又多等好幾個月。

第 6 步:來不來得及、電夠不夠、做不做得出來

前面看的是「做的事對不對」。電路排成一層層的圖形(版圖)之後,還要查:訊號在每一拍之內來不來得及跑到,而且工廠做偏快、偏慢的幾種角落都要過;電從外面送到每一處,電壓會不會掉太多、會不會太耗電;圖形合不合晶圓廠的設計規則。功能全對的電路,訊號慢了一點、電壓低了一點,照樣會算錯;不合規則,就做不出來。這些檢查大多靠設計軟體(EDA 是什麼?)。

第 7 步:簽核,下線

每一項檢查都確認過了,這一關常叫簽核(sign-off)。接著把最後的設計檔交給晶圓廠,就是下線(下線(tape-out)是什麼?)。之後再改就要重做光罩,所以要有一條清楚的「到這裡為止」。

第 8 步:晶片做回來,再實際測一次

第一批晶片做回來,裝在專門的板子上通電,讓它真的跑:功能對不對、在不同電壓和溫度下穩不穩、跟軟體配不配合。這叫矽後驗證(post-silicon validation)。電腦上的模型再仔細,也只是模型;有些問題要真的晶片跑得夠快、夠久才會出現,也有些是前面漏掉的。難的是晶片裡的線大多看不到,只能從外面看結果,找原因比在電腦上難得多。找到設計的錯,就改設計、再下線一次。

驗證跟晶圓廠的量測、測試,差在哪?

三件事都在確認「對不對」,查的東西不一樣:

晶片驗證量測與檢測晶片測試
查什麼設計圖對不對重要的步驟做得對不對,例如膜多厚、線多寬做出來的這一顆有沒有壞
什麼時候下線之前,大多在電腦上在晶圓廠,做到一半通常晶圓做完、包好之後各一次,每一顆都測
錯了會怎樣每一顆都一樣錯這一批、這幾片出問題壞的那一顆挑掉

像蓋房子:驗證是開工前檢查設計圖,量測是蓋的時候量牆直不直,測試是交屋前每一間開水開電試一次。設計圖算錯了,每一間都照錯的圖蓋;設計圖對了,某一間也可能蓋壞。兩邊怎麼做,見「晶圓廠怎麼知道做對了沒?」和「晶片怎麼測試?」。

在晶圓廠和封測廠,「驗證」也常指新產品做出來之後的可靠度測試等別的事;這篇講的是設計的驗證。

在 fab24hr 裡

遊戲裡沒有設計或驗證晶片的位子;主線「晶片的一生」從下線之後開始。第一次玩,會先看到序章「下線」:助聽器晶片「螢火」的設計做完、檢查過,交給晶圓廠做成一套光罩。

第 1 章「12 片怎麼分」在投片前一天,你是研發線的研發整合工程師:同一張設計圖,工廠做出來一定有偏差,所以第一批 12 片要故意把幾片做偏快、偏慢,看設計在真的晶圓上撐不撐得住。第 10 章「待機電流」在封測廠,資深測試工程師鄭姐說,測試程式的上限是照設計模擬定的第一版;真的晶片回來,邊緣那一圈剛好卡在上限附近。

遊戲裡的公司、晶片和人物都是虛構的;驗證的做法照公開的一般資料寫,各家做法不一樣。其他行話可以到「半導體晶圓廠的行話,白話解釋」查。

在遊戲裡你會在哪裡遇到它第一次玩主線「晶片的一生」,會先看到序章「下線」:助聽器晶片「螢火」的設計做完、檢查過,交給晶圓廠做成光罩。第 1 章「12 片怎麼分」,你在研發線上決定第一批 12 片怎麼分:故意做偏快、偏慢,看設計在真的晶圓上撐不撐得住。

在 fab24hr 的主線「晶片的一生」裡,設計已經檢查過、下線了;你在研發線上,看它第一次真的做出來撐不撐得住。

從第 1 章開始:看設計在第一批晶圓上撐不撐得住

給老師:這一篇可以搭配「在課堂上玩 fab24hr」用在課堂上。

引用這篇〈晶片驗證是什麼?下線前怎麼確定設計是對的〉,fab24hr,更新。https://fab24hr.com/blog/chip-verification/
課堂與非營利可以免費使用,投影、放進講義、印給學生都可以,請註明 fab24hr;不能販售,也不能改成自己的作品。 看到錯誤?回報問題

其他文章

這個網站的其他頁