Purpose:
To support various interfacing needs for test generation tools (ATPG tools) and test equipments (ATE)
- Standard Test Interface Language (STIL) Standardised as IEEE 1450
- Provides data exchange between EDA tools from different vendors and ATE interfaces
- STIL is an open source language
STIL file Contents:
STIL -
- Defines the version of STIL present in the file.
- This is the first statement of any STIL file, including files opened from the Include statement.
Header -
- Contains general information about the STIL file being parsed.
- This block is optional; if present, it shall be the first statement after the STIL statement in the file.
Signals -
- Defines all primary signals under test.
SignalGroups -
- Defines collections of Signals.
- Requires reference to use if domain_name is used.
ScanStructures -
- Defines internal scan chain information.
- The ScanStructures block or blocks are optional.
- If there are multiple ScanStructures blocks, they must be named.
- The PatternBurst may contain a reference to a named ScanStructures block, and the Pattern may contain a reference to a named ScanChain inside a ScanStructures.
- These blocks shall be defined before the PatternBurst if the PatternBurst contains references; otherwise, these blocks are defined before the Pattern.
Spec -
- Defines values of variables to be applied in Timing Expressions.
- Multiple values may be assigned to variables; variable values are not resolved until the PatternExec statement.
- All Spec blocks shall precede the first Timing block definition.
Timing -
- Defines the waveforms to be applied to each signal in the test.
- Timing expressions in this block may reference variables defined in Spec blocks, but timing variables are not resolved until the PatternExec.
- Timing blocks may reference other timing blocks; those blocks shall be defined before they are referenced.
Selector -
- Selects min/typ/max/meas value of variables defined in Spec.
- Although this references variables defined in Spec blocks, variable values are not resolved until the PatternExec statement.
- This block shall precede the PatternExec block.
PatternBurst
- Defines all Patterns to be executed collectively; any operation performed on this data (such as timing assignment) is performed on all Patterns referenced in this domain.
- The domain_name_pat reference, MacroDefs reference, and Procedures reference may all be forward references.
- Any references to SignalGroups shall have those blocks defined first. This block shall precede the PatternExec block.
PatternExec -
- Resolves timing variables and waveforms to apply with pattern references from PatternBursts.
- This block binds all information into a form to be applied to patterns as they are parsed.
Procedures -
- Defines a set of test data to be used multiple times in a Pattern; at the end of each execution, the state of the test before this call is restored for the next test vector.
- Procedure data may be processed after a PatternBurst referencing this block is parsed.
MacroDefs -
- Defines a set of test data to be used multiple times in a Pattern; at the end of each execution, the state of the test at the end of macro is in force.
- Macro data cannot be processed until Patterns are processed; pattern context may affect macro processing.
Pattern -
- Defines test data.
- All references shall be complete at the point pattern data is processed.
Example STIL file:
Opensource Softwares:
1. STIL_Interpreter : https://github.com/gonsp/STIL_Interpreter
2. Semi-ATE/STIL: https://github.com/Semi-ATE/STIL
References:
- Standard Test Interface Language (STIL) - A New Language for Patterns and Waveforms by Tony Taylor
- IEEE 1450 Standard
Comments
Post a Comment