DFT設計緒論


DFT設計的主要目的是為了將defect-free的芯片交給客戶。

產品質量,通常使用Parts Per million(PPM)來衡量。

但是隨着IC從SSI到VLSI的發展,在test上花銷的時間越來越多,test的quality卻很難提高,這使得DFT的engineer不斷的發展着DFT的技術。

 

DFT engineer面對的第一個問題是設計內部的狀態的可測試性問題。在1970-1980年間,提出了ad hoc等可測試性設計的方法。

可以提高一個design的可測試性,但是對於sequential的電路還是很難進行ATPG的產生。

 

對於combinational的電路,有很多ATPG的算法可以用來進行test pattern的生成,但是對於sequential的電路卻很難。

 

后來帶有直接外部訪問的storage elements的提出,才解決了sequential的可測性與可觀性。這樣的cell叫做scan cells。

 

scan design是目前為止,使用最多的structure的DFT方法,通過將多個storage element連接為多個shift register來實現。

 

一個design中,所有的storage element都做了scan inserting,這樣的design叫做full-scan design;

一個design中,大多數的(超過98%)的storage element做了scan inserting,這樣的design叫做almost full-scan design。

                     一些不用SDFF替代的cell,可能是不想要在scan mode下被改變的register,本身就是shift register的寄存器(包括sync FF)

                     timing非常critical的path等。

一個design中,一些storage element做了scan inserting,並且使用了sequential的ATPG,這樣的design叫做partial-scan design。

其中的storage element主要為了break sequential feedback來選擇,從90年代起,隨着沈亞微米技術的發展,full_scan逐漸代替

partial_scan成為主流。

 

每一個DFF的D端值,可以表示為某些DFF的Q值和組合邏輯的函數來得到,Di=f(Qx, Input)。在SE為1的情況下,所有的Qx都有了確定的值。

如果整個chip的input pad也是固定值,那每一個DFF的D端值一定是可以計算出來的。

一些analog和ram類的輸出信號,着這種會進行bypass處理,保證Di是一個確定值。如果沒有相應的mux,那TMAX計算出的Di為不確定值。

相應DFF在移位出scan chain的時候,對應的cycle應該進行mask處理。

這些hardblock如果沒有bypass處理,會影響test coverage。

 

為了提高fault coverage,一些scan design rules必須被遵循。除了scan_design外,還有Built_in self_test(BIST)和test compression

也得到了很廣泛的應用。

而近幾年,DFT的測試開始從netlist轉向RTL level來減小test development的時間,以及testable的code。

 

scan register的替換,帶來的area increased,大約在15%

compression logic帶來的area increased,大約在1%

bist logic帶來的area increased,大約在2%--5% 

 

defect的model類型有:

Stuck At

Transition

Path Delay

Bridge Test

IDDQ

 

針對芯片的三大部分,我們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/cadence的RTL Compiler

 

Mentor的工具更新為Tessent平台,包括工具:Tessent FastScan                  Tessent MemoryBIST

                                                             Tessent testKompress           Tessent LogicBIST

                                                             Tessent Scan                      

                                                             Tessent Diagnosis

                                                             

 

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

 

chip中的test mode可以分為analog(BIST),function,BIST,SCAN,IO

Yield:良率 (number of acceptable parts)/(total number of parts fabricated)

 

icg_mode,在shift時,設置為1,capture時,根據ATPG的情況來判斷。

icc_bypass,用在ac stuck at model下的測試,相比較於dc stuck at,低頻clock的clock define點不同,可以不需要在修

                  timing,而如果沒有ac stuck at,一些經過同一低頻clock,不同occ clock的邏輯,可能是異步的,但是在dc mode

                  在被作為同步,designer需要為此修很多timing,增加buffer。

ac mode下,會有很多低頻的clock mux,用於測試不同的邏輯。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM