如果在測試過程中,某個特定的引腳導致JTAG鏈停止工作,或者導致電流消耗突然增加,那么XJDeveloper的“Debug Connection Test”屏幕可以幫助進行調試。
運行調試測試將測試所有可以從JTAG設備驅動的網絡,除了以下網絡:
直接連接到電源/地網絡,或者 “Constant Pins”屏幕中的項目或測試設備的Busses定義的Disable Value。
調試時網絡將被設置到指定的初始狀態(驅動高,驅動低或不驅動),然后按照“Debug Connection Test Settings”對話框(在XJDeveloper的“Debug Connection Test”屏幕的“Settings”齒輪中訪問)中指定的,將它們設置為高或低。

圖1 - 連接測試調試選項的設置
Wait for Keypress
調試模式有一個“Wait for keypress”選項,允許您使用按鍵手動逐個推進電平變化。如果您想監控每個電平組合的電流消耗,這可能很有用。
Test All Driver Pins
如果網絡可以被多個JTAG設備(或一個JTAG設備和一個XJLink pin)驅動,勾選“Test all driver pins”復選框將多次測試該網絡,每次使用不同的驅動器。
Forward/Reverse and Random Net Order
有時問題只會在網絡以特定順序變化時發生(例如,從步驟B到A會導致問題,但從A到B則不會)。如果您一直無法找到問題的根源,那么反轉順序方向可能有所幫助。這是通過更改“Direction”設置來完成的。
如果以上測試都沒有確定原因,可能Soak Test會有用。通過勾選“Use random setting algorithm”復選框來完成此操作。測試將從所有網絡設置為它們的定義初始狀態開始,然后重復隨機選擇一個網絡并將其設置為隨機值。這將一直持續,直到按“q”鍵終止測試。
可以提供一個值來初始化所使用的偽隨機序列。這很有用,因為它允許復現這個測試。
示例
為了調試鏈路中斷錯誤,可以遵循以下過程。
1. 嘗試將所有引腳設置為低電平,以查看是否可以重現問題:
將“State all nets will be set into at the start of the test”設置為“Input”,以便測試在它們都處于高阻抗狀態時開始。 從“State the nets will be switched to”菜單中,選擇“Low”并運行調試測試。第一個網絡將被驅動為低電平,并讀取值以檢查沖突。這個過程將依次對其他網絡重復,直到它們都保持低電平。如果發現沖突,系統將禁用所有網絡并將JTAG設備返回到BYPASS狀態。 如果測試因為檢測到沖突而停止,檢查它在哪里停止以查看導致問題的引腳值組合。
2. 如果在將網絡設置為低電平時沒有發現問題,請重復測試,這次將引腳從輸入切換到高電平:
將“State all nets will be set into at the start of the test”設置為“Input”,以便測試在它們都處于高阻抗狀態時開始。 從“State the nets will be switched to”菜單中,選擇“High”并重新運行調試測試。第一個網絡將被設置為高電平,并讀取值以檢查沖突。然后依次對其他網絡重復此過程,直到所有網絡保持高電平。如果發現沖突,系統將禁用所有網絡并將JTAG設備返回到BYPASS狀態。 如果測試因為檢測到沖突而停止,檢查它在哪里停止以查看導致問題的引腳值組合。
3. 通常,高低組合會產生錯誤,所以下一步是從所有網絡設置為高電平開始,然后逐漸將每個設置為低電平,或者相反。您可以反轉設置網絡的順序- 如果沖突只在特定的其他條件組合下發生,這將很有用。
將“State all nets will be set into at the start of the test”設置為“High” 從“State the nets will be switched to”菜單中,選擇“Low”并運行調試測試。 如果沒有顯示問題,請選中“Backwards”方向單選按鈕并重復。
4. 如果這仍然沒有找到問題,請對剩余的組合重復該過程,直到找到有問題的值序列:
從所有網絡“Low”開始,并運行一個將它們更改為“High”的測試。重復此操作,但反轉順序方向。 重復原始測試,其中網絡從“Input”開始并更改為“Low”,但序列運行方向相反。 重復原始測試,其中網絡從“Input”開始并更改為“High”,但序列運行方向相反。
5. 如果以上都沒有復現錯誤,通過勾選“Use random setting algorithm”運行Soak test。這將隨機選擇網絡并設置它們為隨機值,直到您停止測試(通過按‘q’鍵)。