J750 Test System
J750 Programming
                                        V3.40
                                     Training Manual
                                        Module 9
                                     Custom Coding
PN 553-405-50 Rev - August 2002        J750 Programming - V3.4   Custom Coding - 1
          J750 Test System
                                  This slide is blank
PN 553-405-50 Rev - August 2002    J750 Programming - V3.4   Custom Coding - 2
             J750 Test System
                                    Module Overview
    • This module covers the concepts and activities used to create and use
         interpose functions in an IG-XL workbook.
    • This module contains the following sections:
         •     Visual Basic Overview                  Pg 3
         •     Creating Interpose Functions                       Pg 29
         •     Using Visual Basic Editor for Debug Pg 45
         •     Review                                 Pg 55
         •     Lab 5 - Exercise 3                                 Pg 57 in Lab Section
PN 553-405-50 Rev - August 2002         J750 Programming - V3.4                          Custom Coding - 3
          J750 Test System
                                  This slide is blank
PN 553-405-50 Rev - August 2002    J750 Programming - V3.4   Custom Coding - 4
          J750 Test System
                                  J750 Programming
                                        V3.40
                                      Training Manual
                                          Module 9
                                      Custom Coding
                                   Visual Basic Overview
PN 553-405-50 Rev - August 2002         J750 Programming - V3.4   Custom Coding - 5
          J750 Test System
                                  Visual Basic for Applications
      • Visual Basic for Applications (VBA) is
          the source programming language for a
          J750 Test Program.
      • Most of the code is already provided,
          i.e., Templates, etc. However, there
          may be requirements for user-written
          code.
      • Typical examples for coding are:
           – Interpose Functions
           – Custom Templates
           – Custom Test Functions
PN 553-405-50 Rev - August 2002            J750 Programming - V3.4   Custom Coding - 6
          J750 Test System
                                  Visual Basic for Applications
      • The Visual Basic Editor (VBE)
          provides the user interface to Visual
          Basic code.
      • Visual Basic Editor may be started
          from Data Tool by either:
           – Alt + F11
           – Tools Menu
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4   Custom Coding - 7
          J750 Test System
                                  Visual Basic Editor
     • The typical Visual Basic Editor
        display has three (3) windows:
         – Project Explorer Window
         – Code Window
         – Immediate Window
PN 553-405-50 Rev - August 2002          J750 Programming - V3.4   Custom Coding - 8
          J750 Test System
                                  VBE - Project Explorer
  • The Project Explorer window
      displays three project folders
      holding code associated with:
        – DataTool (DataTool.xla)
        – Template (Template.xla)
        – VBAProjects (user projects,
           i.e., test program workbooks)
  • To access the folders within each
      project, it is necessary to expand
      the column using the (+) that is to
      the left of each segment.
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4   Custom Coding - 9
          J750 Test System
                                  Projects in Project Explorer
      •    DataTool.xla                    DataTool code (password protected)
      •    Template.xla :                  Template source code.
             – Modules :              Contain the VB code for the functions
             – Forms Files:           Contain the Graphical User Interface
             – Class Files :          Contain the variables
             – Reference :            Call function to the Datatool (reference to used
                                                functions from the DataTool)
      •    VBAProject (mylab4.xls)         Test Program Workbook
             – There may be multiple folders if multiple workbooks are open at one time
PN 553-405-50 Rev - August 2002              J750 Programming - V3.4                      Custom Coding - 10
          J750 Test System
                                   VBE - Code Window
      • The Code Window of the Visual
          Basic Editor may be used to:
            – Display existing code, i.e.
               Template code
            – Create new code, i.e. interpose
               functions, etc.
      •   To display template code:
            1. Expand Modules Folder of
               Template Project (Template.xla)
            2. Double left-click on a template,
               i.e. BoardPmu_T
            3. Code for template will be
               displayed in Code window
      •   Using the Code Window to create
          new code will be discussed later in
          this module.
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4   Custom Coding - 11
          J750 Test System
                                  VBE - Immediate Window
  • The Immediate Window of the
      Visual Basic Editor may be used to
      enter and execute Visual Basic
      code in real-time.
  •   Type in statement + Enter
