聊一聊tapeout失敗的事
這是IC君的第17篇原創文章 (同步於公眾號 icstudy )
最近看到知乎上有個問題,有哪些晶元流片失敗的故事?網址
https://www.zhihu.com/question/68260450 。 IC君也來強行湊湊熱點,講一講流片失敗相關的經驗,畢竟IC君也工作6年以上了。
先來定義一下什麼算流片失敗,一種是比較嚴重的,上電之後沒有反應,完全進不了內部flow;另外一種是上電有反應,正常工作時有嚴重bug,無法交付給客戶。
比較嚴重的錯誤一般會有哪些因素導致呢?主要是工藝、ESD、重要的啟動電路等。工藝問題對我們IC設計工程師而言有點距離,比如foundry把層次搞錯了,或者忘做某道mask了,某種溶液的濃度改變等。這些類似於靈異事件導致的流片失敗,你把wafer拿回來debug一個月可能都發現不了問題,特別浪費時間!想要發現此類問題一般也要靠人品。
ESD的問題基本上很容易發現,可以看到很大電流然後晶元燒毀。出了這種問題,一般也必須重頭來過了。ESD的問題具體可以參考文章炎炎夏日,晶元也會中暑?
重要的啟動電路通常包含一些通電複位、BANDGAP基準電路等。有時候啟動之後就卡死在通電複位電路裡面的某個phase,死活過不去。所以一般經過tapeout驗證之後的通電複位電路輕易不會改動,如果你想改必須在開會的時候得到大家的同意。BANDGAP基準電路如果錯掉的話,內部的模擬電路根本無法正常工作。
說完嚴重的錯誤,再來聊聊那些相對不嚴重的。晶元起碼有反應了,不是一塊石頭了,但是又有嚴重的bug導致晶元無法交付給客戶。嚴重的bug指的是跟spec/datasheet的要求差別太大,比如嚴重的功能bug;晶元中的管子被擊穿;晶元實際測量的DC/AC特性嚴重不滿足:待機電流增大了100倍,變成1mA;輸出時間5n變成了20n等等。了解DC/AC特性請參考這篇文章如何閱讀datasheet。
如何在一定程度上避免上述問題呢?功能bug的問題,我們可以通過大量的模擬和驗證來避免;模擬有時候還要帶上寄生參數,有些模塊對寄生參數很敏感,如一些延時電路、clock產生電路等;tapeout之前的任何改動都要盡量充分的驗證,起碼改動的部分要仔細跟之前的設計比較,確保tapeout版本工作正常。模擬電路要注意layout 檢查的動作,保證layout是按照自己的要求來畫的。
非邏輯bug的問題甚至是一些粗心明顯的問題,這就要求我們在整個項目執行的過程中,必須遵循公司既有的tapeout flow,design guideline,check list等,這些規則都是公司的前輩踩過的一個個坑總結出來的,我們遵守這些規則就避免了踩雷,提高流片的成功率。
大家可以留言講講自己奇葩的tapeout失敗經歷哦~
推薦閱讀: