張 鍵, 鮑宜鵬
(中科芯集成電路有限公司, 江蘇 無錫 214072)
在工業(yè)控制、安防、物聯(lián)網(wǎng)、消費類電子等諸多領(lǐng)域,MCU 的應(yīng)用處處可見。 隨著智能時代的來臨和安全意識的提升,MCU 的設(shè)計更加復(fù)雜化、 高集成化,為了保證MCU 產(chǎn)品的質(zhì)量, 測試設(shè)計是MCU 芯片必不可少的設(shè)計內(nèi)容。
MCU 芯片的可測性設(shè)計面臨測試電路安全性能差、可靠性低、易測性差、硬件資源緊張、測試成本高等問題。 許多實驗指出,電路規(guī)模每增加1 個數(shù)量級,測試生成時間將增大3 個數(shù)量級[1]。 由此可見,必須將測試電路的安全性、可靠性、易測性、復(fù)用性、低成本性等要求納入設(shè)計規(guī)范, 通過附加硬件或者改變電路結(jié)構(gòu),使所設(shè)計的電路易于測試。
本文通過研究傳統(tǒng)的測試結(jié)構(gòu)及其局限性,提出了一種新的測試架構(gòu),其測試電路在安全性、可靠性、易測性、復(fù)用性、低成本性上有所增強,在與合理的測試策略相結(jié)合后,對CKS32F0XX 芯片進行了整體測試。
測試一般分為功能測試和制造測試[2]。 MCU 芯片的測試項目主要有模擬模塊、I/O、存儲器、數(shù)字內(nèi)核。模擬模塊主要有HSE、LSE、HSI、ADC 等模塊,I/O 主要測試芯片的引腳功能與性能, 存儲器是指FLASH、SRAM 等存儲器件,數(shù)字內(nèi)核是指MCU 的數(shù)字邏輯電路。
傳統(tǒng)的MCU 測試架構(gòu)如圖1 所示, 是將被測模塊的輸入輸出信號直接連接到芯片的引腳上,加上測試模式的使能與選擇信號構(gòu)成的一種測試架構(gòu)。PIN0、PIN1、PIN2、PIN3 為測試模式選擇信號,TEST_EN 為測試模式使能信號。
采用圖1 的測試架構(gòu)會產(chǎn)生以下問題。 首先,在對芯片進行測試時,芯片的狀態(tài)不能確定,可能導(dǎo)致芯片的測試結(jié)果不正確。 其次,客戶可能因為誤操作進入了芯片的測試模式、 對芯片造成不可逆的損害,例如對Flash 的信息塊進行操作, 從而導(dǎo)致芯片重要信息丟失。 最后,芯片引腳資源使用較多,而外圍管腳數(shù)量有限[3],不能在有限的管腳上實現(xiàn)測試的可控性與可觀察性。 同時,引腳資源的使用與測試機采用site的最多數(shù)量有關(guān),較多引腳的使用將使得芯片只能用較少site 進行測試,從而增加了測試時間。
MCU 改進后的傳統(tǒng)測試架構(gòu)如圖2 所示,雖然使用的引腳數(shù)減少,但是其安全性與可靠性依然得不到保障。 首先圖2 中的測試碼生成電路沒有密鑰判定單元,不具有安全性;其次,在測試時電路狀態(tài)不能確定,不具有可靠性;最后測試碼沒有充分應(yīng)用,測試碼沒有當(dāng)成輸入信號在使用,只用在控制邏輯上。
圖1 MCU 傳統(tǒng)測試架構(gòu)
圖2 MCU 改進后的傳統(tǒng)測試架構(gòu)
測試代價主要分為測試生成代價和測試碼置入代價[4]。 采用傳統(tǒng)測試結(jié)構(gòu),滿足不了復(fù)雜MCU 芯片的可測性設(shè)計要求,故需要采用新的測試架構(gòu)。
測試碼生成電路如圖3 所示, 上述測試碼生成電路包括N 位計數(shù)器、M 位移位寄存器、 測試模式鎖定單元、密鑰判斷鎖定單元和輸出選擇單元。 其中,進入測試的輔助信號包括復(fù)位信號PIN0、 第一引腳信號PIN1、第二引腳信號PIN2、第三引腳信號PIN3 和加電復(fù)位信號Lvr, 所述復(fù)位信號PIN0 在低電平時有效,第一引腳信號PIN1 用于屏蔽復(fù)位信號, 第二引腳信號PIN2 用于生成測試碼的數(shù)據(jù)輸入, 第三引腳信號PIN3 用于生成測試碼的時鐘輸入, 加電復(fù)位信號Lvr用于芯片內(nèi)部的加電復(fù)位,保證了芯片在內(nèi)部加電復(fù)位完成后,進入測試模式時整個芯片系統(tǒng)處于復(fù)位狀態(tài),只有被測試的電路工作,從而保證了測試的可靠性。
圖3 測試碼生成電路
測試碼最高位MST 或復(fù)位信號PIN0 作為測試碼的輸出條件,如果MST 為0,且PIN1 為0,則輸出測試碼的復(fù)位值Reset Value。 在設(shè)置測試碼最高位為1 時,芯片進入相應(yīng)的測試模式,此時芯片外部系統(tǒng)復(fù)位信號可以為0,也可以為1。 芯片外部系統(tǒng)復(fù)位信號為0 時,可以在芯片系統(tǒng)復(fù)位狀態(tài)下測試功能模塊;芯片外部系統(tǒng)復(fù)位信號為1 時, 可以在芯片系統(tǒng)正常工作狀態(tài)下測試功能模塊。 這就方便了芯片在測試模式與正常工作模式之間的切換, 同時利用這樣的特點,也可以測試芯片外部系統(tǒng)復(fù)位信號。
改進后的測試架構(gòu)如圖4 所示, 被測單元的測試模式控制由測試碼生成電路提供,同時測試輸入信號可根據(jù)電路的易測性及易調(diào)試性,靈活地選擇測試輸入信號由測試碼還是引腳控制。
圖4 MCU 改進后測試架構(gòu)
增加測試模式不需要增加硬件資源,通過在不同的測試階段采用不同的測試模式,可以減少總體的測試時間,降低成本。 同時,使用較少的引腳還可以實現(xiàn)在測試平臺上能夠使用更多site 對多個芯片進行同時測試,大大減少了測試時間,降低了測試成本。
綜上所述, 改進后的測試架構(gòu)測試的可靠性、安全性、易測性、復(fù)用性、低成本性均有了較大提高。
在設(shè)計時,除了考慮測試成本外,還要求必須便于測試分析[5]。 在實際測試中,既需要輸入信號能夠靈活變化,同時要求輸出信號易于觀察。由于MCU 測試機臺的性能不同,所以在設(shè)計可測性時,需要考慮到使用性能不一的測試機對芯片測試的情況,例如對于某些測試機臺,測試的時鐘頻率不能超過20 MHz,故測試頻率時就需要設(shè)計時鐘分頻, 再輸出到引腳上,如圖5 所示,HSI48 模擬模塊是芯片內(nèi)部晶振時鐘,輸出48 MHz 的頻率,故必須設(shè)計分頻邏輯,最后才能輸出到引腳PA3 上。
HSI48 易受芯片工藝制程及外界溫度等的影響,CAL 信號可以用來對HSI48 進行粗調(diào),TRIM 信號用來對環(huán)境的影響進行細調(diào)。 芯片測試的HSI48 的值需要進行校準,經(jīng)過不斷調(diào)整CAL 與TRIM,才能將頻率調(diào)整到目標頻率,調(diào)整的值寫入Flash 信息塊中。 基于以上原因,HSI48 的測試需要靈活調(diào)試, 故此時HSI48 的輸入信號可以選擇使用引腳控制。 同時為了節(jié)約量產(chǎn)的測試成本,便于在應(yīng)用板調(diào)試,設(shè)計了圖6所示的測試結(jié)構(gòu),它的控制信號比較簡單,只要打開HSI48 的使能位,就能從芯片引腳上輸出測試結(jié)果。
圖5 HSI48 測試結(jié)構(gòu)示意圖
圖6 HSI48 簡化測試結(jié)構(gòu)示意圖
中測(CP)是圓片級的測試,一般測試Flash 等存儲器,成測(FT)是芯片封裝后的測試,是測試的最后一道工序。根據(jù)以上2 種測試結(jié)構(gòu),HSI48 的測試采用以下測試策略,CP 測試使用圖5 的測試結(jié)構(gòu), 而FT測試使用圖6 的測試結(jié)構(gòu),以節(jié)約整體的測試時間,降低測試成本。
在芯片的設(shè)計中,可測試性的設(shè)計成本是芯片額外的成本, 可測試性的邏輯電路占用了芯片面積。HSI16 測試結(jié)構(gòu)如圖7 所示,在圖5 與圖7 中,使用了同一個分頻器,在PB5=PB4=PB3=0 時,選擇HSI16 進行分頻, 并輸出到PA3 引腳上, 在PB5=PB4、PB3=1時,選擇HSI48 進行分頻,并輸出到PA3 引腳上。這里不僅對PA3 引腳進行了復(fù)用,同時對分頻器進行了復(fù)用,以降低測試生成代價,節(jié)約了測試成本。
對于MCU 芯片, 并不需要對所有I/O 進行性能測試, 要對I/O 進行歸類, 每類選擇一個I/O 測試即可,以降低測試碼置入代價[4]。然而,對于I/O 的某些性能參數(shù)每一顆芯片都必須測試,例如VIH、VOH、VOL、VIL等。
圖7 HSI16 測試結(jié)構(gòu)示意圖
現(xiàn)在的MCU 芯片中,嵌入式存儲器一般有2 種,分別為RAM 與Flash,有時可占到芯片一半以上的面積[4],在CKS32FXX 芯片中存儲器占了40%的面積,由此可見對于存儲器測試的重要性。 一般存儲器端口的信號較多,所需引腳資源較多,客戶對于儲存器的容量要求增大,導(dǎo)致外部設(shè)備對嵌入式存儲器的測試變得越來越困難,測試成本越來越高。 內(nèi)建自測試方法通過在芯片內(nèi)部設(shè)計少量的邏輯電路對存儲器進行測試,既節(jié)約了引腳資源,便于MCU 較少引腳封裝進行測試,又節(jié)約了測試時間。 CKS32FXX 芯片中所集成的SRAM 是單端口SRAM, 每塊SRAM 為32 kB,總?cè)萘窟_到96 kB,如果分開測試需要3 個測試控制器, 浪費硬件資源。 通過采用MBIST 工具Mentor/tessent15.2, 將多個RAM 集成到一起統(tǒng)一測試,既節(jié)約測試引腳,又減少了芯片面積,SRAM BIST生成如圖8 所示,3 塊SRAM 存儲器采用同一個測試控制器。
圖8 SRAM BIST 生成
CKS32FXX 芯片中所集成的Flash 采用自檢模塊,對Flash 的全讀、全寫、全擦等基本功能進行測試,在FT 測試中節(jié)約了大量的時間。
數(shù)字內(nèi)核是MCU 芯片重要的組成部分, 通常采用掃描的可測試設(shè)計技術(shù), 商業(yè)EDA 工具基本都支持掃描鏈,CKS32FXX 芯片設(shè)計中采用Synopsys/tx16.03 軟件,按照不同電壓域生成了4 條覆蓋率達98.69%的測試模式,供測試機測試使用。
為了測試電路,必須生成測試模式,而測試向量生成也需要根據(jù)不同情況進行調(diào)整。 圖9 采取RZ 采樣模式,即采樣時鐘與時鐘是同一頻率,這樣的好處是可以減少測試向量置入測試機的時間,ppa4 為輸入時鐘,test_vec_clk 為采樣時鐘。 圖10 采取的為NRZ采樣模式,即采樣時鐘與時鐘是偶數(shù)倍頻,這樣的好處是測試機容易調(diào)試,時序不會漂移。
由于模擬模塊多采用仿真模型進行仿真,而仿真模型不一定準確,導(dǎo)致測試向量并非真實情況,這時就需要根據(jù)情況編寫測試向量,如ADC、DAC 等模擬模塊的測試。
圖9 RZ 采樣模式
圖10 NRZ 采樣模式
隨著MCU 的設(shè)計愈加復(fù)雜化、高集成化,為保證產(chǎn)品的質(zhì)量,測試設(shè)計越來越重要,可測性設(shè)計的意義在于它以盡可能小的代價獲得盡可能高的測試質(zhì)量,本文中的測試結(jié)構(gòu)與策略在CKS32FXX 芯片中實現(xiàn),CKS32FXX 是40 萬門、 采用UMC 55 nm 工藝實現(xiàn)的MCU 芯片,中測單顆測試時間為2.94 s,成測單顆時間為1.7 s, 采用J750 測試機, 單個測試成本約0.45 元,符合設(shè)計目標,在實際應(yīng)用中具有推廣價值。