數字IC dft engineer 需要什麼知識以及發展前景怎麼樣?


第一次回答,現在正好在做DFT的部門實習,嘗試回答一下這個問題。

1. 為什麼要進行DFT

DFT (Design for Test)是在晶元設計中,添加除了功能邏輯之外的電路,方便晶元生產之後能夠迅速測試區分晶元的好壞。在要求比較苛刻的晶元中,還通過進一步的設計中,能夠準確地定位錯誤發生在哪個地方。

隨著數字晶元的規模越來越大,晶元的測試成本進一步增加,甚至超過晶元功能部分本來的成本。如何在晶元設計的過程中考慮測試的問題,成為當前晶元設計很重要的一部分。晶元測試部分,請參考半導體廠商如何做晶元的出廠測試?

2. 如何進行DFT

如何測試,簡單地說,就是提供一個測試激勵,然後讓測試激勵通過功能電路,然後在功能電路的某個位置(觀測點)捕捉響應,然後將這個響應與預期的響應進行對比。

在一般的電路中,DFT包括以下3個方面:

  • BIST( Built In Self Test) : 在功能電路中增加一部分測試電路,這部分電路能夠自己產生激勵,然後自動捕捉響應,接著對比響應與預期,最後輸出測試結果。BIST又分為LBIST和MBIST,由於複雜度和成本的問題,MBIST在DFT使用比較多。
  • Boundary Scan:邊界掃描用於測試晶元的IO管腳,現在晶元的管腳越來越多,在電路板級測試的難度,設計一種電路將所有IO串起來測試,變得實用且可行。在邊界掃描中,用得比較多就是JTAG
  • Scan Chain:掃描鏈就是電路中所有的DFF替換成帶測試模式的寄存器,然後將這些寄存器首尾相連成一條鏈。在測試過程中可以賦予一些寄存器一些初值(測試激勵),然後讓電路工作,接著採樣寄存器的Q端(捕捉響應),最後將響應通過掃描鏈輸出(對比響應與預期)

3. DFT 需要什麼知識

通過以上的描述可以看出,相比於前端設計比較關注RTL,DFT更加關注電路。因此DFT對電路結構的要求比較高,需要懂得分析網表,對電路的結構和時序的分析。

相比與後端設計,DFT又比較強調設計,尤其在邊界掃描部分,需要設計合適電路配合JTAG協議,最後能夠讓測試人員使用。

DFT的位置處於前端和後端的交接處,一般從功能電路的網表開始,然後添加替換一些電路,增加一些電路,然後在最後生成一個網表,交給後端處理。

總結來說,DFT需要的知識就是既要有前端設計的知識,又有後端設計的知識,同時還有懂得電路測試知識,到時還有配合做測試的工作。

4. 發展前景

我也是接觸不久,沒有資格說太多。我自己的感覺是,DFT對於晶元來說是越來越重要。以前DFT Engineer 一般是由PD來兼任(現在的很多公司也是),一般就是工具按照flow run一遍就可以,考慮的問題比較少。而現在大公司一般會有專門的人負責這個部分,所以我覺得以後發展的趨勢,DFT Engineer會越來越重要。


數字DfT工程師要

  • 懂電路。寫出來的RTL code要知道綜合出來是什麼電路;

  • 要有晶元測試的知識

這些基本的知識是可以在學校學到的。在公司里做過一兩個項目後會有更深的認識。個人認為,發展前景很不錯,因為晶元總是要測試的。不過要注意,盡量去大公司發展。說實話,小公司做的DfT考慮的東西比較少。


首先,我是HR,不是做技術的。如果回答得不對,還請指正哈。

最近正好在做DFT職位的招聘,請教了兩個工程師同事。總結了一下他們所說的DFT所需要的技術能力,回答一下題主的前半個問題。

DFT工程師其實前後端都需要涉及一些,既需要會前端設計的知識(RTL coding),還要有後端的知識(綜合、時序之類的),同時需要懂一些測試相關的原理。再就要知道DFT的一些必須知識,比如Jtag,Mbist,Scan之類的原理。還有就是會tcl、perl等腳本語言。


推薦閱讀:

華為的海思能不能替代龍芯?
PIE offer 到底要不要堅持在半導體行業?
iPhone 7 為什麼集成一顆 FPGA 晶元?
開發一個晶元架構有多難?
既然華為的SoC是Arm公版設計,那所謂的自主研發體現在哪裡?

TAG:晶元集成電路 | 行業發展 | 晶元設計 |