290 likes | 321 Views
This paper outlines the motivation, scope, key attributes, and components of the STIL.P1450.4 standard for test flow specification, including extensions to existing STIL constructs and advanced features. It also discusses the current status and future work of the standard.
E N D
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 Existing STIL standards Timing, DC Setup Patterns
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 Variables SignalGroup SoftBinDefs EntryPoints ChannelMap BinMap HardBinDefs OR Test Base Test Base Flow Test FlowType TestType FlowNode FunctionDefs Existing STIL Constructs OR 1450.1 1450.0 (Sub)Flow Test func_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 PostActions PreActions PassActions Test, Function, or subflow execution Entry Exit FailActions Arbiter Test/Flow Type Test Base • 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 Test_1 Flow_1 STIL Flow: directed graph of FlowNodes A B Entry Exit D C Test_2 E F Test_3 Test_4 • Flow nodes A and D point to the same test. 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 ExitPorts PostActions PreActions Bypass paths ExitPort portlabel1 Port Actions Test or flow execution Entry ExitPort portlabel2 Port Actions Arbiter ExitPort portlabelN Port Actions FlowNode • 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 { BinAxisClockSpeed { Bin "3GHz"; Bin "2.9GHz"; Bin "2.6GHz" { Enable False; } } BinAxisCacheSize { Bin "8Mb"; Bin "4Mb"; } } } Multi-Axis Pass bins Single-Axis Fail bins Fail { Bin ContactOpens { Verbose "Opens"; } Bin ContactShorts { Verbose "Shorts"; } Bin Functional { Verbose “Functional"; } Bin Timing { Verbose "Tight Timing"; } }
STIL TestFlow Components: Binning • Multi-Axis SoftBins (and BinMap) • Single-Axis SoftBins (and BinMap) Hard bins (by number) 3.00 GHz 2.93 GHz 2.66 GHz ClockSpeed 8Mb 1 1 3 4Mb 2 2 4 CacheSize Opens Shorts Functional Timing Unnamed Axis 5 5 6 7
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 // 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; } } } } Default FlowNode structure // 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