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