STIL STIL ScanStructures - Application in ATE Domains ...and Concerns…

Download Report

Transcript STIL STIL ScanStructures - Application in ATE Domains ...and Concerns…

STIL
STIL ScanStructures Application in ATE Domains
...and Concerns…
Greg Maston
Synopsys
Purpose
•
STIL ScanStructure information is being
applied at Test, with mixed reviews
•
This presentation identifies:
 the concerns
 what does work
 what is required to allow it to work
 … and when it doesn’t work…
© 2002 Synopsys, Inc. (2)
Intent of STIL ScanStructures
•
To maintain information about the internal
scan constructs of a design
•
To support accelerated-simulation
contexts by bypassing serial scan loading
© 2002 Synopsys, Inc. (3)
Caveat
As stated in the STIL spec, the
ScanStructures data was never intended
to go to test. Last sentence of the first
paragraph of clause 20:
•
The ScanStructures are not required for
translation of STIL to a tester’s format,
since the scan data is in tester ready
format.
© 2002 Synopsys, Inc. (4)
Reason to take this data to Test
•
Provide for at-tester identification of the
scancell that captured the failing situation
•
Identify scan-based failures by more than
“vector offset” information
© 2002 Synopsys, Inc. (5)
Mapping Output Failures to
ScanCells
•
Assumes a direct (or identifiable)
relationship of scan-out-measures by
Vector, to scan cell order
© 2002 Synopsys, Inc. (6)
// start Shift
ScanChain “A”
ScanCells
V# 205, so=0
main.seg1.regb_16
V# 206, so=0
main.seg1.regb_15
V# 207, so=0
main.seg1.regb_14
V# 208, so=1
main.seg1.regb_13
V# 209, so=0
main.seg1.regb_12
Scan cells
listed in
reverse
order...
STIL Requirements to support this
application
•
The EFFECTIVE SCAN START of the scan
operation must be definitively known
•
The EFFECTIVE SCAN CHAIN related to
this failure must be identified
•
The EFFECTIVE STATE of the cell at the
failure may be desired
© 2002 Synopsys, Inc. (7)
Effective Scan Start
•
The scan operation is commonly the
application of the Vectors inside a STIL
Shift block
•
But scan shifts may occur before or after
the Shift block as well, as single or
multiple Vectors (in-line expansion of the
scan operation or partial flattening of scan
data).
© 2002 Synopsys, Inc. (8)
Effective Scan Chain
Either:
•
The failing output signal is uniquely
identified in the scan chain definitions of
the design
Or:
•
The ScanChain statement must be present
in the pattern sequence before a scan
operation starts, to identify which chain(s)
are in effect for the next scan operation.
© 2002 Synopsys, Inc. (9)
Effective Scan State
•
If the "actual state of the scancell" is
desired, then it is critical that the scan
inversion data be properly and completely
represented in the ScanCell block in order
to derive the proper state.
© 2002 Synopsys, Inc. (10)
Mapping Scenarios
•
Scenario 1
 Clearly delineated scan application
 Unambiguous scan chain reference
•
Scenario 2
 Reverse the order of the clock and outputstrobe timing
•
Scenario 3
 Hidden scan
© 2002 Synopsys, Inc. (11)
Scenario 1
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_outs” { HLX { ‘20ns’ h/l/x; }}
“_clks” { P { ‘30ns’ U; ‘45ns’ D;}}
Procedures {
load_unload { WFT “TP”;
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (12)
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
Scenario 1
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_outs” { HLX { ‘20ns’ h/l/x; }}
“_clks” { P { ‘30ns’ U; ‘45ns’ D;}}
Procedures {
load_unload { WFT “TP”;
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (13)
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
1. Identify scan
Scenario 1
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_outs” { HLX { ‘20ns’ h/l/x; }}
“_clks” { P { ‘30ns’ U; ‘45ns’ D;}}
Procedures {
load_unload { WFT “TP”;
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (14)
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
1. Identify scan
2. Identify Start
Scenario 1
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_outs” { HLX { ‘20ns’ h/l/x; }}
“_clks” { P { ‘30ns’ U; ‘45ns’ D;}}
Procedures {
load_unload { WFT “TP”;
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (15)
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
1. Identify scan
2. Identify Start
3. Identify Chain
Scenario 1
// start Shift
V# 205
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
V# 206, so=1/0
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_outs” { HLX { ‘20ns’ h/l/x; }}
“_clks” { P { ‘30ns’ U; ‘45ns’ D;}}
Procedures {
load_unload { WFT “TP”;
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (16)
1. Identify scan
2. Identify Start
3. Identify Chain
4. Map Failure to cell
Scenario 2
Only change: flip the order of events
on the clock and output measures
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_clks” { P { ‘20ns’ U; ‘35ns’ D;}}
“_outs” { HLX { ‘40ns’ h/l/x; }}
Procedures {
load_unload { WFT “TP”;
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (17)
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
Scenario 2
Consequential change: add a Vector
to capture first scan output
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_clks” { P { ‘20ns’ U; ‘35ns’ D;}}
“_outs” { HLX { ‘40ns’ h/l/x; }}
Procedures {
load_unload { WFT “TP”;
V { so=#; }
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (18)
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
Scenario 2
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_clks” { P { ‘20ns’ U; ‘35ns’ D;}}
“_outs” { HLX { ‘40ns’ h/l/x; }}
Procedures {
load_unload { WFT “TP”;
V { so=#; }
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (19)
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
1. Identify scan
Scenario 2
Waveforms {
“_ins” { 10 {‘0ns’ U/D; }}
“_clks” { P { ‘20ns’ U; ‘35ns’ D;}}
“_outs” { HLX { ‘40ns’ h/l/x; }}
Procedures {
load_unload { WFT “TP”;
V { so=#; }
Shift { V { se=1; ck=P; so=#...
Pattern {
load_unload (so=HHHL...
© 2002 Synopsys, Inc. (20)
ScanStructures {
ScanChain “A” {
ScanOut so;
ScanCells ...
1. Identify scan
2. Identify Start
Note the scan
“starts” in the
cycle before
the Shift
Scenario 3: Hidden Scan
1. Got Milk ?
Procedures {
load_unload { WFT “TP”;
V { so=#; } V { so=#; } V { so=#; } V { so=#; }...
© 2002 Synopsys, Inc. (21)
Scenario 3: Hidden Scan
1. Identify scan ?
Procedures {
load_unload { WFT “TP”;
V { so=#; } V { so=#; } V { so=#; } V { so=#; }...
© 2002 Synopsys, Inc. (22)
STIL Requirements to support this
application
•
Convention to identify start of scan
operation
•
ScanStructure ScanChain definitions
uniform to this convention
•
ScanStructure ScanChain definitions
logically correct (to interpret state)
•
Use of the ScanChain statement in the
patterns if ambiguous scan references
from scan-out Signals
© 2002 Synopsys, Inc. (23)
Possible Conventions
•
Use STIL Shift statement to identify scan
•
Pass all scan data on a single argument
and define complete scanchains
•
Pass data internal to the Shift in an
argument; scan operations external to the
Shift are not seen as “scan” and
scanchain descriptions contain only the
chain-internal-to-the-Shift
© 2002 Synopsys, Inc. (24)
More Caveats for this application
•
ScanStructures are an optional construct
 Limited contexts that require this data
 Some contexts will not define this data
•
ScanStructures define a large amount of
data
 over half of a STIL test when present, for
scancell names only
© 2002 Synopsys, Inc. (25)
Caveats on the ScanChain ref stmt
•
ScanChain ref statement supports single
chain name only
•
Scope of application is identified as “next
set of statements”...
Procedures {
load_unload
ScanChain
Shift { V
ScanChain
Shift { V
© 2002 Synopsys, Inc. (26)
{ WFT “TP”;
“A”; ScanChain “B”;
{ m=0; se=1; ck=P; so1=#…}}
“C”; ScanChain “D”;
{ m=1; se=1; ck=P; so3=#…}}
Ambiguity
between
accumulation
and reset
behaviors
Final Caveat
•
•
This functionality is not diagnosis
•
•
It captured a failure
The identified scancell (most probably)
didn’t fail
Identifying the failing element requires
additional diagnostic operation
© 2002 Synopsys, Inc. (27)
Conclusion
•
STIL ScanStructures can be used at test
 Provides additional fail information
 Does not trace to causative fail
•
Additional requirements on this data:
 Uniform definition with application
 Identifying constructs if shared-IO
•
Conventions (usage model) required to
interpret this data
© 2002 Synopsys, Inc. (28)