季振凱,吳 鎮(zhèn)
(無錫中微億芯有限公司,江蘇無錫 214072)
自動(dòng)測試設(shè)備(ATE)是一種集成多種測試功能,由電腦控制對待測芯片的功能與電特性進(jìn)行測試的自動(dòng)化設(shè)備。在芯片的封裝測試領(lǐng)域,ATE 能根據(jù)操作人員的需求對封裝芯片進(jìn)行甄別,大大降低芯片的測試時(shí)間。ATE 可大致分為設(shè)備控制模塊、物理操作模塊和電氣測試模塊3 個(gè)部分。設(shè)備控制模塊通常是一臺(tái)集成在機(jī)器內(nèi)部的PC 機(jī),負(fù)責(zé)將操作員的指令轉(zhuǎn)化為不同模塊的調(diào)度指令,并將模塊的運(yùn)行數(shù)據(jù)和結(jié)果反饋給操作員。物理操作模塊負(fù)責(zé)芯片在機(jī)臺(tái)上的移動(dòng)、固定以及芯片測試溫度控制等。電氣測試模塊是設(shè)備中最關(guān)鍵的部分,負(fù)責(zé)對芯片的功能進(jìn)行測試。測試項(xiàng)目一般可分為直流測試、交流測試與功能測試3 種,通過對待測芯片輸出激勵(lì),采集待測芯片的反饋來測試芯片功能的好壞。在一個(gè)測試項(xiàng)中,通常需要對芯片的不同引腳同時(shí)發(fā)出激勵(lì),激勵(lì)信號(hào)經(jīng)過傳輸通道到達(dá)待測芯片時(shí)會(huì)形成一定延時(shí),而不同通道間形成的延時(shí)不盡相同,因此會(huì)造成信號(hào)間的不同步,形成“競爭-冒險(xiǎn)”現(xiàn)象,待測芯片反饋的輸出信號(hào)亦有此問題。這種信號(hào)不同步而產(chǎn)生的測量錯(cuò)誤概率將隨著激勵(lì)信號(hào)頻率的提高而大幅度提升。因此,在ATE 的使用過程中,對設(shè)備激勵(lì)源至待測器件(DUT)間所有信號(hào)通道的信號(hào)延時(shí)進(jìn)行測量是十分必要的。本文提出一種基于FPGA 的ATE 信號(hào)延時(shí)測量方法,在測量信號(hào)延時(shí)量的同時(shí)利用FPGA 的特性,可以在一定范圍內(nèi)根據(jù)需求調(diào)整測量精度。
在理想狀態(tài)下,高速數(shù)字系統(tǒng)中的信號(hào)源點(diǎn)與信號(hào)終點(diǎn)應(yīng)嚴(yán)格按照時(shí)序要求進(jìn)行數(shù)據(jù)的發(fā)送與接收[1]。當(dāng)傳輸信號(hào)的時(shí)序關(guān)系變差時(shí),系統(tǒng)產(chǎn)生問題的概率隨之變大。在印制電路板(PCB)傳輸系統(tǒng)中,造成信號(hào)發(fā)生時(shí)序問題的主要因素有信號(hào)延時(shí)、信號(hào)反射、信號(hào)串?dāng)_以及信號(hào)振鈴等幾種[2]。本文主要針對信號(hào)延時(shí)對高速信號(hào)系統(tǒng)的影響進(jìn)行研究。
當(dāng)系統(tǒng)中信號(hào)發(fā)生延時(shí),且沒有足夠的時(shí)間實(shí)現(xiàn)穩(wěn)定時(shí),系統(tǒng)容易在運(yùn)行過程中變得不穩(wěn)定[3],這一問題在高速信號(hào)系統(tǒng)中尤為突出。通常將電信號(hào)通過整個(gè)傳輸路徑所需的時(shí)間稱為時(shí)延(TD),將電信號(hào)通過單位長度路徑所需的時(shí)間稱為傳輸延時(shí)(PD,tPD)。電信號(hào)在傳輸路徑中的傳輸速度為:
式中c0為電信號(hào)在真空中的傳播速度,可視為光速3×105km/s;ε 為介電常數(shù);μ 為磁導(dǎo)率;εr為傳輸路徑中傳播介質(zhì)的相對介電常數(shù)。常見PCB 材質(zhì)及其參數(shù)如表1 所示,表中δ 為介質(zhì)損耗角。市面上的電路板板材的介電常數(shù)在3.8~4.8 之間。若以4 進(jìn)行簡單計(jì)算,代入式(1)可以計(jì)算得知信號(hào)傳播速度約為c0/2,通過單位換算可得約15 cm/ns 的經(jīng)驗(yàn)值。
表1 常見PCB 材質(zhì)及其參數(shù)
在多層電路板設(shè)計(jì)中,傳輸線可以根據(jù)走線的位置分為僅有一個(gè)參考平面的微帶線與嵌入式微帶線、有上下兩個(gè)參考平面的對稱帶狀線與不對稱帶狀線。整體而言,微帶線的介電常數(shù)較低且信號(hào)傳輸速率快,帶狀線的介電常數(shù)較高且信號(hào)傳輸慢[4]。多層電路板中的通孔將會(huì)對時(shí)延產(chǎn)生明顯的影響,文獻(xiàn)[4]的研究表明,通孔越長、通孔孔徑越小,電信號(hào)的傳輸速率越低。通常一個(gè)標(biāo)準(zhǔn)通孔會(huì)造成24 ps 左右的延時(shí)[5-7]。因此在時(shí)序嚴(yán)格的高速信號(hào)傳輸系統(tǒng)中,僅通過走線長度不足以正確計(jì)算信號(hào)傳輸延時(shí)。
目前國內(nèi)外主流的傳輸延時(shí)測量方法主要有兩種,第一種是使用高精度采樣儀器,以等長度探頭同時(shí)采樣信號(hào)源點(diǎn)與信號(hào)終點(diǎn)兩處信號(hào)。在同一時(shí)鐘下,兩處信號(hào)會(huì)呈現(xiàn)出先后關(guān)系,而兩處信號(hào)的間隔時(shí)間就是信號(hào)在兩點(diǎn)間的傳輸延時(shí)。該方法雖精度較高,但需要外部高精度儀器輔助,且對于集成度較高的設(shè)備而言,外部探針無法接入理想檢測點(diǎn)是十分常見的問題。第二種方法則是利用時(shí)域反射技術(shù)(TDR)計(jì)算出路徑延時(shí),TDR 利用的是信號(hào)傳輸路徑上特征阻抗不連續(xù)時(shí)將會(huì)產(chǎn)生反射這一特性。通過目標(biāo)反射的形態(tài)特性,計(jì)算信號(hào)在路徑上的傳輸時(shí)間,從而達(dá)到計(jì)算延時(shí)的方法。目前主流NI、Advabtest 公司的ATE 均采用該方法。該方法需要在數(shù)據(jù)通道上連接至少一個(gè)模擬開關(guān),用于切換TDR 通道與測試通道。傳統(tǒng)TDR 的結(jié)果需要使用高速高精度的模數(shù)轉(zhuǎn)換器(ADC)對其形成的信號(hào)進(jìn)行采集,用于延時(shí)計(jì)算,由于高速高精度ADC 成本較高,常見ATE 通常使用1 個(gè)或幾個(gè)ADC通過模擬開關(guān)在不同通道間進(jìn)行切換,測試所需時(shí)間較長。
將本文提出的信號(hào)傳輸誤差測量系統(tǒng)應(yīng)用在國產(chǎn)ATE 上,設(shè)備產(chǎn)生的激勵(lì)信號(hào)頻率小于200 MHz,傳輸系統(tǒng)結(jié)構(gòu)如圖1 所示。
圖1 本文提出的ATE 信號(hào)傳輸系統(tǒng)結(jié)構(gòu)
本文所提出的方法將用于測量從FPGA 端對激勵(lì)信號(hào)源發(fā)出控制信號(hào)到FPGA 接收到檢測端反饋信號(hào)的時(shí)間差,作為傳輸路徑的延時(shí)測量值。為了減少誤差,在該系統(tǒng)中要求FPGA 至激勵(lì)源和檢測端至FPGA 的走線同層、嚴(yán)格等長且盡可能短。
測試系統(tǒng)利用TDR 的基本原理,使用ATE 中的高速比較器代替高速高精度ADC 對反饋信號(hào)進(jìn)行檢測,相較于TDR 設(shè)備的測試方法,節(jié)約了高速高精度ADC 的成本,且可以實(shí)現(xiàn)多通道同時(shí)檢測,節(jié)省了測試準(zhǔn)備時(shí)間。根據(jù)信號(hào)反射原理,反射系數(shù)ρ 為:
式中R 為輸入阻抗,Z 為傳輸線阻抗。當(dāng)負(fù)載端為開路時(shí),可以推算出:
由式(3)可知,當(dāng)負(fù)載開路電阻無窮大時(shí),反射系數(shù)為1,反射波與入射波大小相等,相位相同。本文提出的測試系統(tǒng)使用比較器進(jìn)行不同路徑的延時(shí)誤差計(jì)算,TDR 波形如圖2 所示。根據(jù)文獻(xiàn)[8]中所述,圖2中T 可近似為信號(hào)源至開路點(diǎn),即芯片引腳接觸點(diǎn)的信號(hào)傳輸時(shí)間[9]。信號(hào)S 是信號(hào)源輸出的激勵(lì)信號(hào),信號(hào)C 是接收的檢測端反饋信號(hào),VH、VL為2 個(gè)觀測點(diǎn)電壓,在不同路徑中時(shí)長t0、t1一致。A 和B 點(diǎn)為以VL和VH為閾值時(shí)檢測的有效點(diǎn)。因此,測量A、B 2 個(gè)觀測點(diǎn)的時(shí)間差就能計(jì)算出不同路徑中的傳輸時(shí)間差。
圖2 TDR 波形
本文采用FPGA 對信號(hào)源的輸出與檢測端反饋信號(hào)進(jìn)行控制與采樣,使用FPGA 對不同路徑的A、B 2 點(diǎn)間信號(hào)的傳輸時(shí)間進(jìn)行測量,并計(jì)算出不同路徑下信號(hào)傳輸時(shí)間差,F(xiàn)PGA 內(nèi)部程序結(jié)構(gòu)如圖3 所示。
圖3 程序結(jié)構(gòu)
根據(jù)圖1、3 可得該系統(tǒng)測量結(jié)果中的各個(gè)分量為
式中tchx表示通道x 的測量結(jié)果,tFPGA_to_Source表示FPGA信號(hào)至信號(hào)發(fā)生源的傳遞時(shí)間,tSource表示信號(hào)發(fā)生源的傳遞延時(shí),tCompare表示檢測端傳遞延時(shí),tCompare_to_FPGA表示檢測端至FPGA 的傳遞時(shí)間,Tx代表從信號(hào)發(fā)生源至檢測端的信號(hào)傳遞時(shí)間。下標(biāo)含y 的各變量定義可參照前面的定義。
不同路徑中采用同一規(guī)格的激勵(lì)源與檢測端,且輸入、輸出信號(hào)類型一致,因此可以認(rèn)為激勵(lì)源與檢測端響應(yīng)時(shí)間一致。根據(jù)上文的要求,保證每一路徑中tFPGA_to_Source與tCompare_to_FPGA各自相等。因此,通過對2 個(gè)路徑間的測量結(jié)果求差,可以獲得2 倍延時(shí)差值。將延時(shí)較短路徑的信號(hào)進(jìn)行延時(shí)補(bǔ)償,則可以使不同路徑的測試信號(hào)同時(shí)到達(dá)待測器件,完成誤差補(bǔ)償。
本文采用FPGA 中IOdelay 與時(shí)鐘計(jì)數(shù)相結(jié)合的方式進(jìn)行延遲時(shí)間測量,使用計(jì)數(shù)器的計(jì)數(shù)值作為時(shí)間的粗有效值,使用IOdelay 的設(shè)置值作為細(xì)有效值。IOdelay 模塊位于FPGA 的I/O 模塊中,擁有一定數(shù)量tap 的環(huán)繞延遲單元,可以根據(jù)編程輸入對輸入信號(hào)進(jìn)行延時(shí),延時(shí)精度取決于tap 的分辨率。本文采用Xilinx 的Kintex UltraScale 系列KU060 芯片進(jìn)行計(jì)算處理。該芯片搭載IOdelay3 模塊,固定延時(shí)為0.200 ns,tap 分 辨 率 為0.005 ns,tap 級(jí) 數(shù) 為512 個(gè),在VAR_LOAD 模式下單一模塊可以完成最大2.76 ns 的延時(shí),模塊的固定延時(shí)不影響信號(hào)的同步性。
使用IOdelay 模塊將計(jì)時(shí)時(shí)鐘分割為若干個(gè)區(qū)域,并使用IOdelay 的DEKAY_VALUE 與計(jì)時(shí)時(shí)鐘計(jì)數(shù)值來描述測量結(jié)果。為保證在不同情況下測量結(jié)果的連續(xù)性,IOdelay 產(chǎn)生信號(hào)延時(shí)的最大值需要大于計(jì)時(shí)時(shí)鐘周期。具體方法如下:
1)將IOdelay 的DELAY_VALUE 設(shè)置為0,發(fā)出激勵(lì)信號(hào)的同時(shí)使用計(jì)時(shí)時(shí)鐘開始計(jì)數(shù),當(dāng)VL檢測端信號(hào)有效時(shí),記錄下當(dāng)時(shí)的計(jì)數(shù)器數(shù)值做VL的粗有效時(shí)間,執(zhí)行下一步;
2)按一定步進(jìn)step 增大DELAY_VALUE 設(shè)置值,發(fā)出激勵(lì)信號(hào)并使用計(jì)時(shí)時(shí)鐘開始計(jì)數(shù),當(dāng)VL檢測端信號(hào)有效時(shí),記錄下當(dāng)時(shí)的計(jì)數(shù)器數(shù)值,執(zhí)行下一步;
3)比較2 次記錄結(jié)果,若第2 步的計(jì)數(shù)器數(shù)值大于第1 步的計(jì)數(shù)器數(shù)值,執(zhí)行下一步,否則執(zhí)行第2步;
4)減小step 值,得到step2,以step2 為步進(jìn)減小DELAY_VALUE 設(shè)置值,發(fā)出激勵(lì)信號(hào),并使用計(jì)時(shí)時(shí)鐘開始計(jì)數(shù),當(dāng)VL檢測端信號(hào)有效時(shí),記錄下當(dāng)時(shí)的計(jì)數(shù)器數(shù)值,執(zhí)行下一步;
5)比較2 次記錄結(jié)果,若第4 步的計(jì)時(shí)數(shù)值小于第3 步的計(jì)數(shù)器數(shù)值,執(zhí)行下一步,否則執(zhí)行第4 步;
6)進(jìn)一步減小步進(jìn),重復(fù)第2~5 步,直到步進(jìn)為1個(gè)tap 且DELAY_VALUE 設(shè)置為臨界值時(shí),將該DELAY_VALUE 值作為VL點(diǎn)的細(xì)有效時(shí)間,則該點(diǎn)的精確時(shí)間為[(粗有效時(shí)間+1)×計(jì)數(shù)時(shí)鐘周期-(細(xì)有效時(shí)間×單個(gè)tap 延時(shí))];
7)重復(fù)上述步驟,獲得所有通道VL、VH點(diǎn)的有效時(shí)間;
8)用同一路徑的VH時(shí)間減去VL時(shí)間,獲得該路徑的測量延時(shí);
9)將不同路徑下的延時(shí)數(shù)據(jù)進(jìn)行排序,用最大延時(shí)值分別減去其余路徑延時(shí)值,求得不同路徑與最大延時(shí)路徑延時(shí)的差值;
10)補(bǔ)償延時(shí)短的路徑,使得不同路徑上的信號(hào)至DUT 時(shí)同步,本文中采用IOserdes+IOdelay 的方法進(jìn)行補(bǔ)償。
實(shí)驗(yàn)信號(hào)波形如圖4 所示。圖4(a)為步驟1 首次檢測的波形圖,圖4(b)為以step 為步進(jìn)向?qū)嶋H檢測有效點(diǎn)靠近的情況,圖4(c)為檢測有效點(diǎn)低于實(shí)際有效點(diǎn),按步驟4 縮小步進(jìn)為step2 的情況,圖4(d)為調(diào)轉(zhuǎn)求解方向,向?qū)嶋H有效點(diǎn)靠近的情況。
圖4 實(shí)驗(yàn)信號(hào)波形
最終檢測波形如圖5 所示。信號(hào)C1表示低檢測點(diǎn)的最終波形,當(dāng)達(dá)到該波形時(shí),記錄下此時(shí)的DELAY_VALUE 設(shè)置值。信號(hào)C2表示高檢測點(diǎn)的最終波形,當(dāng)達(dá)到該波形時(shí),記錄下此時(shí)的DELAY_VALUE 設(shè)置值。
圖5 最終檢測波形
本文使用的FPGA 芯片為Kintex UltraScale 系列KU060 芯片。將Idelay 與Odelay 結(jié)合使用,可以形成5.52 ns 的最大延時(shí),延時(shí)可調(diào)范圍為0.400~5.52 ns。使用200 MHz 時(shí)鐘作為計(jì)時(shí)時(shí)鐘,用IOdelay 將每個(gè)周期時(shí)鐘分隔為500 個(gè)區(qū)域,每個(gè)區(qū)域?qū)挾葹?.01 ns。激勵(lì)信號(hào)為幅度1.2 V、頻率200 kHz 的方波信號(hào)。檢測端高閾值設(shè)為0.75 V,低閾值設(shè)為0.45 V。實(shí)驗(yàn)中使用標(biāo)準(zhǔn)走線板對不同路徑信號(hào)進(jìn)行標(biāo)準(zhǔn)長度延長,模擬不同長度路徑對信號(hào)的影響,測量結(jié)果如表2 所示。
表2 不同路徑測量結(jié)果
使用示波器檢測來測試該系統(tǒng)準(zhǔn)確性。檢測示波器使用2 支同一規(guī)格探針,1 支連接激勵(lì)源輸出端,1支連接該路徑對應(yīng)的DUT 連接端。以激勵(lì)源輸出端的探針作為觸發(fā)信號(hào),抓取激勵(lì)信號(hào),比較兩個(gè)信號(hào)間的時(shí)間差,即是傳輸延時(shí),示波器檢測結(jié)果如表3所示。
表3 不同路徑示波器檢測結(jié)果
經(jīng)過多次對比示波器檢測結(jié)果與該系統(tǒng)檢測結(jié)果,發(fā)現(xiàn)兩者測量結(jié)果差異范圍小于0.2 ns,滿足測試系統(tǒng)所需精度要求(小于200 MHz)[10-12]。
本文提出的方法在國產(chǎn)ATE 中可以很好地完成路徑延時(shí)差異檢測工作,經(jīng)多次測試發(fā)現(xiàn),該系統(tǒng)測試結(jié)果的正確性與激勵(lì)源和檢測端的精度及穩(wěn)定性息息相關(guān)。在實(shí)驗(yàn)過程中,為避免走線中其他阻抗非連續(xù)點(diǎn)帶來的影響,需要在保證信號(hào)上升時(shí)間一致的前提下,盡可能加大激勵(lì)信號(hào)幅度,減少非目標(biāo)反射對檢測結(jié)果的影響。