通過(guò)此前一系列文章熟悉 JTAG 架構(gòu)后,讓我們用一個(gè)完整的示例來(lái)了解用于 Debug 訪問(wèn)的 TAP 是如何工作的。
假設(shè)這么一個(gè)調(diào)試場(chǎng)景,我們出于調(diào)試需求,需要 JTAG 能夠訪問(wèn)并修改設(shè)計(jì)中一個(gè) 3 比特位寬的控制信號(hào)。在正常的 functional 模式中,該控制信號(hào)數(shù)值為 3'b111;但出于一些調(diào)試目的,我們想要把它改成 3'b100。以下是通過(guò) TAP 實(shí)現(xiàn)這一點(diǎn)的過(guò)程。
假設(shè)設(shè)計(jì)中的 JTAG 指令寄存器(IR)位寬為 4 比特。
首先我們需要在 JTAG 設(shè)計(jì)中增加一個(gè) 3 比特位寬的用戶數(shù)據(jù)寄存器(User DR),并將其輸出連接到我們想要修改的控制信號(hào)上。接下來(lái),我們?yōu)樵?User DR 指定一個(gè) opcode,比如 4'b1010(因?yàn)?IR 為 4 比特,因此 opcode 同樣為 4 比特)。在設(shè)計(jì)中添加該 User DR 時(shí),需要將其復(fù)位值設(shè)定為 3'b111(為什么?復(fù)位值對(duì)應(yīng)于該控制信號(hào)在 functional 模式中需要的數(shù)值,即 3'b111)。
這樣一來(lái),User DR 在任何 JTAG Update 事件更改數(shù)值前,將驅(qū)動(dòng)該信號(hào)為 3'b111。一般來(lái)說(shuō),在芯片上電過(guò)程中,JTAG 會(huì)比其他邏輯更早退出復(fù)位狀態(tài),因此,該控制信號(hào)能趕在被其驅(qū)動(dòng)的邏輯退出復(fù)位之前,確保其數(shù)值為所需的 3'b111。

圖 1- 示例的時(shí)序圖
圖 1 中的時(shí)序圖展示了如何將 User DR 的數(shù)值更新為 3‘b100 的過(guò)程。該時(shí)序圖來(lái)自 JTAG 工業(yè)標(biāo)準(zhǔn),其中的 TMS 和 TDI 以及 IR/DR Hold Register 在時(shí)鐘下降沿更新數(shù)值,而 FSM 狀態(tài)以及 IR/DR Hold Register 則在時(shí)鐘上升沿跳變數(shù)值。
圖 1 中的 16-狀態(tài) FSM 從 Test-Logic Reset 狀態(tài)開(kāi)始工作,通過(guò)設(shè)置 TMS 的時(shí)序使?fàn)顟B(tài)機(jī)進(jìn)入 Shift IR 狀態(tài)。
接下來(lái)通過(guò) TDI 端口數(shù)據(jù)寄存器對(duì)應(yīng)的 opcode(4’b1010)移入指令寄存器。shift 和 hold 寄存器的初始值均為復(fù)位值 0,4'b1010 由從 LSB 到 MSB 的順序串行地移入指令寄存器中。
通過(guò)設(shè)置 TMS 的時(shí)序使?fàn)顟B(tài)機(jī)進(jìn)入 Update IR 狀態(tài)。在 Update IR 狀態(tài)中,IR 的 hold 寄存器更新為 Shift 寄存器中的值,指令譯碼器解碼該指令的數(shù)值,建立起一條 TDI 和用戶數(shù)據(jù)寄存器之間的通路。
接下來(lái),F(xiàn)SM 退出 Update IR 狀態(tài),轉(zhuǎn)移至 Shift DR 狀態(tài),此時(shí)串行地向 DR shift 寄存器中移入所需的數(shù)值 3'b100,由從 LSB 到 MSB 的順序。在數(shù)據(jù) 3'b100 完全加載到 Shift 寄存器中后,F(xiàn)SM 跳轉(zhuǎn)到 Update DR 狀態(tài)。在該狀態(tài)中,DR hold 寄存器更新為 3'b100,就在此時(shí),需要修改的控制信號(hào)數(shù)值也從復(fù)位值 3’b111 改變?yōu)?3'b100。
審核編輯 :李倩
-
寄存器
+關(guān)注
關(guān)注
31文章
5590瀏覽量
129160 -
JTAG
+關(guān)注
關(guān)注
6文章
411瀏覽量
74633
原文標(biāo)題:JTAG Operation 示例
文章出處:【微信號(hào):數(shù)字ICer,微信公眾號(hào):數(shù)字ICer】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
cc3200 移植file operation 和tcp出現(xiàn)的rtos問(wèn)題
怎么在Xilinx FPGA上獲得JTAG詳細(xì)文檔的最佳位置
JTAG口及其對(duì)Flash的在線編程
JTAG先進(jìn)的功能和系統(tǒng)設(shè)計(jì),JTAG Advanced C
什么是jtag接口 jtag接口定義 JTAG ARM
PMU Mode Operation for the MAX
JTAG功能及系統(tǒng)設(shè)計(jì)
LT1017:Circuitry for Single Cell Operation
jtag接口是什么_jtag接口定義
ARM的JTAG調(diào)試結(jié)構(gòu)
JTAG簡(jiǎn)介 JTAG和SWD之間的區(qū)別

JTAG Operation示例
評(píng)論