PN 553-405-50 Rev - August 2002            J750 Programming - V3.4   Custom Coding - 12
          J750 Test System
                                   Visual Basic for Test
      • Visual Basic for Test (VB-Test): This is the programmer’s interface to the
          J750 hardware and tester executive functions.
      • It is implemented as a Visual Basic interface to the underlying software
          drivers of the tester.
      • Use Excel’s Visual Basic Editor to write your own interpose or
          customization procedures using the methods and properties of VB-Test.
PN 553-405-50 Rev - August 2002         J750 Programming - V3.4                    Custom Coding - 13
          J750 Test System
                                             VBT Model
      • The VBT Model has two main
          components:                                                       VBT
            Tester Hardware
                  Digital
                    Digital Subsystem
                                                                   TheHdw         TheExec
                  (Instruments)
                    All other programmable
                    hardware: i.e., BPMU,
                    PPMU, DPS, PinLevels,
                    MTO, CTO, UtilityBits               (Instruments)   Digital
            Tester Executive functions
      • Two global VB handles are used to
          access these components:
            TheHdw
            TheExec
PN 553-405-50 Rev - August 2002              J750 Programming - V3.4                        Custom Coding - 14
          J750 Test System
                                          TheHdw Object
                                          TheHdw                                  BPMU
                                                                                  PPMU
                                                           Digital     HRAM       DPS
      • TheHdw is the highest-level object that                        PatGen     PinLevels
          provides access to objects relating to
          the Test System Hardware                                     Patterns   MTO
                                                                       Relays     CTO
      • The following line of code would rerun
          the currently loaded pattern:
                                                                       Timing     UtilityBits
          TheHdw.Digital.PatGen.Restart
PN 553-405-50 Rev - August 2002              J750 Programming - V3.4                       Custom Coding - 15
          J750 Test System
                                     TheHdw Object
      • TheHdw is an object that provides
          access to Properties and Methods                                 TheHdw
          relating to the test system
          hardware.
      •   The Properties and Methods for
          TheHdw are themselves objects
          corresponding to the instruments                       (Instruments)      Digital
          used for testing.
                                                                           Properties     Properties
      • A Property is a named attribute of
          an object.                                                        Methods           Methods
      •   A Method is a procedure that can
          act on an object.
PN 553-405-50 Rev - August 2002              J750 Programming - V3.4                                Custom Coding - 16
          J750 Test System
                                  TheHdw - Instruments
      • The following tester components are programmed through the TheHdw object.
           –   BPMU
           –   PPMU
           –   DPS
           –   PinLevels
           –   MTO
           –   CTO
           –   UtilityBits
      • For example, TheHdw.DPS is the path to the Properties and Methods for the
          DPS.
           – TheHdw.DPS.chans(0).CurrentLimit = 0.100
             Set the CurrentLimit parameter (Isc) of DPS0 to 100ma
PN 553-405-50 Rev - August 2002          J750 Programming - V3.4                    Custom Coding - 17
          J750 Test System
                                       TheHdw - Digital
      • Programming of the Digital Subsystem of the J750 is also provided through the
          TheHdw object.
           – TheHdw.Digital
      •   The Digital object, in turn, provides access to the elements of the Digital
          Subsystem via their corresponding objects:
           – HRAM                   TheHdw.Digital.HRAM.----
           – Patgen                 TheHdw.Digital.Patgen.----
           – Patterns                          TheHdw.Digital.Patterns.----
           – Relays                 TheHdw.Digital.Relays.----
           – Timing                 TheHdw.Digital.Timing.----
      • Example - Rerun the current pattern - same as pressing Restart button in Pattern
          Control
           – TheHdw.Digital.PatGen.Restart
      • Example - Load pattern file ‘a.pat’ - same as using Load in Pattern Control
           – TheHdw.Digital.Patterns.Pat(“a.pat”).Load
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4                     Custom Coding - 18
          J750 Test System
                                            VBT Help
      • Producing a Visual Basic statement
          to program a tester component can
          be complex.
      •   VB-Test Help can offer assistance
          and information.
      •   A simple method for accessing VB-
          Test Help
            1. Start IG-XL Help
            2. Use Find.
                Enter ‘Complete List’
            3. Display
      •   This will display ‘Complete List of
          Objects, Properties, and Methods’
            – Provides a starting point to work
               your way through the hierarchy
               of TheHdw or TheExec objects.
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4   Custom Coding - 19
          J750 Test System
                                  VBT - Pins vs. Chans
       • Most of the hardware objects offer two (2) different ways to read from or write to
           the tester hardware:
       1. By DUT pin:
           TheHdw.DPS.Pins("Vdd").ForceValue(dpsPrimaryVoltage) = 3.9
           \\ Set Vps of Power pin ‘Vdd’ to 3.9
       2. By Channel:
           TheHdw.DPS.Chans(0).ForceValue (dpsAlternateVoltage) = 3.9
           \\ Set Alt of DPS0 to 3.9
       DUT pin programming is recommended as it handles multisite testing automatically.
PN 553-405-50 Rev - August 2002           J750 Programming - V3.4                         Custom Coding - 20
          J750 Test System
                                  Visual Basic - With Construct
      • Visual Basic’s “With” construct can simplify programming:
               With <object-path>
                      statements
               End With
      •   The object-path will be applied to all relative references within the With construct
           – Relative references begin with ‘.’, i.e., .ForceValue(dpsPrimaryVoltage)
      •   For Example, the following code:
              With TheHdw.DPS.Pins(“Vdd”)
                 .ForceValue(dpsPrimaryVoltage) = 3.1
                 .CurrentLimit = .45
               End With
           Is the same as:
               TheHdw.DPS.Pins(“Vdd”).ForceValue(dpsPrimaryVoltage)= 3.1
               TheHdw.DPS.Pins(“Vdd”).CurrentLimit = .45
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4                              Custom Coding - 21
          J750 Test System
                                  Visual Basic - With Construct
      • Allows programming to setup a block of code that focuses on a particular instrument
          or set of pins or parameter.
      •   Object references that are not relative to the With Construct’s object reference must
          be absolute references (complete path).
          With TheHdw.Pins("db1")
                 .PinLevels.ModifyLevel(chDriveHi) = 3.0               // relative
                 .Timing.ReadEdgeTimingRam(time_PHLZ)                  // relative
                 // Next statement is different object path
                 TheHdw.Digital.Timing.Chans(29).EdgeTime(chEdgeR0) = 6.5*ns
                 .Timing.WriteEdgeTimingRam (time_PHLZ)                // relative
          End With
      Note: Timing edges are read from hardware to memory, modified in memory and
             then written back to the hardware.
PN 553-405-50 Rev - August 2002            J750 Programming - V3.4                        Custom Coding - 22
          J750 Test System
                                        Pins Object
     • The ‘Pins’ object allows programming to focus on the DUT pins rather than the
        instruments to be used. Many of the objects referenced from the Pins object are the
        same instrument objects referenced by TheHdw.
     • Both statements below modify the chDriveHi parameter of pin db1.
        TheHdw.Pins("db1").PinLevels.ModifyLevel(chDriveHi) = 3.0
        TheHdw.PinLevels.Pins(“db1”).ModifyLevel(chDriveHi) = 3.0
     • Useful when working with a wide range of pin-related parameters. See previous slide -
        both PinLevels object and Timing object are being accessed for pin ‘db1’. Also
        note - Timing is being accessed directly from Pins rather than through the Digital
        object.
PN 553-405-50 Rev - August 2002          J750 Programming - V3.4                       Custom Coding - 23
          J750 Test System
                                       TheExec Object
      • TheExec is a high-level object that
          provides access to objects relating to          TheExec
          the Test System Executive.
                                                                      Datalog
      • For example, accessing the Datalog
          object can provide the same types of
          results as using the Datalog Tab in the                     DataManager
          DataCollect Setup Window.
      • The following line of code would cause                        Flow
          a line of output to be added to the
          Datalog output:
                                                                      RunOptions
          TheExec.Datalog.WriteComment(
          “Functional Relay has been
          opened”)                                                    Sites
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4             Custom Coding - 24
          J750 Test System
                                  Building a VB Statement
      • When entering code, in the
          Immediate Window or Code Window,
          the statement may be built item by
          item with the help of drop-down lists.
      1. Enter high-level object, e.g. TheHdw
          followed by a period (‘.’), After the
          period is entered a drop-down list
          appears. This list will be the
          available choices at this point.
      2. Select choice (Digital) with a
          double left-click. The choice is added
          to the statement. Enter a period.
          A new drop-down list appears.
PN 553-405-50 Rev - August 2002               J750 Programming - V3.4   Custom Coding - 25
          J750 Test System
                                  Building a VB statement
      3. Select choice (Relays) with a double
          left-click. Enter a period. A new
          drop-down list appears. Select
          choice (pins) with a double left-click.
          Enter a period. A drop-down list
          appears. And so on.
      4. Eventually, no more drop-down lists
          appear when a period is entered.
          The statement has reached the end
          of its path. Delete the last period.
      5. Press Enter Key and the statement
          will be translated and executed.
      3. Sometimes an error message may
          be displayed. (See next slide)
PN 553-405-50 Rev - August 2002              J750 Programming - V3.4   Custom Coding - 26
          J750 Test System
                                  Building a VB Statement
     • Some objects have parameter lists.
        Some do not. A missing parameter
        list will cause an error.
     • In this case, the ‘pins’ object has a
        parameter list. The drop-down
        parameter lists did not indicate that
        a parameter list was needed.
     • Instead of entering a period after
        each object, first enter a space
        character. If the object does not
        have a parameter list, nothing will
        change. Delete the space
        character and add the period.
     • If the object has a parameter list,
        the list will be displayed. Enter the
        parameters within parentheses.
        Complete the statement and press
        Enter. Now the statement will
        translate and execute.
PN 553-405-50 Rev - August 2002               J750 Programming - V3.4   Custom Coding - 27
          J750 Test System
                                  This slide is blank
PN 553-405-50 Rev - August 2002    J750 Programming - V3.4   Custom Coding - 28
          J750 Test System
                                  J750 Programming
                                        V3.40
                                        Training Manual
                                            Module 9
                                         Custom Coding
                                  Creating Interpose Functions
PN 553-405-50 Rev - August 2002            J750 Programming - V3.4   Custom Coding - 29
          J750 Test System
                                  Interpose Functions - Overview
      • Teradyne Templates provide a basis for many general test conditions.
      • Some testing conditions will require actions beyond that of the standard Teradyne
          Template. Consequently user-written code will be necessary.
      • These requirements are typically handled as:
            Interpose Functions
            Custom Templates
            Custom Test Functions
      • We will focus on the creation of Interpose Functions.
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4                    Custom Coding - 30
          J750 Test System
                                  Interpose Functions - Overview
      • Interpose Functions can satisfy most customization needs including:
            modifying the behavior of a template without modifying the code.
            making calls to the drivers, to get and set driver values.
      • Arguments can be passed to an interpose Function.
      • When possible, it is recommended that you use interpose functions instead of
          creating customized templates.
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4                    Custom Coding - 31
          J750 Test System
                                  Calling Interpose Functions
      • The following are conditions (events) in the body of the typical template where an
          interpose function may be called:
           1. StartOfBodyF: Called as the first operation in the Template body.
           2. PrePatF: Called before each pattern burst.
           3. PreTestF: Called before the test is executed or the measurement is made.
           4. PostTestF:            Called after the test is executed or the measurement is made.
           5. PostPatF: Called after each pattern burst.
           6. EndOfBodyF:           Called as the last operation in the Template body.
           7. PatFlagFunc:          Called to modify tester setups while the pattern is running.
PN 553-405-50 Rev - August 2002               J750 Programming - V3.4                              Custom Coding - 32
          J750 Test System
                                  Calling Interpose Functions
      • An Interpose Function is typically
          called by entering its name in one
          of the Interpose Function Value
          fields in an instance.
      •   An Interpose Function may require
          a parameter list. This comma-
          separated list is entered as strings
          of characters.
      •   In this example, the function,
          PrintStuff, is being executed at
          each of the six points available in a
          template. The output, on the next
          slide, will show the relative position
          of each of the function calls.
PN 553-405-50 Rev - August 2002               J750 Programming - V3.4   Custom Coding - 33
          J750 Test System
                                  Calling Interpose Functions
    • The order of execution for the
       Interpose Functions within the Body
       of a template is:
         1. StartOfBody
         2. PreTest
         3. PrePat
         4. PostPat
         5. PostTest
         6. EndOfBody
PN 553-405-50 Rev - August 2002           J750 Programming - V3.4   Custom Coding - 34
          J750 Test System
                                           PatFlagFunc
      • The PatFlagFunc Tab of the
          Functional Test Template includes a
          PatFlagF parameter, specifying a
          function to be called when certain
          flag conditions are met. The
          PatFlagF parameter is identical to
          the Interpose Functions.
      • The WaitFlags will identify the
          condition(s) that must be met for this
          special Interpose Function to be
          executed.
      • The Interpose Function called by
          PatFlagF usually needs to reset the
          WaitFlags condition(s) that called it.
PN 553-405-50 Rev - August 2002              J750 Programming - V3.4   Custom Coding - 35
          J750 Test System
                   Adding Interpose Functions to a Workbook
    • New code, i.e. Interpose Functions,
        are added to a workbook as .bas files
        and are stored in the Modules folder
        of the VBAProject.
    •   Interpose Functions may be added to
        a workbook by:
          – Importing a module
          – Creating the function with VBE
    •   To import a module:
          1. Open the Visual Basic Editor
          2. Select the workbook folder in
             Project Explorer
          3. Left-click File, left-click Import File
          4. Select file (*.bas), left-click Open
    •   Creating an interpose function is
        discussed in the following slides.
PN 553-405-50 Rev - August 2002                 J750 Programming - V3.4   Custom Coding - 36
          J750 Test System
                                  Creating Interpose Functions
      • The following steps are used to create an interpose function with VBE:
           1. Open VBE
           2. Select workbook folder
           3. Insert Module
           4. Code the Function Declaration statement
           5. Add function code
PN 553-405-50 Rev - August 2002            J750 Programming - V3.4               Custom Coding - 37
          J750 Test System
                                  Function Declaration Statement
     • An Interpose Function has the following structure:
        Public Function <name> (argc As Long, argv() As String) As Long
             <function code>
        End Function
     • The ‘Public Function ….’ line is the Function Declaration. In the example below, the
        function ‘SetFlag’ is being declared.
        Public Function SetFlag(argc As Long, argv() As String) As Long
     • The portion in parentheses after the function name will always be the same
        (see next slide)
        (argc As Long, argv() As String) As Long
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4                     Custom Coding - 38
          J750 Test System
                  Function Declaration Statement - (Cont.)
      • The code in parentheses after the function name is the function’s parameter list.
            – Where argc is a Long indicating the number of arguments passed to the
                   function.
           –   Where argv() is an Array of Strings, one element for each argument
               passed.
          Example:                Parameter list = “VCC”, “3.5”, “100ma”
                                  argc = 3
                                  argv() =        “VCC”         argv(0) = first element
                                                 “3.5”
                                                “100ma”
      • If the function does not processes input arguments, the parameter list is ignored.
      • If the function has parameters, the list is automatically translated into the argc, argv
          format and passed to the function.
PN 553-405-50 Rev - August 2002                   J750 Programming - V3.4                    Custom Coding - 39
          J750 Test System
                        Interpose Function without Arguments
      • The example function Demo does not process any input arguments:
          Public Function Demo(argc As Long, argv() As String) As Long
                  TheExec.Datalog.WriteComment ("This is a Test")
          End Function
PN 553-405-50 Rev - August 2002        J750 Programming - V3.4            Custom Coding - 40
          J750 Test System
                            Interpose Function with Arguments
      • The function SetFlag processes one input argument.
               If the argument = “cpuA” then that flag will be set.
               If the argument = any other string, i.e. “none” then it will not set the cpuA flag.
      • There must be at least one argument or a ‘subscript out of range’ error will occur
          when referring to argv(0) in the function code:
          Public Function SetFlag(argc As Long, argv() As String) As Long
             If argc > 0 Then
               If argv(0) = "cpuA" Then
                     Call TheHdw.Digital.Patgen.Continue( cpuA, 0)
               End If
               TheExec.Datalog.WriteComment(“      CPU Flags = “ _
                             + Cstr(TheHdw.Digital.Patgen.CpuFlags))
             End If
          End Function
PN 553-405-50 Rev - August 2002               J750 Programming - V3.4                            Custom Coding - 41
          J750 Test System
                                  Visual Basic Operations
      • Three common Visual Basic operations are used in the line below:
                        TheExec.Datalog.WriteComment(“    CPU Flags = “ _
                                       + Cstr(TheHdw.Digital.Patgen.CpuFlags))
           1. Continuation
                       To put a single VB statement on multiple lines, insert a Continuation
              Operator (_) into the line. Otherwise, the translator will interpret the Carriage
              Return   as a premature end of the statement.
           3. Concatenation of Strings
                 To concatenate strings, use the (+) operator: “...“ + Cstr(...)
           3. Conversion from Long to String
                       Cstr(TheHdw.Digital.Patgen.CpuFlags)
                       Cstr is a VB function that converts the input expression into a String
                       In this example, CpuFlags is a value of type Long
      • Refer to MicroSoft Visual Basic Help for details and operations.
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4                          Custom Coding - 42
          J750 Test System
                          Using Interpose Functions - Example
     • For this example, the SetFlag function is
        being written to be used with the pattern
        7408_FullPat_ICC.
     • 7408_FullPat_ICC is being used with
        the test instances DynamicIcc08 and
        FullFunc08.
     • For both instances, the SetFlag function
        will be called prior to running the pattern
        - PrePatF
     • For DynamicIcc08, the input parameter
        will be ‘cpuA’.
     • For FullFunc08, the input parameter will
        be ‘none’
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4   Custom Coding - 43
          J750 Test System
                  Using Interpose Functions - Example (Cont.)
     • Pattern 7408_FullPat_ICC is shown
        here.
     • If parameter list <> cpuA, then the
        function will not set cpuA. As a
        result, the pattern will execute
        vector 0 and then jump to vector 5
        and execute the functional test
        portion of this pattern.
     • If parameter list = cpuA, then the
        function will set cpuA. As a result,
        the pattern will go from vector 0 to
        vector 1 for a dynamic loop for the
        ICCH measurement, then proceed
        to a loop to measure ICCL and then
        jump the last vector and stop.
PN 553-405-50 Rev - August 2002              J750 Programming - V3.4   Custom Coding - 44
          J750 Test System
                                  J750 Programming
                                        V3.40
                                    Training Manual
                                        Module 9
                                    Custom Coding
                           Using Visual Basic Editor for Debug
PN 553-405-50 Rev - August 2002        J750 Programming - V3.4   Custom Coding - 45
          J750 Test System
                          Visual Basic Code Debug - Overview
      • The following activities are involved in using VBE for code debug:
           1. Open VBE
           2. Set Breakpoint at line of interest
           3. Start by a Left-click Debug Run in Datatool
                Program stops at line with the breakpoint
           4. View values of variables
           5. Change values of variables in Immediate Window
PN 553-405-50 Rev - August 2002           J750 Programming - V3.4            Custom Coding - 46
          J750 Test System
                                           Open VBE
     • Open the Visual Basic Editor by either of the following:
            – (Tools) -> (Macro) -> (Visual Basic Editor)
            – Alt + F11
     • Display the template code or user-written function code in the Code Display
        window of VBE.
PN 553-405-50 Rev - August 2002            J750 Programming - V3.4                   Custom Coding - 47
          J750 Test System
                                  Set Breakpoint in VBE Code
      • A breakpoint in VB code may be set by a left-click in the gray area next to the VB
          line where the breakpoint is required.
      •   A dot in this area indicates that a breakpoint has been set for this line.
      •   The breakpoint may be removed by a left-click in the gray area.
PN 553-405-50 Rev - August 2002              J750 Programming - V3.4                     Custom Coding - 48
          J750 Test System
                                    Run to Breakpoint
      • After setting a breakpoint in VB code, the Debug Run button of Datatool can be
          used to step to the breakpoint.
      •   A yellow arrow and yellow shading on the line, indicate that the breakpoint has
          been reached. Note: The highlighted statement has not been executed yet.
      •   The breakpoint may be removed by another left-click in the same gray area.
PN 553-405-50 Rev - August 2002            J750 Programming - V3.4                          Custom Coding - 49
          J750 Test System
                                  Displaying Variable Contents
      • While stopped at a breakpoint in VB code, the contents of any variables in the
          function may be displayed. The variables do not have to be on the current
          breakpoint line.
            – Move cursor over the variable
            – Variable contents will be displayed. (left-click and drag are not required to
              select the variable).
PN 553-405-50 Rev - August 2002             J750 Programming - V3.4                           Custom Coding - 50
          J750 Test System
                                  Changing Variable Contents
      • While stopped at a breakpoint, variable contents may be changed in the
          Immediate Window before executing the current (highlighted ) statement.
      • After typing a command in the Immediate Window, press the Enter key to execute
          the command in the Immediate Window.. In this case, argv(0) will be changed
          from its original value to “cpuA”.
      • When code execution moves on from this breakpoint, the new value of argv(0) will
          be used.
