**邊界掃描**係一種測試方法，測試集成電路內部啲喺印刷電路板或者子塊上嘅駁接（導線）嘅。邊界掃描都著廣泛用作調試方法，嚟監視集成電路嘅引腳狀態、測量電壓或者分析集成電路內部啲子塊。

1990年IEEE嘅Std. 1149.1-1990入邊標準化唨所謂嘅聯合測試工作組（JTAG），佢確定唨邊界掃描測試嘅規範。1994年，其中又添加唨一份有描述到邊界掃描描述語言（BSDL）嘅補充，佢之中進一步描述到IEEE Std 1149.1相容設備嘅邊界掃描邏輯內容。由嗰陣時開始，邇個標準經已俾全世界嘅電子設備公司採用唨。邊界掃描宜家基本上等同於JTAG。

測試
--

邊界掃描架構提供唨一種無需使用物理測試探針就測得啲駁接（包括邏輯，存儲器等等）嘅方法。佢要到添加至少一個測試單元，之同設備啲所有引腳駁埋喺度、有選擇噉覆蓋得個引腳功能嘅。每個測試單元都可以透過JTAG掃描鏈嚟編程將啲信號推到引腳度，跟尾跨越板上高嘅獨立跡線；然後就讀得啲喺板走線目的地嘅單元，並驗查板上啲跡線駁接嗰兩個引腳駁得啱唔啱。若果條跡線同另一個信號短路或者直程斷開，噉目標引腳度就會顯示唔啱嘅信號值，就噉表明到故障。

### 片上基礎架構

為唨提供邊界掃描功能，IC供應商要幫每個設備都添加埋啲附加邏輯，其中包括每個外部跡線對應嘅掃描單元。每隻單元有一對並列I/O（PI, PO）同埋一對序列I/O（SI, SO），做到：

* **捕獲**並列輸入PI嘅數據
* **更新**並列輸出PO嘅數據
* 序列掃描SI數據並**移位**到SO畀下一個單元
* PI數據**透明傳遞**到PO

然之後啲單元會駁埋一齊，組成外部邊界掃描移位寄存器（BSR），並戥JTAG嘅TAP（測試訪問端口）控制器支持結合埋、之包含有四條（TMS（模選）, TCK（時鐘）, TDI（輸入）, TDO（輸出），有時仲有TRST（重置）等）附加引腳與及控制電路，最終實現噉樣嘅過程：等測設備處於由專用「測試模式選擇」（TMS）序列控制信號控制嘅工作模式上，由一個透過專用設備輸入引腳饋入嘅「測試時鐘」（TCK）計拍，啲序列數據從叫做「測試數據輸入」（TDI）嘅專用設備輸入引腳開始、到叫做「測試數據輸出」（TDO）嘅專用設備輸出引腳終止，同時啲信號值由上位機透過轉換器輸入外部邊界（引腳迾或者球珠迾）、又一迾一迾噉從外部邊界傳遞到核心邏輯、跟尾從核心邏輯傳遞出外部邊界，最終透過轉換器換成序列信號由上位機用户界面呈現結果。

有啲TAP控制器會使啲喺啲內部掃描鏈度運行得嘅所謂嘅JTAG指令而唔係上文睇到嘅BSR，嚟支持埋片上邏輯設計模塊之間嘅掃描鏈。噉樣就可以當嗰啲集成組件係板上嘅單獨芯片一樣，對佢哋進行測試。片上調試解決方案即係邇種內部掃描鏈嘅主要應用場合。

邇啲設計屬大多數Verilog、VHDL庫嘅一部份。邇種附加邏輯開銷好少，一般嚟講對於板級嘅有效測試都幾抵下。

正常操作之下，新增嘅邊界掃描鎖存單元都係設成對片電路冇影響嘅，即係實際上透明。但係電路著設為測試模式陣時，鎖存器就可以允許數據流從一個鎖存器轉移到下一個鎖存器。對單詞進行移位嗰陣，通常都會從啲配置為輸入嘅信號度、畀返啲輸入值。

### 測試機制

由於啲單元可以攞嚟捉數據閼到塊電路板上，所以可以透過佢哋嚟設置測試條件。然之後又可以透過計時寄存返啲數據字嚟回輸啲相關狀態到測試系統入邊，好對佢進行分析。

透過採用這種技術，測試系統就有可能獲得對電路板嘅測試訪問權限。鑑於而今大多數電路板嘅元件同埋跡線都密集之極，測試系統好難透過物理方式駁上塊板嘅相關區柵嚟測試塊板，而藉助邊界掃描就唔臤定要使到物理探針即可以實現邇種訪問。

喺現代芯片同埋電路板設計入邊，「測試設計」係一項重要問題。一個常見嘅設計工件係一摣邊界掃描測試矢量，之可能以序列矢量格式（SVF）或者類似嘅互換格式提供。

### JTAG測試操作

設備透過一迾輸入輸出引腳同世界進行通信。 邇啲插針本身就衹能提供有限嘅可見性，對個設備工作嚟講。但係，啲支持邊界掃描嘅設備都包含一個服務於每個信號引腳嘅移位寄存器單元。 邇啲寄存器連接喺設備邊界周圍嘅一條專用路徑入邊（並因此得名）。 條路徑允許一種虛擬訪問能力，之䟒得過、即繞得過啲正常輸入、並允許對個設備進行直接控制同埋提供佢啲輸出嘅詳細可見性。 邊界掃描嘅內容通常由製造商視乎具體零件而使用特定嘅BSDL文件嚟描述。

其中，睇在用唨腳式抑或係珠式嘅芯片封裝，BSDL文件會描述澌喺邊界掃描中涉及到嘅啲喺引腳或球珠上邊曝露出嚟嘅數字信號，嚟作為佢對邊界掃描寄存器（BSR）定義嘅一部分。 兩粒球珠嘅描述可能如下所示噉樣：

```
 "541 (bc\_1, \*, control, 1)," &
 "542 (bc\_1, GPIO51\_ATACS1, output3, X, 541, 1, Z)," &
 "543 (bc\_1, GPIO51\_ATACS1, input, X)," &
 "544 (bc\_1, \*, control, 1)," &
 "545 (bc\_1, GPIO50\_ATACS0, output3, X, 544, 1, Z)," &
 "546 (bc\_1, GPIO50\_ATACS0, input, X)," &

```
幾行碼顯示唨一個中型芯片上高兩個球（喺361球BGA封裝入邊，邊界掃描包括約莫620條噉樣嘅線），每粒球喺BSR中都有三個組件：用嚟配置球嘅控件（配置輸入、輸出、 驅動級別、上拉、下拉等等）； 某種輸出信號；同埋某種類型嘅輸入信號。

有JTAG指令可以採邊界掃描寄存器中嘅數據樣，又或者加定某個值先都得。

喺測試過程當中，I/O信號透過邊界掃描單元進入同離開芯片。測試涉及好多測試向量，每個向量都驅動一啲信號，然後驗證個響應係咪啱個預期。邊界掃描單元可以配置為支持對於芯片之間互駁嘅外部測試（EXTEST指令）或者芯片內部邏輯嘅內部測試（INTEST指令）。

### 電路板測試基礎架構

通常，高端商業JTAG測試系統允許唨從CAD/EDA系統導入嘅設計「網表」與及邊界掃描/JTAG兼容設備嘅BSDL模型，嚟自動生成測試應用程序。 常見嘅測試類型包括：

* 掃描路徑「基礎結構」或完整性
* 邊界掃描設備引腳到邊界掃描設備引腳之間嘅「互駁」
* 邊界掃描引腳到存儲設備或設備集群（SRAM，DRAM，DDR等）
* 任意邏輯集群測試

喺製造陣時使用嘅話，噉樣嘅系統仲支持埋非測試但係係附屬嘅應用程序，譬如各種閃存（NOR，NAND同序列（I2C或SPI））嘅系統內編程。

噉樣嘅商用系統由董事會測試專業人員使用，而一套完整嘅系統通常要使幾千美元。 佢哋可以包括診斷選項，嚟查準諸如開路短路之類嘅故障，仲可以提供原理圖或佈局查看器嚟透過圖形方式顯示故障。 使種工具開發嘅測試通常會戥遞啲測試系統（譬如在線測試儀（ICT）或者功能板測試系統）結合埋使用。

調試
--

邊界掃描體系結構入邊都提供唨喺嵌入式系統開發階段輔助開發人員同埋工程師嘅功能。 JTAG測試訪問端口（TAP）可以變成低速邏輯分析儀。

歷史
--

斯坦福大學嘅James B. Angell提出唨序列測試。

IBM開發唨電平敏感掃描設計(level-sensitive scan design，LSSD)。

睇埋
--

考
-

1. ↑  Frenzel, Louis E. (September 11, 2008). "The Embedded Plan For JTAG Boundary Scan". *Electronic Design*. 原著喺2008-12-01歸檔.
2. ↑  *Boundary-Scan Tutorial 2007 2009*. ASSET™. 2007.
3. ↑  Oshana, Rob (October 29, 2002). "Introduction to JTAG". *Embedded Systems Design*. 喺2007-04-05搵到.
4. ↑  Williams, M. J. Y.; Angel, J. B. (January 1973), "Enhancing Testability of Large Scale Integrated Circuits via Test Points and Additional Logic", *IEEE Transactions on Computers*, **C-22** (1): 46–60, doi:10.1109/T-C.1973.223600