DFT技術
DFT (design for testability):指在設計系統和電路的同時,考慮測試的需求,通過增加一定的硬件開銷,獲得最大可測性的設計過程。(因為增加了硬件,所以也帶來了不足)
可測性設計中的兩個重要概念:可控制性(設置信號的難度)、可觀測性(觀察信號故障的難度)。
下文主要講解數字電路的可測性設計方法:掃描測試結構、用于存儲器測試的內建自測結構、以及用于測試板級連接的邊界掃描測試結構。
目錄
DFT技術
(1)Scan Chain(掃描鏈)
基本概念
觸發器和鎖存器設置
原理
掃描規則
設計流程及相關EDA 工具
(2)M-BIST(存儲器內建自測試),
當前測試嵌入式存儲器的方法:
BIST 基本概念
算法:
工具集成:
(3)Boundary Scan(邊界掃描)
IEEE 1149.1 標準
2. 端口定義如下
3. TAP 控制器
4. 寄存器組
5. 相關指令
6. 板級測試策略
DFT 技術在 SOC 中的應用
模塊級的 DFT技術
?SOC中的DFT應用
總結:
(1)Scan Chain(掃描鏈)
掃描測試是理想的結構故障測試 結構。針對時序電路,測試寄存器(Flip-Flop)和組合邏輯;
基本概念
掃描測試是目前數字集成電路設計中最常用的可測性設計技術,這里說的是內部掃描。不同于邊界掃描。掃描時序分成時序和組合兩部分,從而使內部節點可以控制并且可以觀察。
測試矢量的施加及傳輸是通過? “?將寄存器用特殊設計的帶有掃描功能的寄存器代替,使其連接成一個或幾個長的移位寄存器鏈來實現的 ”。
掃描測試結構的基本單元就是掃描觸發器,目前使用的最廣泛的就是帶多路選擇器的D 型觸發器和帶掃描端的鎖存器。
觸發器和鎖存器設置
D 型觸發器:
帶掃描端的鎖存器:
除了掃描觸發器外,還有一種掃描方式為電平敏感掃描設計,其中利用的掃描單元就是帶掃描端的鎖存器,如圖10-16所示。
當c為高電平的時候,為正常工作模式,數據從d端到mq端;
當a為高電平,為掃描工作模式,數據從 scan_in端到mq 端;
當b為高電平時,存在第一級鎖存器中的數據傳輸到 sq 輸出端。
這類掃描單元主要應用于基于鎖存器的設計中,其最大的劣勢是時鐘的生成和分配異常復雜。
將這些掃描單元按掃描移位模式連接起來,就構成了掃描測試的基本結構。掃描方式分為全掃描和部分掃描,如圖10-17所示。全掃描?意味著在設計中的每一個寄存器都用具有掃描功能的寄存器代替,使其在掃描測試模試下連成一個或幾個移位寄存器鏈。這樣,電路的所有狀態可以直接從原始輸人和輸出端得到控制和觀察。所謂部分掃描是指電路中一部分采用了掃描測試結構,而另一部分沒有。這些沒有采用掃描測試結構的部分將采用功能測試向量進行測試。通常在設計中為了提高電路的性能,排除那些違背可測性設計規則的寄存器,完成的掃描測試介于全掃描和部分掃描之間。
原理
在一般的設計中,為了達到 IC 設計的周期化和同步的目的,電路的主要組成結構為組合邏輯和觸發器,信號在經歷了組合邏輯傳輸后,用觸發器進行同步。
因此對于一般的設計,采用基于多路選擇觸發器的掃描設計方法,相應的掃描單元就是帶多路選擇的掃描觸發器。
而在處理器核中,鎖存器如果是主要寄存邏輯單元,那么就采用電平敏感掃描設計,相應的掃描單元就是帶掃描端的鎖存器。
掃描規則
掃描測試要求電路中每個節點處于可控制和可觀測的狀態,只有這樣才能保證其可替換為相應的掃描單元,并且保證故障覆蓋率。為了保證電路中的每個節點都符合設計需求,在掃描鏈插入之前會進行掃描設計規則的檢查。基本掃描設計規則包括:
- 使用同種類掃描單元進行替換,通常選擇帶多路選擇器的掃描觸發器;
- ?在原始輸入端必須能夠對所有觸發器的時鐘端和異步復位端進行控制;
- ?時鐘信號不能作為觸發器的輸人信號;
- ?三態總線在掃描測試模式必須處于非活躍狀態;
- ?ATPG 無法識別的邏輯應加以屏蔽和旁路。
通常的解決辦法是利用工具加人額外電路來解決上述的錯誤,比如鎖存器,可以在DFT Compiler 工具里加入 set_scan _ transparen來屏蔽。
設計流程及相關EDA 工具
掃描測試的設計主要包括兩部分內容--測試電路插入、測試矢量的生成。其中,測試電路插入主要完成下列工作:
?在電路中(RTL)中加入測試控制點,包括測試使能信號和必要的時鐘控制信號;
? 在掃描模式下將觸發器替換為掃描觸發器,并且將其串入掃描鏈中;
?通過檢查 DRC,保證每個觸發器的可控制性和可觀察性。
測試矢量生成,主要是利用ATPG 工具進行自動測試矢量的生成和故障列表分析。掃描測試的可測性設計流程如圖 所示。
目前常用的測試綜合和ATPG工具如下:
? 掃描插入工具:Synopsys 的 DFT Compiler、Mentor 的DFTAdvisor。
? ATPG 工具:Synopsys 的 TetraMAX、Mentor 的 Fastscan。
? 測試矢量驗證:Synopsys 的TetraMAX。
以 Synopsys 的 DFT Compiler 為例,可以將 DFT實現放在綜合流程中,而不會妨礙原功能、時序、信號完整或功耗的要求。實現過程主要包括如下4項。
- 信號定義
- 設計綜合
- 掃描插入
- 設計規范檢查。
(2)M-BIST(存儲器內建自測試),
測試芯片中存儲資源, rom 和 ram,在設計中插入內建自測試邏輯;
就功能而言存儲器主要包括地址解碼單元、存儲單元和讀寫控制單元3部分。
存儲器的主要故障類型:單元固定故障(SAF)、狀態跳變故障(TF)、單元耦合故障(CF)、臨近圖形敏感故障(NPSF)、地址譯碼故障(ADF)和數據保持故障(DF)等。
當前測試嵌入式存儲器的方法:
(1)直接訪問測試方法
直接訪問測試方法是在芯片外增加直接訪問存儲器的端口,通過直接讀/寫存儲單元來測試存儲器。
(2)通過片上微處理器進行測試
在這種方法中,微處理器的功能就像一個測試儀,可以利用微處理器存儲器中的匯編語言程序來實現所需要的存儲器測試算法。
(3)利用存儲器內建自測?(BIST,Built-In-Self-Test)
通過在存儲器周圍加入額外的電路來產生片上測試向量并進行測試比較,完成對存儲器的測試。BIST 的方法可以用于RAM、ROM 和 Flash 等存儲設備中,主要用于 RAM中。
(4)掃描寄存器測試
對于小型的嵌入式存儲器通常使用局部邊界掃描寄存器,這種方法需要給嵌入式存儲器增加測試外殼,由于外殼的延遲,存儲器的讀/寫速率將降低,在測試的時候數據都是串行讀入和讀出的,測試時間顯著增加,不太可能全速測試。
(5)用ASIC 功能測試的方法進行測試
對于小型存儲器,ASIC供應商提供了簡單的讀/寫操作用于 ASIC的功能操作,可以利用這些矢量對存儲器進行測試。
目前最流行的就是BIST,比起其他方法,BIST的最大優勢是可以自己完成所有的測試,并且有自動工具支持,可以進行全速測試。當然有利必有弊,BIST付出的代價是硬件開銷和對存儲器性能的永久損失,而對于故障的分析和診斷,BIST也有不足之處。
不過隨著存儲器在SoC中的地位的提升,BIST 的優勢也越來越明顯,他能夠充分實現 March 算法。
BIST 基本概念
內建自測是當前廣泛應用的可測性設計方法。它的基本思想是電路自己生成測試問量,而不是要求外部施加測試向量。它有獨立的比較結構來決定所得到的測試結果是否正確,因此,內建自測必須附加額外的電路,包括向量生成器、BIST控制器和響應分析器。
其中,核心部分是 BIST 控制單元,作為外部電路與存儲器之間的接口。為存儲器的自測試提供控制信號,控制測試的結束與否,并且實現測試算法。通常用有限狀態機來實現BIST 的控制單元。根據電路要求,可知控制電路需具備以下功能。
????????? 接收外部啟動信號,啟動存儲器自測試。
????????? 在該信號的作用下,對自測試電路進行初始化,并根據測試算法,產生自測試電路。
????????? 確定何時結束測試,并控制送出測試情況。
對預測結果,設計人員關心的不僅僅是故障的存在與否,更重要的是故障的診斷和修復,因此 BIST電路循要具備故障定位和輔助修復的功能。一旦發現觖陷,就暫停測試,然后將此時的讀地址、端口號、數據背景圖形編號和測試算法控制單元的狀態以串行方式送出片外,并且將狀態機固定在確定狀態,以便快速故障診斷,診斷完畢后再繼續進行測試。
由 BIST 額外電路帶來的測試引腳如下。
? BIST_MODE:測試模式選擇信號,控制電路進入 BIST狀態。
? BIST_ RESET:初始化 BIST控制單元。
? BIST_CLK: BIST測試時鐘。
? BISTDONE:輸出信號,標志自測結束。
? BIST_FAIL:輸出信號,標志自測失敗,說明存儲器有制造故障。
算法:
棋盤式圖形算法:在這種測試方案中,將存儲單元分為兩組,相鄰的單元屬于不同的兩組,然后向不同的組寫入0和1交替組成的測試矢量。停止后對整個存儲陣列進行讀取。
此算法可以覆蓋單元固定故障、相鄰單元間的圖形敏感故障。
march?(行進/遍歷)?:March 算法是自前最流行的測試算法,在March測試方案中,首先對單個單元進行一系列的操作,然后才進行下個單元的操作。操作序列稱為 March 單元(March Element)。一個March 單元可能包括一組簡單的序列,也可能包括一組復雜的、帶有多個讀/寫操作的操作序列。舉例:算法的復雜度為O(4n),表示對每個存儲單元進行了4次讀寫操作。算法復雜度的直接反映是測試時間的長短。
不同的march 算法,覆蓋不同的故障類型。故障覆蓋率的提高,犧牲了算法復雜度和測試時間。所以在實際應用時,要根據實際存儲器選擇測試算法。
工具集成:
BIST電路作為邏輯電路的一部分通常在 RTL級插入,并且需要與其他邏輯一起進行綜合。數據、地址和一些控制信號在進入存儲器之前需要經過多路選擇器。保證了在正常工作模式下,存儲器輸入信號來自于其他電路。在自測模式下,輸人信號由 BIST控制單元產生。
目前的EDA 工具都可在RTL級自動生成 BIST 電路并集成到設計中。
(3)Boundary Scan(邊界掃描)
主要功能:PCB 上芯片間互連測試。
原理:
邊界掃描的原理是在核心邏輯電路的輸人和輸出端口都增加一個寄存器,通過將這些 I/O上的寄存器連接起來,可以將數據串行輸入被測單元,并且從相應端口串行讀出。在這個過程中,它可以實現3方面的測試。
首先是芯片級測試,即可以對芯片本身進行測試和調試,使芯片工作在正常功能模式,通過輸入端輸入測試矢量,并通過觀察串行移位的輸出響應進行調試。
其次是板級測試,檢測集成電路和 PCB之間的互連。實現原理是將一塊PCB上所有具有邊界掃描的IC中的掃描寄存器連接在一起,通過一定的測試矢量,可以發現元件是否丟失或者擺放錯誤,同時可以檢測引腳的開路和短路故障。
最后是系統級測試,在板級集成后,可以通過對板上CPLD 或者 Flash 的在線編程,實現系統級測試。
其中,最要的功能是進行板級芯片的互連測試,如圖10-31所示。
IEEE 1149.1 標準
由于邊界掃描方案的合理性,在1990年被 IEEE 采納成為一個標準,即 IEEE 1149.1。 該標準規定了邊界掃描的測試端口、測試結構和操作指令。
IEEE 1149.1結構如圖10-32所示,其主要包括 TAP控制器 和 寄存器組。其中,TAP 控制器如圖 10-33 所示;寄存器組包括邊界掃描寄存器、旁路寄存器、標志寄存器和指令寄存器。主要端口為 TCK、TMS、TDI、TDO,另外還有一個用戶可選擇的端口 TRST。
2. 端口定義如下
(1) TCK: Test Clock
邊界掃描設計中的測試時鐘是獨立的,因此與原來IC或PCB上的時鐘是無關的,也可以復用原來的時鐘。
(2) TMS: Test Mode Select
由于在測試過程中,需要有數據捕獲、移位、暫停等不同的工作模式,因此需要有一個信號來控制。在 IEEE 1149.1中,僅有這樣一根控制信號,通過特定的輸入序列來確定工作模式,采用有限狀態機來實現。該信號在測試時鐘 TCK 的上升沿采樣。
(3) TDI: Test Data In
以串行方式輸入的數據 TDI 有兩種。一種是指令信號,送入指令寄存器;另一種是測試數據(激勵、輸出響應和其他信號),它輸人到相應的邊界掃描寄存器中去。
(4) TDO: Test Data Out
以串行輸出的數據也有兩種,一種是從指令寄存器移位出來的指令,另一種是從邊界掃描寄存器移位出來的數據。
除此之外,還有一個可選端口 TRST,為測試系統復位信號,作用是強制復位。
3. TAP 控制器
TAP控制器的作用是將串行輸入的 TMS信號進行譯碼,使邊界掃描系統進入相應的測試模式,并且產生該模式下所需的各個控制信號。IEEE 1149.1的 TAP 控制器由有限狀態機來實現,圖10-34所示為狀態轉移圖。DR表示數據寄存器,IR 表示指令寄存器。
4. 寄存器組
指令寄存器: 由移位寄存器和鎖存器組成。TDI 串行輸入指令,送入鎖存器。
旁路寄存器:有多個串接起來的IC,如果只需測試其中幾個,則可以用bypass 指令,旁路無須測試的IC。
標志寄存器:固化有該器件標志的32位寄存器,內容有該器件的版本號、器件型號、制造廠商等。目的是在pcb 產線上,可以檢查IC的型號、版本。方便替換和維修。
邊界掃描寄存器:最重要的結構單元,完成測試數據的輸入、輸出鎖存、移位過程中必要的數據操作。它工作在多種模式,首先滿足掃描鏈上的串行移位模式,其次是正常模式下電路的數據捕獲和更新。
利用邊界掃描寄存器可提供如下的主要測試功能:
?對被測 IC 的外部電路進行測試,如可測IC之間的互連,此時可以使用外部測試指令 EXTEST
? 使用 INTEST 進行被測電路的內部自測;
? 對輸入、輸出信號進行采樣和更新,此時可以完全不影響核心邏輯電路的工作狀態。
5. 相關指令
JTAG規定了3個強制指令:EXTEST、BYPASS、SAMPLE/PRELOAD。
(1) EXTEST:外測試指令
外測試指令主要用于測試iC和 PCB之間的連線或邊界掃描設計以外的邏輯電路。執行該指令的主要操作為,將測試矢量串行移位至邊界掃描寄存器,以激勵被測的連線或外部邏輯電路,同時該寄存器又捕獲響應數據,并申行移出測試結果,以便檢查。
(2) BYPASS:旁路指令
這是一條由1組成的全1指令串,它的功能是選擇該IC中的旁路寄存器 BR,決定該IC是否被測試。
(3) SAMPLE/PRELOAD: 采樣/預裝指令
采樣指令用于不影響核心邏輯正常工作的條件下,將邊界掃描設計中的并行輸入端的信號捕獲至邊界掃描寄存器中,在測試時,通過采樣指令捕獲所測試邏輯電路的響應。
預裝指令功能與采樣基本相同,只是此時裝入邊界寄存器的數據是編程者已知的。
6. 板級測試策略
策略分以下3步。
① 根據 IEEE 1149.1標準建立邊界掃描的測試結構。
② 利用邊界掃描測試結構,對被測部分之間的連接進行矢量輸入和響應分析。這是板級測試的主要環節,也是邊界掃描結構的主要應用。可以用來檢測由于電氣、機械和溫度導致的板級集成故障。
③ 對單個核心邏輯進行測試,可以初始化該邏輯并且利用其本身的測試結構。
DEA 工具:Synopsys 的BSD Complier,?
DFT 技術在 SOC 中的應用
模塊級的 DFT技術
以上主要介紹了目前常用的DFT方法。對于不同的電路,應該采取合適的方法進行可測性設計。
1. 微處理器
微處理器經常采用某種形式的定制測試結構,它是全掃描或部分掃描測試及并行向量測試的組合。這就意味著芯片級測試控制器必須同時為微處理器提供掃描鏈控制器 和 某種邊界掃描測試控制,以施加并行測試向量。
2. 存儲器
對于存儲單元,推薦使用某種形式的BIST,它提供了一種快速、易于控制的測試方法。
然而,某些 BIST測試方案對于解決測試中的數據保持 ?是不充分的,合理的直接存儲器存取策略可以用來檢測和解決數據保持問題。
3. 其他數字模塊
對于其他大多數模塊,最好的選擇是全掃描技術。全掃描設計以較小的設計努力,提供較高的故障覆蓋率。芯片級測試控制器需要考慮允許多少條掃描鏈同時工作,以及如何將他們連接到芯片級I/O端口等問題。
4.模擬模塊
模擬電路的可測性設計可以分為兩類:可訪問設計法和可重構設計法。其中,前者是在被測電路中插入測試總線或者測試點,以提高內部節點的可控制性和可觀察性,這就構成了最早期用于混合信號的測試方法;后者依靠被測電路的重構來提高可測試性。這些方法對電路性能的影響通常是較高的,而且處于研究階段,很少用于大量產品。
目前采用的比較多的是模擬 BIST 的方法,大多數的BIST方法都是在混合信號環境下測試模擬電路的。例如,通過數字—模擬一數字通路,而不像傳統的外部測試通過模擬一數字一模擬路徑。
?SOC中的DFT應用
目前,基于IP復用的SoC是IC設計的發展趨勢。對于SoC的測試目標是利用最少的測試矢量來檢測SoC中所有IP 可能出現的故障。SoC一般包含處理器 IP、存儲器 IP、各類接口 IP及ADC / DAC 等模擬 IP,因此需要不同的測試矢量對這些 P進行檢測,同時不同的 IP 的測試要求也不同。對于數字電路來說,需要考慮固定型?、橋接故障?和靜態電流造成的短路故障等。對于模擬電路來說,則需要考慮噪聲及測試精度等影響。而對于存儲器來說,則需要考慮其本身特有的一些故障類型。
系統級DFT:各個模塊的組合構成了 SoC,模塊級DFT 的組合自然也就是系統級 DFT 的雛形,再加上必要的控制結構就可以形成完整的系統級 DFT結構了。
SOC開發者對于不同的IP模塊采用最適合其類型的DFT方法;但是使用多種DFT方法就使測試的復雜性從生產測試轉移到了測試開發。
與模塊級的 DFT不同,系統級的 DFT困難主要來自于:
????????? DFT 的不同測試策略在不同模塊間的合理應用;
????????? SoC 規模龐大,測試結構和測試控制較為復雜;
?????????系統的可測試資源,如外圍引腳等限制了可測性設計;
?????????不同的測試策略和測試結構的劃分將會影響整個電路的可測性。
根據SoC的設計流程和系統級 DFT 的特點,可以采用以下的可測性設計流程:
?????????根據系統規范,確定系統的 DFT 特征;
?????????根據電路特征和芯片測試資源,確定不同模塊或核的測試策略;
?????????從頂層模塊實現不同測試模式的控制;
?????????綜合考慮各種測試模式的需要,對電路進行必要的劃分,完成測試結構的設計(包括測試時鐘、使能和復位信號);
?????????考慮每個模塊,甚至每個信號的可測性,加入額外電路,提高故障覆蓋率;
????????? 對不同模塊進行可測性設計,對某些核進行單獨測試;
?????????根據故障覆蓋率的情況,進行必要的調試修改。
總結:
本章主要從芯片設計的角度介紹了幾種數字電路中常用的可測性設計方法,主要有用于存儲器測試的 BIST、用于組合邏輯測試的掃描和用于板級連接測試的邊界掃描。近年來,DFT技術發展很快,主要表現在以下方面:
① 在存儲器內建自測方面,整體結構和算法已經基本成熟,目前主要是考慮低功耗的BIST技術和如何將內建自測技術融入其他模塊的測試中,如整個 SoC的 BIST;
② 在掃描測試方面,工具已經能夠自動完成掃描鏈的插人,現在技術人員要做的是根據已有的電路設計適當的測試結構,在滿足測試要求的同時,盡量減少測試時間和功耗,同時還需要對時序電路的可測性、測試向量的壓縮、at-speed測試、故障模擬等方面進一步研究;
③ 在邊界掃描方面,由于其可以顯著減少測試產生所需的時間,而被設計者廣泛接受,當前已經能夠使邊界掃描的覆蓋率達到100%,但是目前還沒有對采用 IEEE1149.1 (邊界掃描測試)標準獲得的益處進行綜合分析的成本模型?,還需要綜合考慮 BIST 和 SCAN 帶來的影響。
除了技術方法的不斷改進,一些支持 DFT的EDA工具也在不斷的更新換代。例如,Synopsys公司的DFT Compiler 和 TetraMAX ATPG工具配合使用,可以一次性完成掃描綜合和測試向量的生成。多年來,Mentor Graphics公司在DFT 領域一直扮演重要的角色,該公司提供用于可測試性分析的工具套件,支持多種故障模型,以幫助設計師。
DFT 的優勢:
- 可以利用EDA工具進行測試矢量的生成
- 便于故障的診斷和調試
- 可以提高芯片的成品率并衡量其品質
- 減少測試成本
不足:
- 增大了芯片的面積、提高了出錯概率
- 增加設計的復雜程度
- 需要額外的引腳,增加了硅片面積
- 影響了芯片的功耗、速度和其他性能