Uploaded by Peter Chang

J750 Programming Patterns Training Manual

advertisement
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 1
J750 Test System
This slide is blank
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 2
J750 Test System
Module Overview
• This module covers the concepts and activities used to create and use
Patterns in a J750 test program.
• This module contains the following sections:
Pattern Overview
Pg 5
Pattern Files
Pg 9
Pattern Tools
Pg 35
Pattern Sets and Groups
Pg 47
Pattern Debug
Pg 57
Pattern Opcodes
Pg 97
Pattern - Review
Pg 139
Pattern - Lab
Pg 37 in Lab Section
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 3
J750 Test System
This slide is blank
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 4
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
Pattern Execution - Overview
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 5
J750 Test System
Pattern Execution
• Pattern Execution is handled by the PatGen and Vector Memory blocks of the
Digital Subsystem.
• When a ‘start pattern’ step is reached in the Template body, a start signal and the
address of the first vector to execute is passed to the PatGen.
microcode
start
PatGen vector
address
Vector
timeset
Waveform
Memory
+ data
Formatter
Drive Hi/Lo
Drive On/Off
Compare On/Off
PE
expect data
Pass/Fail
HRAM
vector
results
DUT
high
Fail
Processing
low
Digital Channel 1/n
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 6
J750 Test System
Pattern Execution
• As a vector is accessed from Vector Memory,
− a Timeset address and channel data are passed to the Waveform Formatter
section.
− Microcode data is passed back to the PatGen.
• Microcode data may consist of an opcode and/or control bits:
• Opcode is used by the PatGen to determine what to do next.
• Control bits are used to enable or disable certain PatGen functions.
Microcodes
Tset Address
Channel Data
pin1…………………………………………pin 1024
(repeat, jump, etc.)
00000001
0100011110000XHLHLHL……………………….L
To
PatGen
To TimeSet
Memory
To Each Channel
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 7
J750 Test System
Pattern Execution
• Once the PatGen starts accessing vectors from Vector Memory, the process will
continue until one of the two following events occur:
− A ‘halt’ opcode is detected
− A vector failure is reported from the Fail Processing circuit
halt
PatGen
vector
address
Vector
timeset
Waveform
Memory
+ data
Formatter
Drive Hi/Lo
Drive On/Off
Compare On/Off
PE
expect data
Fail
HRAM
vector
results
high
Fail
Processing
low
Digital Channel 1/n
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 8
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
Pattern Files
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 9
J750 Test System
Pattern Files
• Vectors are loaded from binary pattern files into Vector Memory as a result of a
successful Program Validation. The pattern files have an extension of ‘.pat’.
• The binary pattern files are typically generated by compiling pattern source files
(*.atp).
• Pattern files, source and binary, may be compressed
− *.pat.gz
− *.atp.gz
• Patterns are loaded into the tester Vector Memory from binary files at Program
Validation. IG-XL will look for *.pat.gz if *.pat does not exist.
*.atp
*.atp.gz
PN 553-405-50 Rev - August 2002
Compile
*.pat
*.pat.gz
Program
Validation
J750 Programming - V3.4
Vector
Memory
Patterns - 10
J750 Test System
Pattern Source File Statements
• The following statement types are commonly included in the source file:
− pinmap
– vector
– import
– Compiler Options
– C++ Preprocessor statements
ƒ #include, #define, #ifdef, etc
• Comments may be included in pattern file
– C++ comments
ƒ // comment (to end of line)
ƒ /* comment */
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 11
J750 Test System
Pattern Source File Statements
• A Pin Map must be assigned to a pattern in order to compile.
• The ‘pinmap’ statements may be included in the source file to locate and identify the
Pin Map to be used with the pattern:
− pinmap_workbook = “ filename “
ƒ Identifies the workbook where the Pin Map is located
− pinmap_sheet = “sheetname “
ƒ Identifies the PinMap sheet to use. Used only when there are multiple PinMap
sheets in the workbook.
• This information may be supplied at compile-time instead. See Pattern Compiler
discussion later in this section.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 12
J750 Test System
Pattern Source File
• The following statements meet the minimum requirements for a pattern source file:
– import tset
ƒ A key ingredient in any vector is a timeset reference, i.e. tset name
ƒ All tset names used in the pattern must be imported
– vector
ƒ Defines the pattern and its data
import tset
time_fun, time_PHL, time_PLH;
vector ( $tset, g, dir, portA, portB
)
{
global time_start_glbv:
> time_fun
0 1
00000000 LLLLLLLL ;
> 0 1
00000000 LLLLLLLL ;
> time_PLH
0 1
11111111 HHHHHHHH ;
time_stop: halt
> time_PLH
0 1
11111111 HHHHHHHH ;
}
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 13
J750 Test System
Vector Statement
• The ‘vector’ statement is composed of
− Vector Pin List
− Vector Data
• Syntax
vector
// Vector Pin-List
( [$tset,] pin/group1[:radix][, pin/group2[:radix]][,..] )
// Vector Data
{
[label:] [opcode] > tset-name vector-data1[ vector-data2][..];
[ [label:] [opcode] > tset-name vector-data1[ vector-data2][..];
|
|
[label:] [opcode] > tset-name vector-data1[ vector-data2][..]; ]
}
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 14
J750 Test System
Vector Pin List
• Included in parentheses ‘( )’ after the ‘vector’ keyword is the Vector Pin List
( [$tset,] pin-item1[:radix][, pin-item2[:radix]][,..] )
• It contains a list of ‘pin-items’ that provides a map for the data portion of the vector
data lines that follow in the Vector Data section.
• The keyword ‘$tset’ is often included as the first entry in the Vector Pin List.
− It may appear in any position, but the first position is the most common.
− A tset name or tset number may used in the $tset position in the Vector Data line.
The use of tset names and tset numbers may not be combined in the same
pattern.
− Refer to IG-XL Help, Pattern Language Reference, Tset Data for an alternative
method to include the tset name in the vectors.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 15
J750 Test System
Vector Pin List
• Pin-item is a pin name, a pin group name, or a list of pins enclosed in parentheses and
separated by commas.
– (a1,a2,a3,a4,a5,a6,a7,a8) is same as portA for the 7408
• Each pin-item has a radix associated with it
pin-item[:radix]
• Radix is the format of the data in vector-data for the pin-item.
− Symbolic (S) is the default format - portA is the same as portA:S
• Other formats must be explicitly stated for the pin-item
X or H – hexidecimal
O – Octal
B – Binary
D – Decimal
portA:X
portA:O
portA:B
portA:D
• Example - Symbolic radix
vector
( $tset
PN 553-405-50 Rev - August 2002
g dir portA portB)
J750 Programming - V3.4
Patterns - 16
J750 Test System
Vector Data Line
• Included in braces ‘{ }’ after the Vector Pin List are the Vector Data lines.
• In a Vector Data line, the ‘right angle bracket’ character (>), also known as the ‘greater
than’ symbol, marks the beginning the vector data, as defined in the Vector Pin List.
• A semicolon (;) marks the end of a Vector Data line (one vector).
vector
{
PN 553-405-50 Rev - August 2002
( $tset
g dir portA
portB)
> time_PLH 0 1 11111111 HHHHHHHH ;
> time_PHL 0 0 LLLLLLLL 00000000 ; }
J750 Programming - V3.4
Patterns - 17
J750 Test System
Vector Data Line
• There are two optional fields to the left of ‘>’ in a Vector Data Line:
− Label
− Microcode
• A label is a string of characters terminated by a colon (:) . If present, it is the first field
of a Vector Data line.
• The microcode field may contain an opcode and/or control bits. The last vector data
line of a pattern typically should contain a ‘halt’ or ‘end_module’ opcode.
vector
( $tset
g dir portA
portB)
{
> time_PLH 0 1 11111111 HHHHHHHH ;
time_stop: halt > time_PHL 0 0 LLLLLLLL 00000000 ; }
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 18
J750 Test System
Symbolic Vector Data Programming
• Pin-item Radix = S
• Uses the following set of characters:
– 0 Drive Data,
Driver Output = VDriveLow
– 1 Drive Data,
Driver Output = VDriveHigh
– 2 Drive Data,
Driver Output = Vph
– H Expect High,
VDUT >= VCompareHi
– L Expect Low,
VDUT <= VCompareLo
– M Expect Midband, VCompareLo <= VDUT <= VCompareHi
– V Expect Valid,
VDUT <= VCompareLo OR VDUT >= VCompareHi
– X Expect Mask
Do not test
• Channel Mode (Drive/Receive) determined by symbol choice:
– Numeric Character (0,1,2) = Drive
– Alpha Character(H,L,M,V,X) = Receive
• Example
> time_PLH 0 1 11111111 HHHHHHHH ;
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 19
J750 Test System
Numeric Vector Data Programming
• Pin-item Radix = X,H,O,B,D
− X ,H = Hexidecimal
− O = Octal
− B = Binary
− D = Decimal
• Uses only numeric characters
– 0 - 9, A - F
• Channel Mode (Drive/Receive) must be programmed
– .d = Drive
ƒ .d1010
– .r = Receive
ƒ .r1010
• Example
vector
( $tset
g dir portA:X
{
> time_PLH 0 1 .dFF
> time_PHL 0 0 .rFF
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
portB:O)
.r377 ;
.r000 ; }
Patterns - 20
J750 Test System
Pattern Source File - review
import tset
time_fun, time_PHL, time_PLH; // import tset names
vector
// Begin Vector Statement
( $tset, g, dir, portA, portB
)
// Vector Pin List
// Begin Vector Data
{
global time_start_glbv:
> time_fun
0 1
repeat
> 0 1
last
choice
> time_PLH
0 1
time_stop: halt
> time_PLH
0 1
} // End Vector Data
label
Vector-data portA
00000000
00000000
11111111
LLLLLLLL ;
LLLLLLLL ;
HHHHHHHH ;
Vector-data portB
opcode
11111111
HHHHHHHH ;
tset-name
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 21
J750 Test System
Normal Mode vs Extended Mode
• Shown below are vectors intended for an Extended Timing Mode Pattern:
> time_PHL
0 1
time_stop: halt
> time_PHL
0 0
00000000
LLLLLLLL ; // Vector n
LLLLLLLL
00000000 ; // Vector n+1
– Label , and opcode may appear on any vector line
• Shown below are vectors intended for a Normal Timing Mode Pattern:
time_stop:
> time_PHL
halt
> time_PHL
0 1
00000000
LLLLLLLL ; // VectorPair n
0 0
LLLLLLLL
00000000 ; // VectorPair n
– Vectors are paired. Must be even number of vectors in pattern.
– Label, if present, must be on first vector of pair
– Opcode, if present, must be on second vector. Applies to both vectors in pair
– Time set and channel data per vector line
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 22
J750 Test System
Compiling Pattern Files
• There are two methods for compiling source pattern files into binary:
− GUI Pattern Compiler Window
− Command statement in Command Prompt Window
• The following data is needed to compiler a source pattern file:
− Source file name
− Output file name (optional)
− Pin map workbook
− Pin map sheet name (if multiple pin maps in workbook)
− Compiler options
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 23
J750 Test System
Compiling Pattern Files
• IG-XL offers a GUI window for
compiling pattern files
• The key steps for using this
window are:
1. Open Compiler Window
2. Enter File Information
3. Select Compiler Options
4. Compile
5. Check Messages window
for error messages
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 24
J750 Test System
Open Compiler Window
• IG-XL provides a GUI interface
to the Pattern Compiler.
• Pattern Compiler may be
started from:
− Windows Start Menu
− Data Tool - IG-XL Toolbar
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 25
J750 Test System
Enter File Information
• The Files section is used for entering
input and output files information.
– By default, output filename =
“input filename.pat”
– Workbook = location of a pin
map.
– Sheet – needed if multiple pin
maps in the workbook
• This same information could be
provided by including the following
statements in the source file:
output_filename = “ “;
pin map_workbook = “ “;
pin map_sheet = “ “;
• If found in both places, compile-time
options override file statements.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 26
J750 Test System
Compiler Options
• The Compiler Options settings are used
by the Pattern Compiler to provide
direction as to how to compile the
source file(s).
• Compiler Options may be set in the
Pattern Compiler GUI window or by
statements included in the source file.
• When compiler options are set in both
places, the Pattern Compiler window
settings will override the statement
settings.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 27
J750 Test System
Compiler Options
• Radio buttons are used to set the
some of the compiler options:
− ‘Yes’ selects the option,
regardless of any statement in the
file.
− ‘No’ selects the opposite of the
option (the opposite is also the
default action), regardless of any
statement in the file.
− ‘Default’ uses whatever is
specified in the file. If the file has
no compiler control statement for
this option, the default is No.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 28
J750 Test System
Compiler Options
• The following options are set by Radio
buttons:
− Extended Mode
ƒ Yes = Extended Mode
ƒ No = Normal Mode
− SVM Only
ƒ Yes = allocate all vectors to
SVM
ƒ No = split vectors between
LVM/SVM
− Scan Parallel
ƒ Yes = Expand scan vectors into
parallel vectors
ƒ No = compile scan vectors for
scan hardware
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 29
J750 Test System
Compiler Options
• The following options are also set by
Radio buttons:
− Import Undefineds
ƒ Yes = import any undefined
subroutines labels and tset
names without giving an error
or warning. Not recommended.
ƒ No = report an error if any label
or tset name is undefined at the
end of compilation.
− Compress
ƒ Yes = compress the compiled
pattern file (*.pat.gz).
ƒ No = do not compress the
compiled pattern file (*.pat).
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 30
J750 Test System
Compiler Options
• Additional Compiler Options include:
− Max Errors – maximum # of errors
to allow before aborting compile
(default = 200).
− LVM Size – maximum # of vectors
to allow in pattern (default = 16M).
− Min Period – minimum period to be
used.
− Run Preprocessor - select this
option when C++ preprocessor
statements are included in the
source file(s).
− Save Comments - select this option
to save C++ comments as part of
the binary file.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 31
J750 Test System
Compiler Option Statements
• The pattern language supports compiler control statements for several Compiler
Options.
• If used, compiler control statements must appear in the pattern file before the vector
statement.
opcode_mode = normal | extended;
svm_only_file = no | yes;
scan_type = scan | parallel;
import_all_undefineds = no | yes;
min_period = double;
• When using the Pattern Compiler window, the statements take effect only if the
‘Default’ radio button has been selected for the respective options in the Pattern
Compiler window.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 32
J750 Test System
Compiling from Command Prompt
• The Pattern Compiler may also be started using a Command Prompt.
1. Open Command Prompt Window
2. Execute compiler (apc.exe) with options
Compiler name = apc.exe
See Help, Pattern Compiler Overview, command-line interface
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 33
J750 Test System
Reverse Compiler
• The Pattern Reverse Compiler can be
used to convert binary files back to
source files:
− Input file = *.pat
− Output file = *.atp
• See Help for more details.
• May also be executed from command
line:
– start aprc.exe <pat file>
[-switches]
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 34
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
Pattern Tool
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 35
J750 Test System
Pattern Tool – Editing Pattern Files
• This section focuses on using the Editor functions of Pattern Tool to edit
patterns from binary pattern files (*.pat) and to create new binary pattern
files.
• When editing an existing binary pattern file, the following steps are used:
1. Open Pattern Tool
2. Load Pattern File
3. Edit Vectors
4. Save File
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 36
J750 Test System
Open Pattern Tool
• Pattern Tool may be opened
independently of a test program by
using the Windows Start Menu.
• When debugging a test program,
Pattern Tool may be started using
an icon on the Data Tool – IG-XL
Tool bar.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 37
J750 Test System
Load Pattern File
• Loading binary pattern file (*.pat)
1. File -- Open
2. Select File
3. Left-click Open button
1
2
3
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 38
J750 Test System
Editing Vectors
• The Vectors worksheet in Pattern
Tool provides access to the vector
fields:
• Vector fields
– label
– PatGen microcode
– tset
– pin data
• Each field, except tset, has a
separate editor window. See next
slide.
• The tset field has a drop-down menu
listing imported tsets.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 39
J750 Test System
Editing the Label Field
1. Select label to edit by left-click in
cell.
2. Open Label Edit by left-click on
dialog box .
3. Enter Label name
4. Select Label type
– Global = label will be used
outside this file, i.e., Start and
Stop boxes in the Patterns Tab
of an Instances.
– Local = label used only in this
file.
– Start, subr, global subr. See
Help
• When using Label Edit to change a
label name, delete the old name
first. The compiler will accept
multiple labels on a single vector.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 40
J750 Test System
Editing PatGen Microcode
• The PatGen Microcode Edit
window is opened the same
way as the Label Edit:
1. Left-click in desired cell
2. Left-click on dialog box
• Editing PatGen microcode is
discussed in more detail in
the Pattern Opcode section.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 41
J750 Test System
Editing Pin Data Fields
• Pin Data Edit is opened the same
way as Label Edit and PatGen
Microcode Edit:
• When Format = Symbolic,
– Radix Options are disabled
– Symbolic States keyboard is
enabled
• When Format = Drive or Receive,
– Radix options are enabled
– Symbolic States keyboard is
disabled
• Pin Data arrows can be used to
select a specific data bit for
modification.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 42
J750 Test System
Editing Tset
• A list of available tset names may
be displayed by:
1. Left-click in tset cell
2. Left-click in arrow box
• Names in list are tset names that
have been imported to this pattern
file. See ‘import tset’ statement.
• Adding tset names may be done
using the Imports worksheet in
Pattern Tool. See next slide.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 43
J750 Test System
Imports Worksheet
•
•
To add access to another tset to the
pattern file, do the following:
1. Select Imports Tab to access
Imports worksheet.
From the Edit menu:
2. Select Edit Vector Structure
3. Insert a row into worksheet
4. Select Type = tset
5. Enter tset name in Symbol
column. Press Enter. This will
eliminate an error message.
6. Select Update Vector Structure
The new tset should now be
accessible through the drop-down list
in the Vectors worksheet.
PN 553-405-50 Rev - August 2002
2
J750 Programming - V3.4
6
3
4
5
1
Patterns - 44
J750 Test System
Saving the File
• Using Save from the File Menu will
save the Pattern Tool data back to
the original binary file.
• Use Save As to:
– Copy Pattern Tool data to a file
other than the original file
– Save new pattern data when
creating a new pattern
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 45
J750 Test System
This slide is blank
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 46
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
Pattern Sets & Pattern Groups
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 47
J750 Test System
Overview
• Pattern Sets and Pattern Groups offer alternative means of assigning
patterns to instances.
• A pattern group is a named collection of patterns that are loaded into
contiguous memory and executed as a single burst. Pattern groups are
defined on a Pattern Groups sheet.
• A pattern set is a named collection of patterns that are executed as
separate bursts. Pattern Sets may include Pattern Groups. Pattern sets
are defined on a Pattern Sets sheet.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 48
J750 Test System
Pattern Groups
• A pattern group is a list of pattern files that will be loaded in contiguous
locations in vector memory.
• When used by an instance, the pattern group will execute as single
pattern burst.
• Programming considerations:
– A pattern file listed in multiple pattern groups will be loaded multiple
times.
– Use of halt or end_module
– The last pattern in pattern group should always end in ‘halt’.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 49
J750 Test System
Pattern Group Worksheet
• There are two required fields in the Pattern Groups Worksheet:
– Group Name - name of group being created. This name cannot duplicate any
other pattern name or Pattern Set name.
– Pattern File - one or more files to be included in the group
• In this example, four pattern files are combined to create, in effect, a single pattern.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 50
J750 Test System
FullFuncPat_7408
•
•
•
Shown here are the files used to
form the Pattern Group
FullFuncPat_7408.
The last vector in the group should
have an ‘halt’ opcode. In this case,
7408_Gate2 does not end with a
‘halt’ opcode.
Creating a generic one-vector
pattern with a ‘halt’ opcode and
adding it to the group is used to
satisfy the requirement.
// 7408_Warmup.pat
Start_warmup:
>
>
end_module >
//7408_Gate1.pat
Start_gate1:
// 7408_Gate2.pat
Start_gate2:
// Last_one.pat
Last_one:
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
>
>
end_module >
>
>
end_module >
halt
>
Patterns - 51
J750 Test System
Pattern Sets
• The Pattern Sets sheet creates named lists of one or more pattern files
(.pat) and/or pattern groups to be executed by a test instance.
• The pattern loader uses the information in this sheet to identify all patterns
that are required for the test and to load them into tester memory.
• If the named pattern set refers to a number of separate .pat files, each is
loaded and treated as a separate burst. Any pattern group in the pattern
set is executed as a single burst.
• Pattern Sets may be used in any of four ways:
− Run a list of patterns
− Rename a pattern
− Run part of a pattern by using Start and Stop labels
− Declare a subroutine. Refer to Pattern Opcodes, External Subroutines
later in this module.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 52
J750 Test System
Pattern Sets Worksheet
•
•
•
There are two required fields in the Pattern Sets Worksheet:
– Pattern Set - name of Pattern Set
– File/Group Name - name of file or group being included in Set
Start Label and Stop Label may be used to specify start and stop labels within
the specified pattern
This example uses four sets of vectors from a single pattern file to produce 4
separate test results.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 53
J750 Test System
PatSet1
• This is the pattern file
referenced in PatSet1.
• All referenced labels are
global.
• In effect, PatSet1 is getting
four test patterns out of this
one pattern file.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 54
J750 Test System
Using Pattern Sets and Groups
• After Pattern Sets and Groups have
been defined, they may be selected
by a functional instance.
– Left-click on Pattern Groups and
Sets button
• The Pattern Selection window
appears:
– The Available Patterns box
displays defined Pattern Sets and
Pattern Groups.
– Left-click on desired Set(s) and/or
Group(s) and move to Selected
Patterns. Then left-click OK
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 55
J750 Test System
This slide is blank
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 56
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
Pattern Debug
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 57
J750 Test System
Trapping on a Functional Test
•
•
•
•
•
A key step in using the Functional
Debug Displays is choosing the correct
stopping point for the test flow.
It is important that the tester be setup
with the proper timing and levels.
Note: this is done in the Prebody of the
template.
It is also important that data be stored
in HRAM for use by the Debug
Displays. Note: this is done when the
pattern is executed in the Body of the
template.
If interpose functions are used, it is
also important that they are executed
Therefore, the best stopping point will
be after the Body of the Template.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 58
J750 Test System
Pattern Control Display
•
•
The Pattern Control Display lets you control and debug patterns. You can
interactively load, unload, and run patterns, monitor hardware memory usage, and
set up PatGen and HRAM features.
The Display consists of an Execution Frame which is always visible and 3 Tabs:
− Patterns
− PatGen/HRAM Setup
− Mem Usage
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 59
J750 Test System
Execution Frame
•
•
•
The top of the Pattern Control Display (above the tabs) is the Execution frame,
which controls interactive pattern execution and displays execution status.
‘Last start:’ displays the name of the last pattern ran by the PatGen.
Three additional pieces of pattern status information are shown to the right of the
buttons:
– Current status of the pattern: Stopped, Running, or in Keepalive
– The pattern fail flag: Pass or Fail
– The current cycle count
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 60
J750 Test System
Execution Frame
•
•
The ‘Site Control’ box selects the site to be displayed. During initial debug, site 0
should be the site selected.
Next to ‘Site Control’ is the site status. It is important that the site be active during
debug. If not, a pattern cannot be rerun from here. Selecting the ‘DoAll’ Run option
will prevent the device from being removed from the active list.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 61
J750 Test System
Execution Frame
• Four (4) buttons in the Execute Frame control interactive pattern execution.
• The Restart button will rerun the current pattern. See Last Start:
• The Loop button loop the pattern. This is a continuous restart.
• The Halt button will terminate the looping. However, repeated pressing of the Halt
button may be necessary. Holding down ALT + H will also stop looping and may take
effect sooner.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 62
J750 Test System
Execution Frame
• The Start button is used to select a new pattern and then run it. A list of all loaded
patterns is displayed. Select the new pattern by a left-click. Then, left-click OK. The
new pattern will now run and it is now the ‘Last Start’ pattern.
• After test flow has been stepped to the Body of the functional instance, you will need
to select the pattern for the instance and start it. Then it will be the current pattern
and you can rerun it as needed with the Restart button.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 63
J750 Test System
Patterns Tab
•
•
•
•
The Patterns tab has a window that displays the currently loaded patterns and a set
of buttons for loading, unloading, and starting patterns.
The window contains a tree control showing all the patterns and groups currently
loaded by the pattern drivers. You can use the plus and minus signs to open and
close tree elements:
You can open a group to show its member patterns.
You can open a pattern to show its exported labels.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 64
J750 Test System
Patterns Tab
•
The buttons on this tab are used after you have selected an item in the tree display
window:
– Load New - load a new file into vector memory.
– Unload - unload selected pattern from vector memory, freeing up space.
– Unload All - unload all patterns from vector memory.
– Start the pattern selected in the tree display window.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 65
J750 Test System
PatGen/HRAM Setup Tab
The PatGen (Pattern Generator)/HRAM tab includes a number of features that control
pattern execution, for the purpose of debugging or special testing needs. This tab
provides a way to view and change the setup of these features. The tab includes four
PatGen frames and two HRAM frames, described in the following slides.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 66
J750 Test System
Setup of HRAM - Overview
• HRAM (History RAM) is used to capture results of cycle (vector) executions.
• HRAM stores 256 vector results.
• HRAM data is used to generate Functional Test failure data for datalogging and by the
Pattern-related Debug Displays, i.e. Digital Waveform Display.
• Two key parameters of HRAM Setup:
– Trigger - specifies the point in the pattern where capturing is to begin.
– Capture - specifies what cycle results to capture
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 67
J750 Test System
Trigger Frame
• Trigger is used to specify the point in
the pattern where capturing is to begin.
• The ‘On’ box is used to select the cycle
type on which to start capturing. There
are three (3) options in a drop-down
list:
– Cycle - start on first cycle of pattern
– Fail - start on first failing cycle
– STV - start on first cycle marked as
‘stv’
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 68
J750 Test System
Trigger Frame
• The ‘Arm On’ box specifies a delay for the
trigger (as defined in the ‘On’ box). There
are two options:
– First Cycle - do not delay. Trigger is
defined solely by Trigger frame.
– PatGen Event - trigger on first cycle,
that meets PatGen Event criteria after
the ‘On’ event, i.e., if On = Cycle, then
trigger on the first cycle after cycle 1
that meets PatGen Event criteria.
The trigger definition will be the
combined data from Trigger and
PatGen Event frames.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 69
J750 Test System
Trigger Frame
• The Pretrigger box is used to specify
a number of cycles prior to the trigger
to be captured by HRAM. For
example, when triggering on first fail, it
might be desired to see the cycle(s)
prior to the failing vector.
• The checkbox ‘Stop on full’ is used to
inhibit overwriting of HRAM when it
fills up and more vectors are still being
executed. Checking this box is
usually a good idea.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 70
J750 Test System
Capture Frame
•
•
The Capture frame is used to
specify what to capture after the
trigger event occurs.
Capture What box - four (4) options:
– Capture All - capture all
vectors, from trigger point
– Fails - capture only failing
vectors, from trigger
– STV - capture only vectors
marked as ‘stv,’ from trigger
– Fails + STV - capture failing
vectors and vectors marked at
‘stv’, from trigger
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 71
J750 Test System
Capture Frame
• Size - may be used to limit number of
vectors stored in HRAM. Can reduce
run time when only a limited number
of vector results are needed. Size =
0, in effect, means use all locations.
• Compress repeats:
– If checked, the results from only
the last cycle in a repeat will be
stored in HRAM. If not checked,
all vectors in the repeat will be
stored.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 72
J750 Test System
Capture Frame
• Capture keepalive - capture keepalive
vectors. See Help for more details.
• Loop Select – Four choices - Repeat, LoopA,
LoopB, LoopC.
– Only one loop counter or the repeat
counter can be used in PatGen
Event. See following slides.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 73
J750 Test System
PatGen Event Frame
• The PatGen Event is used to define
cycles to be used to trigger HRAM
capture or to generate Sync Pulses.
This discussion focuses on triggering
HRAM. See Help for details on Sync
generation.
• With On = Cycle, Arm On = PatGen
Event, there are three (3) ways to
define the triggering cycles:
D Cycle Number
D Vector Label
D Loop/Repeat Count
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 74
J750 Test System
PatGen Event Frame
• With On = Cycle, Arm On = PatGen
Event,
− D Cycle Number
• Cycle Number = 4
– HRAM will trigger on Cycle
Number 4
• With On = Cycle, Arm On = PatGen
Event,
− D Vector Label
• Vector Label = Fred, Pattern =
ti245_time.pat, Offset = 2
– HRAM will trigger on
second cycle after Fred in
ti245_time.pat
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 75
J750 Test System
PatGen Event Frame
• With On = Cycle, Arm On = PatGen
Event,
− D Loop/Repeat Count
• Loop/Repeat = 9, Loop Select
= Repeat
– HRAM will trigger when
Repeat counter = 9
• Loop/Repeat = 9, Loop Select
= LoopA
– HRAM will trigger when
LoopA counter = 9
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 76
J750 Test System
Pattern Control Frame
• The Pattern Control frame of
PatGen/HRAM Setup has features that
directly affect pattern execution:
• Halt/Continue On Fail - this item
selects the condition on which pattern
execution will halt.
• Timeout - number of seconds to wait
for a ‘halt’.
• Cond Call - used to set the ‘ccall’
parameter.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 77
J750 Test System
Pattern Control Frame
• Halt/Continue On Fail - this item
selects the condition on which pattern
execution will halt. There are three (3)
options.
– Halt on Fail - halt on first failure.
This is normal.
– Continue on Fail - ignore failure,
and force execution until a ‘halt’
opcode. This allows HRAM to
collect more data.
– Halt on Fail After Cycle Event unconditionally halt on the cycle
number specified in the Cycle
Number item in the Event frame of
this tab. If you select this option,
the halt-on-cycle occurs even if you
haven't checked the Cycle Number
checkbox.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 78
J750 Test System
Pattern Control Frame
• Timeout - number of seconds to wait
for a ‘halt’. Pattern execution will abort
and a runtime error message will be
generated, if the timeout value is
reached before a halt is executed.
• Cond Call - this box can be used to
interactively set the ‘ccall’ parameter.
There are two options:
– Ccall is Nop
– Ccall is Call
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 79
J750 Test System
Pattern Control Frame
• If Halt on Cycle is checked, an
unconditional halt will be generated
when the pattern reaches the cycle
specified in Cycle Number in PatGen
Event.
• If Mask Til Cycle is checked, all
vectors are masked until the cycle
specified in Cycle Number of PatGen
Event. This option may be used to
force the pattern to run past failing
cycles.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 80
J750 Test System
Pattern Control Frame
• If Mask Invert is checked, the sense
of the mask pattern control bit is
inverted. Cycles that would normally
be masked are not, and vice versa.
• Global Label: This item sets the
global label to be the specified label
and pattern. The selected point is
available to pattern microcode as an
argument to the set_glo, jump_glo,
and call_glo opcodes. Note that the
label must be declared "global" or
"global subr."
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 81
J750 Test System
CPU Flags Frame
• This frame displays and sets the CPU
flags that are used for communication
with the pattern
• The state of the flags may set or reset
interactively by clicking on the
respective boxes
− D = set
– blank = reset
• Changes take place immediately. The
‘Apply’ button need not be clicked.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
D
Patterns - 82
J750 Test System
CPU Flags Frame
• A call to the PatFlagFunc interpose
function, specified in the Functional
Instance, may be initiated interactively
from this frame.
− D Match Enable - ‘Match True’,
‘Match False’ and ‘No Match’
boxes are enabled
− Define condition for call by
selecting any combination of the
Match boxes. At least one ‘Match
True’ or ‘Match False’ box must be
selected.
− Run Pattern
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 83
J750 Test System
Sync Frame
• This frame lets you enable a sync
pulse on a specified digital channel. It
is best to select an unused channel.
• The sync pulse is a drive-high signal
synchronized with a pattern. It is
typically used during debug to provide
a reference point when examining
waveforms.
• Sync pulse generation is enabled by
Sync on Patgen Event D. The
specified channel will then be
programmed to generate the sync
pulse.
• Run the pattern. The sync pulse will
be generated whenever the event
defined in the PatGen Event Frame
occurs.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 84
J750 Test System
Mem Usage Tab
• A table displays usage for the
• The Mem Usage Tab displays the
contents of the physical vector memory
(LVM or SVM). Which memory is
displayed may be selected by using the
Select Memory button. This example
is displaying LVM memory.
PN 553-405-50 Rev - August 2002
currently selected memory. It has
these columns:
– Start
– Size
– Name
– What
J750 Programming - V3.4
Patterns - 85
J750 Test System
Mem Usage Table
• Start - Absolute starting address of the block.
• Size - Size of the block, in tester memory locations.
• Name - the name of the pattern or group using the memory; or “(free)” for unused blocks.
• What - The type of data loaded. See next slide.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 86
J750 Test System
Mem Usage Table - What Column
•
•
If the currently selected memory is SVM, this value is “svm”.
If the currently selected memory is LVM, the possible values are:
– lvm
LVM pattern data
– lvmsvm
SVM data loaded in LVM for possible later download to SVM
– lvmscan
Scan data
– lvmsets
Timing or levels information stored in LVM for later download
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 87
J750 Test System
Digital Waveform Display
• Displays digital waveform for patterns. The waveform display shows the
effect of timing and format, and assists in determining why failures
occurred.
• Displays two kinds of waveforms:
– Programmed Waveforms: Waveforms are based on HRAM data
obtained from a pattern burst, plus timing and levels data obtained
from the tester.
– Actual Mode: Actual tester waveforms are generated by repeatedly
rebursting the pattern while altering the timing and levels for the
channels being measured, and examining HRAM to get results.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 88
J750 Test System
Displaying Programmed Waveforms
• The following steps are used when displaying programmed waveforms
with the Digital Waveform Display:
1. Trap on a Functional Test
2. Open Digital Waveform Display
3. Select Pins to display
4. Draw Waveforms
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 89
J750 Test System
Open Digital Waveform Display
• Display the IG-XL Display Manager
window
• Left-click ‘Digital Waveform Display’ in
the Display List
• Left-click Start/Show button
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 90
J750 Test System
Selecting Pins - Programmed Mode
• Left-click ‘Select Pins…’ in the
Programmed Waveforms Tab
• Move pins from ‘Available Pins’ box
to ‘Pins in use’ box
– Left-click on pin name to select
individual pin
• Ctrl + Left-click and Shift +
Left-click can be used to
select multiple pins before
move
– Left-click on ‘>’ Button. Selected
pin(s) will be moved to ‘Pins in
use’.
• Left-Click OK to close Select Pins
Window
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 91
J750 Test System
Draw Programmed Waveforms
•
Prior to drawing the
programmed waveforms for
the selected pins, the number
of cycles to be displayed needs
to selected. The number may
entered directly or from a dropdown list.
•
The Start Offset value
determines where the Display
will start displaying cycles relative to the HRAM data.
•
Left-click on the Refresh button
to display the waveforms.
PN 553-405-50 Rev - August 2002
In this example, the HRAM began collecting data
beginning with cycle 1. An Offset = 1 and Cycles = 7
means that the waveforms are displayed starting with
cycle 2 and ending with cycle 8.
J750 Programming - V3.4
Patterns - 92
J750 Test System
Displaying Actual Waveforms
• The following steps are used when displaying actual DUT pin output waveforms
with the Digital Waveform Display:
1. Select Actual Mode Tab
2. Select Pins.
3. Set Start Cycle and End Cycle
4. Draw Waveforms
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 93
J750 Test System
Select Pins - Actual Mode
• By default, the pins selected for
Programmed Waveforms will be
selected for the Actual Mode.
• To modify the selection,
1. Left-click Select Pins button
(Actual Mode Tab)
2. Move unwanted pins from
‘Pins in use’ box to ‘Available
Pins’ box.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 94
J750 Test System
Draw Actual Waveforms
• Prior to drawing actual waveforms, it is
important to select the cycles to
display:
– Start Cycle
– Stop Cycle
• The numbers entered in these boxes
are limited to the currently displayed
cycles.
• In this example, actual waveforms are
drawn in cycles 3 - 7.
• Actual waveforms may be drawn for
input pins as well as output pins.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 95
J750 Test System
This slide is blank
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 96
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
Pattern Opcodes
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 97
J750 Test System
Pattern Microcode
• PatGen microcode is a field in every vector stored in vector memory.
• PatGen microcode is directed to the PatGen as a vector is being processed.
• Microcode = opcodes and control bits:
– Opcode controls the flow of execution within the pattern file
– Control bits modify the execution of the specific vector on which they appear: for
example, mask failure on this vector, or inhibit fail count on this vector.
microcode
PatGen
LVM
Vector
Memory
Timeset +
data
SVM
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 98
J750 Test System
LVM and SVM
• Vector Memory is divided into two sections:
− LVM (Large Vector Memory)
• Stores up to 16 Million Vectors (Licensable)
− SVM (Subroutine Vector Memory)
• Stores 1024 vectors
microcode
PatGen
LVM
Timeset +
data
16M
(max)
SVM
1K
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 99
J750 Test System
LVM and SVM
• Pattern compiler automatically optimizes the LVM/SVM split.
• Vectors stored in LVM will have a limited set of opcodes, i.e., flow control is
sequential.
• Vectors stored in SVM may use all pattern opcodes and control bits.
• At times, there may issues with this optimization, i.e. large pattern files. Guidelines
for minimizing SVM usage are discussed later in this section.
microcode
PatGen
LVM
Timeset +
data
16M
(max)
SVM
1K
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 100
J750 Test System
Opcodes and Control Bits
• A complete list of opcodes and control bits is available through IG-XL
Help, Pattern Language Reference.
• This section will focus on the common opcodes and control bits.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 101
J750 Test System
NOP / halt / end_module
• Any vector with a blank opcode is
Start_here:
selecting the NOP opcode:
– NOP = increment PC (program
counter) to next vector
• The halt opcode will stop the PatGen.
No more vectors will be accessed until
another pattern is started.
• The end_module opcode acts like the
halt opcode if this pattern is a standalone pattern, i.e., not part of a pattern
group. If this pattern is part of a
pattern group, then this opcode acts
like a NOP opcode. See Pattern
Groups.
>
>
>
Stop_here: halt
>
Start_here:
>
>
>
>
Stop_here: end_module
PN 553-405-50 Rev - August 2002
>
J750 Programming - V3.4
>
Patterns - 102
J750 Test System
repeat / mrepeat
• The repeat opcode allows a single
vector to be repeated N times
– N = 2 to 65536
– Saves vector memory because
vector is stored only once
• The mrepeat opcode also allows a
single vector to be repeated N times
– N maybe modified through
program code.
– Using this opcode does affect
LVM/SVM optimization.
• Use repeat unless mrepeat is
absolutely necessary
• See Help for details
PN 553-405-50 Rev - August 2002
Start_here:
>
>
repeat 100
>
>
mrepeat 200 >
>
Stop_here:
J750 Programming - V3.4
halt
>
Patterns - 103
J750 Test System
Branching
• Branch opcodes cause the PatGen to
go to a vector other than the next
sequential vector.
• The jump opcode will cause flow
control to go to the label specified.
• The ‘jump_glo’ opcode is used to
direct execution control to a vector
whose address is stored in the ‘global’
register. The vector address should
have been placed in the global
register by a ‘set_glo label’ opcode.
jump Fred
>
>
Fred:
>
set_glo Fred1
>
jump_glo
>
>
>
Fred1:
PN 553-405-50 Rev - August 2002
>
J750 Programming - V3.4
>
Patterns - 104
J750 Test System
Labels
• A vector label is a string of
characters terminated by a colon ( : ).
• When present, a label is the first field
of a Vector Data Line.
• Labels may be local or global:
− A local label may only be
referenced by its own pattern.
‘Label2’ is a local label
− A global label may be referenced
outside its own pattern. Must be
declared using the keyword
‘global’. ‘Label1’ is a global
label.
• In the pattern file(s) where a global
label is referenced, the label name
must be imported with an ‘import
label’ statement
PN 553-405-50 Rev - August 2002
// Pat1.pat
global Label1:
Label2:
>
>
>
>
// Pat2.pat
import label Label1;
vector ($tset, In, Out )
{
>
jump Label1
>
:
}
J750 Programming - V3.4
Patterns - 105
J750 Test System
Branching - Conditions
• Branching opcodes may be set up for conditional execution.
• For conditional execution, a set of condition flags are available for testing with the
‘if’ opcode.
– if (condition) then action
• condition = a flag state or combination of flag states
• action = one of the execution control opcodes, i.e., jump, jump_glo
– Additional execution control opcodes will be presented later
• There a two sets of flags
– System flags
– CPU flags
• During a pattern burst, the pattern generator monitors the flags. If one of the flags
occurs, the corresponding condition latch is set. It remains set until it is cleared by
the pattern microcode or until another pattern start is executed. Clearing flags is
covered later.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 106
J750 Test System
Conditions - Flags
• System flags are set by the tester based on vector results:
– fail - set by PatGen when a vector fails during a pattern burst
– pass - not a separate flag. The inverse of fail. Cannot be cleared.
– fail is automatically cleared when a ‘pattern start’ is executed or may be
cleared by pattern opcodes.
• CPU flags can be set or read by opcodes in the pattern file and by code included
in the test program
– cpuA, cpuB, cpuC, cpuD
– See Help, Visual Basic for Test, for details about using program code to set
the CPU flags.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 107
J750 Test System
Conditions - Flags
•
•
The following flags can be used as
conditions in an ‘if’ statement :
– if (fail)
– if (pass)
– if (cpuA)
– if (!cpuA)
– if (ext)
– if (!ext)
if (cpuA) jump Fred >
>
>
Fred:
set_glo Fred1
>
if (!cpuA)jump_glo >
Use of the ‘enable’ opcode is
required to use the remaining flags
or for any combinations of flags
>
>
Fred1:
PN 553-405-50 Rev - August 2002
>
J750 Programming - V3.4
>
Patterns - 108
J750 Test System
Assigning Conditions to ‘Flag’
•
•
•
•
•
The ‘enable’ opcode and the ‘flag’
keyword are needed to use cpuB,
cpuC, cpuD or a combination of
any flags as the condition for an ‘if’
opcode.
The ‘enable’ opcode assigns a set
of condition(s) to ‘flag’
When you use the ‘if (flag)’
statement, the ‘flag’ keyword
means the condition that was set
up by the most recently executed
enable statement.
New condition assignments may
be made to ‘flag’ by subsequent
uses of the ‘enable’ opcode.
The ‘enable (none)’ statement
clears all enabled conditions
without assigning new ones.
PN 553-405-50 Rev - August 2002
enable (cpuB)
if (flag) jump Fred
>
>
>
Fred: enable (fail or cpuA)>
set_glo Fred1
>
if (flag) jump_glo
>
>
>
Fred1: enable (none)
J750 Programming - V3.4
>
Patterns - 109
J750 Test System
Clearing Flag Latches
•
•
Once a system flag’s or user flag’s
condition latch has been set and
used in an ‘if’, the latch may need to
be reset before continuing with the
pattern.
To clear a latched flag within the
pattern
– The ‘clr_cond’ control bit may
be asserted on any vector that
has an ‘if’ opcode. ‘clr_cond’ will
clear the flags that the ‘if’ tests, if
the condition is true.
– The ‘clr_flag (flag-list)’ opcode
will clear the specified flags
unconditionally.
PN 553-405-50 Rev - August 2002
if (fail) jump Fred,
clr_cond
>
>
>
Fred: enable (fail or cpuA)>
set_glo Fred1
>
if (flag) jump_glo
>
>
>
Fred1: clr_flag(cpuA)
J750 Programming - V3.4
>
Patterns - 110
J750 Test System
Clearing Flag Latches
•
•
•
•
It is common to set a vector to branch
to itself. This seems to set an infinite
loop.
Usually this loop is waiting for some
external event to occur
– PatFlagFunc interpose function
call in a Functional Template
– Dynamic Icc measurement by a
Power Supply Template
If the loop is being used as a ‘scope’
loop, then the flags may be cleared
using a pattern-oriented Debug
Display, ‘Pattern Control Display’.
Refer to the Pattern Debug section of
this module.
Visual Basic code may also be used to
clear flag latches. Refer to Module 9,
Custom Coding.
PN 553-405-50 Rev - August 2002
Ex1:
set_cpu (cpuA)
>
Fred: if (cpuA) jump Fred
>
J750 Programming - V3.4
>
>
Patterns - 111
J750 Test System
Using Pattern Opcodes for Dynamic Icc Testing
• In dynamic Icc testing, the power supply current is tested while the DUT is
performing some operation(s). As a result, a pattern will be needed.
• In the pattern, a loop will be created. This will represent the point at which the
measurement should take place.
• The loop is commonly controlled by a CPU Flag.
• There may be multiple measurement points for a given test event.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 112
J750 Test System
Dynamic Icc Pattern
• This pattern will be used as a
•
•
•
•
•
HoldState pattern by a Power Supply
Instance
In this pattern, there are two
measurement points:
– measure IccH (vector 1)
– measure IccL (vector 3)
Vector 0, set cpuA = true
Vector 1, loop on this vector until cpuA
= false. cpuA will be set to false by
the template code after the
measurement is made.
Vector 2, set cpuA = true again
Vector 3, loop on this vector until cpuA
= false. See above
PN 553-405-50 Rev - August 2002
//7408_IccPat.pat
Icc_start:
set_cpu (cpuA)
>
IccH: if (cpuA) jump IccH
>
set_cpu (cpuA)
>
IccL: if (cpuA) jump IccL
>
J750 Programming - V3.4
halt
>
Patterns - 113
J750 Test System
Dynamic Icc Instance
• In the instance, the pattern should be
entered as the HoldStatePat.
• The cpuA flag = True should be
selected as the WaitFlag. This
indicates that the measurement is
triggered when cpuA = true.
• Because there are multiple
measurement points, Resume Pat
should be set to Yes. As a result,
after a measurement is made, the
CPU flag will be toggled. This will
force the pattern out of the loop and
go to the next vector. If Resume Pat
= no, the template code will terminate
the pattern after the measurement is
made.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 114
J750 Test System
Dynamic Icc Instance
• For multiple measurements within a
pattern, set Test Control =
Pattern\Flag-multiple tests.
• The Item Index counter, Add and
Delete buttons become active. This
allows the creation of multiple sets of
values (items) for the following fields:
– HiLimit
– LoLimit
– Settling Time
• Use the Add Button to add a new set
and then enter the values as needed.
One set (item) per measurement will
be needed. Item 0 is used with
measurement #1, etc.
• Maximum Index indicates the index
number of the last created set>
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 115
J750 Test System
Using Flags to trigger an Interpose Function
• The CPU flags, used in conjunction
with the PatFlagFunc Tab in a
Functional Instance, enables a pattern
to call an interpose function at given
points in the pattern.
• The calling condition is determined by
the WaitFlags.
• When the interpose function is called,
the flag(s) used to trigger the call will
be toggled to their opposite states.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 116
J750 Test System
Loops
• A loop is a common technique that is used when a given set of vectors needs to be
executed multiple times
• The ‘loop’ opcodes provide a means of setting up a loop that executes N number times
• There are three (3) loop choices in the J750 Pattern Language:
– LoopA - uses a 4 level counter stack (counterA stack) to control looping. Permits
nesting up to 4 levels.
– LoopB - uses a single counter
– LoopC - uses a single counter
• The following sequence will be used to create a loop in a pattern:
– Set loopcounter to desired count
– At the end of the loop, decrement the counter and branch if not equal to zero
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 117
J750 Test System
Loops - setting loop counter
• Setting the loopcounter may be done
with two opcodes:
– set_loopA/B/C,
– loopA/B/C
• Both opcodes will push the count value
into the loopcounter. Count value = 1 …
65536
• The ‘set_loop’ opcode sets the
loopcounter on each execution of its
vector. Do not include the vector with
the ‘set_loop’ opcode in the loop.
• When the vector with a ‘loop’ opcode is
the target of an ‘end_loop’ opcode, the
loopcounter is not set to count value.
Because of this, the vector with the ‘loop’
opcode may be included in the loop.
PN 553-405-50 Rev - August 2002
set_loopB 10
Loop1:
>
>
end_loopB Loop1 >
Loop2: loopC 20
J750 Programming - V3.4
>
>
end_loopC Loop2 >
Patterns - 118
J750 Test System
Loops - end of loop
• The ‘end_loop’ opcode is used with
both the ‘loop’ and ‘set_loop’
opcodes to mark the end of the loop.
set_loopB 10
Loop1:
>
end_loopB Loop1 >
– endloopA/B/C
Loop2: loopC 20
• At this point, the designated counter is
decremented and the contents of the
counter is checked. If the counter is
not equal to zero, then branch back to
label. If the counter is equal to zero,
then go to next vector.
PN 553-405-50 Rev - August 2002
>
J750 Programming - V3.4
>
>
end_loopC Loop2 >
Patterns - 119
J750 Test System
Nested Loops
• The LoopA structure uses a 4 level
stack to keep up with the nested loop
counts.
• In this example, the loopcount of 10 is
loaded into the top level of the stack at
vector 1.
Loop1: loopA 10
> // 1
> // 2
Loop2: loopA 5
> // 3
> // 4
end_loopA Loop2 > // 5
10
> // 6
end_loopA Loop1 > // 7
• At vector 3, the contents of the top
level are forced down to next level and
5 is placed on the top level.
5
10
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 120
J750 Test System
Nested Loops
• The ‘end_loopA’ opcode will always
decrement the top level. See vector
5. Top Level now = 4. Therefore,
control will go back to vector 3.
Loop1: loopA 10
> // 1
> // 2
Loop2: loopA 5
> // 3
4
> // 4
10
end_loopA Loop2 > // 5
> // 6
• When the top level decrements to 0,
control goes to vector 6 and the next
level (= 10) of the stack is moved up
to the top level.
end_loopA Loop1 > // 7
10
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 121
J750 Test System
Nested Loops
•
The next execution of ‘end_loopA’
(vector 7) will decrement the value in
the top level. Control goes to vector
1.
Loop1: loopA 10
> // 1
> // 2
Loop2: loopA 5
> // 3
9
> // 4
end_loopA Loop2 > // 5
> // 6
•
At vector 3, ‘loopA 5’, pushes the top
level value down and sets top level to
5.
5
end_loopA Loop1 > // 7
9
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 122
J750 Test System
Nested Loops
• The ‘exit_loop’ opcode provides the
opportunity to exit from a loop before
the loopcounter equals zero.
– If used in a LoopA, pops LoopA
stack before branching
– Typically used with a condition.
• At vector 5, if cpuA is true, the top
value on the loopA stack is popped
off, and the next vector to be executed
will be at Fred.
• It is good programming practice to
avoid premature exits unless
absolutely necessary.
PN 553-405-50 Rev - August 2002
Loop1: loopA 10
> // 1
> // 2
Loop2: loopA 5
> // 3
> // 4
if (cpuA) exit_loop
Fred
> // 5
end_loopA Loop2 > // 6
Fred:
J750 Programming - V3.4
> // 7
end_loopA Loop1 > // 8
Patterns - 123
J750 Test System
Loops - other opcodes
• When a premature exit from a
nested loop is initiated by an
opcode other than ‘exit_loop’, the
LoopA stack still has the count
value in its top level.
• The ‘pop_loop’ opcode should be
used to clean up the stack by
removing this value from the top of
the loopA stack.
• See Help, using Loop opcodes, for
more details on looping.
Loop1: loopA 10
> // 1
> // 2
Loop2: loopA 5
> // 3
> // 4
if (cpuA) jump Fred
> // 5
end_loopA Loop2 > // 6
Fred:
pop_loop
> // 7
end_loopA Loop1 > // 8
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 124
J750 Test System
Subroutines
• A subroutine is a set of vectors introduced by a label declared as subr or
•
•
•
•
global subr.
A subroutine is typically used because a specific set of vectors is being used in
multiple locations.
Using a call mechanism allows the subroutine to be accessed from various
locations in patterns while being stored in vector memory only once.
When a subroutine is called, execution control transfers to the first vector in the
subroutine. When the subroutine is ‘finished’, execution control is passed back to
the vector after the ‘call’ vector.
The subroutine call mechanism is controlled by a subroutine stack. The subroutine
stack has a maximum of 8 levels.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 125
J750 Test System
Subroutines
•
The steps for using subroutines are:
1. Create the vectors that make up the subroutine.
2. Mark the beginning of the vectors with a subroutine-type label using the ‘subr’
or ‘global subr’ label prefix.
3. Mark the exit point(s) of the subroutine with ‘return’ opcode(s)
4. Insert calls of the subroutine at desired points (vectors) in pattern(.s)
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 126
J750 Test System
Creating Subroutine Vectors
• If subroutines and non-subroutine
vectors are contained in the same
pattern file, the subroutines must be
at the end of the file, after all nonsubroutine vectors.
• If a subroutine is created in one
pattern file and called in another
pattern file, then the subroutine label
must be imported to the calling file.
See Help, Import Labels
>
call sub1
>
>
call sub1
>
>
halt
>
subr sub1:
>
>
return
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
>
Patterns - 127
J750 Test System
Marking Subroutine Vectors
• The beginning vector of a subroutine
must be labeled with a subroutinetype label
• If the subroutine is accessed from its
creation file only:
– subr labelname
• If the subroutine is to be accessed
from outside its creation file:
– global subr labelname
>
halt
>
subr sub1:
>
>
return
>
global subr sub2:
>
>
return
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
>
Patterns - 128
J750 Test System
Subroutine Exit Points
• An exit from a subroutine is initiated
by the ‘return’ opcode
• The address of the next vector to
execute is popped off the subroutine
stack.
• Under normal circumstances, this
will be the address of the vector
after the vector that called the
subroutine. See next slide.
>
halt
>
subr sub1:
>
>
return
>
global subr sub2:
>
>
return
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
>
Patterns - 129
J750 Test System
Calling Subroutines
• Subroutines may be called using one
of the following:
– call label
– ccall label
label = first vector in subroutine
– call_glo
• The ‘call’ opcodes will cause the
address of the vector following the
‘call’ to be stored in top level of
subroutine stack. Any values in
subroutine stack are pushed down
one level
• ‘ccall’ opcode is similar to ‘call’
– May execute as a NOP based on
setting of a ‘ccall property’
– Property is set using program
code = ccall or nop.
• The ‘call’ opcodes may be used with
an ‘if’ opcode
PN 553-405-50 Rev - August 2002
>
call sub1
>
>
set_glo sub1
>
>
if (fail) call_glo >
>
halt
sub1:
J750 Programming - V3.4
>
>
>
return
>
Patterns - 130
J750 Test System
External Subroutines
• An external subroutine is a subroutine whose vectors are in one file and are called
•
•
•
•
from other pattern files.
The label on the first vector of the subroutine must be type ‘global subr’
global subr fred:
> --------- ---- ------------ --- ;
If the subroutine is in its own stand-alone file, it must be loaded into vector memory as
part of a Pattern Set or Pattern Group.
The file should be listed as the last member(s) of the Group / Set.
In the Pattern Set Sheet, the keyword ‘subr’ must be entered into the ‘Start Label’
column. This prevents the pattern file from executing as a separate burst.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 131
J750 Test System
Control Bits
• The control bits do not take arguments or depend on conditions.
• There can be more than one of the control bits per vector (subject to the restrictions
•
•
•
•
•
on normal mode – note that ‘mask’ can appear on any vector, even in normal mode).
The control bits can be combined with the execution control opcodes, except that ‘ign’
and ‘halt’ are mutually exclusive.
The following control bits are failure-related control bits (see next slide)
− ign (ignore),
− mask,
− clr_fail,
− ifc (inhibit fail count)
The ‘clr_cond’ (clear condition) bit was discussed earlier (see Clearing Flags)
The ‘stv’ (store this vector) bit is used for marking vectors to be stored when using
Store This Vector mode for HRAM capture.
The ‘icc’ (inhibit cycle count) bit is used to prevent the cycle counter from
incrementing when the vector is executed.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 132
J750 Test System
Control Bits – mask, stv
• mask - Mask failures on this vector.
Unlike other opcodes, mask can
appear on any vector, even in
normal mode.
• stv - Select vector for HRAM
collection for certain HRAM modes.
(Store This Vector.) See Help,
HRAM modes.
• Control bits may be combined with
opcodes.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 133
J750 Test System
Failure-related Control Bits
• Several of the control bits are used to specify a non-default action based on a failing
vector. See Help, Failure-related Control Bits for default actions
• A fail counter and a fail-bit in the Accumulated Fail Register (AFR) is maintained for
each pin (channel) during a pattern burst. The fail counter will increment anytime its
channel produces a fail. The fail-bit will set on a failing vector. It does not reset on
a passing vector.
– clr_fail will reset both the fail counter and fail-bit for all channels
• In the PatGen, a fail counter is incremented anytime a vector fails. This a separate
counter from the per-channel fail counter.
– ifc (inhibit fail count) will prevent the PatGen fail counter from incrementing if
this vector fails.
• For ign and mask, see next slide.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 134
J750 Test System
Failure-related Control Bits - ign and mask
• By default, when a vector fails, pattern execution halts N cycles later, where N is the
pipeline depth. The pipeline depth of the J750 is currently 34 cycles.
• The ‘ign’ and ‘mask’ bits can be used to affect the halt-on-fail result.
– When ign used on a vector, and the vector fails, the tester will not use the fail
result to stop the pattern. The fail result is still recognized and counted, i.e., fail
counters and registers are still incremented. This control bit is very useful in
match loops. Match loops are beyond the scope of this course. See Help, Notes
on Opcodes and Control Bits, Creating a Match Loop. See also,
TUG_Paper_matching in the Appendix section of the Course Notes.
– When mask is used, the vector is not tested by the Fail Processors of all
channels, therefore no fail result could be produced. No fail counters or
registers will be incremented.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 135
J750 Test System
Adding Microcode with Pattern Tool
•
•
•
•
•
•
Microcode may be added to pattern
files with the PatGen Microcode Edit
window.
Opcodes are provided by 4 tabs:
– Repeat/Loop
– Branch
– Subroutine
– Miscellaneous
Conditions, when applicable to a
selected opcode, will be selectable.
Control bits are selectable.
Boxes for non-selectable items,
Label and Number are enabled when
an opcode requires them.
As appropriate opcodes, conditions
and control bits are selected, the
microcode is built in the Microcode
box.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 136
J750 Test System
Minimizing SVM Usage
• Due to the limited size of SVM, it is possible that the number of vectors assigned
to SVM by the compiler may exceed its capacity.
• The following steps may be used to minimize the number of vectors assigned to
SVM:
− Set the min_period compiler option to its maximum possible value. If the
minimum period actually used for the pattern is 100 ns, then set min_period to
100ns instead of the default of 10ns or 20ns.
− Remove unnecessary labels
− Use the ‘mrepeat’ opcode only when necessary
− Use subroutines only when necessary
• To see how many SVM and LVM vectors are used by a given pattern,
− Use the Pattern Control Display: load the pattern (online or offline) and select
the “Mem Usage” tab.
− You can also see the number of SVM and LVM vectors used by a pattern by
typing “patinfo <pattern file name>” in a DOS window.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 137
J750 Test System
This slide is blank
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 138
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
Review
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 139
J750 Test System
This slide is blank
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 140
J750 Test System
Patterns: Review/Exercise
1. List and describe the purpose of the statement types that are used in a pattern
source file.
- Pinmap - identifies the pin names/pin groups that will be used for vector data
- Preprocessor - provides the ability to use “C” preprocessor directives like #define, #include, #if, etc.
- Compiler Control - identifies how the pattern file gets compiled.
- Import Tset or Label - provides a mechanism to reference external file timing and symbols.
- Vector - encapsulating the pattern data per pin/group, timing reference and opcode.
- Comments - “C” like syntax for documenting user text.
2. Identify and describe vector data syntax.
- vector data can be expressed as a numeric form with the radix as:
X, H = Hexadecimal; O = Octal; B = Binary; D = Decimal
numeric values could be 0-9, A-F and Channel modes = Drive (.d) or Receive (.r)
or data could be represented as Symbolic (Radix = S)
0
Drive Data = 0,
Voltage Level = VDriveLow
1
Drive Data = 1,
Voltage Level = VDriveHigh
2
Drive Data = 1,
Voltage Level = Vph
H
Expect High,
VDUT >= VCompareHi
L
Expect Low,
VDUT <= VCompareLo
M
Expect Midband,
VCompareLo <= VDUT <= VCompareHi
V
Expect Valid,
VDUT <= VCompareLo OR VDUT >= VCompareHi
X
Expect Mask
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 141
J750 Test System
Patterns: Review/Exercise
3. Describe the difference between the pattern opcode and control bits.
- Pattern opcodes - controls the flow of execution within the pattern file
- Control bits - modify the execution of the specific vector for which they appear: for example, a mask
failure, or inhibit fail count
4. List and describe the purpose of various commonly used opcodes.
- nop - increment the vector program counter to the vector
- halt - inhibits the Patgen from fetching another vector (after the halt vector is executed)
- end_module - in a stand alone pattern, it acts like a halt, in a pattern group acts like a nop.
- repeat - allows a singe vector to be repeated up to 65K times.
- call - executes a subroutine
- jump - executes a goto a specified location
- loop - executes some number of vector based on a loop count
- if (CONDITION) then (ACTION) - a conditional branch if the flag state is true then branch
(jump, call, return, exit loop, etc).
- cpuA|B|C|D - set the state of a flag (using program code) and testing the condition for a true
or false
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 142
J750 Test System
Patterns: Review/Exercise
5. List the steps for creating subroutine vectors and the considerations.
- If subroutines and non-subroutine vectors are contained in the same pattern file, the
subroutines must be at the end of the file, after all non-subroutine vectors.
If a subroutine is created in one pattern file and called in another pattern file, then the
subroutine label must be imported to the calling file.
- The beginning vector of a subroutine must be labeled with a subroutine-type label.
- Mark the exit point(s) of the subroutine with ‘return’ opcode(s).
- Insert calls of the subroutine at desired points (vectors) in pattern(s)
- Considerations are: LV/SVM Optimization; inter-pattern label references; and the use of
resume vs.. return
6. List both the pattern and instance steps involved for implementing a dynamic Icc test.
- Identify the pattern to be used and the number of measurement points and setup the cpu
flag/s in order to loop on the specified vector/s
- In the instance specify the HoldStatePat pattern, select the cpu flag should be true for the
waitflag, if there are multiple measurements set Test Control = Pattern\Flag-multiple
tests and program the limits for additional measurements
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 143
J750 Test System
Patterns: Review/Exercise
7. Describe the difference between a pattern group and a pattern set.
- A pattern group is a list of pattern files that will be loaded in contiguous locations in vector
memory.
- A Pattern Set creates named lists of pattern files (.pat) and pattern groups to be executed or
used by a test instance, all patterns that are required for the test are listed in the set and
are loaded into tester memory for execution as a set of patterns.
8. List the programming considerations needed for creating a pattern group.
- A pattern file listed in multiple pattern groups will be loaded multiple times
If a pattern is intended to run as a stand-alone pattern and included in pattern groups,
the pattern should be terminated with an ‘end_module’ opcode instead of ‘halt’. When
the pattern is executed in a group, ‘end_module’ acts a NOP. If pattern is executed as a
stand-alone pattern, ‘end_module’ acts as a ‘halt’.
The last pattern in pattern group should always end in ‘halt’. However, some patterns
may need to execute in the middle of one group and at the end of others. If that is the
case, it is recommended to create a terminator pattern consisting of a single vector with
an ‘halt’ opcode. This pattern would then be used as the last pattern in any group. A
pattern file that is included in a pattern group can reference labels only in other pattern
files within the same group.
9. Identify an advantage of using a pattern set over a pattern group or stand-alone pattern.
- Pattern Sets allow the user to start a pattern at any labeled vector in the pattern. Standalone patterns and pattern groups must always start at the first vector.
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 144
J750 Test System
J750 Programming
V3.40
Training Manual
Module 7
Patterns
Lab 4 - Exercise 1 - 4
Go to Page 37 in Lab Section to complete
Lab 4 Exercises 1 - 4
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 145
J750 Test System
This slide is blank
PN 553-405-50 Rev - August 2002
J750 Programming - V3.4
Patterns - 146
Download