應用舉例1:IDDQ測試

發(fā)布時(shí)間:2012-9-27 11:19    發(fā)布者:majake2011
關(guān)鍵詞: IDDQ
在此例中,將2000個(gè)測試向量發(fā)送至必須用恒定2V加電的CMOS IC。此例將使用一個(gè)閾值電平,而且1μA及以下的靜態(tài)電流將被認為是合格電流。無(wú)需保存實(shí)際的測量值,所以將只檢查260X的箝位狀態(tài)。為確保生產(chǎn)吞吐量符合要求,必須盡快完成測量,最好在1秒以?xún)。測量?jì)x器必須發(fā)送一個(gè)通過(guò)/失效指示至數字測試系統。

方案:開(kāi)發(fā)TSP腳本用于創(chuàng )建“IddqTest(smu, ndevices, nvectors)函數”。此腳本的一部分被列在下面。完整的腳本可以在吉時(shí)利網(wǎng)站(www.keithley.com)下載。此腳本可以用測試腳本生成器查看、編輯、裝載和運行。由于無(wú)法獲得實(shí)際的“數字測試系統”,因而使用IDDQ測量與測試向量應用同步的觸發(fā)線(xiàn)路進(jìn)行環(huán)繞測試以評估函數的速度性能。260X的輸入觸發(fā)線(xiàn)路連至其輸出觸發(fā)線(xiàn)路。在此條件下,260X能以每秒約2500個(gè)向量的速率執行IDDQ測試。

函數定義如下。除了這里示出的以外,實(shí)際腳本包括更多注釋。注釋用雙橫線(xiàn)(--)標識。函數中聲明了幾個(gè)局部變量。所有變量都是全局的,除非顯式聲明為局部變量。此函數在執行實(shí)際測試前要進(jìn)行一些儀器初始化設置。此設置包括設定2V源電平和1μA箝位極限,選擇電壓感測模式以及配置觸發(fā)線(xiàn)路。例子中使用了本地(2線(xiàn))電壓感測?梢灾苯訉⑵涓臑檫h端(4線(xiàn))感測。

function IddqTest(smu, ndevices, nvectors)
-- 傳遞參數:
-- 源測量單元是用于測試的SMU(A或B)
-- ndevices是待測IC的數量
-- nvectors是Iddq測試序列用到的向量數量
-- 默認smua,如果未指定SMU。
if smu == nil then smu = smua end
-- ***** 聲明并初始化臨時(shí)變量*****
-- 保存“等待觸發(fā)信號”布爾狀態(tài)的變量
local l_sot_received
local l_trig_received
-- 放棄測試標記(布爾型)
local l_abort_test
-- 保存定時(shí)信息的變量
local l_start_time, l_stop_time, l_elapsed_time
-- 計數器變量
local l_i, l_nvectors_remaining
-- 用于模擬器件機械手分級的表格
local l_bins = {0,0} -- 全部分級初始設置為0
-- *************** 執行260X的初始化設置***************
smu.reset() -- 將SMU重置為缺省設置
smu.source.func = smu.OUTPUT_DCVOLTS -- 源DCV
smu.source.rangev = 2 -- 將自動(dòng)選擇6V量程
smu.source.levelv = 2 -- 源2V
smu.source.limiti = 1E-6 -- 電流箝位設為1uA
smu.sense = smu.SENSE_LOCAL -- 用smu.SENSE_REMOTE進(jìn)行4線(xiàn)感測

-- 配置數字I/O端口
digio.writeprotect = 0 -- 全部比特撤銷(xiāo)保護
digio.writeport(30) -- 將2、3、4和5比特/行設置為高
digio.writeprotect = 30 -- 觸發(fā)線(xiàn)路2、3、4和5寫(xiě)保護
-- 配置觸發(fā)線(xiàn)路2(輸入SOT)
digio.trigger[2].mode = digio.TRIG_FALLING -- 檢測下降沿
digio.trigger[2].clear() -- 清除“鎖存”觸發(fā)信號
-- 配置觸發(fā)線(xiàn)路3(輸出EOT)
digio.trigger[3].mode = digio.TRIG_FALLING -- 輸出TTL低電平脈沖
digio.trigger[3].pulsewidth = 10E-6 -- 確保最小脈沖
-- 配置觸發(fā)線(xiàn)路4(在設置了測試向量時(shí)輸入TRIG)
digio.trigger[4].mode = digio.TRIG_FALLING -- 檢測下降沿
digio.trigger[4].clear() -- 清除“鎖存”觸發(fā)信號
-- 配置觸發(fā)線(xiàn)路5(在完成IDDQ測量后輸出TRIG)
digio.trigger[5].mode = digio.TRIG_FALLING -- 輸出TTL低電平脈沖
digio.trigger[5].pulsewidth = 10E-6 -- 確保最小脈沖
-- 清除錯誤隊列
errorqueue.clear()
-- ************************* 執行測試*************************
-- 在前面板顯示一些狀態(tài)信息
display.clear()
display.setcursor (1,1)
display.settext(" Test In Progress")
display.setcursor (2,1)
display.settext(" Testing "..tostring(ndevices).." Parts")
timer.reset()
l_start_time = timer.measure.t()
for l_i = 1, ndevices do
-- 等待SOT指示器件準備好進(jìn)行測試;10ms后超時(shí)
l_sot_received = digio.trigger[2].wait(0.01)
-- 打開(kāi)SMU輸出;等到測試完成
smu.source.output = smu.OUTPUT_ON
-- 初始化中斷標記和向量計數器
l_abort_test = false
l_nvectors_remaining = nvectors
digio.trigger[4].clear() -- 清除全部“鎖存”觸發(fā)信號
-- 重復測試直至不再有測試向量或測試失敗
while (l_nvectors_remaining >0) and not (l_abort_test) do
-- 等待來(lái)自數字測試系統的觸發(fā)信號;10ms后超時(shí)
l_trig_received = digio.trigger[4].wait(10E-3)
-- 如需建立時(shí)間,delay(0.0005)在這里插入延時(shí)
-- 檢查箝位狀態(tài);返回布爾值真或假
l_incompliance = smu.source.compliance
-- 如果源在箝位狀態(tài),那么器件損壞并且中斷測試
if l_incompliance then
digio.writeport(32) --寫(xiě)失效模式至DIO
l_bins[2] = l_bins[2]+1 -- “分級”器件
l_abort_test = true -- 將中斷測試標記置為真并退出循環(huán)
else -- 否則,器件仍然是好的,所以繼續測試
digio.trigger[5].assert() -- 輸出觸發(fā)信號至“數字測試系統”
l_nvectors_remaining = l_nvectors_remaining – 1 -- 新計數
end --if語(yǔ)句

