1. 程式人生 > >DFT,可測試性設計--概念理解

DFT,可測試性設計--概念理解

工程會接觸DFT。需要了解DFT知識,但不需要深入。

三種基本的測試(概念來自參考文件): 
1. 邊界掃描測試;boundary scan test。測試目標是IO-PAD,利用jtag介面互連以方便測試。(jtag介面,實現不同晶片之間的互連。這樣可以形成整個系統的可測試性設計。) 
2. 內建自測試BIST;(個人理解:模擬IP的關鍵功能,可以開發BIST設計。一般情況,BIST造成系統複雜度大大增加。memory IP一般自帶BIST,簡稱MBIST) 
3. 掃描測試(又叫ATPG)。scan path。與邊界掃描測試的區別,是內部移位暫存器實現的測試資料輸入輸出。測試目標是std-logic,即標準單元庫。(個人理解:掃描測試和邊界掃描,不是一個概念。需要區別對待。內部的觸發器,全部要使用帶SCAN功能的觸發器型別。)

補充: 
還有一種測試: 
4. 全速測試at-speed-test(其實是屬於掃描測試的一種。只不過測試時鐘來源頻率更快。) 
at-speed 就是實速測試, 主要用於scan測試-即AC測試,和mbist測試。這種測試手段的目的是-測試晶片在其工作頻率下是否能正常工作,實速即實際速度。測試時鐘往往是由晶片 內部的PLL產生很快的測試時鐘,用於實速測試。 
相對而言 ,一般的測試是20~40兆的測試時鐘,頻率低,測不到transition fault,即使測試通過,實際使用中還會由於使用高頻時鐘發生晶片電路故障。

常見的DFT/OCC結構如下: 
特點: 
1. Clock MUX必須放在OCC模組/DFT MUX之前。 
2. 時鐘大於50MHz時,使用OCC模組,否則使用DFT MUX。 
3. Clock Gate放在OCC模組/DFT MUX之後。 
4. 對於手動新增的Clock Gate,DFT_SE埠接到 dft_glb_gt_se。 
5. 對於綜合工具新增的Clock Gate,DFT_SE埠接到dft_syn_gt_se 
注意: 
1. DFT_MODE有效時,clock mux的sel訊號要保證dft_clk來源於最高頻率的時鐘源。 
2. DFT_MUX或者OCC,不能串聯。 
這裡寫圖片描述

OCC(On Chip Clock)結構如下: 
注意: 
1. slow_clk是類似dft_clk;這個時鐘源由後端提供。個人認為所有dft_clk的來源,頻率不一樣,來源由後端決定,應該是測試引腳輸入的吧?! 
2. fast_clk是正常工作時鐘源。 
這裡寫圖片描述

DFT工程師手裡有三大法寶: 
法寶一:BSCAN技術– 測試IO pad,主要實現工具是Mentor-BSDArchit,sysnopsy-BSD Compiler; 
法寶二:MBIST技術– 測試mem,主要實現工具是Mentor的MBISTArchitect 和 Tessent mbist; 
法寶三:ATPG 技術– 測試std-logic,主要實現工具是:產生ATPG使用Mentor的 TestKompress 和synopsys TetraMAX,插入scan chain主要使用synopsys 的DFT compiler。 
以下對工具的使用原則做一些介紹:

ATPG工具 
Insert scan: 
1、雖然教科書會介紹很多種DFT DRC但是在實際設計中95%的工作在修復scan_clk和scan_reset的DRC violation; 
2、修復clk/reset violation 的方法主要是用DC插入mux ,目的是使在scan_mode下clk和reset被晶片scan_clk和scan_reset pad控制。 同時,scan_clk和scan_reset pad會用於ATE給晶片施加激勵; 
3、插入scan時,DFT Compiler必須修復的DRC violations 類別為D1/D2/D3/D9; 
4、做全片級的DFT設計時,需要在scan_in,scan_out,scan_reset,scan_clk的IO pad 的OEN/IE/REN端插入mux,控制pad的輸入和輸出方向。

Atpg patterns產生和模擬: 
1、所有的模擬模組,例如PLL、POR等,一般設定為black-box,無法用ATPG測試其內部; 
2、晶片clk、power、reset的控制暫存器,一般不會放到scan_chain上,以免在測試時由於暫存器的動作,改變晶片工作狀態; 
3、考慮power domain的開關,一般必須保證在scan測試時,所有power domain都開啟,每個數字標準單元都能測試到; 
4、如果有模擬的IO pad,一般必須在產生pattern時mask掉,因為他們不是數字的,ATPG工具無法控制它們; 
5、業界一般使用DC插入OCC (on chip clocking)模組,實現at-speed scan測試電路。

MBIST工具 
目前使用較多的是MBISTArchi,但是Tessent MBIST以後會成為主流。原因是Mentor公司2013年已經宣佈MBISTArchi將不再提供技術支援,而且Tessent MBIST技術更為先進。 
1、所有的MBIST設計應該考慮diagnose。加入diagnose電路,方便診斷mem故障,這會在晶片量產時大大提高成品率; 
2、由於ARM與Mentor有合作,Coretex-A9以上的ARM核具有share-bus介面,可以很好支援Tessent Mbist,就能夠實現ARM核心的mem的高速測試和訪問,也提高了ARM CPU的效能; 
3、Tessent MBIST會使用JTAP,只佔用TCK/TMS/TDO/TDI/TRST五個pad,比MBISTArich使用更少的pad資源。 
BSCAN 工具 
1、所有的模擬IO,一般無法用bscan來測試,不要加上bscan_cells; 
2、所有需要測試的數字pad的OEN/IE/REN 在bscan_mode下,需要插mux來控制; 
3、所有需要測試的數字pad的PU/PD 在bscan_mode下,一般需要插mux來控制,保證在bscan_mode下,PU和PD=0,才能使bscan HIGHZ測試模擬通過; 
4、所有JTAG的強制要求指令如IDCODE,EXIST必須在bscan電路中實現,特別是BYPASS。

那麼對DFT工具的使用,Kevin He拋磚引玉,請朋友們暢所欲言。 
1)如何用可測性設計ATPG工具實現at-speed測試? 
2)如何使用BSCAN工具中實現PLL測試? 
3)使用Tessent MBIST實現at-speed測試? 
4)BSCAN工具會在pad的那些埠上連上bscan cell?

參考文件: