JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

邊界掃描、ATE 與完整測試流程

前面每一階都打造了一件工具:掃描鏈、ATPG 樣式、BIST 引擎、一個故障覆蓋率數字。這最後一階要問的,正是讓這一切值回票價的問題——一片長著數百萬顆晶粒的晶圓,如何被分成「出貨」與「報廢」?而一塊晶片都已焊死、連一根接腳都碰不到的成品電路板,又該怎麼測?答案是繞在每顆晶片周邊的一圈小小單元(邊界掃描),以及一台會與你的掃描鏈對話、要價百萬美元的機器(ATE)。讀完後,你將能把一個訊號從設計者的 `scan_enable` 接腳,一路追蹤到通過/失敗的分類箱,並確切知道 DFT 在從[[tapeout|流片]]到量產這條路上的位置。

拉遠鏡頭:從一顆電晶體到一塊焊好的板子

整整五階,我們都活在一顆晶粒裡面。我們學到:要測一個埋在深處的閘,你必須能控制它的輸入、觀察它的輸出,於是我們把正反器串成一條可以像移位暫存器那樣移位的掃描鏈。我們讓 ATPG 算出能撥動每個節點的精確向量,把結果量化成一個故障覆蓋率百分比,而對於那些龐大規整的區塊——幾百萬位元組的 SRAM——我們讓晶片用 BIST 自己測自己。這一切都是可測試性的設計。但它們至今還沒抓到任何一顆壞晶片。要抓到,這些樣式得真的跑起來——在真實的矽上、在一台機器上。而且晶片從不孤單:它最終會被焊到板子上,旁邊還有十幾顆鄰居,這時一顆裂掉的錫球,和一顆卡死的電晶體一樣致命。

所以這一階要把鏡頭拉遠兩次。先拉到晶片層級自動測試設備(ATE)——也就是測試機——抓住你的晶粒,把前面幾階的掃描、ATPG 與 BIST 樣式打進去,判定這顆晶粒是好是壞。再拉到電路板層級:好晶粒封裝、焊死之後,當你連一根能碰到接腳的探針都找不到時,又該怎麼測晶片之間的連線?這第二個問題,被一個聰明到變成國際標準的點子解掉了——[[ic-boundary-scan|邊界掃描]],它的委員會代號是 IEEE 1149.1,日常名字則是 JTAG

邊界掃描:繞在每顆晶片外緣的一圈間諜

想像一下催生 JTAG 的那場 1980 年代惡夢。電路板越來越密,表面黏著封裝取代了穿孔接腳,而老測試法——一塊「釘床」治具,用一根鋼針壓上每一條網路——快要沒地方放針了。細間距 QFP 的接腳只隔 0.4 公釐;BGA 底下的錫球更是躲在封裝正下方,任何探針都搆不著。你可能有一塊完全沒問題的板子,卻因為一個焊點裂了,使晶片 A 的資料匯流排根本沒接到晶片 B,而世上沒有任何探針看得見這件事。聯合測試行動小組(JTAG)的解法很激進:別再試圖從外面碰接腳了,把測試點放進晶片內部,就藏在每個 I/O 後面。

具體來說:每根標準接腳都配上一個小小的邊界掃描單元——一個正反器加上幾個多工器——坐在接腳與核心邏輯之間。正常運作時這個單元是隱形的,訊號直接穿過去;測試模式下,所有單元手挽著手連成一條繞著晶片外緣的長移位暫存器(這正是「邊界」掃描之名的由來)。現在你不用任何探針,就能做兩件魔法般的事:擷取每根輸入接腳上當下的電壓並把它移出來讀,以及把你想要的任何樣式移進去、驅動到每根輸出接腳上。要測晶片 A 與晶片 B 之間那條銅線,你讓 A 驅動一個 1,再檢查 B 有沒有擷取到 1。焊點裂了?B 擷取到的是 0。板子的連線剛剛自己測了自己。

Two chips on a board, viewed in JTAG test mode
========================================================

  Chip A                                   Chip B
 +-----------------------+        +-----------------------+
 | core logic            |        |            core logic |
 |        +----+  drive  |  PCB   |  capture +----+        |
 |  ......>| BS |---->[pin]======[pin]---->| BS |>......   |
 |        +----+        |  trace  |        +----+          |
 +----------|------------+        +-----------|-----------+
            |   boundary-scan shift register   |
   TDI ---->o--->o--->o--- ... --->o--->o--->o---> TDO
            (one cell behind every package pin)

  Test: A drives 1 -> good trace -> B captures 1
        A drives 1 -> CRACKED    -> B captures 0  (FAIL, no probe needed)
邊界掃描單元在每顆晶片外緣構成一條移位暫存器;一組「驅動-擷取」配對,在零實體接觸下找出斷裂的連線。

整套機構只靠四根(選配是五根)專用接腳來操控,也就是測試存取埠(TAP):TCK(測試時脈)、TMS(測試模式選擇——它驅動一台 16 狀態的控制器狀態機)、TDI(資料輸入)、TDO(資料輸出),以及選配的 TRST(重置)。因為標準把協定釘死了,這同樣四根線可以菊鏈串過板子上每一顆 JTAG 晶片:一顆的 TDO 接到下一顆的 TDI,於是一條測試機纜線就能把樣式移過整塊板子的外緣。這個 TAP 後來遠遠超出了板級測試——你用它來燒錄 FPGA、用一個二十美元的小轉接頭除錯嵌入式 CPU、燒斷晶片上的保險絲,甚至伸進前幾階講的內部掃描鏈與 BIST 控制器。

ATE:一台跑你樣式、要價百萬的機器

現在來見見這些樣式當初是為誰而寫的機器。[[ic-automatic-test-equipment|自動測試設備]] 是一台冰箱大小的測試機——愛德萬(Advantest)與泰瑞達(Teradyne)是家喻戶曉的名字——售價從數十萬到數百萬美元不等。它透過一塊負載板(測封裝好的零件)或一張帶著數百根探針的探針卡(測還在晶圓上的裸晶粒)連到矽上。機器內部,每接腳的電子電路都能各自驅動或感測一根接腳、施加精準的電壓與電流,並把訊號邊緣的時序控制到皮秒等級。它的工作說起來殘酷地簡單:把 DFT 流程產生的樣式灌進去、用時脈推過晶片、把輸出和預期回應比對,然後在每個零件上蓋章——通過失敗

一個真實的量產測試程式,是一連串測試,在幾秒內跑完,大致照這個順序。看看前面每一階如何在這個腳本裡各佔一行:

  1. 接觸/連通與開短路檢查——把每根接腳稍微撥動一下,確認探針真的接上了、且沒有兩根接腳短路。接觸沒過,後面一切都不可信。
  2. 參數/直流測試——量測漏電流(IDDQ)、電源電流、輸出驅動準位。這些抓的是任何邏輯樣式都抓不到的嚴重製造瑕疵。
  3. 掃描/[[ic-atpg|ATPG]] 測試——把結構性的卡住型與轉態型樣式移過掃描鏈,再比對擷取到的回應。你辛苦掙來的故障覆蓋率,就是在這裡變成真正抓到的瑕疵。
  4. [[ic-built-in-self-test|BIST]] 測試——叫晶片上的記憶體與邏輯 BIST 控制器開跑(通常透過 JTAG TAP),等它回報「完成」,然後讀一個通過/失敗位元,而不必串流數百萬個向量。
  5. 功能/全速測試——讓晶片在它真正的時脈下運轉,抓出慢速結構測試漏掉的時序瑕疵;再依零件能通過的最高頻率分箱(速度分箱)。
  6. 分箱與打點——把最終裁決寫進晶圓圖:第 1 箱=良品,其他箱=特定的失效類型。壞晶粒會被點上一個小墨點(或記在軟體圖裡),封裝時就跳過它。

其中有兩個階段發生在兩個不同的時刻。晶圓分選(探針測試) 在晶粒還在晶圓上時、針對裸晶粒進行,於是你絕不會把封裝的錢花在一顆已知是壞的晶粒上——「已知良品晶粒(known-good-die)」這個詞就是這麼來的,而在你把小晶片堆疊進一個封裝之前,這一步至關重要。最終測試 則在封裝之後進行,因為切割、打線與封裝本身都可能引入新瑕疵。至於這套流程的板級版本,靠的就是邊界掃描——等到那些封裝好的零件被永久焊死之後,它才得以成真。

測試時間就是金錢:成本的取捨

