常用的可測性設計方法包括基于掃描鏈(scan chain)的測試方法和內建自測試電路。
掃描鏈(SC)設計
時序電路的直接測試往往是難以實現的,掃描設計通常能很好的解決之一問題。
掃描設計的主要思想就是把難以進行測試的電路轉化為可測的電路。要實現這一目標,需要把電路中原有的一般觸發(fā)器用可觀測可控制的掃描觸發(fā)器進行代替,這些掃描觸發(fā)器串接到一起形成掃描鏈(Scan Chain,SC),那么,在測試模式下,就可以通過掃描鏈來串行移入移出測試數據,實現對整個電路的控制和觀測。單個掃描觸發(fā)器代替一般觸發(fā)器的例子如圖:
從上圖可以看到,掃描觸發(fā)器在原始觸發(fā)器的基礎上在數據輸入端D 增加了一個多路選擇器,用以實現對輸入數據的選擇,其中Scan in 是掃描數據輸入端口,Scan enable 是輸入選擇控制端,Scan out 復用原始輸出端Q。常見的掃描觸發(fā)器的工作模式有正常工作模式和掃描移位模式兩種:
(1) 正常工作模式:Scan enable 為0 時,此時為正常工作模式,D 輸入端選通,Q 作為輸出端,數據從D 輸入,從Q 輸出;
(2) 掃描移位模式:Scan enable 為1 時,此時為掃描移位模式,Scan in輸入端選通,Scan out 作為掃描輸出,測試數據由Scan in 輸入,由Scan out 輸出。
將掃描觸發(fā)器單元連接在一起,就構成了掃描設計的基本結構。根據是否所有的寄存器都是掃描單元并已連接到掃描鏈,可以將掃描設計分為全掃描和部分掃描。通常為了提高電路的性能,我們往往排除那些不符合可測性設計規(guī)則的寄存器,這樣設計得到的電路一般介于全掃描和部分掃描之間。
對加入掃描設計后的電路進行測試時,我們首先設置模式選擇端sc_en 為1,電路處于掃描移位模式,向掃描輸入端口sc_in 打入測試向量,比如101,通過掃描鏈傳至每個掃描寄存器;然后我們設置sc_en 端口為0,電路進入正常工作模式,并行向三個原始輸入端口A,B,C 打入激勵;從輸出端口Q 捕獲響應數據,分析響應數據就可以達到測試目的。