ITC2010_STILdot4_Slides_v1.21 (see slides 14 and 17)

advertisement
STIL P1450.4:
A Standard for Test
Flow Specification
Jim O’Reilly, Ajay Khoche, Ernst Wahl, Bruce Parnas
IEEE P1450.4 Working Group
Paul Reuter, Mentor Graphics
2010 International Test Conference
Outline
• Motivation
• Scope, Key attributes
• STIL TestFlow Components
• Extensions to Existing STIL constructs
• Standard definitions
• Advanced features
• Current Status, Future Work
Motivation
• Allow generation of complete test program in
STIL
• Facilitate reuse of test program components
• Provide common base for process
automation (one dialect)
• Extend STIL use into emerging application
areas
– adaptive test
– enabling mechanisms for testcell control
Scope, Key Attributes, and
Limitations
• Scope: To provide
– Common description language for test flow
components of a test program.
– Common interface between flow, test
program components
– Flow variables – definition and use
– Binning
– Mechanisms for component reuse
Scope, Key Attributes, and
Limitations
• Key Attributes
– Alignment with Existing STIL standards
– Object Oriented Approach
– Extensibility
– Coverage for existing ATE environments
– Standard Test Method Interface
– Ease of use.
– Support for emerging test techniques.
Scope, Key attributes, and
Limitations
• Limitations (exclusions)
– Definition of Test Methods
– Multi-site Handling
– Full tester runtime support
Simple Test Program Component Diagram
STIL TestFlow
Test Program
Prober/Handler
Interfaces
Test Flow
Tests
Processing
Code
Patterns
Existing STIL
standards
Timing, DC
Setup
STIL TestFlow Components
• TestProgram
• EntryPoints
• TestBase
• TestType and FlowType
• Tests and Flows
• Bin Definitions and Bin Maps
• Extensions to Existing STIL Constructs
STIL TestFlow components, relationships
Test Program
SignalGroup
Variables
ChannelMap EntryPoints
Test Base
TestType
OR
Flow
Test
func_1
FlowType
OR
Test
HardBinDefs
Test Base
FlowNode
FunctionDefs
SoftBinDefs
BinMap
(Sub)Flow
Existing STIL Constructs
1450.0
1450.1
1450.2
1450.3
1450.6
• TestFlow components contain references to existing STIL constructs
• TestType, FlowTypes are type definitions. They MUST be instantiated
as Tests or Flows in order to be used.
STIL TestFlow Components
• TestProgram and Entry Points
– Top-level construct – one per STIL file.
– Contains the following:
•
•
•
•
•
ChannelMap
Variables
BinMap
SignalGroups (optional)
EntryPoints
– Specifies Test or Flow to execute in response to
externally-triggered events. Standard does not
specify HOW these events are triggered.
– Available events: Load, Start, Reset, WaferStart/End,
LotStart/End, User-defined.
TestBase, TestType, and FlowType
Structure
Entry
Definition
Parameters Definition
Variables Definition
PreActions
Execution
Test Execution
PostActions
Arbiter
FailActions
PassActions
Exit
STIL TestFlow Components:
TestBase
• TestBase
– Definition of all common elements of Tests
or Flows.
– Standard provides a minimum default
definition. Can be extended, but MUST
include the default definition.
– If no explicit definition provided, the default
is implicitly used.
– Parameters use keyword/value pairs.
– Paper shows detail of default definition
STIL TestFlow Components:
Types
• TestType, FlowType
– Type definitions – must be instantiated into
Tests/Flows in order to be used
– Based on TestBase, or previously-defined
Test/FlowType (inheritance)
• Key mechanism for enabling user-defined
tests/flows, and allowing component re-use
– TestType/FlowType parameters have
default values – can be overridden upon
instantiation.
– Standard provides default definitions for
FlowType, some TestTypes.
Test/FlowType
Bypass paths
Entry
P
r
e
A
c
t
i
o
n
s
Test Base
Test, Function,
or subflow
execution
Test/Flow
Type
P
o
s
t
A
c
t
i
o
n
s
A
r
b
i
t
e
r
PassActions
Exit
FailActions
• Test result chooses pass or fail actions
• Actions:
– Operations on flow variables; Binning; Flow control.
STIL TestFlow Components:
Flows, Tests
• Flows, Tests
– Named object. Instantiated from predefined
FlowType or TestType
– Executed from an EntryPoint or FlowNode
• Differences:
– Test
• Can execute Test (itself), FlowNode sequence,
or TestMethod call (FunctionDefs)
– Flow
• Can only execute FlowNodes (but those can
execute tests or complete flows)
STIL TestFlow Components: Flows
STIL Flow:
directed
graph of
FlowNodes
Test_1
Flow_1
A
B
Entry
Test_2
C
D
Test_3
E
F
• Flow nodes A and D point to the same test.
•
Exit
Test_4
Changing Test_1
affects execution at both flow nodes.
Flow nodes B, C, E, and F each point to separate tests (or
flows). Changing the test called by node B will NOT affect
execution at flow nodes C, E, or F
FlowNode
Entry
P
r
e
A
c
t
i
o
n
s
Bypass paths
Test or flow
execution
FlowNode
P
o
s
t
A
c
t
i
o
n
s
ExitPorts
A
r
b
i
t
e
r
ExitPort portlabel1
Port Actions
ExitPort portlabel2
Port Actions
ExitPort portlabelN
Port Actions
• Differences between FlowNode and Test/Flow:
• Test/Flow has only one exit path
• FlowNode can branch (more than one exit path)
• Arbiter is sequence of logical expressions.
STIL TestFlow Components: Binning
• Bin Definitions and Bin Maps
– SoftBin and HardBin definitions
– Only SoftBins are assignable (Actions blocks)
– BinMap maps SoftBins to HardBins
• SoftBins
– Group (Pass/Fail)
• Axis
– Bins
• HardBins (single axis only)
– Group (Pass/Fail)
• Bins
STIL TestFlow Components: Binning
• Bin Attributes
– Color, number, descriptive strings
– Enable flag (useful with multi-axis bin definitions)
– Retest flag (hard bins only)
STIL TestFlow Components: Binning
• Multi-Axis and Single-Axis SoftBins (syntax)
SoftBinDefs multi_axis_softbindefs {
Pass {
BinAxis ClockSpeed {
Bin "3GHz";
Multi-Axis Pass bins
Bin "2.9GHz";
Bin "2.6GHz" { Enable False; }
}
BinAxis CacheSize {
Bin "8Mb";
Bin "4Mb";
}
}
}
Fail {
Bin ContactOpens
Bin ContactShorts
Bin Functional
Bin Timing
}
Single-Axis Fail bins
{ Verbose "Opens"; }
{ Verbose "Shorts"; }
{ Verbose “Functional"; }
{ Verbose "Tight Timing"; }
STIL TestFlow Components: Binning
• Multi-Axis SoftBins (and BinMap)
3.00 GHz
2.93 GHz
2.66 GHz ClockSpeed
8Mb
1
1
3
4Mb
2
2
4
CacheSize
Hard bins (by number)
• Single-Axis SoftBins (and BinMap)
Opens
Shorts
Functional
Timing
5
5
6
7
Unnamed Axis
Extensions to Existing STIL Constructs
• Signals, Signal Groups – additional attributes
– Open, Analog
• Effect: Pattern-related setup data is ignored.
• Variables - expanded list of variable types
– Most STIL block types - Parameters, Variables.
• Exclusions: MacroDefs, Procedures, ScanStructures
– Separate namespaces for 1450.1, 1450.4
• 1450.4 allows access any 1450.1 variable (by name)
– Additional Attributes
– ReInitializeAt: Load, Reset, Start, LotStart, WaferStart,
User-defined (externally-triggered events).
– Optional Parameters with value None are ignored
– Units (Specify expected units for Compound variables)
Extensions to Existing STIL Constructs
• Variables
– Local variables for TestType, FlowType blocks
• Not visible outside block
– TestProgram variables
• Visible to all levels of hierarchy (named global blocks)
– Arrays of Variables
• Any legal STIL variable type.
• Single-dimension arrays only.
• Uninitialized, initialized (one value for all elements,
individual values per element)
• <var_name>.Size operator
– Enumerated types
Extensions to Existing STIL Constructs
• Spec block
– Spec block name now has meaning
• <spec>.<cat>.<var>.(Min | Typ | Max | Meas)
• .Meas field: read/write. All others: read-only once
defined (useful in Test/Flow Actions blocks)
– Indexing operators
• .Size, .Name, Categories[I], Variables[J]
– Expanded spec variable types (any legal STIL
data type) in addition to time_expr, dc_expr
• PatternExec
– Can include Spec block name
Standard and default Definitions
• TestBase
– Defined by standard – can be superceded by
ATE vendor or user. See paper for details
• Standard Functional Test
– Two types
• Single Parameter – PatternExec
• Multiple Parameters – elements of PatternExec
• Standard FlowType
• Should be suitable for most uses
• Additional types can be defined as needed.
Standard and default Definitions
• Default FlowNode
– Allows simpler syntax for flows if using default
– Execution is IDENTICAL
Default
FlowNode
structure
// Example which specifies the FlowNodes explicitly.
Flow mainFlow_w_explicit_flownodes {
FlowNode node1 {
TestExec testFunctional;
ExitPorts {
Port FAIL CurrentExec.failed !=0 {
failed = CurrentExec.failed;
SetBinStop CurrentExec.FailBin
}
Port PASS True { Next; }
}
}
}
// Example which relies on the default FlowNode.
Flow mainFlow_w_default_flownode {
TestExec testFunctional;
}
Advanced Features
• Inheritance
– Derive new TestTypes or FlowTypes from
existing types
• All must eventually trace back to TestBase
• Single Inheritance only.
• Parameters are cumulative
– Derived types contain all Parameters of base types
• Variables
– Base type variables not accessible.
• Actions
– If specified, REPLACE base type actions
– Each Action block handled individually
• PreActions, PostActions, Pass Actions, FailActions
Advanced Features
• Dynamic Flow Execution and Reordering
– Bypass
– Specification of next FlowNode (ExitPort
Actions)
• By sequence order (default)
– Next;
• By explicit FlowNode name
– Next <flow_node_name>;
• By name, from variable (scalar or array element)
– Next FlowSequence[ i ];
Current Status, Future Work
• Draft standard for ballot being prepared
– Expect to have draft complete, ready for ballot,
by 12/2010
– Will be forming balloting group soon.
• Anyone interested is welcome to participate
– Working group or ballot group
– Contact P1450.4 WG Chair
• Jim O’Reilly, jim_oreilly@ieee.org
– See website
• P1450.4: Extensions to STIL for Test Flow Specification
• http://grouper.ieee.org/groups/1450/dot4/index.html
Download