這裡有一把擠壓每一個測試決策的經濟老虎鉗。那台 ATE 要價數百萬,所以晶粒在它上面待的每一秒都有標價——以每秒測試機時間幾美分來計。乘上一年數億顆晶粒,測試成本輕易就佔了總製造成本的 5~15%。於是 DFT 的核心張力就是:更多樣式能抓到更多瑕疵(品質更高),卻要花更久才移得進去(成本更高)。 前面幾階那些聰明的 DFT 結構,骨子裡都是這場成本賽局裡的一步棋。

Why shift time dominates -- a rough scan-test cost model
========================================================

  test_time  =  (patterns x scan_chain_length)  /  shift_clock

  Example:  10,000 ATPG patterns,  longest chain = 4,000 FFs
            shift clock = 50 MHz

    cycles = 10,000 x 4,000          = 40,000,000 shift cycles
    time   = 40,000,000 / 50e6 Hz    = 0.8 seconds  (scan only)

  Levers that cut this number:
    + split 1 chain of 4,000 into 8 chains of 500   -> ~8x shorter shift
    + on-chip compression (decompress in / compress out) -> 10-100x fewer pins/cycles
    + BIST a 16 Mb SRAM on-chip  -> read 1 pass bit instead of streaming vectors
    + run at-speed only where timing defects actually hide
掃描測試時間 = 樣式數 × 鏈長 ÷ 時脈。拆分掃描鏈、壓縮、以及 BIST,是三大槓桿,能在不多花測試機秒數的前提下把品質買回來。

這就是為什麼現代晶片不只有一條掃描鏈——它們把正反器拆成數十甚至數百條平行鏈,再用掃描壓縮把它們包起來:一個小小的晶片上解壓器,把測試機的少數幾個通道扇出到許多內部鏈,再由一個壓實器把回應擠回來。把測試資料與時間縮減 50~100 倍是家常便飯。同一枚硬幣的品質那一面,就是[[ic-fault-coverage|故障覆蓋率]]:以 99% 而非 95% 的覆蓋率出貨,可能讓你的現場瑕疵率從每百萬顆數百個掉到數十個。對一顆攸關安全的車用晶片來說,這個差距就是召回與清白紀錄之別——所以覆蓋率目標、進而樣式數、進而測試成本,歸根結柢是一個商業決策,而不只是工程決策。

DFT 住在哪裡:從流片到量產

退一步,看著整座階梯收攏成一條時間軸。DFT 不是測試團隊事後補的東西——它是在任何矽存在之前好幾個月,就蓋進設計裡的結構,正是為了讓最後的測試這一步成為可能。掃描與 BIST 插得太晚,你就交出了一顆你根本無法篩選的晶片。

Where each rung fires in the IC realization flow
========================================================

  RTL  ->  Synthesis  ->  SCAN INSERTION  ->  Place & Route  ->  TAPEOUT
   |                          |  (rungs 1-3:                       |
   |                          |   scan chains, BIST inserted        |
   |                          |   into the netlist)                 v
   |                                                          mask making
   |                                                                |
   v                                                                v
  ATPG run (rung 4)  ----------------- patterns ------------>  wafer fab
  test-bench / fault sim -> coverage %                             |
                                                                   v
                                            WAFER SORT (ATE + probe card)
                                                 scan + BIST + parametric
                                                 -> known-good-die map
                                                                   |
                                                          assembly / package
                                                                   |
                                                                   v
                                            FINAL TEST (ATE + load board)
                                                                   |
                                                          board assembly
                                                                   |
                                                                   v
                                            BOARD TEST (JTAG boundary scan)
                                                 -> ship the system
DFT 結構在合成前後插入;ATPG 在矽出現前就跑完;ATE 在晶圓分選與最終測試時把這一切打進去;邊界掃描則在板級把整個迴圈收尾。

從左到右讀這條時間軸,這條相依鏈無可否認。可測試性設計結構(掃描、BIST、JTAG TAP)在合成前後插入;ATPG 接著針對這個備好掃描的網表算出樣式、回報覆蓋率——這一切都在 流片之前,也就是設計被凍結、以光罩形式送進晶圓廠的那一刻。幾個月後,晶圓回來了,ATE 才終於在晶圓分選時那些樣式,把已知良品晶粒和報廢品分開。封裝好的零件接受最終測試;組好的板子則跑一輪邊界掃描。每一支箭頭都倚賴上游做過的某個決策——這正是為什麼,一根漏掉的 scan-enable 接腳、或一個設得太低的覆蓋率目標,若在流片之後才發現,會是這個產業裡最昂貴的錯誤之一。