侯曉宇,郭 賀,常艷昭
(中國電子科技集團公司第五十八研究所,江蘇 無錫 214035)
存儲器的測試主要由內建自測試和外部測試構成[1?3]。內建自測試由于芯片內部測試電路已固化,測試圖形無法改變,也無法保障測試的故障覆蓋率[4];而外部測試一般由ATE(Automatic Test Equipment)機臺來進行批量化測試[5?6]。大容量FLASH 存儲器因存儲容量大[7?9],在保障故障覆蓋率的情況下,其測試向量較大,而ATE 測試系統因有限的存儲容量,很難保障大容量存儲器的高覆蓋率測試。此外,為保障器件的可靠性,需對大容量FLASH 存儲器進行三溫環境測試。傳統的基于ATE 和熱流罩的環境測試裝置及方法存在如下缺陷:一方面,熱流罩體積較小,多工位測試能力受限;另一方面,熱流罩無法長時間扣壓在ATE 機臺上,否則會導致ATE 機臺掉電重啟,而大容量的FLASH 存儲器全地址功能測試耗時數小時,故該方法僅能在常溫下對大容量FLASH 存儲器進行全地址功能測試,且占用大量ATE測試機時,測試成本較高。因此,亟需在原有的技術基礎上進行突破創新,實現大容量FLASH 存儲器的三溫環境測試,同時提高測試效率,降低測試成本。本文提出了一種基于FPGA 驅動板+工位板的板級FLASH 存儲器三溫功能測試系統,實現了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 通過串口模塊實現與上位機之間的通信。
基于上述硬件平臺,本測試系統軟件任務由FPGA和上位機兩個部分構成,如圖4 所示。FPGA 主要負責對12 個工位的被測芯片施加激勵信號、測試結果比對和與上位機串口數據的傳輸工作。上位機主要負責與FPGA 的串口傳輸工作、測試結果的顯示和測試結果的保存。

圖4 測試系統軟件總體框架
測試系統工作流程如圖5 所示。上位機首先通過串口將配置命令發送至FPGA,接著FPGA 對被測芯片施加激勵信號,隨后FPGA 將接收到的返回信號進行數據比對,進而通過串口發送至上位機,最后上位機在界面上實時顯示測試結果并將數據保存至硬盤。

圖5 測試系統工作流程
FPGA 對被測芯片依次施加激勵信號,并對返回的數據結果進行比對,其狀態機如圖6 所示。首先對被測芯片進行全地址擦寫,讀全地址,若非全1 則跳轉至錯誤狀態;接著對芯片進行全地址寫0,讀全地址,若非全0,則跳轉至錯誤狀態;隨后對芯片進行全地址擦寫,全地址寫0xAA55,讀全地址,若非全0xAA55,則跳轉至錯誤狀態;最后對芯片進行全地址擦寫,全地址寫0x55AA,讀全地址,若非全0x55AA,則跳轉至錯誤狀態。
上位機采用Qt 作為開發工具,該軟件主要將界面上的控制命令進行組幀并通過串口發送出去[13],解析串口中收到的數據,將測試結果顯示在可視化界面并存儲至硬盤。為有效區分串口接收的數據類型,定義了如圖7 所示的數據幀格式,共分為5 個部分,如下:

圖7 數據幀格式
1)幀頭:長度為32 bit,定值為0x1234567。
2)內容形式:長度為32 bit,0x0 表示命令參數,0x1為被測芯片返回的測試結果。
3)長度:長度為32 bit,該變量表示為數據幀中發送內容的字節大小。
4)內容:具體發送數據。
5)幀尾:長度為32 bit,定值為0x89ABCDEF。
FLASH 存儲器三溫功能測試系統的驅動板和工位板實物圖如圖8 和圖9 所示,兩塊板卡通過金手指接口插入三溫測試箱實現互聯。

圖8 FLASH 存儲器三溫功能測試系統驅動板

圖9 FLASH 存儲器三溫功能測試系統工位板
如圖10 所示,當被測芯片寫入的數據0xAA55 和讀出的數據0xAA51 出現不一致時,則當前芯片測試停止,并將測試結果上傳至上位機。

圖10 錯誤數據顯示
如圖11 所示,上位機接收到數據后,實時顯示出錯誤工位號、錯誤地址和讀出的錯誤數據。

圖11 上位機結果顯示
本文設計一種基于驅動板和工位板的FLASH 存儲器的實裝測試系統,并完成了對此系統的驗證。結果表明,該測試系統可實現12 工位的大容量FLASH 存儲器在三溫環境下的全地址擦寫和讀功能測試,以及測試結果的實時顯示與本地存儲。相較于傳統使用ATE 機臺對FLASH 存儲器進行測試的方法,該測試系統有效解決了ATE 機臺在高低溫環境下無法長時間測試的缺點,同時釋放大量ATE 測試機時,大幅降低了FLASH存儲器芯片的測試成本。此外,12 工位的同步測試大幅提高了測試效率,且工位板具有高可擴展性,對于后期的FLASH 存儲器量產化測試具有廣闊的應用前景。