張秀均,陳 誠(chéng),孟祥媛
(中國(guó)電子科技集團(tuán)公司第58研究所,江蘇 無(wú)錫 214035)
現(xiàn)場(chǎng)可編程門(mén)陣列FPGA(Field Programmable Gate Array)器件,隨著FPGA廣泛應(yīng)用推進(jìn)了其向著高速、高集成度、高穩(wěn)定性、低功耗、低價(jià)格的方向發(fā)展。集成度和復(fù)雜性的提高,給生產(chǎn)出高穩(wěn)定和高可靠性能的器件提出了更高的要求。為滿(mǎn)足穩(wěn)定可靠的要求,測(cè)試環(huán)節(jié)為其提供了強(qiáng)有力的保障。所以,對(duì)FPGA器件故障的測(cè)試方法、測(cè)試技術(shù)進(jìn)行研究具有重要意義。
FPGA是由二維的CLB陣列和四周環(huán)繞IOB組成,CLB與IOB通過(guò)可編程的互聯(lián)網(wǎng)絡(luò)線(xiàn)相連?;ヂ?lián)網(wǎng)絡(luò)線(xiàn)由開(kāi)關(guān)陣列和各種線(xiàn)段構(gòu)成。由于FPGA結(jié)構(gòu)比較對(duì)稱(chēng),有一定的規(guī)律性,在寫(xiě)測(cè)試碼時(shí)可以將此特性加以應(yīng)用,在保證覆蓋率的同時(shí),可以極大地提高測(cè)試效率。有一個(gè)重要特征是整個(gè)芯片被劃分為很多的tile,XC3042A的tile的劃分如圖1所示,F(xiàn)PGA所有的可編程資源通過(guò)tile和site兩個(gè)屬性就可以知道其坐標(biāo)位置。在下文的net編程中就是通過(guò)循環(huán)語(yǔ)句來(lái)處理PIP的tile以達(dá)到高效的目的。
圖1 tile的劃分及坐標(biāo)系
FPGA的典型故障模型有橋接故障、固定故障、暫態(tài)故障、延遲故障、翻轉(zhuǎn)故障、耦合故障等。FPGA常用測(cè)試思路是對(duì)芯片的各種資源和結(jié)構(gòu)進(jìn)行分塊測(cè)試,極限使用 FPGA 的每個(gè)模塊或者資源,逐一測(cè)試最終達(dá)到全覆蓋測(cè)試的方法。FPGA內(nèi)部資源一般包括可編程邏輯單元(CLB)、嵌入式存儲(chǔ)器(Block RAM)、可編程連線(xiàn)資源(Interconnect and Switch)以及可編程I/O單元。測(cè)試不同資源時(shí),應(yīng)根據(jù)被測(cè)資源特點(diǎn)選擇相應(yīng)的故障模型,以確保FPGA芯片測(cè)試達(dá)到較高的故障覆蓋率。
XDL是xilinx公司的一種全功能的物理層設(shè)計(jì)語(yǔ)言。用此語(yǔ)言編寫(xiě)的XDL文件與使用FPGA Editor編輯生成的NCD文件是等價(jià)的。對(duì)xilinx的FPGA器件,最終配置到芯片中是二進(jìn)制的rbt格式文件,可以通過(guò)圖2的這幾種方式獲得。本文獲取rbt文件的流程如圖中曲線(xiàn)的指示方向,主要研究的內(nèi)容在圖中的虛線(xiàn)框內(nèi)。
圖2 各文件之間的關(guān)系
XDL工具可以使XDL文件和NCD文件通過(guò)命令行進(jìn)行轉(zhuǎn)換,命令的使用方法是:開(kāi)始→運(yùn)行→輸入cmd命令→彈出windows命令行窗口→進(jìn)入存放xdl.exe的目錄→輸入命令。
此文件內(nèi)容由三部分構(gòu)成:design部分、實(shí)例化元件部分和元件之間的連線(xiàn)net部分,其語(yǔ)法格式和樣例代碼如表1所示。
perl語(yǔ)言是一種處理字符能力非常強(qiáng)的計(jì)算機(jī)高級(jí)語(yǔ)言,非常適合于處理上文所述的XDL文件,因?yàn)榇宋募容^有規(guī)律且全是字符的文本文件。上文中4.1節(jié)給出了生成rbt文件的大致流程,圖3是詳細(xì)過(guò)程。
圖3 本文測(cè)試向量編寫(xiě)的流程圖
在寫(xiě)pl文件之前需要進(jìn)行測(cè)試需求分析,選擇合適的方法,以達(dá)到用最少的測(cè)試向量覆蓋盡可能多的需要測(cè)試的資源,并且要滿(mǎn)足測(cè)試要求。再使用FPGA Editor可視化來(lái)布一些復(fù)雜向量的局部,將此NCD文件轉(zhuǎn)為XDL文件,以便在寫(xiě)pl文件的時(shí)候使用。如下有一個(gè)例子可以說(shuō)明如何用perl生成XDL文件。
表1 XDL語(yǔ)法及樣例
圖4 pl文件生成XDL轉(zhuǎn)成的NCD
在完成代碼后,需要對(duì)其進(jìn)行調(diào)試。調(diào)試通過(guò)后得到XDL文件,使用XDL工具將此文件轉(zhuǎn)換為NCD文件,成功則可進(jìn)行下一步工作,未成功會(huì)報(bào)相應(yīng)的錯(cuò)誤,那么就需要返回調(diào)試pl文件或更改XDL文件,循環(huán)此過(guò)程,直到轉(zhuǎn)換通過(guò)。通過(guò)后可以用FPGA Editor可視化工具檢查是否滿(mǎn)足要求,不滿(mǎn)足則返回,滿(mǎn)足則生成rbt文件,此測(cè)試向量編寫(xiě)完成。
本文所研究的用perl編寫(xiě)Xilinx的FPGA內(nèi)建測(cè)試向量的方法,通過(guò)深入分析XDL文件,其易編輯、與可視化的NCD文件可等價(jià)轉(zhuǎn)化這兩個(gè)特性,將其應(yīng)用到編寫(xiě)內(nèi)建測(cè)試向量中可以提高測(cè)試向量的生成效率,并可以對(duì)任意需要編輯的資源進(jìn)行編輯,能有效地縮短測(cè)試時(shí)間和提高FPGA測(cè)試的覆蓋率。
[1] Christian Beckhoff, Dirk Koch, Jim Torresen. The Xilinx Design Language(XDL): Tutorial and Use Cases [C].
[2] M Renovell, Y Zorian. Different Experiments in Test Generation for XILINX FPGAs [J]. ITC INTERNATIONAL TEST CONFERENCE, 2000, 32(2): 854-862.
[3] Mehdi Baradaran Tahoori, Subhasish Mitra. Fault Grading FPGA Interconnect Test Con figurations [J]. ITC INTERNATIONAL TEST CONFERENCE, 2002, 22(2): 608-617.
[4] Soft Test Inc.The Fundamentals of Digital Semiconductor Testing [K]. 1999.
[5] OReilly. Learning Perl 5th Edition [K]. 2008.
[6] http://china.xilinx.com [EB/OL].
[7] 成飛. 基于A(yíng)TE的FPGA測(cè)試[D]. 上海:復(fù)旦大學(xué),2011.
[8] 王世穎. 基于A(yíng)TE的百萬(wàn)門(mén)級(jí)FPGA測(cè)試方法的研究[D].成都:電子科技大學(xué),2012.