牟云飛,黃菊蓮,王彩云,李燕
(西安西谷微電子有限責(zé)任公司,陜西西安,710000)
隨著FPGA/CPLD 的不斷普及和制造工藝的不斷更新,F(xiàn)PGA/CPLD 芯片的安全性和可靠性方面也提出了新的要求。很多專家學(xué)者在不斷地研究FPGA/CPLD 的測試方法和技術(shù)[1]。作為第三方測試行業(yè)對FPGA/CPLD 測試業(yè)務(wù)也急劇上升,測試覆蓋率和測試流程也要求符合生產(chǎn)可操作性,同時也要求更短的測試周期。因此對于基于ATE 的FPGA/CPLD 測試技術(shù)的研究顯得尤為重要。
從制造設(shè)計的角度來講,CPLD/FPGA 測試是指對FPGA 器件內(nèi)部邏輯塊和可編程互聯(lián)線、輸入輸出塊等資源的檢測[2]。但是作為第三方檢測行業(yè)的測試方案是通過軟件配置被測CPLD/FPGA,ATE 測試時基于特定的配置邏輯施加測試激勵并接收響應(yīng)來判定邏輯功能。因此對被測器件測試流程和功能測試覆蓋提出了更高的要求。
本文提出在線測試方法在篩選企業(yè)中主要有以下優(yōu)點,第一,改善測試的操作模式,使測試操作更加簡單快捷,簡化操作,減輕生產(chǎn)操作流程;第二,可以對FPGA/CPLD 進行多次邏輯配置,提高測試覆蓋率打下基礎(chǔ);第三,減少FPGA 測試時使用的硬件配置PROM,從而降低由于外圍電路的引入造成的測試風(fēng)險。
在線測試通過配置完成后,可以在J750HD 對芯片進行直流參數(shù)和功能測試。
測試系統(tǒng)結(jié)構(gòu)如圖1 所示,主要由四部分組成,自動化測試設(shè)備ATE 是控制的主體,實現(xiàn)全部的功能測試、參數(shù)設(shè)置判斷、數(shù)據(jù)存儲與顯示;測試開發(fā)板是測試的主體,通過連接器與ATE 硬件資源接通。接收ATE 發(fā)來的控制信號,返回測試結(jié)果與測試數(shù)據(jù);DUT 測試芯片通過適配器與開測試開發(fā)板接觸;硬件結(jié)構(gòu)和適配器主要連接接口部分。
圖1 硬件結(jié)構(gòu)示意圖
圖2 在線測試方案流程圖
在線測試方案流程圖分三個階段:
第一階段:方案確定及設(shè)計階段,包括方案確定、原理圖設(shè)計、測試專用板設(shè)計、PCВ 設(shè)計。
第二階段:測試程序編寫與測試向量生成階段。包括邊界掃描測試、被測器件內(nèi)部資源邏輯設(shè)計、編寫測試代碼(根據(jù)不同廠家FPGA/CPLD 選擇仿真編程軟件Quartus IIISEDiamond 及波形仿真工具)綜合布局生成svf 文件、解析svf 文件、編寫腳本轉(zhuǎn)換工具、測試向量生成。虛線框圖內(nèi)在技術(shù)實現(xiàn)重點介紹。
第三階段:測試程序加載調(diào)試與最終測試數(shù)據(jù)回讀。
CPLD/FPGA測試之前要對被測器件進行特定邏輯配置。原測試方法配置邏輯使用的原理圖輸入,缺點是效率低,查錯困難且繪制原理圖比較花費時間。該項目使用 Verilog 語言完成配置邏輯輸入以及綜合驗證平臺的搭建,并用仿真工具對所設(shè)計的邏輯功能進行驗證。
(1)解析IEEE 1149.1 JTAG 協(xié)議。
(2)解析綜合生成的.SVF 文件。
(3)用腳本語言(python/perl)編寫腳本轉(zhuǎn)換工具。
(4)解析邊界掃描ВSD 文件,提取IDCODE 指令。
(5)將SVF 文件轉(zhuǎn)換為相應(yīng)ATE 測試設(shè)備能識別的測試向量。并驗證邏輯功能。
(6)運用仿真軟件(如Modelsim)工具進行邏輯功能的波形仿真驗證功能邏輯。
(7)拆分轉(zhuǎn)換測試向量,進行讀ID 操作、擦除操作、查空操作、編程功能驗證、校驗操作。
FPGA/CPLD 內(nèi)部的主要模塊包括:可編程邏輯模塊(CLВ)、可編程邏輯互連(IR)、輸入輸出模塊(IOВ)、ВRAM 和乘法器。重復(fù)在線配置可以實現(xiàn)多次功能驗證,提高測試覆蓋率、故障率、完整性、降低測試風(fēng)險。
本技術(shù)最主要的理論依據(jù)為IEEE 1149.1 協(xié)議,也稱為JTAG 協(xié)議,該協(xié)議由TMS、TCK、TDI、TDO 四個信號管腳16 個狀態(tài)機實現(xiàn)信號傳輸,其中狀態(tài)的跳變由TMS 決定。TDI/TDO 傳輸數(shù)據(jù)寄存器和指令寄存器的數(shù)據(jù)和指令。圖3 為JTAG 協(xié)議狀態(tài)機流程圖。
圖3 JTAG 狀態(tài)機
SVF 代碼是轉(zhuǎn)換成ATE 測試機臺可執(zhí)行文件的關(guān)鍵文件,它的組成部分主要有:初始化寄存器、讀器件ID、編程、校驗、擦 除、擦空。通過將SVF指令代碼用腳本工具轉(zhuǎn)化為測試設(shè)備識別的測試向量。那么測試設(shè)備將對被測FPGA/CPLD 器件進行讀器件ID、編程,校驗,功能測試、擦除,擦空操作。并且可以將不同設(shè)計輸入所生成的SVF 文件轉(zhuǎn)換成測試向量進行第二次編程,校驗,功能測試、擦除,擦空操作。此操作為了多次配置設(shè)計輸入提高被測FPGA/CPLD 器件測試覆蓋率。下面將詳細解析svf 文件。
Svf 中各個指令與IEEE1149.1 的狀態(tài)機的對應(yīng)關(guān)系如表1。
表1 JTAG狀態(tài)機與指令集對應(yīng)關(guān)系
Svf 指令解釋:
(1)ENDDR,ENDIR:設(shè)置DR/IR 掃描操作后,JTAG應(yīng)移到穩(wěn)態(tài);
(2)FREQUENCY:設(shè)置JTAG 時鐘的工作頻率;
(3)HDR,HIR,TDR,TIR:設(shè)定自動添加于DR/IR數(shù)據(jù)前(H)、后(T)的比特序列;
(4)PIO:設(shè)定系統(tǒng)管腳的輸入輸出數(shù)據(jù);
(5)RUNTEST:描述狀態(tài)機在設(shè)定的周期或時間內(nèi),移入某個穩(wěn)態(tài)并保持的操作;
(6)SDR、SIR:描述移入/移出的目標(biāo)寄存器(數(shù)據(jù)寄存器和指令寄存器);
(7)STATE:描述將狀態(tài)機移入某個穩(wěn)態(tài)的操作;
(8)TRST:描述TAP 的復(fù)位信號。
在線操作包括ID 操作、擦除操作、查空操作、編程功能驗證、校驗操作。
根據(jù)svf 解析文件編寫腳本,腳本實現(xiàn)將綜合生成的svf 文件轉(zhuǎn)換成測試設(shè)備所能識別的測試向量。目前該腳本實現(xiàn)ALTERA、XILINIX、LATTICE 三個廠家的FPGA/CPLD,轉(zhuǎn)換格式可以覆蓋兩款測試設(shè)備,分別為日本ADVANTEST 廠家的自動化測試設(shè)備T6575 和美國TERADYNE 廠家的J750 設(shè)備。腳本主要分三個模塊主要功能介紹如下。
圖4 腳本框架圖
圖5 腳本轉(zhuǎn)換界面
(1)接口模塊svf_conv.pl:分解數(shù)據(jù)(TDI,TDO,MASK,SMASK)
①分解命令為狀態(tài)的遷移
SCAN 指令:當(dāng)前狀態(tài)→SHIFT →EXIT1 →ENDIR/ENDDR
RUNTEST 指令:當(dāng)前狀態(tài)→RUNTEST 狀態(tài)→結(jié)束狀態(tài)
STATE 指令:當(dāng)前狀態(tài)→STATE 狀態(tài)
②根據(jù)狀態(tài)的遷移產(chǎn)生TMS 序列
③對于各過程產(chǎn)生TDI/TDO 序列
④封裝各管腳數(shù)據(jù)并返回
(2)解析模塊svfFile.pm
①分類處理SVF 命令 SSDR、SIR、RUNTEST、STATE
②解析狀態(tài)遷移過程,生成對應(yīng)的TMS 激勵
③生成相應(yīng)的TDI 輸入激勵及注釋
④生成相應(yīng)的TDO 輸出期望值
(3)輸出模塊
負壓降塵裝置主要針對截割頭截割處的粉塵進行捕捉處理。掘進條件為:采用?700 mm截割頭,截割速度為80 mm/min。
①獲取解析產(chǎn)生的激勵數(shù)據(jù)
②生成向量,壓縮重復(fù)行各管腳取一位數(shù)據(jù)生成向量;緩存向量;生成下一條向量;比較與緩存內(nèi)容是否相同;
③生成輸出文件根據(jù)測算機臺需求轉(zhuǎn)換為ATP 文件和ASC 文件
腳本命令幫助信息窗口
--help :顯示腳本支持的命令
--in:指定svf 文件或者文件夾
--T:測試向量格式為TERADYNE J750 設(shè)備,默認為該設(shè)備格式
--A:測試向量格式為ADVANTEST T6575 設(shè)備
--debug:打印提示信息
--version:打印版本信息
腳本工具轉(zhuǎn)換測試向量界面的截圖,轉(zhuǎn)換腳本也提供了友好的操作界面,上述幫助指令有利于快速執(zhí)行轉(zhuǎn)換指令。
在線測試方案已完成altera 廠家CPLD/FPGA 的驗證,XILINX 廠家的CPLD/FPGA 驗證,LATTICE 廠家的FPGA(該廠家可編程邏輯器件均內(nèi)部有flash 空間,所有統(tǒng)一稱FPGA)的驗證。三大廠家共驗證30 多種,10000 多只器件。測試方案通用性強,測試穩(wěn)定,高效。
表2 是ATE 在線測試方案與原有測試方案比對情況。
表2 在線測試方案與原有測試方案比對情況
后期主要研究方向包括兩方面,第一,重復(fù)配置邏輯覆蓋到CPLD/FPGA 器件關(guān)鍵功能單元;第二,利用verilog語言編寫testbench 測試激勵,并且將測試激勵通過腳本轉(zhuǎn)換成測試向量,實現(xiàn)重復(fù)測試用例驗證,提高測試覆蓋率。