We make IC test Easy——ICEasy
ICEasy是一款Marvin Test Solutions針對半導體測試應用的動態(tài)數(shù)字IO(DIO)板編程的ATEasy工具。 本文概述如何使用ICEasy來創(chuàng)建和執(zhí)行測試程序。
本文引用地址:http://m.butianyuan.cn/article/201708/363143.htmICEasy的主要功能包括:
§ DIO通道和UUT引腳名稱之間的引腳映射
§ 創(chuàng)建引腳組和嵌套組,并提供在組上執(zhí)行各種測試功能的能力
§ 簡化的編程
§ 更快地創(chuàng)建預定義的測試(Continuity, IDD, IDDQ, Voltage Threshold, Leakage, etc.)
§ 掃描功能和圖(Shmoo,I / V曲線等)
§ 數(shù)字子系統(tǒng)的虛擬化,允許與未來的MTS板重新使用基于ICEasy的代碼
§ 模擬測試程序,允許您無需硬件使用模擬模式測試和運行程序。
Configuring ICEasy
要使用ICEasy,您必須安裝ATEasy v9(或更新版本,您可以聯(lián)系我們或者到這個網站下載http://www.marvintest.com/Product.aspx?Model=ATEasy,您有一個為期30天的試用期)。 您的ATEasy項目系統(tǒng)文件應首先具有DIO驅動程序(本示例中為GX5295.drv),其后為ICEasy(ICEasy.drv)和ICEasy_GX5295板驅動程序(ICEASy_GX5295.drv)。 SIM驅動程序是應用程序自定義驅動程序,如果需要仿真,則用于仿真。
驅動程序插入后,您需要配置DIO驅動程序快捷方式。 這需要根據需要 設置驅動程序參數(shù),通常將MasterNumber設置為1.如果使用INI文件配置DIO或將其設置為DIO域中的主/從插槽號,則還需要將INIFileInitialization參數(shù)設置為1。 我們建議使用INI文件初始化與設置主/從板,因為它可以確保面板中顯示的信息與ICEasy板和通道號匹配。 由于在ICEasy驅動程序之前插入了DIO驅動程序,所以在初始化ICEasy之前,先初始化DIO驅動程序,以確保ICEasy驅動程序的初始化成功。
Pin Mapping
在使用ICEasy之前,需要將DIO通道號映射到DUT / UUT(被測器件/被測單元)引腳名。 DIO通道號從0開始編號,所以如果第一塊是GX5295,通道號將為0-31,第二張卡的通道為32-63等。DIO卡的順序可以從GTDIO面板( 安裝GX5295)的配置頁面被設置,此設置將保存到INI文件中。
以下命令用于將DIO通道映射到UUT引腳:
ICEasy Map Add (sPinName, vPinNumberOrPinList, enPinType, vInstrumentName, iInstrumentChannel)
解析:以下圖所示這個UUT和 DIO GX5295為例。
sPinName,UUT引腳的名稱,比如CLK
vPinNumberOrPinList, UUT引腳的編號,比如CLK對應的是引腳11
enPinType,UUT引腳的類型,比如CLK對應的是input
vInstrumentName, DIO 卡的名稱,此處就是 "ICEasy_GX5295"
iInstrumentChannel,與UUT引腳連接對應DIO 卡的通道號,比如與CLK對應的是DIO通道號為17
要創(chuàng)建引腳組,請使用以下命令:
ICEasy Map Add Group (sGroup, asGroupOrPinList)
其他可用的映射命令駐留在ICEasy Map組命令下。
要映射通道,通常將代碼放在Program.OnInit()事件中,如下所示:
ICEasy Map Add("CLR", 1, enPinTypeDigitalInput, "ICEasy_GX5295", 0)
在本例中,我們將UUT CLR引腳(具有唯一的索引或ID為1)映射到DIO通道0(最后一個參數(shù))。
您還可以將引腳類型指定為數(shù)字輸入/輸出,并分配用于控制引腳(ICEasy_GX5295)的板驅動程序快捷方式名稱。 映射其他UUT引腳通道的其他示例如下所示:
ICEasy Map Add("CLK", 11, enPinTypeDigitalInput, "ICEasy_GX5295", 17)
ICEasy Map Add("D1", 3, enPinTypeDigitalInput, "ICEasy_GX5295", 2)
ICEasy Map Add("D2", 4, enPinTypeDigitalInput, "ICEasy_GX5295", 7)
ICEasy Map Add("D3", 7, enPinTypeDigitalInput, "ICEasy_GX5295", 6)
ICEasy Map Add("D4", 8, enPinTypeDigitalInput, "ICEasy_GX5295", 3)
ICEasy Map Add("D5", 13, enPinTypeDigitalInput, "ICEasy_GX5295", 10)
ICEasy Map Add("D6", 14, enPinTypeDigitalInput, "ICEasy_GX5295", 13)
ICEasy Map Add("D7", 17, enPinTypeDigitalInput, "ICEasy_GX5295", 14)
ICEasy Map Add("D8", 18, enPinTypeDigitalInput, "ICEasy_GX5295", 9)
ICEasy Map Add("Q1", 2, enPinTypeDigitalOutput, "ICEasy_GX5295", 1)
ICEasy Map Add("Q2", 5, enPinTypeDigitalOutput, "ICEasy_GX5295", 4)
ICEasy Map Add("Q3", 6, enPinTypeDigitalOutput, "ICEasy_GX5295", 5)
ICEasy Map Add("Q4", 9, enPinTypeDigitalOutput, "ICEasy_GX5295", 8)
ICEasy Map Add("Q5", 12, enPinTypeDigitalOutput, "ICEasy_GX5295", 15)
ICEasy Map Add("Q6", 15, enPinTypeDigitalOutput, "ICEasy_GX5295", 12)
ICEasy Map Add("Q7", 16, enPinTypeDigitalOutput, "ICEasy_GX5295", 11)
ICEasy Map Add("Q8", 19, enPinTypeDigitalOutput, "ICEasy_GX5295", 16)
ICEasy Map Add("VCC", 20, enPinTypeVcc, "ICEasy_GX5295", 31)
ICEasy Map Add("GND", 10, enPinTypeGnd)
注意,一些引腳被標記為VCC,一些引腳被標記為GND。 當您輸入此參數(shù)的參數(shù)時,會顯示可用的引腳類型。
Pin Group Mapping
單獨尋址UUT引腳可能很麻煩。 當需要重復功能來控制/訪問或測量涉及多個引腳時,您可以創(chuàng)建一個引腳組。 以下示例演示了引腳組定義:
ICEasy Map Add Group("Reset Pins", {"CLR"})
ICEasy Map Add Group("Clock Pins", {"CLK"})
ICEasy Map Add Group("Input Pins", {"D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8"})
ICEasy Map Add Group("Output Pins", {"Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8"})
在此示例中,輸入引腳組包含8個引腳D1-D8。
您還可以定義嵌套組。 嵌套組可以將組和引腳與分配給新組的名稱進行組合。 以下示例顯示了嵌套組的使用:
ICEasy Map Add Group("IO Pins", {"Reset Pins", "Clock Pins", "Input Pins", "Output Pins"})
ICEasy Map Add Group("Power Pins", {"GND", "VCC"})
ICEasy Map Add Group("All Pins", {"IO Pins", "VCC"})
在此示例中,IO引腳由4組組成,共有18個引腳。
Using the Digital Instrument’s PMU Capabilities
ICEasy有幾個命令,可以使用數(shù)字儀表的PMU(參數(shù)測量單元)進行參數(shù)測試。 這些命令在單個引腳或組上工作。 對于單個引腳,返回的變量將包含單個雙精度值。 當傳入組時,測量命令將返回包含測量數(shù)組的變量。 以下命令可用:
Measurement Commands 測量命令
ICEasy Measure Voltage (vGroupOrPinNameOrIndex, iMeasureRate): Variant
ICEasy Measure Current (vGroupOrPinNameOrIndex, iMeasureRate, iMaxDigits): Variant
Stimuli Commands 激勵命令
ICEasy Set Voltage (vGroupOrPinNameOrIndex, dVoltage, dMaxCurrent)
ICEasy Set Current (vGroupOrPinNameOrIndex, dCurrent, dVCommHigh, dVCommLow)
Stimuli and Measurement Commands 激勵和測量命令
ICEasy Set Voltage MeasureCurrent(vGroupOrPinNameOrIndex, dVoltage,
dCurrentLimit,vMeasurePinNameOrIndex, iMeasureRate, iMaxDigit, iDelayMeasure) : Variant
ICEasy Set Voltage MeasureVoltage (vGroupOrPinNameOrIndex, dVoltage,
dCurrentLimit, vMeasurePinNameOrIndex, iMeasureRate, iDelayMeasure): Variant
ICEasy Set Current MeasureCurrent(vGroupOrPinNameOrIndex, dCurrent, dVoltageHighLimit,
dVoltageLowLimit vMeasurePinNameOrIndex, iMeasureRate, iMaxDigit, iDelayMeasure): Variant
ICEasy Set Current MeasureVoltage(vGroupOrPinNameOrIndex, dCurrent,dVoltageHighLimit,
dVoltageLowLimit vMeasurePinNameOrIndex,iMeasureRate, iDelayMeasure): Variant
激勵和測量命令可用于執(zhí)行參數(shù)測試,例如:
§ 連續(xù)性(Continuity),短路,開路測試
§ 功耗(IDD,IDDQ)
§ 輸入電壓閾值(VIH,VIL)
§ 輸入泄漏(IIH,IIL)
§ 輸出電壓電平(VOH,VOL)
這些命令也可用于執(zhí)行其他器件表征過程,如功能測試,IV曲線和Shmoo圖。
Example – Performing a Shorts Test
以下代碼顯示了如何通過檢查短路保護二極管或檢查其他引腳短路來執(zhí)行短路測試。
! set all pins to 0V
ICEasy Set Voltage("All Pins", 0)
! force sink a small current of -500 uAmp and then measure voltage
TestResult=Abs(ICEasy Set Current MeasureVoltage(“D1”, -0.5))
! restore pin setting
ICEasy Set Voltage(“D1”, 0)
Example – IDD Test
以下代碼顯示如何測試IDD,待機電流。
! turn on Vcc and then measure IDD
TestResult=ICEasy Set Voltage MeasureCurrent("Vcc", 4.50)
! turn off Vcc
ICEasy Set Voltage("Vcc", 0)
Vector Commands
ICEasy提供向數(shù)字子系統(tǒng)寫入(和讀取)向量,執(zhí)行它們并返回錯誤計數(shù)的能力。 以下是一些Vector命令:
ICEasy Set Vectors (vGroupOrPinNameOrIndex, vVectors, iVectorStart, iVectorsCount, iRepeatCount)
ICEasy Run Vectors (vGroupOrPinNameOrIndex, iVectorStart, iVectorsCount, iFrequency, iStrobeDelay): Long
第一個命令Set Vector將向量寫入組或引腳,從DIO向量存儲器iVectorStart開始,并重復使用vVectors iRepeatCount值傳遞的字符串數(shù)組。 向量的數(shù)量由iVectorsCount定義。 vVectors是書面向量。 向量是字符串數(shù)組,其中第一個元素對應于第一個向量。每個字符串字符操作碼對應于數(shù)字子系統(tǒng)通道。
以下是可用的操作碼:
第二個命令Run Vectors將運行用Set Vectors命令加載的向量。
第一個參數(shù)用于識別DIO卡,任何與映射到DIO卡的組或引腳相關聯(lián)的向量將被傳遞。iVectorStart和iVectorsCount定義向量的起始位置以及執(zhí)行多少向量。 iFrequency(Hz)參數(shù)定義矢量頻率。iStrobeDelay是nSec中的延遲值,用于指定輸出數(shù)據和選通輸入數(shù)據之間的延遲。必須正確設置此值可靠的實時比較結果。 Run Vectors命令返回失敗向量的數(shù)量,如果沒有失敗,則返回0。 該命令與DIO的實時比較功能結合使用。
Example – Vector Commands
以下示例從地址0開始向DIO寫入126個向量。提供的2個向量重復63次。 每個向量包含與IO Pins組相關聯(lián)的18個數(shù)據通道。
as : String[2]
as[0]="1011111111ZZZZZZZZ" ! vector 1, 18 channels
as[1]="1111111111HHHHHHHH" ! vector 2, 18 channels
iVectorsCount=ICEasy Set Vector("IO Pins", as, 0, 2, 63)
if ICEasy Run Vectors("IO Pins", 0, iVectorsCount) <> 0
TestStatus=FAIL
endif
Charting Tools
ICEasy提供了一個Curve Tracer 和一個Shmoo制圖工具。 可以通過顯示工具表單和輸入參數(shù)或非交互模式來交互使用這兩種工具,從而允許生成圖表并將其保存到日志文件中。
以下是可用的制圖工具功能:
ICEasy Chart CurveTracer Panel (stXAxis, stYAxis, procHandler, bModal)
ICEasy Chart Shmoo Panel (stXAxis, stYAxis, procHandler, bModal)
兩個功能都接收stXAxis和stYAxis軸結構作為參數(shù),定義了掃描范圍,分辨率和要測量的DUT引腳。 對于Curve Tracer功能,如果將一組引腳傳遞給vPin參數(shù),則將創(chuàng)建乘法圖(組中每個引腳一個)。
在所有掃描(用于初始設置)之前,每個掃描的x和y值之前和之后以及所有掃描完成之后,對于每次掃描,procHandler過程被重復調用。
對于modal 加載,bModal參數(shù)為True,顯示窗體并等待,直到用戶關閉窗體。 如果要顯示表單并繼續(xù)執(zhí)行程序,請傳入False。
Example – Using the Shmoo Chart Tool
以下是如何創(chuàng)建 Frequency/Voltage Shmoo圖的示例:
! init X Axis params
stXAxis.sName="Clock"
stXAxis.sType="Frequency"
stXAxis.vPin="CLK"
stXAxis.sUnit="MHz"
stXAxis.dStart=1.0
stXAxis.dStop=35.0
stXAxis.dResolution=1.0
stXAxis.dCurrentOrVHighLimit=0.0
stXAxis.dVLowLimit=0.0
stXAxis.nDelay=0
! init Y Axis params
stYAxis.sName="Vcc"
stYAxis.sType="Voltage"
stYAxis.vPin="VCC"
stYAxis.sUnit="V"
stYAxis.dStart=2.0
stYAxis.dStop=6.0
stYAxis.dResolution=0.2
stYAxis.dCurrentOrVHighLimit=0.0
stYAxis.dVLowLimit=0.0
stYAxis.nDelay=0
! open the Shmoo Tool panel
ICEasy Chart Shmoo Panel(stXAxis, stYAxis, ShmooEventHandler)
以下是procHandler原型的描述:
Procedure ShmooEventHandler(enEventType, pstSweep, pbCancel): Variant
handler機制由Shmoo或Curve Tracer調用,具有以下參數(shù):
enEventType - 事件類型:aEventStart,aEventSweepPre,aEventSweepPost,aEventStop。 在 curve tracing/ Shmoo圖執(zhí)行期間,僅在Start和Post事件在每次掃描之前和之后調用Pre和Post事件時才啟動和停止事件。
pstSweep - 包含掃描和軸參數(shù)的結構。 例如,X軸值將定義X軸的掃描范圍。
pBCancel - 如果由handler設置為True,則會通知Shmoo或Curve Tracer停止掃描。
此過程的返回值僅用于前/后事件,并且應包含掃描的結果。 對于曲線跟蹤器,這是一個浮點數(shù),為當前X值提供測量結果。 對于Shmoo圖,結果為True的話,用Pass / Green(對于當前的x / y掃描)標記,結果為False的話,用Fail / Red標記,空的變量(VarEmpty)為未測試/gray灰色。
如果handler機制不與Curve Tracer一起使用,則通過curve tracer tool 基于 force voltage / measure current or force current measure voltage 的測量值來計算測量結果。 測量類型(電流/電壓)和Pin從stXAxis unit和pin字段的參數(shù)收集。
以下是使用handler機制的示例。 start事件用于設置每次掃描執(zhí)行的向量。 Pre事件用于運行向量并返回結果:
Procedure ShmooEventHandler(enEventType, pstSweep, pbCancel): Variant
! Shmoo Event Handler, called repeatedly for each iteration(sweep)
! returns True/False/Empty for PASS/FAIL/None
--------------------------------------------------------------------------------
enEventType: Val enumEventType !Event type for this sweep
pstSweep: Var structChartSweep !Axis and sweep information
pbCancel: Var Bool !Return True to cancel further operations
iFrequency: Long
dVccVoltage: Double
iErrCount: Long
iStrobeDelay: Double
{
Select enEventType
Case aEventStart
! setup test pattern, called once before first sweep
iVectorsCount=SetupOutputsRandomTestPattern()
Case aEventSweepPre
! extract frequency and Vcc voltage values, called before each sweep
iFrequency=pstSweep.dXValue*1.0E6
dVccVoltage=pstSweep.dYValue
iStrobeDelay=10
! run
ICEasy Set Voltage("Vcc", dVccVoltage)
iErrCount=ICEasy Run Vectors("IO Pins", 0, iVectorsCount, iFrequency)
ICEasy Set Voltage("Vcc", 0)
return iErrCount=0 ! return TRUE=PASS, FALSE=FAIL
Case aEventSweepPost
! do nothing, value of pstSweep.bShmooResult was set in
! aEventStepPre from the return
Case aEventStop
! turn off Vcc, called once after last sweep
ICEasy Set Voltage("Vcc", 0)
EndSelect
return pstSweep.vShmooResult ! keep the stepPre value
}
Shmoo Tool
下圖顯示了Shmoo工具顯示。 圖表中的每個單元格表示一次掃描/迭代或測試,每個單元格都以紅色(失敗),綠色(通過)或灰色(未測試)繪制。 您可以將鼠標光標移動到特定的單元格,以查看與特定測試相關聯(lián)的X / Y參數(shù)(顯示在狀態(tài)欄中)。 圖表上方的網格用于設置X / Y軸的迭代/掃描范圍,并指定每個X / Y測試之間的分辨率。 附加日志按鈕可讓您將對話框圖像附加到測試日志。
Curve Tracer Tool
與Shmoo類似,您可以執(zhí)行IV曲線圖。 在“ Curve Tracer”對話框中,您可以設置測試參數(shù),例如X/Y Units,Test Type (voltage/current), PIN or a PIN Group(允許測試組中每個引腳有多個引腳的測試參數(shù))。 您還可以指定 Start/Stop和分辨率測試參數(shù)。 下圖顯示了在一組引腳(D1-D8)上執(zhí)行的IV曲線顯示。 測試從-1V到+ 1V,步長為0.1V。 該工具還可以使用“Append Log”按鈕將結果圖表附加到測試日志中。
評論