集成電路測試(IC測試)主要的目的是將合格的芯片與不合格的芯片區(qū)分開,保證產(chǎn)品的質(zhì)量與可靠性。隨著集成電路的飛速發(fā)展,其規(guī)模越來越大,對電路的質(zhì)量與可靠性要求進一步提高,集成電路的測試方法也變得越來越困難。因此,研究和發(fā)展IC測試,有著重要的意義。而測試向量作為IC測試中的重要部分,研究其生成方法也日漸重要。
1 IC測試
1.1 IC測試原理
IC測試是指依據(jù)被測器件(DUT)特點和功能,給DUT提供測試激勵(X),通過測量DUT輸出響應(Y)與期望輸出做比較,從而判斷DUT是否符合格。圖1所示為IC測試的基本原理模型。
根據(jù)器件類型,IC測試可以分為數(shù)字電路測試、模擬電路測試和混合電路測試。數(shù)字電路測試是IC測試的基礎,除少數(shù)純模擬IC如運算放大器、電壓比較器、模擬開關(guān)等之外,現(xiàn)代電子系統(tǒng)中使用的大部分IC都包含有數(shù)字信號。
圖1 IC測試基本原理模型
數(shù)字IC測試一般有直流測試、交流測試和功能測試。
1.2功能測試
功能測試用于驗證IC是否能完成設計所預期的工作或功能。功能測試是數(shù)字電路測試的根本,它模擬IC的實際工作狀態(tài),輸入一系列有序或隨機組合的測試圖形,以電路規(guī)定的速率作用于被測器件,再在電路輸出端檢測輸出信號是否與預期圖形數(shù)據(jù)相符,以此判別電路功能是否正常。其關(guān)注的重點是圖形產(chǎn)生的速率、邊沿定時控制、輸入/輸出控制及屏蔽選擇等。
功能測試分靜態(tài)功能測試和動態(tài)功能測試。靜態(tài)功能測試一般是按真值表的方法,發(fā)現(xiàn)固定型(Stuckat)故障。動態(tài)功能測試則以接近電路工作頻率的速度進行測試,其目的是在接近或高于器件實際工作頻率的情況下,驗證器件的功能和性能。
功能測試一般在ATE(AutomaticTestEquipment)上進行,ATE測試可以根據(jù)器件在設計階段的模擬仿真波形,提供具有復雜時序的測試激勵,并對器件的輸出進行實時的采樣、比較和判斷。
1.3交流參數(shù)測試
交流(AC)參數(shù)測試是以時間為單位驗證與時間相關(guān)的參數(shù),實際上是對電路工作時的時間關(guān)系進行測量,測量諸如工作頻率、輸入信號輸出信號隨時間的變化關(guān)系等。常見的測量參數(shù)有上升和下降時間、傳輸延遲、建立和保持時間以及存儲時間等。交流參數(shù)最關(guān)注的是最大測試速率和重復性能,然后為準確度。
1.4直流參數(shù)測試
直流測試是基于歐姆定律的,用來確定器件參數(shù)的穩(wěn)態(tài)測試方法。它是以電壓或電流的形式驗證電氣參數(shù)。直流參數(shù)測試包括:接觸測試、漏電流測試、轉(zhuǎn)換電平測試、輸出電平測試、電源消耗測試等。
直流測試常用的測試方法有加壓測流(FVMI)和加流測壓(FIMV),測試時主要考慮測試準確度和測試效率。通過直流測試可以判明電路的質(zhì)量。如通過接觸測試判別IC引腳的開路/短路情況、通過漏電測試可以從某方面反映電路的工藝質(zhì)量、通過轉(zhuǎn)換電平測試驗證電路的驅(qū)動能力和抗噪聲能力。
直流測試是IC測試的基礎,是檢測電路性能和可靠性的基本判別手段。
1.5 ATE測試平臺
ATE(AutomaticTestEquipment)是自動測試設備,它是一個集成電路測試系統(tǒng),用來進行IC測試。一般包括計算機和軟件系統(tǒng)、系統(tǒng)總線控制系統(tǒng)、圖形存儲器、圖形控制器、定時發(fā)生器、精密測量單元(PMU)、可編程電源和測試臺等。
系統(tǒng)控制總線提供測試系統(tǒng)與計算機接口卡的連接。圖形控制器用來控制測試圖形的順序流向,是數(shù)字測試系統(tǒng)的CPU。它可以提供DUT所需電源、圖形、周期和時序、驅(qū)動電平等信息。
2測試向量及其生成
測試向量(TestVector)的一個基本定義是:測試向量是每個時鐘周期應用于器件管腳的用于測試或者操作的邏輯1和邏輯0數(shù)據(jù)。這一定義聽起來似乎很簡單,但在真實應用中則復雜得多。因為邏輯1和邏輯0是由帶定時特性和電平特性的波形代表的,與波形形狀、脈沖寬度、脈沖邊緣或斜率以及上升沿和下降沿的位置都有關(guān)系。
2.1 ATE測試向量
在ATE語言中,其測試向量包含了輸入激勵和預期存儲響應,通過把兩者結(jié)合形成ATE的測試圖形。這些圖形在ATE中是通過系統(tǒng)時鐘上升和下降沿、器件管腳對建立時間和保持時間的要求和一定的格式化方式來表示的。格式化方式一般有RZ(歸零)、RO(歸1)、NRZ(非歸零)和NRZI(非歸零反)等。
圖2為RZ和R1格式化波形,圖3為NRZ和NRZI格式化波形。
圖2RZ和R1數(shù)據(jù)格式波形
圖3NRZ和NRZI數(shù)據(jù)格式波形
RZ數(shù)據(jù)格式,在系統(tǒng)時鐘的起始時間T0,RZ測試波形保持為"0",如果在該時鐘周期圖形存儲器輸出圖形數(shù)據(jù)為"1",則在該周期的時鐘周期期間,RZ測試波形由"0"變換到"1",時鐘結(jié)束時,RZ測試波形回到"0"。若該時鐘周期圖形存儲器輸出圖形數(shù)據(jù)為"0",則RZ測試波形一直保持為"0",在時鐘信號周期內(nèi)不再發(fā)生變化。歸"1"格式(R1)與RZ相反。
非歸"0"(NRZ)數(shù)據(jù)格式,在系統(tǒng)時鐘起始時間T0,NRZ測試波形保持T0前的波形,根據(jù)本時鐘周期圖形文件存儲的圖形數(shù)據(jù)在時鐘的信號沿變化。即若圖形文件存儲數(shù)據(jù)為"1",那么在相應時鐘邊沿,波形則變化為"1"。NRZI波形是NRZ波形的反相。
在ATE中,通過測試程序?qū)r鐘周期、時鐘前沿、時鐘后沿和采樣時間的定義,結(jié)合圖形文件中存儲的數(shù)據(jù),形成實際測試時所需的測試向量。
ATE測試向量與EDA設計仿真向量不同,而且不同的ATE,其向量格式也不盡相同。以JC-3165型ATE為例,其向量格式如圖4所示。
ATE向量信息以一定格式的文件保存,JC-3165向量文件為*.MDC文件。在ATE測試中,需將*.MDC文件通過圖形文件編譯器,編譯成測試程序可識別的*.MPD文件。在測試程序中,通過裝載圖形命令裝載到程序中。
圖4ATE測試向量格式
2.2 ATE測試向量的生成
對簡單的集成電路,如門電路,其ATE測試向量一般可以按照ATE向量格式手工完成。而對于一些集成度高,功能復雜的IC,其向量數(shù)據(jù)龐大,一般不可能依據(jù)其邏輯關(guān)系直接寫出所需測試向量,因此,有必要探尋一種方便可行的方法,完成ATE向量的生成。
在IC設計制造產(chǎn)業(yè)中,設計、驗證和仿真是不可分離的。其ATE測試向量生成的一種方法是,從基于EDA工具的仿真向量(包含輸入信號和期望的輸出),經(jīng)過優(yōu)化和轉(zhuǎn)換,形成ATE格式的測試向量。
依此,可以建立一種向量生成方法。利用EDA工具建立器件模型,通過建立一個Testbench仿真驗證平臺,對其提供測試激勵,進行仿真,驗證仿真結(jié)果,將輸入激勵和輸出響應存儲,按照ATE向量格式,生成ATE向量文件。其原理如圖5所示。
圖5ATE向量生成示意圖
2.3測試平臺的建立
(1)DUT模型的建立
①164245模型:在Modelsim工具下用VerilogHDL語言[5],建立164245模型。164245是一個雙8位雙向電平轉(zhuǎn)換器,有4個輸入控制端:1DIR,1OE,2DIR,2OE;4組8位雙向端口:1A,1B,2A,2B。端口列表如下:
inputDIR_1,DIR_2,OE_1,OE_2;
inout[0:7]a_1,a_2,b_1,b_2;
reg[0:7]bfa1,bfb1,bfa2,bfb2;//緩沖區(qū)
②緩沖器模型:建立一個8位緩沖器模型,用來做Testbench與164245之間的數(shù)據(jù)緩沖,通過在Testbench總調(diào)用緩沖器模塊,解決Testbench與164245模型之間的數(shù)據(jù)輸入問題。
(2)Testbench的建立
依據(jù)器件功能,建立Testbench平臺,用來輸入仿真向量。
Testbench中變量定義:
regdir1,dir2,oe1,oe2;//輸入控制端
reg[0:7]a1,a2,b1,b2;//數(shù)據(jù)端
reg[0:7]A1_out[0:7];//存儲器,用來存儲數(shù)據(jù)
reg[0:7]A2_out[0:7];
reg[0:7]B1_out[0:7];
reg[0:7]B2_out[0:7];
通過Testbench提供測試激勵,經(jīng)過緩沖區(qū)接口送入DUT,觀察DUT輸出響應,如果滿足器件功能要求,則存儲數(shù)據(jù),經(jīng)過處理按照ATE圖形文件格式產(chǎn)生*.MDC文件;若輸出響應有誤,則返回Testbench和DUT模型進行修正。其原理框圖可表示如圖6所示。
圖6Testbench驗證平臺框圖
(3)仿真和驗證
通過Testbench給予相應的測試激勵進行仿真,得到預期的結(jié)果,實現(xiàn)了器件功能仿真,并獲得了測試圖形。圖7和圖8為部分仿真結(jié)果。
圖7仿真數(shù)據(jù)結(jié)果
在JC-3165的*.MDC圖形文件中,對輸入引腳,用"1"和"0"表示高低電平;對輸出引腳,用"H"和"L"表示高低電平;"X"則表示不關(guān)心狀態(tài)。由于在仿真時,輸出也是"0"和"1",因此在驗證結(jié)果正確后,對輸出結(jié)果進行了處理,分別將"0"和"1"轉(zhuǎn)換為"L"和"H",然后放到存儲其中,最后生成*.MDC圖形文件。
圖8生成的*.MDC文件
3結(jié)論
本文在Modelsim環(huán)境下,通過VerilogHDL語言建立一個器件模型,搭建一個驗證仿真平臺,對164245進行了仿真,驗證了164245的功能,同時得到了ATE所需的圖形文件,實現(xiàn)了預期所要完成的任務。
隨著集成電路的發(fā)展,芯片設計水平的不斷提高,功能越來越復雜,測試圖形文件也將相當復雜且巨大,編寫出全面、有效,且基本覆蓋芯片大多數(shù)功能的測試圖形文件逐漸成為一種挑戰(zhàn),在ATE上實現(xiàn)測試圖形自動生成已不可能。因此,有必要尋找一種能在EDA工具和ATE測試平臺之間的一種靈活通訊的方法。
目前常用的一種方法是,通過提取EDA工具產(chǎn)生的VCD仿真文件中的信息,轉(zhuǎn)換為ATE測試平臺所需的測試圖形文件,這需要對VCD文件有一定的了解,也是進一步的工作。