-- 如果測試不中斷,那么器件是好的
if not (l_abort_test) then
digio.writeport(64) -- 寫(xiě)通過(guò)模式至DIO
l_bins[1] = l_bins[1]+1 -- “分級”器件
end --if語(yǔ)句
--關(guān)閉SMU輸出
smu.source.output = smu.OUTPUT_OFF
-- 輸出EOT觸發(fā)信號
digio.trigger[3].assert()
-- 清除分級碼(將全部撤銷(xiāo)保護的比特置為零)
delay(0.0001) -- 清除分級碼之前延遲的單位為秒
digio.writeport(0)
end --for語(yǔ)句
l_stop_time = timer.measure.t()
l_elapsed_time = l_stop_time - l_start_time
-- 在260X前面板顯示吞吐率和最終分級結果
display.clear()
display.setcursor (1,1)
display.settext("Parts per sec = "..tostring(ndevices / l_elapsed_time))
display.setcursor(2,1)
display.settext("Bin Count: Good= "..l_bins[1].." Bad= "..l_bins[2])
-- 將速度與分級結果寫(xiě)至輸出隊列以供PC主機讀取
print("Elapsed time = "..l_elapsed_time.." sec")
print("Parts per sec = "..tostring(ndevices / l_elapsed_time))
print("Bin Count: Good Parts: "..l_bins[1].." Bad Parts: "..l_bins[2])
end --IddqTest函數

用測試腳本生成器或者其它應用執行示例的IDDQ測試腳本僅創(chuàng )建了函數,不執行任何測試。執行IDDQ測試需要調用IddqTest()函數。例如,為了用2000個(gè)測試向量測試100個(gè)器件,系統控制器必須發(fā)送指令“IddqTest(smua, 100, 2000)”。
作為對函數調用的響應,260X等待外部數字測試系統對每個(gè)DUT的開(kāi)始測試(SOT)觸發(fā)信號。260X收到SOT信號后,打開(kāi)SMU輸出并等待數字測試系統的觸發(fā)信號。數字測試系統向IC輸入端施加測試向量,然后發(fā)送一個(gè)觸發(fā)信號至260X。260X接到觸發(fā)信號后,等待一個(gè)預定的建立時(shí)間,然后檢查其箝位狀態(tài)。如果不在箝位狀態(tài),那么這項IDDQ測試通過(guò),而且260X輸出一個(gè)觸發(fā)信號至數字測試系統并進(jìn)入循環(huán)等著(zhù)下一個(gè)施加的測試向量。此過(guò)程持續進(jìn)行直至完成全部測試向量或者260X進(jìn)入箝位狀態(tài)。如果成功通過(guò)全部測試向量,260X
就向其DIO端口寫(xiě)入十進(jìn)制數64表明通過(guò)了數字測試系統。表元素“l(fā)_bins[1]”加1用于模擬器件的分級。然后,260X輸出測試結束(EOT)觸發(fā)信號至數字測試系統,表明已完成DUT的IDDQ測試序列。
如果260X進(jìn)入箝位狀態(tài),那么IDDQ測試失敗。在單項測試失敗時(shí),260X采用“立即”分級方案,這意味著(zhù)260X會(huì )立即向數字測試系統寫(xiě)一個(gè)失效位模式(十進(jìn)制數32),中斷

剩余的測試序列,然后輸出EOT觸發(fā)信號至數字測試系統。在輸出了失效模式后,表元素“l(fā)_bins[2]”加1用于模擬分級過(guò)程。在260X通過(guò)寫(xiě)十進(jìn)制數0至DIO端口來(lái)發(fā)送EOT觸發(fā)信號后,260X等待一個(gè)預定的時(shí)間間隔就會(huì )清除通過(guò)/失效位模式。如果有更多的DUT要測試,260X進(jìn)入循環(huán)并等待下一個(gè)SOT觸發(fā)信號。當完成全部測試后,在260X前面板會(huì )顯示吞吐率和分級結果;吞吐率和分級結果也會(huì )打印至輸出隊列以供系統控制器讀取。

本文地址:http://selenalain.com/thread-98279-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页