范學仕,劉云晶
(中科芯集成電路股份有限公司,江蘇無錫 214072)
MCU設計采用IP核的復用技術,大大縮短了復雜芯片的設計周期,提高了設計產量并加快了產品的面世速度,在消費電子、工業(yè)控制、醫(yī)療設備以及人工智能等領域得到廣泛應用[1-3]。MCU具有高集成度和復雜度,使得各IP的I/O端口集成至MCU內部,無法通過MCU芯片引腳直接對各IP進行訪問和控制,降低了內嵌IP的可控性和可觀性,因此需要內建DFT(Design for Testability,可測性設計)以保證芯片的可控性和可觀性[4-6],DFT設計方法與技術成為MCU測試領域的研究熱點[7]。
針對MCU的測試方法主要分為兩類:基于ATE的外部測試方法[8-9]和基于BIST的內部測試方法[10-11]。
基于ATE的外部測試方法,由被測電路、ATE和ATE存儲器3個基本構件組成。該方法將芯片測試數據(包括測試激勵和測試響應)存儲在ATE的存儲器中,由ATE將測試激勵注入到被測電路,捕捉被測電路實際響應與測試響應比較,輸出測試結果。該方法利用ATE強大的存儲和運算能力,采取更為精確的測試評估規(guī)則,有效提高芯片的測試故障覆蓋率,但同時測試成本較高。
基于BIST的內部測試方法,BIST電路主要包括測試激勵生成器、測試訪問控制電路和響應特征分析器。當進入BIST測試模式時,由測試激勵生成器產生測試向量,經過控制電路傳到被測電路,最后由響應特征分析器進行響應分析,得出測試結果。這種測試方法將測試激勵的生成、測試訪問及測試響應分析在芯片內部采用BIST硬件電路實現,從根本上解決了對于外部ATE設備的依賴,降低了測試成本,但增加了芯片的面積,提高了芯片硬件開銷。
本文在測試成本、故障覆蓋率和硬件開銷之間尋求平衡,將測試資源劃分技術[12]和測試端口復用技術[13]引入基于ATE的測試方法中。在控制時間成本的基礎上,采用基于ATE的外部測試方法,設計了數字邏輯SCAN鏈和模擬IP測試模式;在控制芯片硬件成本的基礎上,設計了MBIST電路,對Memory進行測試;為更高效地下載程序和功能驗證,設計了支持標準SPI協議的通用測試接口;同時結合端口復用技術,對整個可測性設計進行優(yōu)化,設計了測試模式控制模塊,實現多個IP同時測試,以降低成本、提高測試效率。
可測性設計總體結構如圖1所示,包含具體的控制信號和數據通路。測試控制模塊實現對整個測試模式的控制管理,針對不同的測試模式,由測試碼生成模塊生成不同的測試碼,選擇進入相應的測試模式。管腳復用模塊實現了不同測試模式下相同端口的復用,可以保證在不同封裝形式下均可以進行測試。測試寄存器完成對ADC和IO口進行測試。SCAN、MBSIT、各模擬IP的測試通路也在圖1中給出,具體介紹將在下文展開。
圖1 可測性設計總體結構
為防止芯片在正常使用中誤入測試模式以及便于研發(fā)人員對芯片進行調試,本文設計了獨特的測試模式進入方式,基本屏蔽了用戶誤入測試模式的可能性,同時也保證研發(fā)人員對芯片的調試、失效分析以及其他特殊操作,具體進入方式如圖2所示。在上電復位以后,端口1為低電平,可以屏蔽鎖定模塊端口2的復位信號,此時密鑰在端口4時鐘驅動下,通過端口3輸入到密鑰判斷鎖定模塊,密鑰匹配后進入測試模式。重新上電復位或者將端口1拉高后按鍵復位都可以退出測試模式。在測試模式鎖定之前,可以將端口2保持低電平輸入,讓其他邏輯處于復位狀態(tài);測試模式鎖定后,繼續(xù)通過端口3打入相應的測試碼到移位寄存器,可分別進入各個模塊的測試模式。進入相應的測試模式之后釋放端口1~4,可作其他輸入輸出。
圖2 測試模式鎖定原理圖
在內部復位已結束、外部復位使能的條件下,將某個管腳拉低(端口1,屏蔽端口2的復位作用)、另外兩個分別作為時鐘輸入(端口4,歸零模式,上升沿有效,共100個周期)和數據輸入(端口3),串行輸入50 bit的密鑰和50 bit的測試模式選擇碼,電路即進入指定的測試模式;在外部復位結束后,時鐘輸入被屏蔽、移位寄存器處于保持狀態(tài)(即寄存器不復位),3個外部輸入端口可作其他用途。具體時序圖如圖3所示。根據不同測試項目輸入不同測試碼,電路即進入相應的測試模式。
圖3 測試模式鎖定時序圖
本文通過在時序單元上增加可測性邏輯,在觸發(fā)器輸入端添加一個2選1選擇器MUX,將其替換成掃描觸發(fā)器,該觸發(fā)器可工作于正常和掃描測試兩種不同模式,SCAN設計如圖4所示。
圖4 SCAN基本結構
掃描測試模式下掃描使能信號SE為高電平,選擇掃描輸入SI作為掃描觸發(fā)器的輸入信號;正常工作模式下,SE信號為低,掃描觸發(fā)器選擇原始輸入DI作為輸入信號。SCAN鏈用以掃描移入測試向量、捕獲并掃描移出測試響應等測試數據,并且輸入輸出直接連至芯片管腳,實現可控和可觀,降低測試向量產生復雜度、提升測試效率。
本文采用Synopsys公司Design Compiler進行SCAN設計,采用Tetramax進行測試碼生成??紤]到全掃描測試帶來的測試生成困難、測試時間過長、測試成本增加等問題,本文對Vcore區(qū)域進行掃描鏈設計,共一條鏈,故障覆蓋率為87%,總測試碼為1100000行。對于未進行掃描鏈設計的部分,在相關IP測試項中已經包含,可以保證無遺漏。
BIST通過在待測電路內部集成測試向量生成、輸出響應分析和測試邏輯控制等可測性設計硬件,使待測電路具有自測試能力,在測試時從外部施加必要的控制信號,即可運行內建自測硬件,選擇一系列內部生成的測試向量,來檢查被測電路的缺陷和故障,其結構如圖5所示。
圖5 MBIST電路總體架構
TAP(Test Access Port,測試訪問接口)是一個通用端口,用來引入控制信號到邊界掃描器件并且為邊界掃描提供串行的輸入(TDI)、輸出(TDO)信號。TAP控制器是一個16位的狀態(tài)機,可以通過TMS和TCK對TAP控制器進行編程以控制其狀態(tài),控制進入指令寄存器和數據寄存器的數據流。TAP控制器是MBIST的測試控制中心,每一個SRAM的測試都由TAP來控制。指令寄存器對要執(zhí)行的指令進行譯碼,同時可以選擇訪問相應的數據寄存器。
TCK提供測試時鐘CLK。而BIST控制器的復位是由JTAG控制器內部信號產生的??刂菩盘枴皽y試1/2”是BIST控制器的使能,而在非測試模式下,SRAM的控制器使用的是SRAM IP的CK端時鐘,由獨立時鐘源提供。
MBIST寄存器指令解析器可以直接對2個BIST控制器分別發(fā)出指令,因此可以按順序打開測試使能。測試的結果如測試完成情況、成功與否也將由其綜合后,等待TAP控制器發(fā)出讀取MBIST寄存器的指令,將測試結果以串行的方式輸出給TDO。
本文涉及的模擬 IP主要包括 ADC、HSI、LSI、HSE、LSE、PLL、PVD、LDO、PAD等。由于芯片封裝類型的不同,有100/64/48/36只管腳,為保證所有封裝的可測性,結合管腳復用技術,以36只管腳為基礎,針對各IP分別設計測試模式,可實現各IP的單獨測試和共同測試。
各模擬IP的測試模式結構如圖6所示,輸入測試密鑰之后輸入IP對應的唯一測試碼,根據TEST_MODE_SEL信號選擇進入相應的IP測試模式,從端口輸入待測信號,測試IP之后再將結果從端口輸出。
考慮到 HSI、LSI、HSE、LSE、PLL 的數據均包含頻率信號,結合管腳復用技術,設計測試模式管理模塊,將這幾種測試模式結合到一起,可根據需求自行選擇其中一個或多個IP進行測試。PVD和LDO均包含電壓信號,可同時測試。ADC支持各通道輸入測試,并將轉換結果串行輸出,同時支持內部參考基準電壓和溫度傳感器的轉換輸出。PAD的每個控制信號(輸入/輸出使能、模式選擇、上/下拉使能)均可自行配置,靈活高效。除此之外,為測試不同內核工作電壓下IP的性能,可聯合LDO測試模式進行測試。
圖6 模擬IP測試模式結構
考慮到芯片FLASH測試、出廠相關配置信息的燒錄,以及量產時更高效地燒錄用戶程序,本文基于標準SPI協議設計了通用測試接口和FLASH測試模式,可以直接與標準SPI進行通信,方便操作,提高燒錄效率,降低成本。此外,該通用測試接口可直接將測試程序下載到SRAM,并屏蔽FLASH的讀寫保護,可以更加快捷迅速地進行功能測試、功耗分析等。其整體結構如圖7所示。
圖7 通用測試接口連接結構圖
通用轉換接口支持FLASH 32/64位讀、編程、頁擦除、全擦除等基本操作和32位SRAM讀寫操作。SPI采用單主機全雙工模式,由MOSI口(芯片管腳)串行輸入數據至通用測試接口,由M ISO讀出數據至SPI主機,SPI主機非必需,測試過程中可直接由測試及通過管腳進行操作。為防止數據錯亂,不可同時通過通用測試接口進入FLASH和SRAM測試模式。具體工作流程如下:
(1)輸入測試密鑰,芯片測試模式鎖定;
(2)輸入FLASH或SRAM的測試碼,進入相應測試模式;
(3)輸入FLASH/SRAM的IP解鎖指令;
(4)輸入具體操作指令(讀、編程、頁擦除、全擦除等);
(5)輸入操作地址、個數、數據等信息;
(6)執(zhí)行操作,等待測試結果;
(7)復位,退出測試模式。
為驗證本文的可測性設計,本文搭建了MCU實驗平臺,集成了ARM公司Cortex-M 3的32位低功耗處理器、AHB總線、Flash控制器、ISSI的64位某型Flash、32位SRAM及相關外設和IP模型。
圖8 進入FLASH測試模式時序圖
圖8 以進入FLASH測試模式為例,說明進入測試模式的時序,Port1拉低屏蔽port2的復位信號,此時在port4時鐘的驅動下,由port3輸入50位測試密鑰和50位FLASH測試模式測試碼,匹配正確之后,flash_test_mode信號拉高,進入FLASH測試模式。仿真結果與圖3一致。
圖 9 以同時進入 HSI、LSI、HSE、LSE 測試模式為例說明模擬IP測試模式管理模塊以及管腳復用的情況。由圖9可知,4個不同的IP可以同時測試,互不干擾,分別從不同管腳(ppa0~ppa3)輸出時鐘頻率,port3既作為測試模式數據輸入,又在LSE測試模式作為相關控制信號,互不沖突。
圖9 同時進入HSI、LSI、HSE、LSE測試模式時序圖(隱去測試密鑰)
圖10 FLASH測試模式編程操作時序圖
圖10 以FLASH測試模式編程操作說明通用測試接口模塊工作時序。向FLASH 0x102地址寫入64’hfbaa_f000_d004_f8df,在SCK的驅動下,由MOSI按LSB優(yōu)先原則,每次8位傳輸這64位數據。同時M ISO反饋FLASH當前狀態(tài),空閑輸出8’hf0,繁忙輸出8’h0f。通過目前商用下載器(JLINK、ULINK 等),每次只可進行16位數據操作,因此通過該通用測試接口下載程序,至少可以提升4倍的下載速度,有效降低成本。
在實際測試過程(中測和成測)中,選用TR6836型測試機進行測試,測試項25項,測試指標50余項,總計測試時間2~3 s,測試結果表明設計的正確性。
為降低測試成本,提高測試效率,本文將測試資源劃分技術和測試端口復用技術引入基于ATE的測試方法中,基于ATE外部測試和基于BIST內部測試的優(yōu)點,進行可測性設計,并在實際芯片中得到驗證。在控制時間成本的基礎之上,采用基于ATE的外部測試方法,設計了數字邏輯SCAN鏈和模擬IP測試模式;在控制芯片硬件成本的基礎之上,設計了MBIST電路,對Memory進行測試;為更高效地下載程序和功能驗證,設計了支持標準SPI協議的通用測試接口,結果表明整個下載/測試效率提高至少4倍;同時結合端口復用技術,對整個可測性設計進行優(yōu)化,設計了測試模式控制模塊,實現多個IP同時測試,進一步降低成本。