PN 553-405-50 Rev - August 2002           J750 Programming - V3.4                       Custom Coding - 51
          J750 Test System
                                  Debug Run Buttons
      • While stopped at a breakpoint in VB code, the Debug Run buttons of Datatool are
          no longer enabled. The Debug Run buttons of VBE should be used
                                         step to next statement
                                         step to next breakpoint (if any)
      •   ‘Step to next statement’ has been used here to move past the breakpoint
PN 553-405-50 Rev - August 2002           J750 Programming - V3.4                    Custom Coding - 52
          J750 Test System
                                    Debug Run Buttons
  • When breakpoints are set in both
      the flow table and VB code, Debug
      Run in Datatool is used to step to
      the breakpoint in the code.
  •   At this point, the Debug Run
      buttons will cycle through the code
      in the function where the VB code
      trap is located but will not exit from
      the code.
  •   To exit the code, step to the
      beginning of the function. Then the
      Debug Run buttons of Datatool
      would become enabled again.
PN 553-405-50 Rev - August 2002                J750 Programming - V3.4   Custom Coding - 53
          J750 Test System
                                  This slide is blank
PN 553-405-50 Rev - August 2002    J750 Programming - V3.4   Custom Coding - 54
          J750 Test System
                                  J750 Programming
                                        V3.40
                                     Training Manual
                                        Module 9
                                     Custom Coding
                                         Review
PN 553-405-50 Rev - August 2002        J750 Programming - V3.4   Custom Coding - 55
          J750 Test System
                                    Custom Coding: Review/Exercise
           1. Identify and describe the three typical Visual Basic Editor display windows.
            - Project Explorer Window - used to display three key IG-XL folders: DataTool (for DataTool
               code), Template (a subsystem of all IG-XL template code) and VBAProjects (user test
               program workbook).
            - Code Window - is used to display existing code (template code) and used to create new
            code        such as interpose functions.
            - Immediate Window - The Immediate window of the Visual Basic Editor may be used to enter
               and execute Visual Basic code in real-time
           2. List and describe the components of the Visual Basic for Test programmers
              interface model.
            - the VBT model has two main components, Hardware (TheHdw) which is made of two J750
                        subsystems: Digital and Instruments (PPMU, BPMU, DPS, Pin Levels, MTO, CTO,
            Utility               Bits etc); and the second component being the tester executive
            (operating system)                 functions.
PN 553-405-50 Rev - August 2002                J750 Programming - V3.4                             Custom Coding - 56
          J750 Test System
                                     Custom Coding: Review/Exercise
           3. Describe the purpose of the Instruments and Digital components of TheHdw object
              and describe the function of their properties and methods.
            - TheHdw object provides J750 hardware access at the highest level, while the properties and
               methods are objects that correspond to the J750 instruments and digital subsystems.
               Properties are named attributes of the object, while a method is a procedure that can act
            on          the object.
           4. Describe the primary purpose for using the Visual Basic “With” construct.
            - the With construct can simplify programming since the <object-path> will be applied to all
                relative reference statements in that block of code which allows the programming to focus
                          on a particular instrument or a set of pins or a parameter.
           5. Describe the purpose of the high-level object TheExec.
            - “TheExec” high level object provides access to the Test System Executive (the J750 OS)
               such as the Datalog, DataManager, Flow, RunOptions and Site objects for providing
               alternative executive functionality in the program debug process.
PN 553-405-50 Rev - August 2002                 J750 Programming - V3.4                               Custom Coding - 57
          J750 Test System
                                  This slide is blank
PN 553-405-50 Rev - August 2002    J750 Programming - V3.4   Custom Coding - 58
          J750 Test System
                                  J750 Programming
                                        V3.40
                                      Training Manual
                                         Module 9
                                      Custom Coding
                                     Lab 5 - Exercise 3
                         Go to Pages 57 to 60 in Lab Section to
                                complete Lab 5 Exercise 3
PN 553-405-50 Rev - August 2002         J750 Programming - V3.4   Custom Coding - 59
          J750 Test System
                                  This slide is blank
PN 553-405-50 Rev - August 2002    J750 Programming - V3.4   Custom Coding - 60