-
12v供電,帶一個散熱器
-
FPGA芯片是Xilinx XC7K325T,FFG676封裝,芯片等級2I,生產日期是2017年21周
-
4路LED
-
3路輕觸按鍵,其中一路是Config
-
1路USB串口,CP2102轉換芯片
-
1顆Spansion 128Mb QSPI Flash S25F128
-
1顆有源差分時鐘200MHz
-
標準2.54mm 14P下載接口
1. 什么是邊界掃描?
提到邊界掃描,就不得不提JTAG,因為邊界掃描是JTAG接口的功能之一。JTAG,是Joint Test Action Group的簡稱,即聯合測試行為小組。JTAG,對于電子行業的工程師們來說再熟悉不過了,無論是搞單片機、ARM開發,還是FPGA、DSP開發,都離不開這個接口,它不僅可以進行程序下載,還能在線調試Debug,簡簡單單幾根線就完成了如此強大的功能,大大的提高了開發效率。但是,你知道嗎?JTAG協議的設計初衷,并不是用來下載程序的。JTAG中的'T',是Test的縮寫,沒錯!JTAG接口被設計之初,就是用來測試的!上世紀90年代,集成電路、芯片設計產業開始迅速發展,同時,也面臨著諸多問題:芯片管腳和晶圓之間的連接如何確定是正常的?芯片管腳之間是沒有短路的?芯片被焊接到PCB板上之后,如何保證焊接是良好的,沒有短路、開路?芯片外圍的電路和與之互聯的芯片是正常的呢?尤其是一些BGA封裝的芯片,無法使用探針等方式來直接測量芯片的管腳。面對這些問題,Philips、TI等半導體廠商在1985年成立了聯合測試行動小組 ,即JTAG,用來解決這些問題。盡管人們認為 IEEE 1149.1 標準實際上就是JTAG,不過該標準的官方稱謂是“標準測試訪問端口與邊界掃描架構 (Standard Test Access Port and Boundary-Scan Architecture)”。它定義了利用邊界掃描檢測 PC 電路板的檢測訪問端口 (TAP) 等。JTAG協議發展到現在,目前主要有三個典型應用:-
程序下載。即目前最常用的一個功能,它可以把用戶程序下載到芯片內部的Flash中。
-
程序調試。即實時監控程序的運動狀態,并且可以通過加入斷點的方式來實時調試程序。
-
邊界掃描。即Boundary-scan,也就是JTAG設計的初衷,主要用于芯片本身和PCB電路板的硬件測試。
2. JTAG硬件接口
JTAG協議工作的基本邏輯全依賴內部的TAP控制器(Test Access Port),其實就是一個狀態機,通過TMS信號來切換不同的狀態。標準的JTAG接口最少需要4個引腳,即:TCK、TDI、TDO和TMS,在IEEE1149.1標準中,TRST信號是可選的。下面是每個信號的定義和功能:-
Test Clock Input (TCK)
TCK 為 TAP 的操作提供了一個獨立的、基本的時鐘信號,TAP 的所有操作都是通過這個時鐘信號來驅動的。TCK 在 IEEE 1149.1 標準里是強制要求的。 -
Test Mode Selection Input (TMS)
TMS 信號用來控制 TAP 狀態機的轉換。通過 TMS 信號,可以控制 TAP 在不同的狀態間相互轉換。TMS 信號在 TCK 的上升沿有效。TMS 在 IEEE 1149.1 標準里是強制要求的。 -
Test Data Input (TDI)
TDI 是數據輸入的接口。所有要輸入到特定寄存器的數據都是通過 TDI 接口一位一位串行輸入的(由 TCK 驅動)。TDI 在 IEEE 1149.1 標準里是強制要求的。 -
Test Data Output (TDO)
TDO 是數據輸出的接口。所有要從特定的寄存器中輸出的數據都是通過 TDO 接口一位一位串行輸出的(由 TCK 驅動)。TDO 在 IEEE 1149.1 標準里是強制要求的。 -
Test Reset Input (TRST)
TRST可以用來對TAP Controller進行復位(初始化)。不過這個信號接口在IEEE 1149.1標準里是可選的,并不是強制要求的。因為通過 TMS 也可以對 TAP Controller 進行復位(初始化)。
3. 邊界掃描相關的軟硬件
理論上只要支持JTAG協議的調試器、下載器,都可以用來進行邊界掃描測試,不過可能需要開發相對應的上位機軟件。本文介紹常見的兩款邊界掃描測試方案。-
JLink + TopJTAG Probe
-
X-JTAG
4. 學習資料
一位國外小哥在YouTube發布的視頻:EEVblog#449-什么是JTAG以及邊界掃描,B站有人搬運了,地址是:-
https://www.bilibili.com/video/BV1TT4y1e7HU
-
http://www.micetek.com.cn/technic/jtag.pdf
-
https://fiona.dmcs.pl/~rkielbik/nid/JTAG_IEEE-Std-1149.1-2001.pdf
5. 總結
對了,開頭介紹的那款板卡,我使用邊界掃描獲取到的管腳定義如下:#################################################################### #Copyright(C),2010-2023,https://blog.csdn.net/whik1194 #ModuleName:top.xdc #Date:2023-03-04 #Time:2300 #Author:whik1194 #Function:Pinconstraint #Version:v1.0 #Version|Modify #---------------------------------- #v1.0firstversion #################################################################### set_propertyPACKAGE_PINAA10[get_portsgclk_p] set_propertyPACKAGE_PIND9[get_portsgreset] set_propertyPACKAGE_PIND8[get_portskey] set_propertyPACKAGE_PING20[get_portsled1] set_propertyPACKAGE_PINH19[get_portsled2] set_propertyPACKAGE_PINE20[get_portsled3] set_propertyPACKAGE_PINF19[get_portsled4] set_propertyPACKAGE_PINF8[get_portsuart_rxd] set_propertyPACKAGE_PINF9[get_portsuart_txd] set_propertyPACKAGE_PING14[get_portscan_rx] set_propertyPACKAGE_PINH14[get_portscan_tx] set_propertyIOSTANDARDDIFF_SSTL12[get_portsgclk_p] set_propertyIOSTANDARDDIFF_SSTL12[get_portsgclk_n] set_propertyIOSTANDARDLVCMOS33[get_portsgreset] set_propertyIOSTANDARDLVCMOS25[get_portsled1] set_propertyIOSTANDARDLVCMOS25[get_portsled2] set_propertyIOSTANDARDLVCMOS25[get_portsled3] set_propertyIOSTANDARDLVCMOS25[get_portsled4] set_propertyIOSTANDARDLVCMOS33[get_portskey] set_propertyIOSTANDARDLVCMOS33[get_portsuart_rxd] set_propertyIOSTANDARDLVCMOS33[get_portsuart_txd] set_propertyIOSTANDARDLVCMOS33[get_portscan_rx] set_propertyIOSTANDARDLVCMOS33[get_portscan_tx] #QSPI set_propertyBITSTREAM.GENERAL.COMPRESSTRUE[current_design] set_propertyBITSTREAM.CONFIG.CONFIGRATE50[current_design] set_propertyBITSTREAM.CONFIG.SPI_BUSWIDTH4[current_design]
-
JTAG
+關注
關注
6文章
401瀏覽量
71788 -
焊接
+關注
關注
38文章
3223瀏覽量
60064 -
轉換芯片
+關注
關注
0文章
73瀏覽量
11427
原文標題:強大的JTAG邊界掃描1-基本原理
文章出處:【微信號:mcu149,微信公眾號:電子電路開發學習】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論