眾所周知,芯片主要由三大部分構成.
芯片示例-可見下圖
1.與電路板和其他芯片的接口-IO pad
2.存放程序的空間-RAM和ROM
3.搭建邏輯電路的基本組件 –標准邏輯單元
DFT工程師所有的工作的目的只有一個-設計和插入數字電路,測試整個芯片的制造質量,篩選出沒有制造缺陷的芯片。
針對芯片的三大部分,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
以上三類工具licenses較貴,特別是ATPG工具,很多IC公司都只有幾個,經常run case時出現拿不到license的情況。
以下對工具的使用原則做一些介紹
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工具
目前使用較多的是MBISTArchitect, 但是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會使用JTAG,只占用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
問題
1)如何用可測性設計ATPG工具實現at-speed測試?
2)如何使用BSCAN工具中實現PLL測試?
3)使用Tessent MBIST實現at-speed測試?
4)BSCAN工具會在pad的那些端口上連上bscan cell?
關於MBIST/SCAN/BSCAN的技術介紹,我們可以參看《數字系統測試和可測試性設計》一書,書中有更為詳細和系統的介紹,該書近期將由機械工業出版社出版。