1 / 28

STIL ScanStructures - Application in ATE Domains

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

donny
Download Presentation

STIL ScanStructures - Application in ATE Domains

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. STIL ScanStructures - Application in ATE Domains ...and Concerns… Greg Maston Synopsys

  2. 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…

  3. 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

  4. 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.

  5. 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

  6. Mapping Output Failures to ScanCells • Assumes a direct (or identifiable) relationship of scan-out-measures by Vector, to scan cell order ScanChain “A” // start Shift ScanCells V# 205, so=0 main.seg1.regb_16 Scan cells listed in reverse order... 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

  7. 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

  8. 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).

  9. 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.

  10. 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.

  11. Mapping Scenarios • Scenario 1 • Clearly delineated scan application • Unambiguous scan chain reference • Scenario 2 • Reverse the order of the clock and output-strobe timing • Scenario 3 • Hidden scan

  12. Scenario 1 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... 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...

  13. Scenario 1 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... 1. Identify scan 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...

  14. Scenario 1 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... 1. Identify scan 2. Identify Start 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...

  15. Scenario 1 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... 1. Identify scan 2. Identify Start 3. Identify Chain 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...

  16. Scenario 1 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... // start Shift V# 205 V# 206, so=1/0 1. Identify scan 2. Identify Start 3. Identify Chain 4. Map Failure to cell 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...

  17. Scenario 2 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... 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...

  18. Scenario 2 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... 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...

  19. Scenario 2 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... 1. Identify scan 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...

  20. Scenario 2 ScanStructures { ScanChain “A” { ScanOut so; ScanCells ... 1. Identify scan 2. Identify Start Waveforms { “_ins” { 10 {‘0ns’ U/D; }} “_clks” { P { ‘20ns’ U; ‘35ns’ D;}} “_outs” { HLX { ‘40ns’ h/l/x; }} Note the scan “starts” in the cycle before the Shift Procedures { load_unload { WFT “TP”; V { so=#; } Shift { V { se=1; ck=P; so=#... Pattern { load_unload (so=HHHL...

  21. Scenario 3: Hidden Scan 1. Got Milk ? Procedures { load_unload { WFT “TP”; V { so=#; } V { so=#; }V { so=#; } V { so=#; }...

  22. Scenario 3: Hidden Scan 1. Identify scan ? Procedures { load_unload { WFT “TP”; V { so=#; } V { so=#; }V { so=#; } V { so=#; }...

  23. 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

  24. 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

  25. 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

  26. 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 { WFT “TP”; ScanChain “A”; ScanChain “B”; Shift { V { m=0; se=1; ck=P; so1=#…}} ScanChain “C”; ScanChain “D”; Shift { V { m=1; se=1; ck=P; so3=#…}} Ambiguity between accumulation and reset behaviors

  27. Final Caveat • This functionality is not diagnosis • The identified scancell (most probably) didn’t fail • It captured a failure • Identifying the failing element requires additional diagnostic operation Make sure the customer understands what this information is not!

  28. 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

More Related