易凡 馬靜怡



摘? 要:為提高SoC芯片測試板效率及穩定性,考慮芯片測試需求和設計模塊化等因素,采用可編程片上系統和上位機配置技術,充分利用FPGA開發板上的HSTC擴展接口,設計了一款面向多芯片同步測試的批量測試板,有效解決了芯片批量測試中的難題,實現效率與性能的雙優。主要闡述了該測試板的上位機控制方法、嵌入式控制系統的功能組成以及片上測試程序的設計流程。
關鍵詞:SoC;批量測試;現場可編程門陣列;上位機
中圖分類號:TP311;TN407? 文獻標識碼:A? 文章編號:2096-4706(2023)06-0088-04
Design and Implementation of Chip Batch Testing Board Based on SOPC Technology
YI Fan, MA Jingyi
(Zhengzhou University of Science and Technology, Zhengzhou? 450064, China)
Abstract: To improve the efficiency and stability of SoC chip testing board, this paper considers the testing requirement of chip and the modular design and other factors, uses System on Programmable Chip (SOPC) and master computer configuration technology, makes full use of the HSTC expansion interfaces of FPGA development board, designs a batch testing board for multi-chip synchronization testing. It effectively solves the difficult problems in the chip batch testing, and realizes both efficiency and stability. This paper mainly expounds the master computer control method of the testing board, the functional composition of the embedded control system and the design process of the testing program on the chip.
Keywords: SoC; batch testing; FPGA; master computer
0? 引? 言
“十四五”期間,我教研室與合作校企共同研發了一款通用可編程SoC芯片,該芯片內部集成了32位RISC結構嵌入式處理器,有專用的軟件集成開發環境和可擴展指令,適用于數字簽名與身份認證、存儲保護、數據傳輸、嵌入式控制,具備高安全性、多指令擴展、多通信接口等特點,受到了廣大客戶的青睞。
隨著芯片大批量生產使用,SoC(System on Chip)芯片測試效率成為一個不可忽視的問題。目前,市面上常見SoC測試儀如T2000SOC測試系統、Advantest Model T6682測試儀、惠銳捷V93000等成本高昂,設備龐大,且往往每次只能測試一顆芯片,另外,當應用于特定型號芯片測試時,一般需要進行二次開發,修改底層測試驅動,改變測試變量,大大提高了成本[1]。與此同時,SoC測試DEMO板存在穩定性差、測試效率低、測試接口少等問題,只支持常用通信接口如USB、GPIOA等接口的測試。
為縮減芯片測試時間,提高功能測試的接口覆蓋率,兼顧測試效率與測試成本,本文采用上位機與下位機聯動的測試方法[2],設計實現了一款基于SOPC技術的批量測試板(以下簡稱測試板)。測試板結構輕巧,通過PC端上位機和FPGA開發板即可對芯片完成測試工作,有多個高速I/O接口與待測芯片底座相連,每次可進行8顆芯片的功能測試,基本覆蓋了全部芯片接口與存儲單元,并且可以對芯片密碼處理模塊協處理器單元進行測試,有效降低了功能測試的復雜度以及測試過程中對昂貴測試設備的依賴。
1? 測試板總體架構設計
測試板架構設計包括硬件架構設計與軟件架構設計兩部分。
測試板硬件架構由上位機、嵌入式控制系統和測試板三部分組成,如圖1所示。其中,上位機在PC機端編程實現,控制待測芯片的接口例程選擇;嵌入式控制系統基于SOPC技術實現[3],完成對上位機控制信號的解析與轉接;測試板為自制PCB板,采用多槽設計,為多芯片同步測試提供必要條件。
軟件架構由上位機軟件層、NIOS II驅動層和功能驅動層共同組成[4],如圖2所示。其中,上位機完成測試功能點選擇、測試數據生成、反饋數據分析等功能;NIOS II驅動層基于USB設備驅動實現,完成上位機軟件層與功能驅動層的交互數據的多路轉發;功能驅動層提供所有待測IP(即通信接口、存儲單元、協處理器)的功能函數,供上位機選擇。
2? 測試板硬件設計
2.1? 嵌入式控制系統設計
嵌入式控制系統采用基于Stratix Ⅲ系列FPGA的DE3開發板實現,DE3開發板包含豐富的器件資源及外設接口,充足的開關、LED燈、按鍵,能夠滿足測試板的各種需求;開發板上的4個高速I/O擴展接口(High Speed Terasic Connector, HSTC),用于與芯片待測接口(如存儲接口、通信接口等)的通信,可以提高上位機與下位機數據傳輸的速度。此外,Altera公司提供的SOPC技術可將處理器、存儲器、I/O接口、LVDS、CDR等系統設計需要的功能模塊集成到一個可編程邏輯器件上,構建一個可編程的片上系統,具有可裁剪、可擴充、可升級、可編程的特點,對于嵌入式控制系統的構建必不可少[5]。
整個控制系統以EP3SL150F1152C3為核心,通過內部NIOS II處理器與各種功能模塊完成整個系統的邏輯功能,主要由SOPC模塊、時鐘控制模塊、JTAG控制模塊、復位模塊、流水燈模塊、UDI控制模塊等功能單元組成。
其中,時鐘控制模塊為整個嵌入式控制系統提供時鐘控制;JTAG控制模塊控制JTAG下載器與對應芯片的JTAG接口相連,實現主機TAG下載器與下位機8顆待測芯片JTAG通信接口的依次連接控制;復位模塊用來實現8顆芯片的流水復位,結合軟件實現自動控制,減少了煩瑣的手工操作;流水燈模塊控制GPIO流水燈的運行和停止,用來表示測試板的工作狀態,如果工作正常則8顆LED燈呈流水狀態運行;UDI控制模塊保證了正在測試芯片的UDI接口控制信號有效。
2.2? 測試板設計
為滿足多芯片同步測試需求,測試板采用多槽設計自制PCB板實現,每個測試工位都有單獨的晶振電路和復位電路,通過HSTC接口與嵌入式控制系統連接,測試板硬件架構如圖3所示。
由于HSTC接口引腳數量有限,待測芯片某些接口的數據線(如用戶自定義UDI接口、USB接口、7816接口)要與其他芯片共用。同時,由于測試板需要三種完全不同的電源電壓:1.8 V、3.3 V和5 V。其中,SoC內核電壓為1.8 V,通信接口電壓為3.3 V。為防止8顆芯片同時工作時的功耗超出兩顆電源芯片的承受能力,本文設計了兩種供電方法:穩壓電源供電,主要供測試板設計驗證階段使用,使用臺灣明緯開關電源(MW)生產的MPS-3005IK-3型穩壓電源直接供電;電源芯片供電,主要供測試板實際工作階段使用,來用LINEAR TECHNOLOCE公司系列產品中的LT1585A-3.3V和LT1764-1.8V兩款芯片分別提供3.3 V和1.8 V工作電壓。
3? 軟件設計
3.1? 上位機軟件設計
上位機通過USB數據線連接測試板,用于發送控制及測試命令并顯示結果。為方便上位機與下位機的數據及命令交互,本文遵循Mas Storage協議,通過批量端點傳輸(Bulk傳輸)來組織數據和處理命令,其數據傳輸的結構和過程共分為三個階段:CBW(命令塊包)、CSW(狀態塊包)和批量數據。數據傳輸時,首先傳輸CBW包;通過解析CBW包決定返回或者接受相應的數據;數據傳輸完畢后進入狀態階段,返回命令執行的情況。至此,一次上位機的數據通信結束。本設計中,上位機主要用來發送命令,因此上位機數據通信格式為CBW,其數據結構如下所示。
根據芯片測試需求,本文共設計JtagConnectSelCMD、SoCResetSelCMD、BatchTestingCMD三大類命令,具體功能如表1所示。
3.2? 片上驅動程序設計
3.2.1? 片上驅動程序的功能組成
SoC片上驅動程序是芯片功能測試的主體,主要分為三部分:存儲單元測試、接口測試及協處理器功能測試。其中芯片存儲單元通過直接存取測試的方法來完成故障檢測;通信接口采用讀寫數據并比對的方法進行測試。協處理器采用命令、數據注入方式完成基本配置和功能測試,在存儲單元、接口測試完成后,即可測試協處理器功能。
3.2.2? 測試代碼分層
為提高測試模塊的硬件響應速度,驅動程序由啟動代碼(BootLoader)和應用程序(Application)組成[6],測試時使用編譯工具生成映像文件,通過JTAG接口燒寫到Elash中,啟動代碼在SRAM測試完成后,將應用程序拷貝到SRAM中運行。
本設計中,啟動代碼主要完成SRAM、ROM等存儲單元的初始化與檢測,設置各個部分的時鐘及片選信號,完成SRAM的測試并保存測試信息;應用程序針對具體的測試要求來進行設計,完成硬件寄存器的初始化、數據區和棧指針的初始化,初始化完成后依次進行并行測試、串行測試和協處理器測試。
并行測試是指對在測試板上有單獨的數據線和控制信號的模塊的測試,包括SRAM、Elash存儲單元及GPIO、SPI、UART、Nand Flash等接口,用GPIOA[3:5]依次表示并行測試項的測試結果。
串行測試是指對有共用數據線并且有單獨的控制信號的模塊的測試,包括用戶自定義接口UDI、USB接口和7816接口。并行測試時,用GPIOA[0:2]依次表示并行測試項的測試結果。
4? 測試板實現與驗證
4.1? 測試流程
本設計的FPGA硬件邏輯采用VHDL編寫,借助于Altera FPGA集成開發環境Quartus II編譯并完成配置;采用NIOS II開發環境,通過C代碼實現對硬件邏輯的控制;SoC片上驅動程序,采用Xilinx SDK開發套件,通過C語言編程實現。FPGA硬件邏輯開發界面如圖4所示。
測試板測試流程如圖5所示,具體步驟如下:
(1)PCB板與DE3開發板連接測試。使用上位機模塊對JAG接口進行測試時,系統會自動對選中的每顆芯片進行三次JTAG連接測試。如果連接失敗,測試板自動停止對該芯片的測試,此時可更換芯片并記錄。
(2)程序下載。JTAG接口測試完成之后開始進行程序的下載。由于芯片的存儲功能至關重要,當芯片的存儲模塊測試出現異常時,測試系統會自動停止對該芯片的測試并記錄。
(3)各通信接口測試。上位機按照并行接口測試、串行并行測試的順序依次發送測試指令,分別完成SRAM、eFLASH存儲單元、GPIO、SPI、UART、Nand Flash等并行接口及UDI接口、USB接口和7816接口等串行接口的功能測試。
(4)協處理器功能測試。協處理器采用命令、數據注入方式完成基本配置和功能測試,在存儲單元、接口測試完成后,即可測試協處理器功能。
(5)測試結果讀取。在協處理器模塊測試完成后,用戶可以通過觀察流水燈的狀態和顯示界面的信息來進行相應的記錄。
4.2? 實驗驗證與分析
實驗驗證主要分為測試板功能驗證和性能驗證兩部分[7]。
4.2.1? 功能測試
按照前文所述測試流程,采取混雜問題芯片的測試方法驗證測試板功能,人為篩選問題芯片參與批量測試,驗證測試板的糾錯功能。
以Nand Flash接口測試為例,篩選2塊Nand Flash接口存在通信問題的芯片和6塊正常芯片進行測試,對8顆SoC芯片進行同步測試,測試結果表明,除芯片2與芯片7的Nand Flash存在問題需要進一步排查外,其余芯片功能正常,與預期測試結果相同。測試結果如圖6所示。
同理,采取相似驗證方案對測試板其他接口功能進行驗證。結果表明,本測試板能夠完成所有接口功能的測試,達到預期目標。
4.2.2? 性能測試
按前文所述測試流程,選取千次完整測試中的誤測率、漏測率為穩定性評判標準;千次完整測試的平均測試時間為效率評判標準,完成性能測試。
大批量多次芯片測試結果顯示,相比單顆SoC測試板的4分鐘測試時間,測試板完成8顆芯片所有功能模塊的測試大約需要14分鐘,單顆芯片的測試效率提高超過50%;千次測試中,測試穩定性達到95%,準確性保證在98%以上。
5? 結? 論
本設計的可編程SoC芯片批量測試板,高效利用了DE3開發板的HSTC接口,測試板共焊接8顆芯片底座,可同時對芯片的通信接口、存儲單元及協處理器進行測試。每次測試的芯片數量及待測項選擇靈活,設計中加入的復位電路模塊減少了手工操作次數,測試流程清晰明了,操作簡單,測試結果清晰易懂。測試板能夠滿足日常測試需求,在完成多顆芯片邏輯功能測試的同時,準確率高,穩定性好,大大提高了工作效率。
參考文獻:
[1] 巫新民,任艷頻,秦儉,等.基于FPGA 的實驗室常用芯片測試儀 [J].半導體技術,2010,35(7):637-639.
[2] 牛爽.基于FPGA的數字IC邏輯功能測試儀研制 [D].哈爾濱:黑龍江大學,2020.
[3] 金真平.基于FPGA的電路板多功能測試儀設計與開發 [D].南昌:南昌航空大學,2018.
[4] 肖安兵.基于FPGA的SoC測試驗證系統設計 [D].上海:上海交通大學,2016.
[5] 陳波寅,胡曉琛,張智,等.用于FPGA的高效可測性設計 [J].電子與封裝,2022,22(9):59-63.
[6] MURALI M,UMADEVI S,SAKTHIVEL S M. Verification IP for AMBAAXI Protocol using System Verilog [J]. International Journal of Engineering Research,2017,12(17):6534-6541.
[7] 李志威,潘中良,葉小敏.超大規模集成電路的板級測試研究 [J].重慶理工大學學報:自然科學,2019,33(9):170-175.
作者簡介:易凡(1990—),男,漢族,河南信陽人,中級工程師,碩士,研究方向:嵌入式設計與實現;馬靜怡(1995—),女,漢族,四川巴中人,助教,碩士,研究方向:目標檢測。
收稿日期:2022-09-21