邊界掃描的測試原理及九大指令

 

圖一

圖1 中“TAP Controller”其實質上是一個狀態機,它根據不同的操作指令能產生16 個不同的狀態,具體狀態邏輯參考圖2。從一個狀態切換成另一個狀態總是發生在TCK 的上升沿,由TMS從兩個狀態選擇其中一個狀態。在測試向量寄存器中,既有指令寄存器(IR),又有數據寄存器(DR),爲了區分是指令還是數據,掃描鏈路中的狀態圖有兩個獨立的完全類似的結構(Scan DR / Scan IR)。


測試操作的最重要步驟是移入和同步移出測試數據(DR SHIFT),新的數據進入移位鏈,測試數據傳送到測試單元(DR-update)的輸出鎖存器中,對於指令寄存器(IR-shift,IR-capture,IR-update)同樣如此。除了邊界掃描寄存器(Boundary Scan Register),IEEE 1149.1標準還定義了在數據寄存器附近至少存在一個旁路寄存器,用來將TDI 到TDO 的可以直連接。數據寄存器根據指令寄存器的指令尋址,然後在TDI 和TDO 的引腳之間,各個數據寄存器結合成移位路徑。正如圖2 所示,從一個狀態轉換成另一個狀態由信號TMS 的邏輯電平決定。“TAP ”是一個時鐘系統,它的時鐘是由信號TCK 提供。信號TMS 和信號TCK共同作用,使得數據一位一位從TDI 移入,最後由TDO 移出。
各種邊界掃描單元是否有效取決於是否實行測試或者得到激勵。


圖3 就是一個最普通的邊界掃描單元的結構圖。第一個鎖存器鎖存數據由移位寄存器(SHIFT DR)決定從前一個掃描單元移出的數據(SCAN IN)或者是掃描輸入的數據(DATA IN),並且由CLOCK DR控制鎖存輸出。在第一個鎖存器移出數據穩定後,第二個鎖存器由UPDATE DR 控制鎖存輸出第一個鎖存器移出的數據。MODE 信號的電平決定是測試模式還是工作模式。邊界掃描單元既有輸入又有輸出。一般來說,在每一個物理引腳不論輸入還是輸出,都有一個獨立的邊界掃描單元,但區別是輸入在每一個物理引腳的後面,而對於所有的輸出是在每一個物理引腳的前面。

MODE, SHIFT DR, UPDATE DR 以及CLOCK DR 這些全局信號線與所有掃描單元都相連接,而且同一個時間狀態都一樣。這樣,TAP 狀態在CAPTURE DR 時,所有的掃描單元都能在CLOCK DR 的上升沿取樣輸入數據。測試數據的輸出也相類似,它是在TAP 狀態在UPDATE DR 的下降沿時將掃描輸入端鎖存並輸出。所有的掃描單元都能完成以上功能。所有的掃描單元運行在工作模式還是在測試模式,由MODE 信號控制選擇其一,同時運行在兩個模式是不可能的。而MODE 信號是由掃描指令控制的。

九大指令

 指令(必須/可選) 操作碼  模式   選擇數據寄存器
 EXTEST  0...0*   測試  Boundary 
 SAMPLE/PRELOAD  用戶定義  一般  Boundary
 BYPASS  1...1  一般  Bypass
 INTEST  用戶定義  測試  Boundary
 RUNBIST  用戶定義  測試  用戶定義
 INCODE  用戶定義  一般  器件ID
 USERCODE  用戶定義  一般  器件ID
 CLAMP  用戶定義  測試  Bypass
 HIGHZ  用戶定義  測試  Bypss
 用戶定義  用戶定義  用戶定義  用戶定義

 


Extest指令--強制指令

用於芯片外部測試,如互連測試
測試模式下的輸出管腳,由BSC update鎖存驅動(BSC註釋:寄存器的每一個單元分配給IC芯片的相應引腳,每一個獨立的單元稱爲BSC(Boundary-Scan Cell)邊界掃描單元。)
BSC scan鎖存捕獲的輸入數據
移位操作,可以從TDI輸入測試激勵,並從TDO觀察測試響應。
在移位操作後,新的測試激勵存儲到BSC的update鎖存

原先EXTEST指令時強制爲全“0”的,在IEEE 1149.1--2001中,這條強制取消了。選擇EXTEST指令時,IC工作在邊界掃描外部測試模式(external boundary-test mode),也就是說對IC的操作影響芯片的正常工作。選擇邊界掃描寄存器連通TDI和TDO。在這種指令下,可以通過邊界掃描輸出單元來驅動測試信號至其他邊界掃描芯片,以及通過邊界掃描輸入單元來從其他邊界掃描芯片接收測試信號。EXTEST指令是IEEE 1149.1標準的核心所在,在邊界掃描測試中的互連測試(interconnect test)就是基於這個指令的。

