JTAG協議制定了一種邊界掃描的規範,邊界掃描架構提供了有效的測試佈局緊湊的PCB板上元件的能力。邊界掃描能夠在不使用物理測試探針的狀況下測試引腳鏈接,並在器件正常工做的過程當中捕獲運行數據。編程
SoC FPGA做爲在同一芯片上同時集成了FPGA和HPS的芯片,其JTAG下載和調試電路相較於單獨的FPGA或ARM處理器都有一些差別,可是同時二者又有緊密的聯繫。AC501-SoC開發板上的JTAG鏈同時鏈接了FPGA和HPS。使用時,僅需一個JTAG鏈路,就能同時調試FPGA和HPS。FPGA和HPS各自有其獨立的JTAG信號引腳,電路設計時使用了一種串行鏈的方式來將二者鏈接到一塊兒,如圖xxx所示:架構
如下爲4個JTAG信號的功能說明:佈局
管腳名稱測試 |
管腳類型spa |
說明設計 |
TDI3d |
測試數據輸入調試 |
指令以及測試和編程數據的串行輸入管腳的。數據在TCK 的上升沿移入。若是在電路板上不須要JTAG 接口,能夠經過將此管腳鏈接至VCC來禁用JTAG。TDI 管腳具備內部弱上拉電阻(一般爲25KΩ)。blog |
TDO接口 |
測試數據輸出 |
指令以及測試和編程數據的串行數據輸出管腳。數據在TCK的降低沿移出。若是數據沒有從器件中被移出,此管腳處於三態。若是在電路板上不須要JTAG接口,懸空此管腳以禁用 JTAG 電路。 |
TMS |
測試模式選擇 |
提供的控制信號輸入管腳,控制信號用來控制TAP狀態機的跳變。狀態機跳變發生在 TCK 的上升沿。所以,TMS必須在 TCK 的上升沿以前被設置。 TMS 在 TCK 的上升沿中被評估。若是在電路板上不須要 JTAG 接口,JTAG 電路被禁用鏈接此管腳至 VCC。 TMS 管腳具備內部弱上拉電阻 (一般爲25KΩ)。 |
TCK |
測試時鐘輸入 |
邊界掃描電路的時鐘輸入腳。一些操做發生在上升沿,而其它的則發生在降低沿。若是在電路板上不須要JTAG 接口,JTAG 電路被禁用鏈接此管腳至 GND。 TCK 管腳具備內部弱下拉電阻。 |
使用JTAG配置或調試一個器件時,根據用戶選定的器件,編程軟件(Quartus Programmer或DS-5中提供的調試器)會旁路全部其它的器件。在旁路模式下,器件經過一個旁路寄存器將編程數據從 TDI 管腳傳至 TDO 管腳,即經過TDI送入器件的配置數據會在一個時鐘週期以後呈如今TDO上。而若是將TDO端口輸出的數據再次接入另個器件的TDI端口,則可以直接對下一個器件進行調試了。而每個器件都有其JTAG ID,經過JTAG ID可以辨識具體調試哪一個器件。
在圖xxx(上圖)能夠看到,由USB Blaster的TDO輸出的數據首先是接入到了HPS的TDI端口,而後由HPS的TDO端口流出的數據又接到了FPGA的TDI端口上,最後數據再由FPGA的TDO端口流出,回到USB Blaster的TDI端口,造成了完整的數據迴路。
當須要經過Quartus Programer來配置或調試FPGA部分時,會設置直接旁路HPS部分,由HPS的TDI端口流入的數據會在一個時鐘週期後出如今HPS的TDO端口上,再進入HPS的TDO端口所鏈接的FPGA的TDI端口。從而向FPGA的各個寄存器中寫入或讀取出數據,經過FPGA的TDO端口輸出,流入到USB Blaster的TDI端口,完成對FPGA的調試。
當須要經過DS-5中的仿真器來調試HPS部分時,會設置直接旁路FPGA部分,由HPS的TDI端口流入的數據直接做用在HPS上,對HPS的相應的寄存器進行讀寫,結果數據從HPS的TDO端口流出,再流入FPGA的TDI端口,因爲此時FPGA的JTAG功能處於旁路狀態,TDI端口流入的數據會直接由FPGA的TDO端口流出,進入USB Blaster的TDI端口,完成對HPS的調試。