Q: Boundary Scan是什么?應用場景是什么?實現的方法是什么?挑戰是什么?
A: Boundary Scan就是邊界掃描,是由Joint Test action Group起草的規范,最初是為了解決板級芯片之間的互聯測試的問題,實現方法就是在芯片內部的每個I/O上面加上一個Boundary Scan cell 用於控制和觀測每個I/O的狀態,然后把每個I/O的bscell串連起來交由TAP控制器控制。TAP控制器按照 IEEE1149.1 規范通過5個I/O 串行與外界通訊。雖然Boundary Scan是為了解決板級芯片互聯的測試而設計的,但是也可以用來進行芯片自身 I/O 的測試,比如 VIH/VIL, VOH/VOL, highz, I/O漏電等等的測試,IEEE1149.1 規范比較實用於純數字電路的I/O測試,后來為了解決一些高速差分接口的測試,增加了IEEE1149.6 規范,通過在原有協議的基礎上增加了兩條指令pulse 和transition 來測試差分信號。關於Boundary Scan的部分,三家EDA公司的DFT tool的manual都有詳細的介紹,關於1149.6 AC jtag的部分,大部分的串行接口IP都會支持,可以找相關部分參考研究。關於 AC jtag部分,由於在芯片設計和板級設計上都有一些特殊考慮,挑戰會較大一些。
由於TAP 只需要5個I/O(或者4個I/O)與外界通訊,並且協議比較簡單,所以TAP 除了用來做boundary Scan的控制之外,還大量用來做SoC內部電路的測試控制以及追蹤調試。隨着SoC規模、復雜度的增加以及 time-to-market 要求的提高,基於IEEE1149 規范,后來又提出了 P1500 以及 IEEE1687 規范用來解決 embedded IP的測試控制。相比於其他串行接口,TAP 接口操作簡單,是對 ATE 機台最為友好的接口。
對於這一塊,參考學習的資料也很多,最直接有效的方法就是直接翻看成熟IP的Code,舉個例子,不論是哪家的 DDR PHY,USB PHY里面都有JTAG用於測試以及調試的邏輯,打開代碼看一下就明白咋回事了。
Q: MBIST是什么?應用場景是什么?實現的方法是什么?挑戰是什么?
A: MBIST是memory build-in self test,就是對芯片中嵌入式的 memory 進行自測試。芯片中嵌入式的 memory 被深深埋到芯片的邏輯當中,根本沒有辦法直接通過外部加激勵來進行測試,必須在芯片中設計一部分電路自動對嵌入式的 memory 進行自測試。現在SoC設計,嵌入式的 memory 所占面積比例非常高,通常一款SoC, 75%~80% 的面積都是embedded memory,並且embedded memory的density很高,在生產當中很容易產生defect,並且工藝不同,產生defect的density容限也不同,必須把所有有defect的芯片通過測試篩選出來,這樣MBIST幾乎是每款芯片都要做的,對於一些memory占比高的芯片,不僅要做MBIST還要做Repair。
MBIST的實現方法很多,有很多成熟的flow可供采用,此處不去比較各個flow的優缺點。關鍵是根據自己芯片的特點定制適合自己的flow。Flow的定制也受限於各種因素,比如memory Vendor, tool vendor的選取, 芯片對 timing, area, power, reliability的要求,后端routing的限制等。Flow定制的好,可也節省人力、縮短schedule,節省芯片面積。Flow定制的糙一點,也不是不能做,就是費時、費力,芯片面積大點、測試時間多點,芯片的cost高一些。
Q:MBIST RTL flow跟netlistflow各有什么優劣?更推薦哪種flow?為什么?
A:沒有什么優劣,只是適合不適合自己。對於design service 公司,推薦 netlist flow,因為design service 一般都看不到code,而且和客戶之間的delivery 都事前切割的很清楚,和前面反復的也比較少,netlist flow 也簡單,做起來比較容易一些。
對於 design house 公司,推薦RTL flow,可以提早把mbist做進去,驗證、綜合都可以和設計一起做,效果好一些。RTL flow復雜性會大一些。主要體現在rtl coding style, design database的管理,sdc 的處理等上面。
Q: MBIST時,Memory partition要考慮哪些因素?推薦的做法是什么?
A: 主要考慮memory type, clock domain, physical location, power consumption等,做mbist的時候最好帶着def做。
Q: LBIST是什么?應用場景是什么?實現的方法是什么?挑戰是什么?
A: LBIST 是logic build in self test. 就是對邏輯進行內建自測試,不同於ATPG, LBIST的測試激勵是由on-chip的電路自己產生,對功能邏輯進行掃描測試。不依賴於ATE機台,直接在板上進行測試,甚至芯片部署到產品中以后也可以進行in-system 的測試。LBIST的開發難度大、開發周期長,對芯片面積也有很大的開銷,一般都是對可靠性要求比較高的芯片才做LBIST,像消費類的產品鮮有做lbist的。由於LBIST on chip產生的激勵是偽隨機的,coverage一般不高,並且對芯片中的X-source敏感,芯片中的X-source會直接crash LBIST,所以進行lbist設計,清理芯片中的x-source是很大一部分工作量。
Q: Analog 的DFT如何實現?常用的結構有哪些?挑戰是什么?
A: Analog的DFT測試一直都是一個難點,現在Analog的測試都還是要依靠designer在電路是添加測試電路,完全依賴於designer實現的
Part II
Q: 常說的scan chain,stuck-at跟at-speed test各是什么?分別如何實現?挑戰是什么?
A: 這些都是屬於ATPG測試,stuck-at pattern是用來測試電路中stuck類型的defect,比如open, short, tie high, tielow等。At-speed test主要是用來測試電路中timing相關的defect。ATPG pattern 的產生主要是依賴於EDA工具來實現。設計的挑戰來自於對SoC設計的理解,特別是Clock domain的控制,對於CDC path的處理,這些都是design dependent 的,所以DFT工程師要對設計非常了解才行
Q: 壓縮解壓縮的概念是什么?為什么引入壓縮解壓縮?如何定義壓縮比?
A: 所謂壓縮就是為了節省scan I/O的數量,把scan chain的數目壓縮一下再拉到I/O管腳上面去,壓縮比沒有什么嚴格的規定,主要看芯片可用I/O和內部scan chain的個數而定,從幾十到幾百都可以。
Q: ATPG是什么?用於DFT的哪個方面?在電路結構上如何體現?如今業界算法是否大同小異?最流行的算法是什么?
A: ATPG 是autotest pattern generation, 用於利用scan chain 來測試數字電路中的defect,做ATPG先決條件必須是插好scan chain。ATPG算法已經相當成熟,各家的EDA工具大同小異,沒有太大差別。以前還搞過模擬退火算法,已經很多年沒有跟蹤這一塊的進展了,對於電路設計者來說,沒有必要了解ATPG具體采用了什么算法,完全依賴於EDA工具就可以。
Q: OCC/OPCG/scan clock mux用途是什么?工作原理是什么?如何實現?
A:這些都是同一個東西,不同人的不同叫法。就是為了at-speed ATPG測試時在function clock和shift clock之間切換的控制邏輯。不同人設計的電路不一樣,它就是一個2選一的clock mux,設計時注意處理一下cdc的path,不要產生glitch就行了
Q: DFT的標准都有哪些?分別是什么?用於什么?
A: 沒有硬的標准,就是一個tradeoff. 做芯片就是tradeoff。根據自己芯片的實際情況做一些tradeoff。時間、性能、成本各個方面的tradeoff。
Q: 除了以上提到的,DFT還有哪些類別?
A: 大類上面基本都覆蓋了。能想到的就是一些對可靠性要求非常高的產品,需要做 in-system 的test,這類芯片的DFT設計挑戰非常高,不僅需要DFT的知識,還需要有一定的系統方面的知識。這一塊國內涉及的人比較少。
Q: 當前DFT的發展趨勢是什么?
A: DFT是一個實戰性很強的專業,他是為了解決芯片設計、制造的問題而存在的,他不可能獨立發展。他要伴隨着芯片的發展而發展。假如存在一個理想情況,foundry足夠牛,生產的芯片100%是no defect的,在使用過程中也不會引入新的defect,那DFT就沒有必要做了,費人費力費面積。所以我們不說發展趨勢,說發展需求,由於國內芯片行業發展的非常快,已經開始涉及對芯片可靠性要求非常高的行業,比如工業控制,汽車電子等產品,這些產品對芯片的可靠性要求高,一般需要對芯片做in-system的測試,這要求DFT越來越向system靠攏,要求DFT工程師對sytstem要熟悉。
Q: 16/12、7nm對於dft有什么挑戰,或者有什么需要注意的地方嗎,從方法學和flow的角度?
A:從兩個方面來說:其一,工藝節點本身發展帶來的挑戰。主要是指工藝節點的演進引入的新的defect model 需要新的DFT算法來檢測。老實說對於這一部分大部分工程師或者公司無能為力,因為需要foundry支持,只有大公司才有可能獲得foundry的合作。所以只能依賴於EDA工具來support。其二是由於工藝節點的演進帶來的集成度的提高,使得SoC規模越來越大,SoC集成的東西越來越多,同時SoC面臨的time-to-market的壓力也最大,對於這一部分,工程師能夠支配的空間就很大,一個完整、完備、自動化的flow對於提高交付的質量是一個很好的保證。