侯曉宇,郭 賀,常艷昭
(中國電子科技集團公司第五十八研究所,江蘇 無錫 214035)
存儲器的測試主要由內建自測試和外部測試構成[1?3]。內建自測試由于芯片內部測試電路已固化,測試圖形無法改變,也無法保障測試的故障覆蓋率[4];而外部測試一般由ATE(Automatic Test Equipment)機臺來進行批量化測試[5?6]。大容量FLASH 存儲器因存儲容量大[7?9],在保障故障覆蓋率的情況下,其測試向量較大,而ATE 測試系統(tǒng)因有限的存儲容量,很難保障大容量存儲器的高覆蓋率測試。此外,為保障器件的可靠性,需對大容量FLASH 存儲器進行三溫環(huán)境測試。傳統(tǒng)的基于ATE 和熱流罩的環(huán)境測試裝置及方法存在如下缺陷:一方面,熱流罩體積較小,多工位測試能力受限;另一方面,熱流罩無法長時間扣壓在ATE 機臺上,否則會導致ATE 機臺掉電重啟,而大容量的FLASH 存儲器全地址功能測試耗時數小時,故該方法僅能在常溫下對大容量FLASH 存儲器進行全地址功能測試,且占用大量ATE測試機時,測試成本較高。因此,亟需在原有的技術基礎上進行突破創(chuàng)新,實現大容量FLASH 存儲器的三溫環(huán)境測試,同時提高測試效率,降低測試成本。本文提出了一種基于FPGA 驅動板+工位板的板級FLASH 存儲器三溫功能測試系統(tǒng),實現了12 工位的大容量FLASH存儲器的三溫功能測試,解決了ATE 機臺無法長時間進行高低溫測試的難題,同時釋放大量ATE 機臺時,提高了測試效率,降低了測試成本。
FLASH 存儲器的故障主要有固定型故障、轉換故障和固定開路故障等[10]。固定型故障是指存儲單元內的邏輯值始終為0 或1。轉換故障是指存儲單元內的邏輯值可以從1轉換為0,但無法從0轉換為1,或邏輯值可以從0 轉換成1,但無法從1 轉換成0。固定開路故障是指無法訪問當前存儲單元內的邏輯值。通常,采用特定的測試圖形來檢測FLASH 存儲器存在的故障,理論上存在一種測試圖形算法可以檢測出所有的故障類型,但由于其時間復雜度而無法完全應用于實際工程中[11]。MSCAN算法也被稱為全0或全1算法[12],即在所有存儲單元中寫入邏輯0 或邏輯1。MSCAN 算法見圖1。
圖1 MSCAN 算法
Checkerboard 算法也被稱為棋盤法,如圖2 所示,該方法用于檢測相鄰單元在存儲數據時是否存在相互影響,即在相鄰兩個存儲單元寫入不同的邏輯值。
圖2 Checkerboard 算法
基于上述方案設計,采用子母方案實現硬件平臺的設計。硬件平臺如圖3 所示,該平臺由驅動板和工位板兩個部分組成。驅動板主要包括FPGA、串口模塊、電源模塊、時鐘模塊、存儲模塊、電平轉換模塊和金手指接口。工位板和驅動板之間通過金手指相互連接,12 個工位的被測芯片依次排列在工位板上組成測試陣列。
圖3 硬件平臺總體框架
為滿足多工位測試要求,FPGA 選用Xilinx Kintex7系列XC7K325T,其外掛DDR 和FLASH 存儲模塊分別用于數據緩存與燒寫程序的啟動。此外,FPGA 通過串口模塊實現與上位機之間的通信。
基于上述硬件平臺,本測試系統(tǒng)軟件任務由FPGA和上位機兩個部分構成,如圖4 所示。FPGA 主要負責對12 個工位的被測芯片施加激勵信號、測試結果比對和與上位機串口數據的傳輸工作。上位機主要負責與FPGA 的串口傳輸工作、測試結果的顯示和測試結果的保存。
圖4 測試系統(tǒng)軟件總體框架
測試系統(tǒng)工作流程如圖5 所示。上位機首先通過串口將配置命令發(fā)送至FPGA,接著FPGA 對被測芯片施加激勵信號,隨后FPGA 將接收到的返回信號進行數據比對,進而通過串口發(fā)送至上位機,最后上位機在界面上實時顯示測試結果并將數據保存至硬盤。
圖5 測試系統(tǒng)工作流程
FPGA 對被測芯片依次施加激勵信號,并對返回的數據結果進行比對,其狀態(tài)機如圖6 所示。首先對被測芯片進行全地址擦寫,讀全地址,若非全1 則跳轉至錯誤狀態(tài);接著對芯片進行全地址寫0,讀全地址,若非全0,則跳轉至錯誤狀態(tài);隨后對芯片進行全地址擦寫,全地址寫0xAA55,讀全地址,若非全0xAA55,則跳轉至錯誤狀態(tài);最后對芯片進行全地址擦寫,全地址寫0x55AA,讀全地址,若非全0x55AA,則跳轉至錯誤狀態(tài)。
上位機采用Qt 作為開發(fā)工具,該軟件主要將界面上的控制命令進行組幀并通過串口發(fā)送出去[13],解析串口中收到的數據,將測試結果顯示在可視化界面并存儲至硬盤。為有效區(qū)分串口接收的數據類型,定義了如圖7 所示的數據幀格式,共分為5 個部分,如下:
圖7 數據幀格式
1)幀頭:長度為32 bit,定值為0x1234567。
2)內容形式:長度為32 bit,0x0 表示命令參數,0x1為被測芯片返回的測試結果。
3)長度:長度為32 bit,該變量表示為數據幀中發(fā)送內容的字節(jié)大小。
4)內容:具體發(fā)送數據。
5)幀尾:長度為32 bit,定值為0x89ABCDEF。
FLASH 存儲器三溫功能測試系統(tǒng)的驅動板和工位板實物圖如圖8 和圖9 所示,兩塊板卡通過金手指接口插入三溫測試箱實現互聯(lián)。
圖8 FLASH 存儲器三溫功能測試系統(tǒng)驅動板
圖9 FLASH 存儲器三溫功能測試系統(tǒng)工位板
如圖10 所示,當被測芯片寫入的數據0xAA55 和讀出的數據0xAA51 出現不一致時,則當前芯片測試停止,并將測試結果上傳至上位機。
圖10 錯誤數據顯示
如圖11 所示,上位機接收到數據后,實時顯示出錯誤工位號、錯誤地址和讀出的錯誤數據。
圖11 上位機結果顯示
本文設計一種基于驅動板和工位板的FLASH 存儲器的實裝測試系統(tǒng),并完成了對此系統(tǒng)的驗證。結果表明,該測試系統(tǒng)可實現12 工位的大容量FLASH 存儲器在三溫環(huán)境下的全地址擦寫和讀功能測試,以及測試結果的實時顯示與本地存儲。相較于傳統(tǒng)使用ATE 機臺對FLASH 存儲器進行測試的方法,該測試系統(tǒng)有效解決了ATE 機臺在高低溫環(huán)境下無法長時間測試的缺點,同時釋放大量ATE 測試機時,大幅降低了FLASH存儲器芯片的測試成本。此外,12 工位的同步測試大幅提高了測試效率,且工位板具有高可擴展性,對于后期的FLASH 存儲器量產化測試具有廣闊的應用前景。