新聞中心

EEPW首頁 > 測試測量 > 新品快遞 > We make IC test Easy——ICEasy

We make IC test Easy——ICEasy

作者:廣州虹科電子 時間:2017-08-17 來源:電子產(chǎn)品世界 收藏

  是一款Marvin Test Solutions針對半導(dǎo)體測試應(yīng)用的動態(tài)數(shù)字IO(DIO)板編程的工具。 本文概述如何使用來創(chuàng)建和執(zhí)行測試程序。

本文引用地址:http://butianyuan.cn/article/201708/363143.htm

  的主要功能包括:

  § DIO通道和UUT引腳名稱之間的引腳映射

  § 創(chuàng)建引腳組和嵌套組,并提供在組上執(zhí)行各種測試功能的能力

  § 簡化的編程

  § 更快地創(chuàng)建預(yù)定義的測試(Continuity, IDD, IDDQ, Voltage Threshold, Leakage, etc.)

  § 掃描功能和圖(Shmoo,I / V曲線等)

  § 數(shù)字子系統(tǒng)的虛擬化,允許與未來的MTS板重新使用基于ICEasy的代碼

  § 模擬測試程序,允許您無需硬件使用模擬模式測試和運(yùn)行程序。

  Configuring ICEasy

  要使用ICEasy,您必須安裝 v9(或更新版本,您可以聯(lián)系我們或者到這個網(wǎng)站下載http://www.marvintest.com/Product.aspx?Model=,您有一個為期30天的試用期)。 您的ATEasy項(xiàng)目系統(tǒng)文件應(yīng)首先具有DIO驅(qū)動程序(本示例中為GX5295.drv),其后為ICEasy(ICEasy.drv)和ICEasy_GX5295板驅(qū)動程序(ICEASy_GX5295.drv)。 SIM驅(qū)動程序是應(yīng)用程序自定義驅(qū)動程序,如果需要仿真,則用于仿真。

  驅(qū)動程序插入后,您需要配置DIO驅(qū)動程序快捷方式。 這需要根據(jù)需要 設(shè)置驅(qū)動程序參數(shù),通常將MasterNumber設(shè)置為1.如果使用INI文件配置DIO或?qū)⑵湓O(shè)置為DIO域中的主/從插槽號,則還需要將INIFileInitialization參數(shù)設(shè)置為1。 我們建議使用INI文件初始化與設(shè)置主/從板,因?yàn)樗梢源_保面板中顯示的信息與ICEasy板和通道號匹配。 由于在ICEasy驅(qū)動程序之前插入了DIO驅(qū)動程序,所以在初始化ICEasy之前,先初始化DIO驅(qū)動程序,以確保ICEasy驅(qū)動程序的初始化成功。

  Pin Mapping

  在使用ICEasy之前,需要將DIO通道號映射到DUT / UUT(被測器件/被測單元)引腳名。 DIO通道號從0開始編號,所以如果第一塊是GX5295,通道號將為0-31,第二張卡的通道為32-63等。DIO卡的順序可以從GTDIO面板( 安裝GX5295)的配置頁面被設(shè)置,此設(shè)置將保存到INI文件中。

  以下命令用于將DIO通道映射到UUT引腳:

  ICEasy Map Add (sPinName, vPinNumberOrPinList, enPinType, vInstrumentName, iInstrumentChannel)

  解析:以下圖所示這個UUT和 DIO GX5295為例。

  sPinName,UUT引腳的名稱,比如CLK

  vPinNumberOrPinList, UUT引腳的編號,比如CLK對應(yīng)的是引腳11

  enPinType,UUT引腳的類型,比如CLK對應(yīng)的是input

  vInstrumentName, DIO 卡的名稱,此處就是 "ICEasy_GX5295"

  iInstrumentChannel,與UUT引腳連接對應(yīng)DIO 卡的通道號,比如與CLK對應(yīng)的是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)的板驅(qū)動程序快捷方式名稱。 映射其他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)

  注意,一些引腳被標(biāo)記為VCC,一些引腳被標(biāo)記為GND。 當(dāng)您輸入此參數(shù)的參數(shù)時,會顯示可用的引腳類型。

  Pin Group Mapping

  單獨(dú)尋址UUT引腳可能很麻煩。 當(dāng)需要重復(fù)功能來控制/訪問或測量涉及多個引腳時,您可以創(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。

  您還可以定義嵌套組。 嵌套組可以將組和引腳與分配給新組的名稱進(jìn)行組合。 以下示例顯示了嵌套組的使用:

  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ù)測量單元)進(jìn)行參數(shù)測試。 這些命令在單個引腳或組上工作。 對于單個引腳,返回的變量將包含單個雙精度值。 當(dāng)傳入組時,測量命令將返回包含測量數(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

  以下代碼顯示了如何通過檢查短路保護(hù)二極管或檢查其他引腳短路來執(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,待機(jī)電流。

  ! 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開始,并重復(fù)使用vVectors iRepeatCount值傳遞的字符串?dāng)?shù)組。 向量的數(shù)量由iVectorsCount定義。 vVectors是書面向量。 向量是字符串?dāng)?shù)組,其中第一個元素對應(yīng)于第一個向量。每個字符串字符操作碼對應(yīng)于數(shù)字子系統(tǒng)通道。

  以下是可用的操作碼:

  第二個命令Run Vectors將運(yùn)行用Set Vectors命令加載的向量。

  第一個參數(shù)用于識別DIO卡,任何與映射到DIO卡的組或引腳相關(guān)聯(lián)的向量將被傳遞。iVectorStart和iVectorsCount定義向量的起始位置以及執(zhí)行多少向量。 iFrequency(Hz)參數(shù)定義矢量頻率。iStrobeDelay是nSec中的延遲值,用于指定輸出數(shù)據(jù)和選通輸入數(shù)據(jù)之間的延遲。必須正確設(shè)置此值可靠的實(shí)時比較結(jié)果。 Run Vectors命令返回失敗向量的數(shù)量,如果沒有失敗,則返回0。 該命令與DIO的實(shí)時比較功能結(jié)合使用。

  Example – Vector Commands

  以下示例從地址0開始向DIO寫入126個向量。提供的2個向量重復(fù)63次。 每個向量包含與IO Pins組相關(guān)聯(lián)的18個數(shù)據(jù)通道。

  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制圖工具。 可以通過顯示工具表單和輸入?yún)?shù)或非交互模式來交互使用這兩種工具,從而允許生成圖表并將其保存到日志文件中。

  以下是可用的制圖工具功能:

  ICEasy Chart CurveTracer Panel (stXAxis, stYAxis, procHandler, bModal)

  ICEasy Chart Shmoo Panel (stXAxis, stYAxis, procHandler, bModal)

  兩個功能都接收stXAxis和stYAxis軸結(jié)構(gòu)作為參數(shù),定義了掃描范圍,分辨率和要測量的DUT引腳。 對于Curve Tracer功能,如果將一組引腳傳遞給vPin參數(shù),則將創(chuàng)建乘法圖(組中每個引腳一個)。

  在所有掃描(用于初始設(shè)置)之前,每個掃描的x和y值之前和之后以及所有掃描完成之后,對于每次掃描,procHandler過程被重復(fù)調(diào)用。

  對于modal 加載,bModal參數(shù)為True,顯示窗體并等待,直到用戶關(guān)閉窗體。 如果要顯示表單并繼續(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機(jī)制由Shmoo或Curve Tracer調(diào)用,具有以下參數(shù):

  enEventType - 事件類型:aEventStart,aEventSweepPre,aEventSweepPost,aEventStop。 在 curve tracing/ Shmoo圖執(zhí)行期間,僅在Start和Post事件在每次掃描之前和之后調(diào)用Pre和Post事件時才啟動和停止事件。

  pstSweep - 包含掃描和軸參數(shù)的結(jié)構(gòu)。 例如,X軸值將定義X軸的掃描范圍。

  pBCancel - 如果由handler設(shè)置為True,則會通知Shmoo或Curve Tracer停止掃描。

  此過程的返回值僅用于前/后事件,并且應(yīng)包含掃描的結(jié)果。 對于曲線跟蹤器,這是一個浮點(diǎn)數(shù),為當(dāng)前X值提供測量結(jié)果。 對于Shmoo圖,結(jié)果為True的話,用Pass / Green(對于當(dāng)前的x / y掃描)標(biāo)記,結(jié)果為False的話,用Fail / Red標(biāo)記,空的變量(VarEmpty)為未測試/gray灰色。

  如果handler機(jī)制不與Curve Tracer一起使用,則通過curve tracer tool 基于 force voltage / measure current or force current measure voltage 的測量值來計算測量結(jié)果。 測量類型(電流/電壓)和Pin從stXAxis unit和pin字段的參數(shù)收集。

  以下是使用handler機(jī)制的示例。 start事件用于設(shè)置每次掃描執(zhí)行的向量。 Pre事件用于運(yùn)行向量并返回結(jié)果:

  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工具顯示。 圖表中的每個單元格表示一次掃描/迭代或測試,每個單元格都以紅色(失敗),綠色(通過)或灰色(未測試)繪制。 您可以將鼠標(biāo)光標(biāo)移動到特定的單元格,以查看與特定測試相關(guān)聯(lián)的X / Y參數(shù)(顯示在狀態(tài)欄中)。 圖表上方的網(wǎng)格用于設(shè)置X / Y軸的迭代/掃描范圍,并指定每個X / Y測試之間的分辨率。 附加日志按鈕可讓您將對話框圖像附加到測試日志。

  Curve Tracer Tool

  與Shmoo類似,您可以執(zhí)行IV曲線圖。 在“ Curve Tracer”對話框中,您可以設(shè)置測試參數(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”按鈕將結(jié)果圖表附加到測試日志中。



關(guān)鍵詞: ICEasy ATEasy

評論


技術(shù)專區(qū)

關(guān)閉