(該指令初始化外部電路測試,主要用於板級互連以及片外電路測試。EXTEST指令在Shift-DR狀態時將掃描寄存器BSR寄存器連接到TDI與TDO之間。在Capture-DR狀態時,EXTEST指令將輸入管腳的狀態在TCK的上升沿裝入BSR中。EXTEST指令從不使用移入BSR中的輸入鎖存器中的數據,而是直接從管腳上捕獲數據。在Update-DR狀態時,EXTEST指令將鎖存在並行輸出寄存器單元中的數據在TCK的下降沿驅動到對應的輸出管腳上去。)

Sample/Preload指令--強制指令
在進入測試模式前對BSC進行預裝載
輸入輸出管腳可正常操作
輸入管腳數據和內核輸出數據裝載到BSC的scan鎖存中。
移位操作,可以從TDI輸入測試激勵,並從TDO觀察測試響應。
在移位操作後,新的測試激勵存儲到BSC的update鎖存。
原先這兩個指令是合在一起的,在IEEE 1149.1--2001中這兩個指令分開了,分成一個SAMPLE指令,一個PRELOAD指令。選擇SAMPLE/PRELOAD指令時,IC工作在正常工作模式,也就是說對IC的操作不影響IC的正常工作。選擇邊界掃描寄存器連通TDI和TDO。 SAMPLE指令---通過數據掃描操作(Data Scan)來訪問邊界掃描寄存器,以及對進入和離開IC的數據進行採樣。PRELOAD指令---在進入EXTEST指令之前對邊界掃描寄存器進行數據加載。
在Capture-DR狀態下,SAMPLE/PRELOAD指令提供一個從管腳到片上系統邏輯的數據流快照,快照在TCK上升沿提取。在Update-DR狀態時,SAMPLE/PRELOAD指令將BSR寄存器單元中的數據鎖存到並行輸出寄存器單元中,然後由EXTEST指令將鎖存在並行輸出寄存器單元中的數據在TCK的下降沿驅動到對應的輸出管腳上去。)

Bypass指令--強制指令
提供穿透芯片的最短通路。
輸入輸出管腳可正常操作
選擇一位的旁路(Bypass)寄存器
強制全爲1和未定義的指令爲Bypass指令 BYPASS指令爲全“1”。選擇BYPASS指令時,IC工作在正常工作模式,選擇一位的BYPASS寄存器連通TDI和TDO,數據的通過不影響IC的正常工作。
BYPASS指令通過在TDI和TDO之間放置一個1位的旁通寄存器,這樣移位操作時只經過1位的旁通寄存器而不是很多位(與管腳數量相當)的邊界掃描寄存器BSR,從而使得對連接在同一JTAG鏈上主CPU之外的其他芯片進行測試時提高效率。)

INTEST指令 ---可選指令

選擇INTEST指令時,IC工作在邊界掃描內部測試模式(internal boundary-test mode),選擇邊界掃描寄存器連通TDI和TDO。在這種指令下,可以通過邊界掃描輸出單元來驅動測試信號至其內部邏輯,以及通過邊界掃描輸入單元來從 其內部邏輯接受測試信號。


RUNBIST指令 ---可選指令

選擇RUNBIST指令時,IC工作在自測試模式(self-test mode),對IC的內部邏輯進行全面的自測試,通過選擇用戶自定義的數據寄存器連通TDI和TDO。在這種指令下,邊界掃描單元的輸出被內部邏輯控制了,所以外部信號不能干擾其相鄰IC。

 


IDCODE指令 ---可選指令

選擇IDCODE指令時,IC工作在正常工作模式,選擇數據識別寄存器(data identification register)連通TDI和TDO。數據識別寄存器是一個32位的寄存器,內容包括IC的生產廠商,芯片類型,版本等。訪問數據識別寄存器不會影響 IC的正常工作。由於IDCODE指令是可選的,不是每個芯片都有的,所以當對一個邊界掃描鏈(scan chain)執行IDCODE指令來輸出所有IDCODE時,有IDCODE指令的芯片就選擇IDCODE寄存器,輸出輸出IDCODE,沒有 IDCODE指令的芯片會自動選擇BYPASS寄存器,輸出一個“0”。 (讀取CPU ID號指令。在設計中存在device identification register時,TAP強制定義。該指令將處理器的ID號寄存器連接到TDI和TDO之間。

 


USERCODE指令 ---可選指令

選擇USERCODE指令時,IC工作在正常工作模式,選擇用戶自定義數據寄存器(user defined test data register)連通TDI和TDO。USERCODE指令一般是在進行芯片內部測試時用的。


CLAMP指令 ---可選指令

CLAMP指令使IC的輸出置於由邊界掃描寄存器的當前內容決定的邏輯電平上,選擇BYPASS寄存器連通 TDI和TDO。在加載這個指令之前,邊界掃描寄存器的內容可以由SAMPLE/PRELOAD指令來預置。在CLAMP指令下,數據通過BYPASS寄 存器從TDI傳遞至TDO,不會影響此IC的輸出。


HIGHZ指令 ---可選指令

HIGHZ指令使IC的所有輸出置於高阻狀態,選擇BYPASS寄存器連通TDI和TDO。在HIGHZ指令下,數據通過BYPASS寄存器從TDI傳遞至TDO,不會影響此IC的輸出。

 

 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章