Tmax 2017.09 SG
Tmax 2017.09 SG
Tmax 2017.09 SG
ni
ai
Tr
ip
TetraMAX
ch
Workshop
ro
ic
Student Guide
30-I-021-SSG-017
lM 2017.09
na
er
nt
rI
Fo
se
U
ed
www.synopsys.com
R
ng
of Synopsys, Inc., or as expressly provided by the license agreement.
ni
All technical data contained in this publication is subject to the export control laws of the United States of
America. Disclosure to nationals of other countries contrary to United States law is prohibited. It is the
ai
reader's responsibility to determine the applicable regulations and to comply with them.
Tr
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
ip
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
ch
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at
ro
http://www.synopsys.com/Company/Pages/Trademarks.aspx.
All other product or company names may be trademarks of their respective owners.
ic
Third-Party Links
lM
Any links to third-party websites included in this document are for your convenience only. Synopsys does
not endorse and is not responsible for such websites and their practices, including privacy practices,
availability, and content.
na
Synopsys, Inc.
er
www.synopsys.com
rI
ng
Target Audience ................................................................................................................ i-4
Workshop Prerequisite Knowledge .................................................................................. i-5
ni
Introductions ..................................................................................................................... i-6
ai
Agenda .............................................................................................................................. i-7
Agenda .............................................................................................................................. i-8
Tr
Agenda .............................................................................................................................. i-9
Icons Used in this Workshop .......................................................................................... i-10
ip
ch
Unit 1: Introduction to Test and TetraMAX
ro
Agenda ............................................................................................................................. 1-1
ic
Unit Objectives ................................................................................................................ 1-2
lM
Manufacturing Test Programs.......................................................................................... 1-3
Stuck-At Fault Model ...................................................................................................... 1-4
Rules for Detecting a Stuck-At Fault ............................................................................... 1-5
na
Combinational Logic: Stuck-At Testing .......................................................................... 1-6
Activate the SA0 Fault (1/4) ........................................................................................... 1-7
er
ng
Reading the Library Files................................................................................................. 2-4
Cell Models Derived from Simulation Library ................................................................ 2-5
ni
ATPG Model Derivation.................................................................................................. 2-6
Expect Warnings if Library not “Validated” ................................................................... 2-7
ai
Duplicate Module Definitions.......................................................................................... 2-8
Tr
Read Design Netlist ......................................................................................................... 2-9
Build the ATPG Design Model...................................................................................... 2-10
ip
Missing Modules Discovered During Build .................................................................. 2-11
How Many Modules Are Missing? ................................................................................ 2-12
ch
Read ATPG Memory Models, If Available ................................................................... 2-13
Define Black Boxes If No ATPG Model Exists ............................................................ 2-14
ro
Empty Boxes Versus Black Boxes ................................................................................ 2-15
ic
Mode is DRC…Ignore those Build Violations? ............................................................ 2-16
Investigate Each N and B Warning ................................................................................ 2-17
lM
Did All of the Cells Translate Properly?........................................................................ 2-18
Graphical Schematic Viewer (GSV) .............................................................................. 2-19
na
Design View vs. Primitive View In GSV ...................................................................... 2-20
Prefer to Debug ATPG Models Graphically? ................................................................ 2-21
er
ng
Using Quick STIL Commands......................................................................................... 3-9
Defining PI Constraints.................................................................................................. 3-10
ni
Defining PI Equivalences .............................................................................................. 3-11
ai
SPF: PI Constraints and PI Equivalences ...................................................................... 3-12
Defining Clocks ............................................................................................................. 3-13
Tr
Defining Asynchronous Set/Reset ................................................................................. 3-14
SPF: Capture Procedures ............................................................................................... 3-15
ip
SPF: Defining Scan Chains & Scan Enable ................................................................... 3-16
SPF: Controlling Test Mode .......................................................................................... 3-17
ch
Where Does TetraMAX Get Timing Info? .................................................................... 3-18
ro
Default WaveformTable (_default_WFT) ..................................................................... 3-19
Pre-clock Measure vs. End-of-cycle Measure ............................................................... 3-20
ic
Pre-clock Measure ......................................................................................................... 3-21
lM
TetraMAX Design Rule Checks .................................................................................... 3-22
Performing Scan Design Rule Checks ........................................................................... 3-23
Results of Design Rule Checks ...................................................................................... 3-24
na
Controlling ATPG: Agenda ........................................................................................... 3-25
Debugging DRC Violations ........................................................................................... 3-26
er
ng
Adding Faults / Saving Faults ........................................................................................ 3-55
Unit Objectives Summary .............................................................................................. 3-56
ni
Command Summary (Lecture, Lab) .............................................................................. 3-57
ai
Tr
Unit 4: Controlling ATPG
ip
Agenda ............................................................................................................................. 4-1
ch
Unit Objectives ................................................................................................................ 4-2
ATPG Flow in TetraMAX ............................................................................................... 4-3
ro
Controlling ATPG: Agenda ............................................................................................. 4-4
Running ATPG ................................................................................................................ 4-5
ic
ATPG: Select TetraMAX Engine(s) ................................................................................ 4-6
lM
Results after Basic-Scan ATPG ....................................................................................... 4-7
AU: Untestable under Current ATPG Settings ................................................................ 4-8
ATPG: Basic-Scan versus Fast-Sequential ...................................................................... 4-9
na
Loadable Nonscan Cells ................................................................................................ 4-10
Using Loadable Nonscan Cells ...................................................................................... 4-11
er
ng
Want to Quickly Return Post-ATPG?............................................................................ 4-40
Interrupting a Long Process ........................................................................................... 4-41
ni
Controlling ATPG: Agenda ........................................................................................... 4-42
ai
TetraMAX II .................................................................................................................. 4-43
Running TetraMAX II ................................................................................................... 4-44
Tr
TetraMAX II Specific Command Options ..................................................................... 4-45
When is Threading Used With TetraMAX II ................................................................ 4-46
ip
TetraMAX II Messages: Ignored Settings ..................................................................... 4-47
TetraMAX II Simulation................................................................................................ 4-48
ch
Other Behavior Differences with TetraMAX II ............................................................. 4-49
ro
TetraMAX II Limitations ............................................................................................... 4-50
Unit Objectives Summary .............................................................................................. 4-51
ic
Command Summary ..................................................................................................... 4-52
lM
Appendix ........................................................................................................................ 4-53
Test Point Analysis ........................................................................................................ 4-54
Options: analyze_test_points (1/3) ................................................................................ 4-55
na
Options: analyze_test_points (2/3) ................................................................................ 4-56
Options: analyze_test_points (3/3) ................................................................................ 4-57
er
ng
Updating DFTMAX Ultra Patterns ................................................................................ 5-24
DFTMAX Ultra Padding Patterns ................................................................................. 5-25
ni
Unit Objectives Summary .............................................................................................. 5-26
ai
Command Summary (Lecture, Lab) .............................................................................. 5-27
Tr
Unit 6: Pattern Validation
ip
ch
Agenda ............................................................................................................................. 6-1
Unit Objectives ................................................................................................................ 6-2
ro
ATPG Flow in TetraMAX ............................................................................................... 6-3
ATPG Pattern Validation: Agenda .................................................................................. 6-4
ic
ASIC Vendor: Specific Considerations ........................................................................... 6-5
lM
Options for Writing Patterns ............................................................................................ 6-6
Unified STIL Flow vs. Dual STIL Flow .......................................................................... 6-7
General Guidelines for Saving Patterns ........................................................................... 6-8
na
Scan Chain Test ............................................................................................................... 6-9
Set Chain Test Bit Sequence before ATPG ................................................................... 6-10
er
ng
Generating a PSD File ................................................................................................... 6-39
Compression Mode Failure Log Formats with PSD ...................................................... 6-40
ni
Post Process Fail Log to Show Failing Cell Names ..................................................... 6-41
ai
Flow to Post Process Fail Log and Show Failing Cell Names ...................................... 6-42
Useful Debugging Signals ............................................................................................. 6-43
Tr
What is Parallel Testbench Doing? ................................................................................ 6-44
Simulation Waveforms .................................................................................................. 6-45
ip
Comparing Waves to TetraMAX ................................................................................... 6-46
Some Causes of Simulation Mismatches ....................................................................... 6-47
ch
ATPG Pattern Validation: Agenda ................................................................................ 6-48
ro
Still Have Failures in Simulation or on ATE? ............................................................... 6-49
Masking Simulation Failures ......................................................................................... 6-50
ic
Defining Input or Output Masks .................................................................................... 6-51
lM
Scan Cell Constraints ..................................................................................................... 6-52
Non-Scan Cell Masks .................................................................................................... 6-53
Per-cycle Pattern Masking ............................................................................................. 6-54
na
Fail Data File Support From Simulation ........................................................................ 6-55
Failure Data File Formats From Simulation .................................................................. 6-56
er
ng
Delay Testing Introduction: Agenda .............................................................................. 7-21
At-Speed Fault Models .................................................................................................. 7-22
ni
Structured At-Speed Fault Testing................................................................................. 7-23
ai
At-Speed Launch Methods ............................................................................................ 7-24
Transition Launch Methods ........................................................................................... 7-25
Tr
system_clock Launch (Default) ..................................................................................... 7-26
system_clock Launch: Example .................................................................................... 7-27
ip
system_clock Launch: Details ....................................................................................... 7-28
Additional Delay Test Cycles ........................................................................................ 7-29
ch
last_shift Launch ........................................................................................................... 7-30
ro
last_shift Launch: Example............................................................................................ 7-31
last_shift Launch: Details .............................................................................................. 7-32
ic
extra_shift Launch: Details ............................................................................................ 7-33
lM
Pipelined ScanEnable..................................................................................................... 7-34
Delay Testing Introduction: Agenda .............................................................................. 7-35
STIL Protocol File Timing............................................................................................. 7-36
na
Allclock Capture Procedures ......................................................................................... 7-37
allclock_*{} Procedures Example ................................................................................. 7-38
er
ng
Timing Exceptions From Violations Flow .................................................................... 8-20
Fine Tuning the SDC Flow ............................................................................................ 8-21
ni
Report SDC Exceptions ................................................................................................. 8-22
ai
Identifying AU Faults Caused by SDC Timing Exceptions .......................................... 8-23
At-Speed Constraints: Agenda ....................................................................................... 8-24
Tr
Scan Testing is Power-Hungry ...................................................................................... 8-25
Power Problems During Shift Mode .............................................................................. 8-26
ip
Low-Power (i.e. Adjacent) Fill ...................................................................................... 8-27
Shift Power Effort and Budget ....................................................................................... 8-28
ch
Power Problems During Capture Mode ......................................................................... 8-29
ro
Excessive Power During Scan Capture.......................................................................... 8-30
Capture Power with Standard ATPG ............................................................................. 8-31
ic
Capture Power with Power-Aware ATPG ..................................................................... 8-32
lM
Power-Aware ATPG Commands ................................................................................... 8-33
Clock Gating Report ...................................................................................................... 8-34
Power-Aware Pattern Reporting .................................................................................... 8-35
na
Power-Aware ATPG Script Example ............................................................................ 8-36
Unit Objectives Summary .............................................................................................. 8-37
er
ng
Test For Understanding (Ex. 1) ..................................................................................... 9-24
Test For Understanding (Ex. 2) ..................................................................................... 9-25
ni
Test For Understanding (Ex. 3) ..................................................................................... 9-26
ai
Negative and Infinite Slack ............................................................................................ 9-27
Transition Delay: Agenda .............................................................................................. 9-28
Tr
Setting Standard for Targeted Faults ............................................................................. 9-29
Minimizing Pattern Count Inflation ............................................................................... 9-30
ip
Setting max_tmgn – Default ∞ – Too Many ................................................................. 9-31
Setting a Reasonable max_tmgn .................................................................................... 9-32
ch
Setting Standard for Full Detection ............................................................................... 9-33
ro
Setting max_delta_per_fault .......................................................................................... 9-34
Partially Detected Faults : TP ....................................................................................... 9-35
ic
Fault Report with Slack Data ......................................................................................... 9-36
lM
Fault Report: report_faults –slack tmgn ........................................................................ 9-37
Fault Report: report_faults –slack tdet ........................................................................... 9-38
Fault Report: report_faults –slack delta ......................................................................... 9-39
na
Metric: Delay Effectiveness ........................................................................................... 9-40
Slack-Based ATPG Flow ............................................................................................... 9-41
er
ng
DRC Violations ............................................................................................................ 10-16
Reporting Internal and PLL Clocks ............................................................................ 10-17
ni
Asynchronous Reference Clocks ................................................................................. 10-18
ai
Reference Clock and Pattern Formats.......................................................................... 10-19
ATE Cycles During Scan Capture ............................................................................... 10-20
Tr
Issue: Capture Window Too Small .............................................................................. 10-21
Solution: Increase the Number of ATE Cycles............................................................ 10-22
ip
Capture Cycles with OCC ............................................................................................ 10-23
PLL Clocks in Capture Cycle ...................................................................................... 10-24
ch
Clock Grouping with OCC .......................................................................................... 10-25
ro
Multiple OCC Controller Usage During ATPG .......................................................... 10-26
Report OCC Clocking .................................................................................................. 10-27
ic
Verification of On-Chip Clocking ............................................................................... 10-28
lM
Inter-Clock Domain Test with Synchronous OCC ...................................................... 10-29
Synchronous Multi-Frequency Clocks ........................................................................ 10-30
Internal Clocking Procedures (ICP) ............................................................................. 10-31
na
SPF Example With ICP ............................................................................................... 10-32
ICP Setup and Commands ........................................................................................... 10-33
er
ng
Path Delay Hold Time ATPG Script ........................................................................... 11-11
Managing Faults........................................................................................................... 11-12
ni
Path File ....................................................................................................................... 11-13
ai
Path Syntax ................................................................................................................. 11-14
Path Example ............................................................................................................... 11-15
Tr
Untestable Paths ........................................................................................................... 11-16
On Path Vs. Off Path Inputs ........................................................................................ 11-17
ip
Hazards Can Impact Path Delay Tests ......................................................................... 11-18
Hazard-Free Path Delay Test Example ........................................................................ 11-19
ch
Robust Path Delay Test ................................................................................................ 11-20
ro
Robust Path Delay Test Example ................................................................................ 11-21
Non-Robust Path Delay Tests ...................................................................................... 11-22
ic
Non-Robust Path Delay Test Example ........................................................................ 11-23
lM
Summary of Path Delay Fault Detections .................................................................... 11-24
Characterization Tests .................................................................................................. 11-25
Fault Classification ...................................................................................................... 11-26
na
Launch Cycle ............................................................................................................... 11-27
Simulating Hazards ...................................................................................................... 11-28
er
ng
Tester Failure Data File ............................................................................................... 12-17
Pattern-based Failure Data Format .............................................................................. 12-18
ni
Cycle-based Failure Data Format ................................................................................ 12-19
ai
Checking Expected Data in Failure Data File.............................................................. 12-20
Truncated Failure Data File ......................................................................................... 12-21
Tr
TetraMAX Diagnosis Engines ..................................................................................... 12-22
Functional Logic Diagnosis ......................................................................................... 12-23
ip
Chain Diagnosis Overview .......................................................................................... 12-24
Chain Diagnosis Principle............................................................................................ 12-25
ch
Chain Diagnosis Output ............................................................................................... 12-26
ro
Sample Output: Diagnosis Summary ........................................................................... 12-27
Sample Output: Fault Candidate .................................................................................. 12-28
ic
What is the Match Score? ............................................................................................ 12-29
lM
Computing the Match Score ........................................................................................ 12-30
Terminology: Explaining Patterns ............................................................................... 12-31
GSV Output ................................................................................................................. 12-32
na
N-Detect: Better Precision ........................................................................................... 12-33
N-Detect Flow Example .............................................................................................. 12-34
er
PHDS Data Access Process (DAP) Server Setup in TetraMAX ................................. 12-38
TetraMAX PHDS Usage.............................................................................................. 12-39
Fo
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
2017.09
ai
Tr
ip
ch
ro
ic
Synopsys Customer Education Services
lM
© 2018 Synopsys, Inc. All Rights Reserved Synopsys 30-I-021-SSG-017
Synopsys 30-I-021-SSG-016
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-1
TetraMAX Workshop For Internal Microchip Training Purposes Only
Facilities
ng
ni
Emergency EXIT Smoking
ai
Tr
Restrooms Recycling
ip
ch
ro
Please turn off or silence your cell phone
ic
i- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-2
TetraMAX Workshop For Internal Microchip Training Purposes Only
Workshop Overview
ng
ni
This workshop will cover the entire ATPG flow
ai
Includes the following steps:
Tr
Generate test patterns given a scan gate-level design created by DFT
Compiler or other tools
ip
Debug DRC and Stuck-At coverage problems using the GUI
ch
Save and validate test patterns in simulation
ro
Generate and validate At-Speed patterns using OCC
ic
Diagnose failures on the ATE
i- 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-3
TetraMAX Workshop For Internal Microchip Training Purposes Only
Target Audience
ng
DFT and Test engineers who perform ATPG
for ASIC or SoC designs
ni
ai
Tr
ip
ch
ro
ic
i- 4
lM
na
Verilog
ATPG Automatic Test Pattern Generation
Fo
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-4
TetraMAX Workshop For Internal Microchip Training Purposes Only
Workshop Prerequisite Knowledge
ng
Verilog or VHDL
ni
UNIX environment for lab work
ai
Tr
ip
ch
ro
ic
i- 5
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-5
TetraMAX Workshop For Internal Microchip Training Purposes Only
Introductions
Name
Company
ng
Job Responsibilities
Relevant Experience
ni
ai
Main Goal(s) and Expectations for this Course
Tr
ip
ch
ro
ic
i- 6
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-6
TetraMAX Workshop For Internal Microchip Training Purposes Only
Agenda
DAY
1
i Introduction
ng
ni
1 Introduction to Test and TetraMAX
ai
Tr
2 Building ATPG Models
ip
3 Running DRC
ch
ro
4 Controlling ATPG
ic
i- 7
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-7
TetraMAX Workshop For Internal Microchip Training Purposes Only
Agenda
DAY
2
5 Minimizing ATPG Patterns
ng
ni
6 Pattern Validation
ai
Tr
7 Fault Models and At-Speed Testing
ip
8 At-Speed Constraints
ch
ro
ic
i- 8
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-8
TetraMAX Workshop For Internal Microchip Training Purposes Only
Agenda
DAY
3
9 Transition Delay Testing
ng
ni
10 On-Chip Clocking (OCC)
ai
Tr
11 Path Delay Testing
ip
12 Diagnosis
ch
ro
13 Conclusion
ic
i- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-9
TetraMAX Workshop For Internal Microchip Training Purposes Only
Icons Used in this Workshop
Caution.
Recommendation
Non-intuitive tool behavior
ng
ni
ai
Question Avoid
Tr
ip
Lab Exercise Group Exercise
ch
ro
ic
i- 10
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction & Overview ©2018 Synopsys, Inc. All Rights Reserved. i-10
TetraMAX Workshop For Internal Microchip Training Purposes Only
Agenda
DAY
1
i Introduction
ng
ni
1 Introduction to Test and TetraMAX
ai
Tr
2 Building ATPG Models
ip
3 Running DRC
ch
ro
4 Controlling ATPG
ic
1- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-1
TetraMAX Workshop For Internal Microchip Training Purposes Only
Unit Objectives
ng
After completing this unit, you should be able to:
ni
Understand the D-algorithm fault model
ai
Enter commands to obtain the TetraMAX Stuck-At coverage for a
Tr
full-scan design
Obtain TetraMAX reference material from the command help, on-
ip
line manual pages or the User Guide
ch
ro
ic
1- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-2
TetraMAX Workshop For Internal Microchip Training Purposes Only
Manufacturing Test Programs
STIL 1.0;
Test
Program
Packaged
IC Chips
ng
Pass
ni
ATE
ai
Tr
Fail
Packaged IC chips tested on ATE
ip
Pass/fail testing proposition
ch
Looks for chips with physical defects
ro
Chip is discarded if test fails
ic
Passing chips go to end user 1- 3
lM
na
Today, automatic test-pattern generation (ATPG) tools generate most test programs; thus, the logic
designer can be increasingly involved in test-program development.
er
nt
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-3
TetraMAX Workshop For Internal Microchip Training Purposes Only
Stuck-At Fault Model
Fault Model:
A logical model representing the effects of a physical defect
ng
SA1
Due to a defect, input pin A
A
of U0 acts as if stuck high,
ni
U0 Y
B independent of input signal
ai
Defect at Input
Tr
U1/Y
ip
Stuck-At 0 Fault (SA0): A SA0
ch
Due to defect, output pin Y U1 Y
of U1 acts as if stuck low, B
ro
independent of the inputs
ic
Defect at Output
1- 4
lM
na
The stuck-at fault (SAF) model is still the most prevalent fault model in use today.
Defects land at random locations on a wafer in a semiconductor processing plant.
er
It can therefore be assumed that stuck-at faults can occur anywhere in the logic on a chip.
nt
Any pin on a CMOS gate or flip-flop can be the site of a potential SA0 or SA1 fault.
rI
Chip complexity prevents us from considering stuck-at faults at the transistor level.
Other fault models exist, but a key advantage of the stuck-at model is its simplicity.
Fo
Technical Reference:
Timoc, Buehler, et al., Logical Models of Physical Failures [Proc. ITC (Oct.1983)], p.546
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-4
TetraMAX Workshop For Internal Microchip Training Purposes Only
Rules for Detecting a Stuck-At Fault
Internal Probing
of IC Not Possible!
ng
ni
ai
Tr
ip
Rules of the Game:
ch
Tester access to the device-under-test (DUT)
ro
is only allowed through its primary I/O ports
ic
1- 5
lM
na
Primary port means an I/O port that is directly accessible to external ATE hardware.
This corresponds to a package pin on a chip that has already gone through packaging; thus the ATE
er
can:
nt
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-5
TetraMAX Workshop For Internal Microchip Training Purposes Only
Combinational Logic: Stuck-At Testing
A
Network N 1
SA0
B U1
Primary
ng
Inputs Z
C
Primary
ni
D
Output
ai
Tr
If this SA0 fault is not present,
Else SA0 fault is present,
ip
then node can be driven to 1.
and U1/Y remains at 0.
ch
ro
This if / else behavior can be exploited to
detect the fault using the D algorithm
ic
1- 6
lM
na
Technical Reference (D algorithm):
er
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-6
TetraMAX Workshop For Internal Microchip Training Purposes Only
Activate the SA0 Fault (1/4)
A
U3
Network N 1
1/0
0 B U1
Input
U4
ng
Stimulus
C
ni
U2
D
ai
Tr
Fault-Free
D Algorithm:
ip
Faulty Value
1. Target a specific stuck-at fault.
ch
2. Drive fault site to opposite value. 1/ 0 Legend
(continued)
ro
ic
1- 7
lM
na
Presented now is the classic algorithm for detecting almost any stuck-at fault.
This automated procedure, from IBM in the Sixties, is known as the D algorithm.
er
Since the original 1966 paper, many spin-offs of the D algorithm have been published.
rI
Its fundamental concepts are still essential to understanding most ATPG tools.
Fo
The D algorithm detects one stuck-at fault at a time, making it very CPU-intensive.
The D algorithm creates a discrepancy between the fault-free and the faulty values.
se
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-7
TetraMAX Workshop For Internal Microchip Training Purposes Only
Propagate Fault Effect (2/4)
1 A Observable
0/1 Discrepancy
1/0 U3
0 B U1
1/0
U4
ng
0 C 0
ni
U2
0 D
ai
Enabling Input
Tr
D Algorithm:
ip
The 1/0 is inverted,
1. Target a specific stuck-at fault. but the discrepancy is
ch
2. Drive fault site to opposite value. still easy to measure
3. Propagate error to primary output.
ro
(continued)
ic
1- 8
lM
na
The ATE then strobes this primary output port at a specific time in the test program.
If the ATE sees the expected fault-free response, then the fault is assumed not present.
er
The ATE continues to execute the rest of the test program, targeting other faults.
nt
If it sees the faulty response, the SA0 fault is assumed present, and a failure is logged.
rI
Justification:
Fo
Activating a fault site, and propagating the fault effect, often require justification.
To justify a node means to force a 0 or 1 onto that node, from the primary inputs.
se
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-8
TetraMAX Workshop For Internal Microchip Training Purposes Only
Anatomy of a Test Pattern (3/4)
Test Pattern
(U1/Y SA0)
Input
Stimulus Expected
Response
ng
ni
Vector {ALL = 1000 1;}
ai
Tr
Test Pattern:
ip
A sequence of one or more vectors that applies a stimulus
ch
and checks for an expected response to detect a target fault.
ro
ic
1- 9
lM
na
The pattern is shown in STIL syntax as a single vector statement, requiring one cycle.
The alias ALL represents an ordered list of DUT ports, including all the PIs and POs.
er
nt
This test pattern only has one vector; in general, many vectors will be required.
rI
In this workshop, the term test pattern is used just as it is defined in the STIL spec.
A test pattern is a series of one or more vectors comprising a test for a target Stuck-At fault.
Fo
In this workshop, a vector will always correspond to exactly one tester clock cycle.
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-9
TetraMAX Workshop For Internal Microchip Training Purposes Only
Record the Test Pattern (4/4)
STIL 1.0;
•
•
This pattern detects Pattern "N1_Burst" {
Vector {}
the fault U1/Y SA0 Vector {}
ng
Vector {}
Vector {} Test
Vector {ALL=1000 1;} Program
ni
Vector {} for N 1
Vector {}
ai
Vector {}
Vector {}
Tr
}
D Algorithm:
ip
1. Target a specific stuck-at fault.
Classic
ch
2. Drive fault site to opposite value. “D”
3. Propagate error to primary output. Algorithm
ro
4. Record pattern; drop detected fault.
ic
1- 10
lM
na
The fourth step in the D algorithm is just bookkeeping. The successful test pattern is recorded in
memory, and the detected fault is dropped from the list of target faults.
er
The algorithm is repeated for all the remaining faults, resulting in a test program.
nt
A test program is a series of test patterns that detects all possible faults in the DUT.
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-10
TetraMAX Workshop For Internal Microchip Training Purposes Only
Testing Sequential Designs
Can the D algorithm handle flip-flops?
Pre-Scan
Target
Design
Fault
Embedded
1 Network N 1
ng
1/0
0
ni
0
ai
0
Tr
Still need to activate the fault and propagate its effect
ip
Require the same ability to control and observe that was available in the
ch
purely combination circuit
ro
Replace each flop with a testable flip-flop
ic
This replacement allows serial loading/unloading of bits
1- 11
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-11
TetraMAX Workshop For Internal Microchip Training Purposes Only
Scannable Equivalent Flip-Flop
D 0
Scannable SI D Q Q/SO Multiplexed
1
Equivalent Flip-Flop
for Ordinary SE
Scan Style
D Flip-Flop CLK
ng
CLK
ni
D D Q D Q D Q D Q D Q SO
ai
SI SI SI SI SI SI
SE SE SE SE SE SE
Tr
ip
The scan equivalent has a serial path from pin SI to SO
ch
This path is enabled only during testing, by asserting SE
ro
Scannable equivalent FF’s will be connected SO->SI to form a shift
register also known as a scan chain
ic
1- 12
lM
na
When a normal flip-flop is replaced with a testable flip-flop that is called scan replacement.
The testable flip-flop has two modes:
er
When the ASIC is undergoing manufacturing test the flip-flips will be connected together just like a
shift register—this configuration is called a scan-chain.
Fo
The scan-chain will be used to serially shift in test patterns to parts of the design which are not
directly accessible to the primary input ports.
se
The compile –scan command in Design Compiler causes the normal flops to be scan-replaced
U
The vast majority of ASICs use a multiplexed flip-flop as the scan-replacement for normal flip-
ct
flops.
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-12
TetraMAX Workshop For Internal Microchip Training Purposes Only
The Full Scan Strategy
Serially preload registers Then capture the fault
with the stimulus, 1000 effect (1/0) into this register
PI1
SI
ng
PI2 PO1
0 1/0
1/0 PO2
ni
SO
PI3
PI4 0
ai
0
Tr
SE
CLK
ip
ch
A serial path is stitched through all the scan flops, enabling
ro
the ATE to preload registers and capture responses!
ic
1- 13
lM
na
A Full Scan design is one in which all of the flip-flops in the design have been scan replaced and
will be included in the scan-chain.
er
nt
This slide shows the results of stitching a scan-chain (see the red path, starting at the SI port and
rI
Notice there are three additional ports now: SI (Scan In), SO (Scan Out), and SE (Scan Enable).
The DFT Compiler command to stitch the scan chains is: insert_dft.
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-13
TetraMAX Workshop For Internal Microchip Training Purposes Only
Scan Testing Protocol
PI1
SI
Targeted
1 SA0 fault
PI2 PO1
0 1/ 0
1/ 0
PO2
SO
ng
PI3
0
PI4
ni
0
ai
SE
CLK
Tr
C a p tu r e
S c a n S h ift S c a n S h ift
ip
SE
ch
CLK
ro
SI 0 0 0 1 N e x t T e s t P a tte r n
ic
SO R e s u lts F ro m P re v io u s T e s t P a tte r n 1
1- 14
lM
na
The theta symbol (“”) represents a don’t-care (0 or 1) on an input or output port. The port can be a
either a 0 or a 1 on the ATE. In either case, the value will not affect the ability to detect the
er
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-14
TetraMAX Workshop For Internal Microchip Training Purposes Only
Test Patterns Overlap
Capture Capture
Scan Shift
ng
... ...
ni
ai
Pattern (n -1)
Tr
Pattern n
ip
ch
The scan load for a given pattern overlaps the scan unload of the
ro
previous pattern
ic
1- 15
lM
na
Note:
The load of the first pattern does not overlap with an unload since there is was no previous pattern.
er
Likewise, the unload of the last pattern does not overlap a load operation.
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-15
TetraMAX Workshop For Internal Microchip Training Purposes Only
TetraMAX Overview
ng
Unified ATPG Engines
Graphical
Basic-Scan Fault
Debugging
ni
Fast-Sequential Simulator
Environment
Full-Sequential
ai
Tr
Stuck-At / Transition
Slack-Based Transition / Path Delay
Parallel Bridging & IDDQ Fault
ip
Processing Diagnosis
Scan Compression
ch
Power-Aware / Cell-Aware
ro
Innovative Library Support
ic
1- 16
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-16
TetraMAX Workshop For Internal Microchip Training Purposes Only
TetraMAX Interfaces
Test
DFT Compiler Procedure STIL
File
Verilog
VHDL
Verilog
EDIF
ng
IC Compiler Netlist Library PrimeTime
ni
ai
SDC,
LEF/DEF Layout Data Slack Data
Tr
EVCD
Functional
Tcl Script TetraMAX Patterns
WGL
ip
STIL
PHDS
Bridging Pairs
ch
ro
Yield Explorer STIL Star-RCXT
Reports
Reports Test Patterns WGL
Vendor Specific
ic
1- 17
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-17
TetraMAX Workshop For Internal Microchip Training Purposes Only
ATPG Flow in TetraMAX
BUILD
Mode
Verilog sim Read Library Prepare Save
Library Modules ATPG Patterns
TEST
ng
Mode
Gate-level Read Run
Test Patterns
Netlist Netlist ATPG
ni
ai
Tr
Build Review
ATPG Model Coverage Verify
ip
Patterns
ch
DRC
Mode Incremental
ro
STIL Test Check
ATPG
Protocol DFT Rules
(if needed)
ic
1- 18
lM
na
The diagram shown above illustrates the basic test pattern generation flow. The three operation
modes of TetraMAX are shown by different colors. During build mode the design and libraries are
er
read in, and the ATPG model of the design is built. If the build step was successful, TetraMAX will
nt
automatically enter into DRC (design rules checking) mode. If DRC was successful, TetraMAX
rI
will enter Test mode. In Test mode, ATPG settings are adjusted, TetraMAX can start pattern
generation, run incremental ATPG (if required) and save the patterns to disk.
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-18
TetraMAX Workshop For Internal Microchip Training Purposes Only
Launching TetraMAX
To launch TetraMAX
unix% tmax [<command_file>]
The command file is optional - TetraMAX uses Tcl as its command
ng
interface language
ni
TetraMAX support two execution modes: “GUI mode” (default) and
ai
“shell mode”
Tr
unix% tmax –shell [<command_file>]
In GUI mode, setup a TetraMAX log with the set_messages command
ip
set_messages –log tmax.log –replace
ch
In shell mode, use the UNIX tee command to create a log
ro
unix% tmax –shell [<command_file>] | tee tmax.log
ic
1- 19
lM
na
TetraMAX also has a legacy command interface mode termed as “native mode”. To launch TetraMAX in “native
mode”:
er
Note: Command and filename completion is supported in Tcl GUI mode only
rI
Note: when in Tcl mode, command options that take more than one argument must be provided with a Tcl list. A
Fo
Tcl list can be denoted by the Tcl “list” command or by curly brackets “{ ... }”. For example:
set_build –black_box {PLL CLKMUL}
se
Or ...
set_build –black_box [list PLL CLKMUL]
U
Note: you can control the general level of message reporting in the TetraMAX logfile with set_messages -
ed
level <expert | standard>. The default is standard level. With the level set to expert, more information
is displayed for many commands.
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-19
TetraMAX Workshop For Internal Microchip Training Purposes Only
Example TetraMAX Script
# Save TetraMAX transcript to log file
set_messages –log lab1.log –replace
ng
# Run Build
run_build_model
ni
# Perform Scan Design Rules Check
ai
run_drc ../design_data/orca_final.spf
Tr
# Setup and run ATPG
add_faults -all
ip
run_atpg -auto
ch
# Review Test Coverage
report_summaries
ro
analyze_faults -class au
report_patterns -summary
ic
# Save Test Patterns
write_patterns all_pats.stil -format stil -replace 1- 20
lM
na
Note: The set_messages command can be used to specify a logfile for the TetraMAX run.
er
In the command file, command names can be shortened as long as they remain “unique”. For
nt
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-20
TetraMAX Workshop For Internal Microchip Training Purposes Only
Tcl API Commands
ng
specific class type
ni
Classes available are
ai
Clock, ScanChains, Cell, Pin, Port, Modules, Instances, Timings, Settings, Faults,
Tr
Patterns, Candidates
Example commands: get_cells, get_pins, get_scan_chains,
ip
get_faults
ch
The Tcl API can be used to automatic common tasks and/or produce
ro
custom reports
ic
1- 21
lM
na
Limitation:
Tcl API commands are disabled when reading a secure image file. It is not possible for the secure
er
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-21
TetraMAX Workshop For Internal Microchip Training Purposes Only
Using Collections and Filters
ng
foreach_in_collection
ni
sizeof_collection
ai
copy_collection
Tr
Some commands have filtering options to manipulate the collection of
ip
objects returned based on “attributes” – Examples:
ch
TEST-T> set collection_cand [get_candidates -filter "pinpath=~*Z*"]
TEST-T> set collection_cell [get_cells -filter {chain_name == ch1} \
ro
–filter {scan_position == 4}]
ic
TEST-T> set collection_cell [get_cells {[A-U]12} –regexp]
1- 22
lM
na
Tcl documentation on SolvNet:
https://solvnet.synopsys.com/dow_retrieve/B-2011.09/tclug/tclug.html
er
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-22
TetraMAX Workshop For Internal Microchip Training Purposes Only
Retrieving Attributes Values
List of attributes available per object class can be printed using the
list_attributes command:
list_attributes –class <CLASS_NAME>
ng
For instance, the attributes for the ScanChains object class are:
TEST-T> list_attributes –class scanchain
ni
Attribute Name Object Type Properties Constraints
---------------------------------------------------------------------
ai
chain_name ScanChains string U
clock_names ScanChains string U
Tr
group_name ScanChains string U
input_pin ScanChains string U
length ScanChains int U
ip
object_class ScanChains string U
ch
output_pin ScanChains string U
ro
ic
1- 23
lM
na
Example use of get_attribute – to query the ScanDataIn for a particular scanchain
class object:
er
nt
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-23
TetraMAX Workshop For Internal Microchip Training Purposes Only
Tcl API Example
Defining a Tcl procedure that returns the longest scan chain length
Declare the procedure
Create collection
ng
of all ScanChains
proc report_scan_chain_max {} {
set max_length 0
ni
foreach_in_collection chain [get_scan_chains -all] {
if { [get_attribute $chain length] > $max_length } {
ai
set max_length [get_attribute $chain length]
Tr
}
}
return $max_length
ip
}
ch
Access the “length” attribute
ro
Return the chain length
of each ScanChain object
ic
1- 24
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-24
TetraMAX Workshop For Internal Microchip Training Purposes Only
TetraMAX On-Line Help (OLH)
ng
man S22
ni
GUI On-Line Help Menu
ai
HELP Table Of Contents Violations S22
Tr
Standalone OLH (will not check out a license):
ip
UNIX: tmax –man &
ch
Browser: OLH is HTML based and can be run from most
ro
standard web browsers
ic
1- 25
lM
na
SolvNet Article ID: 024551 – How to Set Up Browser-Based TetraMAX Online Help in
Windows
er
nt
If TetraMAX can’t locate your browser for launching the OLH, you can provide a path with an
Fo
UNIX environment variable. For example, specify the following environment variable to use
Firefox as your default browser for running Online Help:
se
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-25
TetraMAX Workshop For Internal Microchip Training Purposes Only
Getting Help - SolvNet Resources
Browse
Docs
Manage
Support Reference
ng
Methodology
ni
Training
ai
Resources
Tr
Search
Docs/Articles
ip
ch
Open a Support
Center Case
ro
ic
1- 26
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-26
TetraMAX Workshop For Internal Microchip Training Purposes Only
Unit Objectives Summary
ng
Enter commands to obtain the TetraMAX Stuck-At
coverage for a full-scan design
ni
Obtain TetraMAX reference material from the
ai
command help, on-line manual pages or the User
Tr
Guide
ip
ch
ro
ic
1- 27
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-27
TetraMAX Workshop For Internal Microchip Training Purposes Only
Command Summary (Lecture, Lab)
ng
man Detailed on-line manual pages
read_netlist lab_1.v Reads in libraries and design netlists
ni
report_settings Reports current (ATPG, DRC, etc.) settings
ai
report_summaries Reports current fault statistics
Tr
reset_state Resets all non-AU faults to ND
run_build_model Builds ATPG model of design
ip
run_drc lab_1.spf Performs test design rule checks
run_atpg Runs ATPG with current settings
ch
run_atpg -auto Automatic mode of ATPG
ro
set_atpg –merge {high high} Enables ATPG dynamic compaction
ic
1- 28
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Introduction to Test and TetraMAX ©2018 Synopsys, Inc. All Rights Reserved. 1-28
TetraMAX Workshop For Internal Microchip Training Purposes Only
Agenda
DAY
1
i Introduction
ng
ni
1 Introduction to Test and TetraMAX
ai
Tr
2 Building ATPG Models
ip
3 Running DRC
ch
ro
4 Controlling ATPG
ic
2- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-1
TetraMAX Workshop For Internal Microchip Training Purposes Only
Unit Objectives
ng
Describe 2 methods for dealing with missing modules
ni
Debug a library modeling issue and develop a simple
ai
workaround using TetraMAX modeling primitives
Tr
ip
ch
ro
ic
2- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-2
TetraMAX Workshop For Internal Microchip Training Purposes Only
BUILD Mode in TetraMAX
BUILD
Mode
Verilog sim Read Library Prepare Save
Library Modules ATPG Patterns
TEST
ng
Mode
Gate-level Read Run
Test Patterns
Netlist Netlist ATPG
ni
ai
Tr
Build Review
ATPG Model Coverage Verify
ip
Patterns
ch
DRC
Mode Incremental
ro
STIL Test Check
ATPG
Protocol DFT Rules
(If needed)
ic
2- 3
lM
na
The diagram illustrates the basic test pattern generation flow.
During build mode the design and libraries are read in, and the ATPG model of the design is built. If
er
the build step was successful, TetraMAX will then enter DRC (design rules checking) mode.
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-3
TetraMAX Workshop For Internal Microchip Training Purposes Only
Reading the Library Files
Example:
ng
BUILD-T> read_netlist /libs/0.18u/*/??DFF*.v
ni
In case of module duplication when reading in netlists, the default
ai
behavior is to keep the last module definition encountered
Tr
ip
ch
ro
ic
2- 4
lM
na
Netlist type (Verilog, EDIF, VHDL) is automatically detected.
Netlist compression (none, GZIP, proprietary binary) is automatically detected.
er
A single read command may use wildcards to match multiple files using the ‘?’ and ‘*’ characters
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-4
TetraMAX Workshop For Internal Microchip Training Purposes Only
Cell Models Derived from Simulation Library
TetraMAX Library Support
Synthesis Implementation
Library
ng
ATPG
ni
Simulation
ai
Library
Tr
Simulation
ip
TetraMAX directly reads structural Verilog libraries
ch
Eliminates the need for a special set of ATPG libraries
ro
ic
2- 5
lM
na
Structural Verilog libraries are gate-level simulation libraries that use Verilog gate-level modeling
primitives (and, or) and UDPs (User Defined Primitives).
er
TetraMAX does not read in RTL or behavioral simulation libraries, except for memory modeling
nt
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-5
TetraMAX Workshop For Internal Microchip Training Purposes Only
ATPG Model Derivation
ng
`define
ni
`ifdef
ai
`ifndef
Tr
`include
`celldefine
ip
`suppress_faults
ch
`enable_portfaults, etc.
ro
Behavioral models are not understood by TetraMAX and lead to
modules being treated as black boxes
ic
2- 6
lM
na
TetraMAX reads Verilog simulation libraries. UDPs are an integral part of the Verilog language.
They are essential for describing particular library cells. The TetraMAX library reader therefore
er
supports UDPs.
nt
rI
TetraMAX does not support behavioral models, except for memories. A very limited behavioral
syntax is used to model memories for TetraMAX.
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-6
TetraMAX Workshop For Internal Microchip Training Purposes Only
Expect Warnings if Library not “Validated”
ng
command
ni
ai
Get details on DRC
Tr
warning messages
ip
ch
ro
ic
2- 7
lM
na
A “validated” library is one that is compatible with TetraMAX (i.e. contains only structural
primitives and/or UDPs).
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-7
TetraMAX Workshop For Internal Microchip Training Purposes Only
Duplicate Module Definitions
ng
ni
By default, if a module definition already exists and a second module with the
ai
same name is read, this will replace the first definition: An N5 violation
Tr
(severity warning) will be issued
This behavior is adjusted with the set_netlist command or dialog box to
ip
change the redefined_module selection
ch
set_netlist –redefined_module <last | first>
ro
To prevent module redefinition of any kind, set the N5 rule to severity error:
ic
set_rules n5 error
2- 8
lM
na
By default, when DRC violation’s severity is set to “error”, TetraMAX will abort execution of the
run script when the first error is encountered. This default behavior can be changed with the
er
following command:
nt
rI
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-8
TetraMAX Workshop For Internal Microchip Training Purposes Only
Read Design Netlist
ng
design netlist files
ni
Designs may be described using forms of:
ai
Verilog structural netlists
Tr
EDIF structural netlists
VHDL structural netlists
ip
Mixtures of the above -- note: beware of naming convention restrictions of each
ch
language
ro
Netlists may be either flat or hierarchical
Netlists may exist as a single file or multiple files
ic
2- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-9
TetraMAX Workshop For Internal Microchip Training Purposes Only
Build the ATPG Design Model
ng
ATPG Primitive
Model of my_asic
my_asic
ni
run_build_model my_asic
ai
my_asic
_DFF
Tr
nand2
top = my_asic _XOR
FD1
_NOR
ip
EO1
ch
NR2
ro
ic
2- 10
lM
na
The build process is used to choose the top-level module and to build the in-memory design image
necessary for the ATPG algorithm. The build process can also be done at any intermediate level.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-10
TetraMAX Workshop For Internal Microchip Training Purposes Only
Missing Modules Discovered During Build
Default severity of a B5
DRC violation is “Error”
ng
ni
ai
Tr
ip
ch
ro
ic
2- 11
lM
na
By default the build process will abort when the first B5 violation is encountered. If there are
multiple B5 violations, only the first B5 violation will be reported.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-11
TetraMAX Workshop For Internal Microchip Training Purposes Only
How Many Modules Are Missing?
ng
Use report_modules to
find all undefined designs
ni
ai
Tr
ip
ch
ro
ic
2- 12
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-12
TetraMAX Workshop For Internal Microchip Training Purposes Only
Read ATPG Memory Models, If Available
ng
ni
ai
Read any libraries that
Tr
were missed the first time
ip
ch
ro
ic
2- 13
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-13
TetraMAX Workshop For Internal Microchip Training Purposes Only
Define Black Boxes If No ATPG Model Exists
ng
ni
ai
Tr
ip
If Build is successful,
TetraMAX moves to
ch
DRC mode
ro
ic
2- 14
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-14
TetraMAX Workshop For Internal Microchip Training Purposes Only
Empty Boxes Versus Black Boxes
Black Box Empty Box
X Z
X Z
ng
X Z
ni
set_build -reset_boxes; # Clears black & empty box list
ai
set_build –black_box RAM32x8
set_build -empty_box BUS_SWITCH
Tr
# Use Tcl list for multiple black box modules:
set_build –black_box [list RAM32x8 RAM64X8]
ip
# Report all black box modules:
ch
report_modules –black_box
ro
shell” (i.e., just port declarations) model so that TetraMAX does not
ic
need to infer the port directions of the black boxed module 2- 15
lM
na
An “empty box” is similar to a black box with the exception that its output pins are not driven (i.e.
TIEZ). These can be used to model a module with tristate-able outputs.
er
nt
Specify an empty box module only if its outputs are actually at Z state during test. The empty box
rI
can be helpful if multiple modules are connected to a bus, but the module outputs are all at Z state.
Using black boxes in this case would result in bus contention.
Fo
To make TetraMAX treat a module as a library cell, use the –design_box option. TetraMAX
U
will then add faults to just the ports of this module, but not inside
ed
To maintain the port connections of a level of hierarchy, use the –portfault_box option.
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-15
TetraMAX Workshop For Internal Microchip Training Purposes Only
Mode is DRC…Ignore those Build Violations?
ng
need further investigation
ni
ai
Tr
ip
ch
ro
ic
2- 16
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-16
TetraMAX Workshop For Internal Microchip Training Purposes Only
Investigate Each N and B Warning
ng
ni
ai
Tr
ip
ch
ro
ic
2- 17
lM
na
Check the “What’s Next” section in the TetraMAX On-Line Help man page for a DRC violation, to
learn more about what to do if that violation is encountered.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-17
TetraMAX Workshop For Internal Microchip Training Purposes Only
Did All of the Cells Translate Properly?
ng
These indicate that an ATPG model may not be correct
ni
DRC-T> report_modules –summary
ai
Modules: #UNKNOWN_FORMAT=2 #STRUCT_VERILOG=654
(#unsupported_beh=97) #BEH_VERILOG=3 #COMB_UDP=42 #SEQ_UDP=334
Tr
ip
DRC-T> report_modules –errors
ch
ro
ic
2- 18
lM
na
Although TetraMAX attempts to translate vendor cell descriptions into ATPG gate equivalent
models, this automatic translation is not always successful. For example, it is quite common to
er
In general, this topic is important for library developers, as they have to deliver certified libraries.
TetraMAX users should always look for library problems to make sure TetraMAX does not
Fo
generate wrong patterns due to library issues. It is beneficial for TetraMAX users to have at least a
basic idea of how to debug library issues, just in case.
se
The important question is: Did all of the cells translate properly? Use the -summary option of the
U
report_modules command and look for any X detectors or Errors indicated, either of which
ed
will indicate an ATPG model that may not be suitable for use.
ct
To review specific modules on which errors were encountered use the -error option of
report_modules. Once a module which had an error or other problem such as N13 or N24 is
tri
identified, the connectivity information of the module can be reported as one way to reveal how the
es
The Verilog parser attempts to classify each module read as structural (STRUCT_VERILOG) or
behavioral (BEH_VERILOG). If it can’t tell, the module is classified as UNKNOWN_FORMAT.
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-18
TetraMAX Workshop For Internal Microchip Training Purposes Only
Graphical Schematic Viewer (GSV)
Open/Close GSV
Toolbar
Buttons
Cell
ng
Name
ni
ai
Tr
ip
Primitive ID
ch
ro
ic
Net Fanout
Gate Info (RMB->”Display Gate Info”)
Point
2- 19
lM
na
Items displayed in the GSV can be controlled via the command line as well. See the man pages of
the following commands for more information:
er
nt
add_display_gates
rI
remove_display_gates
report_display_gates
Fo
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-19
TetraMAX Workshop For Internal Microchip Training Purposes Only
Design View vs. Primitive View In GSV
ng
ni
ai
Tr
Scan Flip-Flop in Primitive View (TetraMAX DFF and MUX)
ip
ch
ro
ic
2- 20
lM
na
When determining the “design” level, by default, TetraMAX will look for `celldefine compile
directives when the library was read into TetraMAX.
er
nt
If `celldefine statements are not in the library, TetraMAX will set the design level at any module
rI
that only contains Verilog primitive or UDPs. Or if read_netlist –library is used, then
any module defined in that netlist will be considered a design level cell (i.e. a library cell).
Fo
The “design” level can also be referred to as the “standard cell” level or the “leaf cell” level.
se
The symbol for a gate primitive and primitive ID can sometimes be seen even in the “design view”.
U
This is normally the case for simple gates such as buffers or inverters.
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-20
TetraMAX Workshop For Internal Microchip Training Purposes Only
Prefer to Debug ATPG Models Graphically?
The run_build_model
command can be run at any
level, not just the top-level
run_build_model PROBLEM_CELL
ng
ni
Open GSV, SETUP = Primitive
ai
Tr
Show All
ip
ch
Review Model Accuracy
ro
ic
2- 21
lM
na
Perhaps the easiest technique for reviewing the derived ATPG model is to look at the model
graphically.
er
Do this by:
nt
The resulting graphical schematic will present the ATPG model in terms of the tool’s ATPG
primitives.
se
Review the functionality defined by the schematic to help determine if the translation was accurate.
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-21
TetraMAX Workshop For Internal Microchip Training Purposes Only
Investigating Models Graphically
ng
this model:
D and SB inputs are floating
ni
DATA and SET pins are tied to 1
ai
To see all N14 rule violations:
Tr
report_violations n14
ip
ch
ro
ic
2- 22
lM
na
N14 – “Illegal UDP” : The UDP contains an entry that is not allowed.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-22
TetraMAX Workshop For Internal Microchip Training Purposes Only
What If ATPG Models Cannot Be Derived?
ng
structural netlist
ni
Use the TETRAMAX define as a compiler directive in an Verilog
simulation library cell, e.g.:
ai
Tr
`ifdef TETRAMAX
<TetraMAX model>
ip
`else
ch
<behavioral model>
`endif
ro
ic
2- 23
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-23
TetraMAX Workshop For Internal Microchip Training Purposes Only
ATPG Modeling Primitives: Partial List
AND ( in1, ..., inN, out );
BUF ( in, out ); A sampling of ATPG modeling
BUS ( in1, ..., inN, out );
BUSK01 inout ; // bus keeper
primitives
Most primitives take a variable
DFF ( set,rst, clk1,d1, [clkN,dN,]... , out );
ng
DLAT ( set,rst, clk1,d1, [clkN,dN,]... , out );
INV ( in, out ); number of inputs but always have a
single output
ni
MUX ( sel, d0, d1, out );
NAND ( in1, ..., inN, out );
ai
NOR ( in1, ..., inN, out );
For a complete list, see the on-line
OR ( in1, ..., inN, out );
help topic of “ATPG modeling”
Tr
SW ( control, in, out ); // switch
TIE0 ( [in1, ..., inN,] out );
ip
TIE1 ( [in1, ..., inN,] out );
TIEX ( [in1, ..., inN,] out );
ch
TIEZ ( [in1, ..., inN,] out );
TSD ( ena, in, out );
ro
WIRE ( in1, ..., inN, out );
XNOR ( in1, ..., inN, out );
ic
XOR ( in1, ..., inN, out );
2- 24
lM
na
It may be necessary to create custom ATPG models.
This may be done by instantiating ATPG modeling primitives in a Verilog, EDIF, or VHDL netlist.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-24
TetraMAX Workshop For Internal Microchip Training Purposes Only
ATPG Modeling Primitives: Examples
module SCAN_FLOP (SE, D, SDI, CLK, SET, RSTB, Q, QN, SDO);
input SE,D,SDI,CLK,SET,RSTB;
output Q,QN,SDO;
_MUX u1 (SE,D,SDI, din); Verilog netlists referencing ATPG
_DFF u2 (SET, !RSTB, CLK, din, Q);
_BUF u3 (Q, SDO);
modeling primitives to define ATPG
models
ng
_INV u4 (Q, QN);
endmodule
module buskeep (X); When used in Verilog, ATPG primitives
ni
inout X;
_BUSK01 X;
must have an underscore (“_”) prefix
ai
endmodule
module dual_latch (RB, G1,D1, G2,D2, QN);
Tr
input RB, G1, D1, G2, D2;
output QN;
ip
_DLAT reg (1’b0,!RB,G1,D1,G2,D2, q);
_INV u2 (q, QN);
ch
endmodule
module grey_box (in1, in2, in3, out1, out2);
input in1, in2, in3;
ro
output out1, out2;
_TIEX u1 (in1, in2, in3, out1);
ic
_TIE0 u2 (out2);
2- 25
endmodule
lM
na
When used in a Verilog netlist, the primitive names must have an underscore prefix, as in “_AND”
When used in an EDIF netlist, the primitive names must have a “&_” prefix, as in “&_AND”.
er
When used in a VHDL netlist, no prefix is needed. Be aware, that a component named “AND” will
nt
Read in the custom ATPG primitives after the original library has been read.
Fo
Use:
set_netlist –redefined_module last
se
read_netlist mylib.v
read_netlist myprimitives.v
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-25
TetraMAX Workshop For Internal Microchip Training Purposes Only
Testability of Embedded Memory
More Silicon
SoC with for Memory
Embedded
Memory
ng
Deeply
uP Core
Embedded
Limited
ni
RAM Memory
Direct
ai
Access Cache
Tr
Logic ROM
Very Dense
ip
Transistor
ch
Implementation
ro
Embedded (on-chip) memory blocks pose SOC test challenges!
ic
2- 26
lM
na
The growing use of embedded, distributed memory blocks on ICs creates testability issues:
Limited Direct Access:
er
Testers can’t control or observe embedded memory blocks directly from the package pins.
nt
Deeply embedded memory (e.g., L1 cache inside a microprocessor core) is even harder to access
rI
for test.
Fo
The probability of a physical defect landing on or near a memory array is thus higher.
An effective DFT strategy for memory blocks and the surrounding logic is thus crucial.
U
ed
Market forces drive vendors to fabricate memory arrays at the highest density possible.
tri
Gate-level single stuck-at fault models and related algorithms are inadequate at this density.
Memory testing must target multiple stuck-at and bridging faults at the transistor level.
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-26
TetraMAX Workshop For Internal Microchip Training Purposes Only
Memory DFT Strategies
ng
memory faults
Shadow logic is combinational logic around a RAM/ROM cell
ni
ai
Testing RAM/ROM shadow logic in ATPG
Tr
1. Applying a black box model:
If there’s no ATPG model for a RAM/ROM cell, it’s often modeled as a black box.
ip
2. Using a bypass mode for Basic-Scan ATPG:
ch
If the memory supports a bypass mode, it can be used to obtain some coverage on the shadow logic.
ro
3. Writing functional models for Sequential ATPG:
Testability of shadow logic can be maximized by replacing the black box RAM/ROM cell with a user
ic
supplied functional Verilog model. 2- 27
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-27
TetraMAX Workshop For Internal Microchip Training Purposes Only
Black Box or Bypass Mode
untestable via Basic-Scan ATPG
ng
DI
the cell is modeled as a black box empty
shell
CS
ni
Bypass Mode: OE
WE
ai
Bypass the RAM so that some logic around
RAM can be tested with Basic-Scan ATPG
Tr
TM
Memory IP may support a bypass mode(s).
RAM
If not, a manual RTL fix needed to
ip
A DO
DI
implement the bypass mode
ch
empty
Memory bypass modes may be CS shell
ro
OE
combinational (shown) or WE
sequential/synchronous
ic
2- 28
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-28
TetraMAX Workshop For Internal Microchip Training Purposes Only
TetraMAX Memory Model
ng
Bring write control signal to top-level A RAM DO
ni
ports to: DI TMAX
ai
Control writes during sequential cycles CS
Model
of RAM
Tr
Need to control the clock for synchronous OE
WE
memory or WE for a level-sensitive memory
ip
Protect memory contents during scan shift mem_clk
ch
ro
ic
2- 29
lM
na
The example above is an asynchronous memory, therefore, the write control signal is a
WriteEnable (WE). For synchronous memories, the write control signal would be a WriteClock.
er
In both cases, the write control signal will be defined as a “clock” at the top-level
nt
rI
The write enable/clock doesn’t need to be controlled with a dedicated signal at the top-level. The
memory control/clock can be shared with a functional/scan clock.
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-29
TetraMAX Workshop For Internal Microchip Training Purposes Only
Clock Stable and Load Stable
A memory is “clock stable” if its contents are stable when all clocks are
in their “off state”
A memory must be clock stable to be usable by ATPG1
ng
A memory is “load stable” if its contents are stable during scan shift
ni
Often achieved by gating the WriteEnable or ChipSelect signal of the memory
ai
with ScanEnable
Tr
Allows ATPG to be more effective by using multiple loads to test faults around the
memory
ip
Also has the benefit of reducing power during scan shift
ch
To report the attributes of the memories:
report_memory –all -verbose
ro
ic
2- 30
lM
na
TEST-T> report memory -all -verbose
#ports width address stable off
er
1Clock stable is a requirement for the memory to be usable by Fast-Sequential ATPG. Full-
ed
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-30
TetraMAX Workshop For Internal Microchip Training Purposes Only
RAM/ROM Modeling
ng
ni
Common or separate data bus
ai
Edge or level sensitive read/write controls
Tr
One qualifier on the write control
Read off state can hold or return data to 0/1/X/Z
ip
Asynchronous set and/or reset capability
ch
Memory initialization files
ro
A ROM is created by defining a RAM without a write port and is required
ic
to have an initialization file
2- 31
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-31
TetraMAX Workshop For Internal Microchip Training Purposes Only
RAM Modeling: Basic Example
ng
output [7:0] data_out; // 8 bit data width
ni
reg [7:0] memory [0:15]; // memory storage The RAM in this example has
event WRITE_OP; // event for write-thru
level sensitive write and read
ai
// Write port
ports
Tr
always @ (write or write_addr or data_in)
if (write) begin
memory[write_addr] = data_in;
ip
#0; ->WRITE_OP;
end
// Read port
ch
always @ (read or read_addr or WRITE_OP)
if (read) data_out = memory[read_addr];
ro
endmodule
ic
2- 32
lM
na
The port list may vary as more complicated RAMS or ROMS with multiple ports are defined, but
the template is essentially the same.
er
nt
Note that the ATPG modeling of RAMs requires that bussed ports be used.
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-32
TetraMAX Workshop For Internal Microchip Training Purposes Only
ROM Model: Basic Example
ROM_8x4.v:
ng
reg [3:0] SINE; ROM_8x4.dat:
ROM reg [3:0] ROM [0:7];
ni
//Sine Decimal
Submodule initial 0000 // 0.000
$readmemb("ROM_8x4.dat",
ai
0011 // 0.195
ROM ); 0110 // 0.383
Tr
1001 // 0.555
always @( ADDR )
1011 // 0.707
if (ADDR <=7)
1110 // 0.831
SINE = ROM[ ADDR ]; 1111 // 0.924
ip
endmodule 1111 // 0.981
ch
File opened for reading by
Functional Verilog
ro
$readmemb system task
Per TetraMAX Template
ic
2- 33
lM
na
TetraMAX understands a wide variety of RAM/ROM modeling features.
er
Modeling Limitations:
nt
TetraMAX accepts a limited Verilog behavioral syntax for modeling RAM or ROM blocks.
rI
The Verilog code shown above is based on a template copied from TetraMAX on-line help.
For example, the if statement is part of the required template code, and cannot be left out.
Fo
Many types of memories are supported, including RAMs with multiple read/write ports, and
asynchronous set/reset inputs; common or separate address/data buses, with edge- or level-
se
Access TetraMAX Help, under index entries RAM Modeling and ROM Modeling.
For examples of RAM/ROM data initialization, see Memory Initialization Files.
ct
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-33
TetraMAX Workshop For Internal Microchip Training Purposes Only
Utility to Generate TetraMAX Memory Models
ng
# Declare the Memory signals
set_memgen_signal -port a[9:0] -type MemoryAddress
ni
set_memgen_signal -port wclk -type WriteClock
set_memgen_signal -port rclk -type ReadClock
ai
set_memgen_signal -port din[7:0] -type WriteData
Tr
set_memgen_signal -port dout[7:0] -type ReadData
ip
# Generate the memory model
ch
memgen -output mem.v
ro
SolvNet Article: TCL Script for Generating TetraMAX Memory Models
https://solvnet.synopsys.com/retrieve/018490.html
ic
2- 34
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-34
TetraMAX Workshop For Internal Microchip Training Purposes Only
Want to Quickly Return to DRC Mode?
First session:
BUILD-T> read_netlist . . .
BUILD-T> run_build_model
ng
DRC-T> write_image pass1.image.gz \
ni
–compress gzip -replace
ai
A later session:
Tr
BUILD-T> read_image pass1.image.gz
DRC-T> # Ready to resume in DRC mode
ip
ch
ro
ic
2- 35
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-35
TetraMAX Workshop For Internal Microchip Training Purposes Only
Unit Objectives Summary
ng
Debug a library modeling issue and develop a
ni
simple workaround using TetraMAX modeling
ai
primitives
Tr
ip
ch
Begin Lab 2: Handling Designs & Libraries
ro
ic
2- 36
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-36
TetraMAX Workshop For Internal Microchip Training Purposes Only
Command Summary (Lecture, Lab)
add_net_connections Alter the behavior of nets or other design aspects
set_scan_ability on non_scan_ff Treats a non-scan flop as a scan flip-flop
build –force Returns to BUILD mode
report_feedback_paths –all Reports all combinational feedback paths
report_modules -errors Detailed on-line manual pages
ng
report_modules -summary Reports summary statistics for modules
report_modules -undefined Reports all modules which are not defined
ni
report_violations n14 -all Reports all n14 violations
ai
set_atpg -merge Enables dynamic ATPG pattern compression
Tr
set_build -black_box Specifies a module to be a black box
set_build -empty_box Specifies a module to be an empty box
ip
set_build -nodelete_unused_gates Keeps unused gates in the ATPG model
ch
set_build -reset_boxes Removes all black, empty, etc. box definitions
set_faults -fault_coverage Report fault coverage in addition to test coverage
ro
set_rules n5 error Raises severity of n5 violation to Error
write_netlist libs_tmax.v.gz Save all library modules in one file
ic
write_patterns Save ATPG patterns to disk
2- 37
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-37
TetraMAX Workshop For Internal Microchip Training Purposes Only
This page was intentionally left blank.
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Building ATPG Models ©2018 Synopsys, Inc. All Rights Reserved. 2-38
TetraMAX Workshop For Internal Microchip Training Purposes Only
Agenda
DAY
1
i Introduction
ng
ni
1 Introduction to Test and TetraMAX
ai
Tr
2 Building ATPG Models
ip
3 Running DRC
ch
ro
4 Controlling ATPG
ic
3- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
List 3 methods of creating an SPF file
ni
Describe 2 ways of defining timing in TetraMAX
ai
Name 2 types of procedures used by ATPG
Tr
Name the 5 high level fault classes
ip
ch
ro
ic
3- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
TEST
ng
Mode
Gate-level Read Run
ni
Netlist Netlist ATPG
Verify
ai
Patterns
Tr
Build Review
ATPG Model Coverage
ip
ch
DRC
Mode Incremental
ro
STIL Test Check
ATPG
Protocol DFT Rules
(if needed)
ic
3- 3
lM
na
In DRC mode, all information needed by the TetraMAX to configure the design for test is
specified. The STIL test protocol file (STIL = Standard Test Interface Language) is read in. If DRC
er
DRC Setup
ng
ni
Debugging DRC Violations
ai
Tr
ip
ch
Managing Faults
ro
ic
3- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
What are the Scan Chain Pins?
ni
How is scan mode enabled for the design?
ai
What is the initialization sequence for the design?
Tr
What are the clocks?
Which clocks are used for shift and capture?
ip
What is the timing for all the device pins?
ch
And more questions
These answers are provided via a STIL Protocol File or by using
ro
TetraMAX Quick STIL commands
ic
3- 5
lM
na
The term “Quick STIL” refers to TetraMAX commands that define aspects of the Test protocol. If
TetraMAX commands are not used to define the Test protocol, then the Test protocol is defined by
er
ng
“multiclock_capture" { W "_default_WFT_";
F { TEST_MODE = 1; }
V { "_pi"=\r 12 #; #: Placeholder for values
"_po"=\r 8 #; }
supplied later during ATPG
ni
}
"load_unload" {
ai
// clocks & resets off; enable scan
V { CLOCK = 0; RSTB = 1; SCAN_EN = 1; TEST_MODE = 1; }
Tr
Shift {
V { _si=##; _so=##; CLOCK=P;} // pulse shift clock
}
ip
}
}
ch
MacroDefs {
"test_setup" {
ro
V {TEST_MODE = 1; CLOCK = 0; RSTB = 1;}
}
ic
} V: Vector Statement – one
ATE clock cycle 3- 6
lM
na
The simplest STIL Protocol File consists of the STIL header, a ScanStructures block, and a
Procedures block containing the load_unload procedure and Shift statement.
er
nt
The load_unload procedure defines test cycles to apply, which will enable the scan chain shift
rI
path. It also defines the ‘Shift’ statement and where within the load_unload it is applied.
The load_unload procedure should: place all clocks at their off states, enable scan chain
Fo
There is usually one top-level port such as “SCAN_EN” which will enable the shifting of scan
chains. The port should be set appropriately inside the load_unload procedure.
U
ed
The Shift statement defines how to shift the scan chains by one bit position. In the Shift statement,
the ‘#’ is a special placeholder which takes on a value from the scan input or scan output data
ct
vector. The example above is from a design with two scan chains so two #’s are used.
tri
The test_setup macro is optional but may be needed to initialize a particular design for test
es
mode.
R
ng
Create the SPF manually
ni
If an SPF is available, to run DRC:
ai
run_drc <spf_file>
Or ...
Tr
set_drc <spf_file>
run_drc
ip
If using Quick STIL commands only, to run DRC:
ch
run_drc
ro
ic
3- 7
lM
na
If commands are used to define the Test protocol file but a test_setup initialization sequence is
required to enter scan mode, the test_setup sequence can be included in an SPF file and
er
Check the man page of the run_drc command for details on how TetraMAX handles potential
U
conflicts when protocol information is provided with both TetraMAX command and an SPF.
ed
In DRC or TEST modes, the SPF file can be written with the command:
write_drc_file <file> [-replace]
ng
Protocol information provided via Quick STIL commands will be reflected
in protocol file written out with the write_drc_file command
ni
Quick STIL commands that will increase the protocol information include:
ai
add_clocks
Tr
add_pi_constraints
add_pi_equivalences
ip
add_scan_chains
ch
add_scan_enables
run_drc
ro
ic
3- 8
lM
na
Remember, the preferred method is to have DFT Compiler to automatically create the STIL
protocol file.
er
nt
The default timing produced will be written to be compatible with single-cycle capture.
rI
Fo
se
U
ed
ct
tri
es
R
ng
write_drc_file
ni
Manual SPF Editing
ai
Other Adjust
Tr
load_unload Shift test_setup
Procedures Timing
ip
ch
run_drc
ro
ic
Passing DRC
3- 9
lM
na
The easiest way to generate the STIL protocol file (SPF) from scratch is to specify as much
information as possible, while in DRC mode. Then write out an initial SPF for further editing.
er
The more SPF related information that is known at the time of the write_drc_file command
ct
then the more information that can be written into the SPF template.
tri
es
R
ng
To review the existing list of PI constraints use:
ni
report_pi_constraints
ai
To review a list of input, output, inout, or all ports use:
Tr
report_primitives [ -pis | -pos | -pios | -ports]
ip
ch
ro
ic
3- 10
lM
na
Constraints can also be defined in the SPF file.
er
Note: If a PI constraint is used along with an SPF, then the PI constraint is only applied to the
nt
capture procedures. Values in other procedures like load_unload are controlled by the states
rI
If DRC checks are going to be run using an SPF file and an add_pi_constraints command is
used, the constraint is applied to the capture procedures only.
U
ed
If DRC checks are going to be run only using Quick STIL commands and an
add_pi_constraints command is run, the constraint is applied to the capture procedures and
ct
PI equivalences on ports:
add_pi_equivalences [list P1 P2 P3]
ng
add_pi_equivalences ENA_P -invert ENA_N
ni
Defining differential Clocks:
ai
add_clocks 0 CLKP –shift
Tr
add_clocks 1 CLKN -shift
ip
add_pi_equivalences CLKP –differential CLKN
ch
To review the existing list of PI equivalences use:
ro
report_pi_equivalences
ic
3- 11
lM
na
This command is commonly used to define the relationship of differential inputs.
TetraMAX supports differential inputs for clocks and data ports.
er
STIL;
“W” Statement
ScanStructures { Selects The
ScanChain "c1" { ScanIn SDI2; ScanOut SDO2; } WaveFormTable
ScanChain "c2" { ScanIn SDI1; ScanOut D1; }
} (WFT) Timing
“E” Statement For Procedures {
"load_unload" {
Pin Equivalences W "_default_WFT_";
ng
V { RESETB = 1; SCAN_ENABLE = 1; ASIC_TEST = 1;
CLKP = 0; CLKN = 1; }
Shift { W "_default_WFT_";
ni
V { _si=##; _so=##;
CLKP=P; CLKN=P; } }
“F” Statement For }
ai
“multiclock_capture" { W "_multiclock_capture_WFT_";
PI Constraints E CLKP \m CLKN; // \m reference WFCMap
E P1 P2 P3;
Tr
E ENA_P \m ENA_N; \m references a WFCMap
F {ASIC_TEST=1;} statement in the Signals section:
V { "_pi"=\r 12 #;
"_po"=\r 8 #; } “ENA_N" In { WFCMap { 0->1; 1->0; } }
ip
“\r <n>” Repeat the next }
}
character “n” times
ch
MacroDefs { “#” Placeholder for
test_setup { W "_default_WFT_";
V { ASIC_TEST=1; CLKP=0; CLKN=1; RESET=0; } } value provided by ATPG
}
ro
ic
3- 12
lM
na
PI Equivalences can be defined in the SPF file by use of the “Equivalent” statement or “E” for
short.
er
nt
A PI constraint translates into a fixed port value during the application of the capture procedures of
se
A PI constraint is also placed on the defined pin during procedures such as the test_setup,
ed
load_unload, and Shift unless explicitly overridden using an assignment statement in the
procedure.
ct
tri
When long strings of assigned values are specified, the repeat syntax can shorten the strings:
\r<count> string_to_repeat<space>
es
R
ng
Examples:
add_clocks 0 [list clk1 clk2] \
ni
–timing [list 100 45 55 40] –shift
ai
Tr
add_clocks 1 RSTB \
–timing [list 100 45 55 40]
ip
The –shift option causes the clock to be pulsed in the load_unload
procedure during scan shift
ch
ro
ic
3- 13
lM
na
To check on the list of defined clocks defined either manually or by a STIL protocol file referenced
by a run_drc command use report_clocks.
er
nt
This option is used to define the test cycle period associated with the clock:
Fo
The measure time specifies the time within the test cycle at which the design's output pins will be
U
measured.
ed
The default for timing is: period 100, t1=50, t2=70, measure_time=40.
es
R
TetraMAX requires that all ports which affect the stored state of
sequential devices and require a pulsing action within the tester cycle,
be defined as “clocks”
ng
TetraMAX clocks include:
ni
Traditional clocks
ai
Asynchronous set and reset controls of flip-flops and latches
Reset Line gated
Tr
Read/write controls of RAMS with a ScanEnable
signal (TEST_SE)
ASIC_TEST
TEST_SE
Exception: resets that are used as both
D Q D Q
F2 F3
...
ip
SE SE
ch
Synchronizer
ro
Use the following drc option: Inactive During Shift
ic
RSTn
set_drc –allow_unstable_set_reset
3- 14
lM
na
From the TetraMAX OLH for the set_drc command:
er
-allow_unstable_set_resets | -noallow_unstable_set_resets
nt
rI
Specifies whether DFF/DLAT devices with unstable sets or resets are considered DRC violations.
An unstable set/reset condition exists when the control net is internally generated. The default is to
Fo
use these set/reset-unstable nonscan cells to further improve test coverage. This is especially useful
in at least two situations:
U
ed
1) when a primary input is used as both a synchronous and asynchronous set or reset, and
2) when the scan-enable line is used to gate internal set/reset lines during scan load.
ct
tri
In either case, for better test coverage, the scan-enable input and the primary input acting as both
asynchronous and synchronous reset should not be defined as clocks.
es
R
ng
Capture procedures for Delay fault patterns that use external clocks
with system_clock launch
ni
"allclock_launch" { W “_allclock__launch_WFT_";
ai
F { “TEST_MODE"=1; }
Tr
V { "_pi"= \r169 #; "_po"= \r164 #; }}
"allclock_capture" { W “_allclock_capture_WFT_";
F { “TEST_MODE”=1; }
ip
V { "_pi"= \r169 #; "_po"= \r164 #; }}
ch
"allclock_launch_capture" { W “_allclock_launch_capture_WFT_";
F { “TEST_MODE"=1; }
ro
V { "_pi"= \r169 #; "_po"= \r164 #; }}
ic
The _pi signal group controls the clocks that pulse in each pattern 3- 15
lM
na
For a given capture procedure, the order of events is determined by the Waveform Table Timing
(WFT) referenced by the capture procedure.
er
nt
The “\r” syntax in the SPF means to repeat the next state character <n> times. I.e., “\r169 #”
rI
means to repeat the # state character 169 times. The # character is a placeholder for state values that
will be later provided by ATPG.
Fo
se
U
ed
ct
tri
es
R
ng
add_scan_chains chain2 SDI2 SDO2 ScanStructures
add_scan_enables 1 SCAN_EN
ni
add_scan_enables Z BIDI
ai
ScanStructures {
Tr
ScanChain "chain1" { ScanIn SDI1; ScanOut SDO1; }
ScanChain ”chain2" { ScanIn SDI2; ScanOut SDO2; }
}
ip
Procedures { add_scan_enables
"load_unload" { reflected in
ch
V { CLOCK = 0; BIDI = Z; SCAN_EN = 1; } load_unload
Shift {
ro
V { _si=##; _so=##; CLOCK=P;} // pulse shift clock
}
ic
}
}
3- 16
lM
na
STIL keywords must be exactly entered as shown. Keywords on this slide include
ScanStructures, ScanChain, ScanIn and ScanOut.
er
nt
STIL keywords can easily be identified because they are not surrounded by double-quotes and they
rI
have mixed upper- and lower-case letters. For example: STIL will not recognize SCANIN, scanin,
or scanIN as the keyword ScanIn
Fo
The Shift statement defines how to shift the scan chains by one bit position. The ‘#’ is a special
se
placeholder which takes on a value from the scan input or scan output data vector during ATPG.
U
TetraMAX has some predefined signal groups such as “_si” for scan inputs and “_so” for scan
ed
outputs as a shorthand way to reference all scan input and output ports.
ct
When long strings of assigned values are specified, the repeat syntax can shorten the strings:
\r<count> string_to_repeat<space>
tri
For example, in a design with 16 scan chains, Shift statement might be defined as:
es
Shift {
V { _si=\r16 # ; _so=\r16 # ; CLOCK=P;} // pulse shift clock
R
ng
More complex designs may require multiple pins and/or a specific
initialization sequence:
ni
ai
Add the test_setup macro procedure to the SPF file
Tr
ASIC_TEST = 1 MacroDefs { STIL state
Status Bits
“test_setup” {
assignments
CONFIG are persistent
ip
V {CONF = 1; CONF_ENABLE = 1; CLK = P;}
V {CONF = 0; } // CLK=P again, CONF_ENABLE still 1
ch
101 1 0 1 V {CONF = 1; }
CONF
F1 F2 F3 V {CONF_ENABLE = 0; CLK = 0;}
ro
CONF_ENABLE 1 }
CLK off at end
}
ic
CLK
3- 17
lM
na
There is no Quick STIL equivalent for test_setup sequences. If Quick STIL commands are
used to define the Test protocol file but a test_setup initialization sequence is required to enter
er
scan mode, the test_setup sequence can be included in an SPF file and “appended” to the
nt
Check the man page of the run_drc command for details on how TetraMAX handles potential
ed
conflicts when protocol information is provided with both TetraMAX command and an SPF.
ct
can’t be used alone. This is the case for pin-limited designs, where there is not an pi available for an
ASIC_TEST pin. Existing configuration logic is used here to generate an on-chip ASIC_TEST
es
signal. Bits serially clocked into flip-flops F1, F2, F3 are decoded to generate status signals.
Assume one serial bit pattern is unused in normal operation; then it can be used for test.
R
The penalty is that the configuration register must be initialized before scan shift.
Therefore, a custom initialization sequence must be added to the test protocol.
ng
The event order and timing come from the test protocol which can
come from several places
ni
A SPF file written out from DFTC
ai
Timing specified with Quick STIL commands
Tr
Default timing in TetraMAX
Timing entered manually into the SPF
ip
ch
What does TetraMAX do with the timing during?
DRC: uses the timing values and event order for DRC checks
ro
ATPG and Fault Sim: timing information is not used
ic
Pattern Formatting: timing is associated with the output vectors 3- 18
lM
na
The timing in an existing SPF can be modified within TetraMAX by using read_drc and the
update_* commands in the following flow:
er
nt
read_drc <original_SPF_file>
rI
...
ed
run_drc <new_SPF_file>
ct
tri
Note: After specifying the timing modification commands, it is required that you use the
write_drc_file command to write out the modified data. It is also required that you specify
es
the run_drc command with this newly produced file in order to incorporate these changes.
R
ng
Waveforms {
"_default_In_Timing_" { 01ZN { '0ns' D/U/Z/N; } }
"_default_Clk0_Timing_" { P { '0ns' D; ‘45ns' U; ‘55ns' D; } }
ni
"_default_Out_Timing_" { X { '0ns' X; } }
"_default_Out_Timing_" { HTL { '0ns' X; '40ns' H/T/L; } }
ai
}
}
Tr
}
ip
SignalGroups {
ch
"_default_Clk1_Timing_" = '"prst_n"';
"_default_Clk0_Timing_" = '"sdr_clk" + "sys_clk"';
"_default_In_Timing_" = '"pframe_n" + ... "pad[0]"';
ro
"_default_Out_Timing_" = '"pframe_n" + ... "pad[0]"';
"_si" = '"pad[0]" + ... "pad[5]"' { ScanIn; };
ic
"_so" = '"sd_A[0]" + ... "sd_A[5]"' { ScanOut; };
}
3- 19
lM
na
Timing in the STIL protocol file comes from the following DFT-Compiler variables:
er
test_default_period 100
rI
test_default_delay 0
test_default_bidir_delay 0
Fo
test_default_strobe 40
se
ng
ni
Measure PO’s M
ai
Pulse clocks
Tr
End-of-cycle Measure
ip
Alternate timing sometimes used by older testers
ch
Force PI’s or SI’s
ro
Pulse clocks
Measure PO’s
ic
M
3- 20
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
When the default pre-clock timing is used, the capture procedure can use
a single vector
"multiclock_capture" {
W “_multiclock_capture_WFT_";
ng
V {"_po" = \r168 #; "_pi" = \r179 #;}
}
ni
Single Vector Capture
ai
test_setup Load Capture Load/Unload Capture
Tr
Shift Shift Shift Shift Shift Shift
PI’s
ip
scan_se
ch
M M M M M M M M
Measure PO’s
ro
clk
ic
3- 21
lM
na
Note: a single vector capture procedure is required for At-Speed ATPG using external clocks
er
Measures (“M”) during Shift will detect faults captured by scan FF’s. The measure during the
nt
ng
S rules (scan chain or shift)
ni
C rules (clocks or capture)
ai
Z rules (internal tristate buses and bidirectional pins)
Tr
X rules (combinational feedback loops)
ip
Other rule categories:
ch
P rules (Path delay checks)
D rules (Pre-DFT violations)
ro
ic
3- 22
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
Scan Chain Tracing
ch
ro
ic
3- 23
lM
na
scan design rule checking - This indicates the beginning of the scan design rule checking process.
reading test protocol file - Read the test protocol file and indicate the parsing of the file was successful with
er
no errors
nt
Bus/Wire contention ability checking - Summary the types of bus gates that are used in the circuit. This
includes the total number of bus gates, the number of bidirectional bus gates, the number of weak bus gates
rI
(only weak drivers), the number of pull bus gates (a mixture of strong and weak drivers), and the number of
Fo
scan chain operation checking - The results of the previous simulation are used to verify the operation of
the scan chains and identify the associated scan cells. As each scan chain is successfully verified, a message
U
clock rules checking - During this process many clock rules are checked and messages are given when
violations occur.
ct
nonscan rules checking - The objective of this checking is to determine the appropriate behavior for all non
scan state elements. This includes the nonscan DFFs, nonscan DLATs, and the transparent latch usage. The
tri
next message gives a summary of the calculated nonscan behaviors. DRC dependent learning - Using the
es
behaviors learned during DRC, analyses are performed to determine control ability, observe ability,
constraint effects, and blockages due to constraint effects for all gates in the circuit.
R
contention prevention rules checking – Rules and design behavior affecting contention.
DRC Summary Report - For each rule that had at least one violation, a summary message for that rule is
given indicating the number of times it was violated. The next message indicates the total number of rule
violations that occurred during the DRC process.
ng
with a severity of Error is
ni
encountered, DRC fails and the
DRC run is aborted at that point
ai
Tr
ip
ch
ro
ic
3- 24
lM
na
Some DRC rules can be downgraded from an Error to a Warning with the set_rules
command. However, some rules like S1 cannot be downgraded.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
DRC Setup
ng
ni
Debugging DRC Violations
ai
Tr
ip
ch
Managing Faults
ro
ic
3- 25
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Example: report all S-rule violations
ni
report_violations s
ai
Debug violations with analyze_violation command
Tr
Example: debug first S1 violation
analyze_violation s1-1
ip
GSV will display gates associated with the violation
ch
ro
ic
3- 26
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
The S1 DRC uses the event sequence of the simulated shift procedure
Each scan chain output is traced backwards through combinational and
sequential gates until the scan input is reached
ng
ni
Name of scan chain TetraMAX Gate ID Violation ID
ai
Tr
Error: Chain c1 blocked at DFF gate out_reg (8) after tracing 0 cells. (S1-1)
ip
Position in the scan chain (0
Scan cell
closest to ScanOut)
ch
So “after tracing 0 cells” means that the violation occured at the
ro
last scan cell in the chain
ic
3- 27
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ScanEnable active state?
ni
Set/Reset inactive state?
ai
The reset pin (CDN) is
“X” during shift. Why? Trace path
Tr
ip
In this case, rst was not specified in the SPF file
ch
Define “rst” as clock (best solution):
add_clocks 1 {rst} -timing {100 50 80 40}
ro
ic
3- 28
lM
na
The shift character specified by “set_pindata –shift_character S” (default is “S”) is
used to distinguish valid scan data (SSS) from unconstrained nets (XXX) when viewing the “Shift”
er
ng
ni
Test mode register has lost its
ai
state after test_setup. Why? By default, the test_setup
pindata only shows the final
Tr
simulated state. To show the
entire test_setup sequence:
ip
set_drc –store_setup
set_pindata –test_setup
ch
ro
In the test_setup the test mode register is
ic
initialized correctly. But does it hold its state
during load_unload and capture? 3- 29
lM
na
Using set_drc –store-setup will increase run time and memory consumption during DRC.
You can control which bits are stored with set_pindata –setup_cycles {n1 n2}
er
Otherwise the GSV may be overcrowded and hard to see for long sequences.
nt
rI
Can also use report_primitives to display the test_setup pindata on the gate primitive
in the Transcript instead of using GSV
Fo
TEST-T> report_prim 55
flop1 (55) DFF (FD1S)
se
--- I () (TIE_0)
--- I () (TIE_0)
U
To further investigate why the initialized value did not hold its state in
load_unload and capture, look at the stability_patterns pindata
To view the stability pattern, it also needs to have been stored during
ng
run_drc with the following command:
ni
set_drc –store_stability_patterns
ai
Tr
ip
ch
Required value of 1 loaded The 1 loaded during test_setup
ro
during test_setup is not maintained during capture
ic
Root cause in this case was a missing constraint
that was supposed to recirculate the data 3- 30
lM
na
There are two types of stability patterns
er
1) The stability pattern with 3-sections is seen when there is no V statement in load_unload
Fo
before the Shift procedure. I.e., there is no pre-shift vector in load_unload procedure. Where:
se
T is the value on the pin after last cycle in test_setup procedure (you will only see 1 character
here, independent of the number of events in test_setup procedure)
U
CCC is the value on the pin in three different states in capture procedure (3 characters)
ct
2) You will see stability pattern with 2-sections when there are some vectors in the load_unload
tri
procedure prior to Shift. I.e., there are some pre-shift vectors. Where:
es
LLLLLS : here LLLL denote the events in pre-shift vectors (the number of L's depends upon the
number of events before Shift). And the last character in this first section is S, which is the value
R
ng
ni
ai
Tr
ip
ch
ro
ic
3- 31
lM
na
TetraMAX’s waveform viewer helps designers quickly isolate and correct the causes of DFT
problems that tend to create project bottlenecks.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
SWV commands:
ro
add_waveform_signals <pin_pathname | gate_id | -all>
ic
remove_waveform_signals <pin_pathname | gate_id | -all> 3- 32
lM
na
Another way to limit the pindata characters displayed in the GSV is to use:
set_environment_viewer -max_pindata_length d
er
nt
Specifies the length of the simulation string centered around the current wave cursor reference
rI
point. When the value is set to 0, all available simulation pindata values are displayed. Note that the
pindata length count includes all "information" characters displayed between the waveform
Fo
characters. An ellipsis (…) is added to the annotation to signify that only a partial value is
displayed.
se
When you use this with the waveform viewer moving the cursor in the waveform will move the
U
test_setup
Debug an initialization sequence
sequential_sim_data
ng
Look at the results of a
ni
TetraMAX sequential
ai
simulation of pattern data
Tr
debug_sim_data
View pattern simulation data an/d
ip
or VCD data from another simulator
ch
ro
ic
3- 33
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
First Session:
BUILD-T> read_netlist . . .
BUILD-T> run_build_model
ng
DRC-T> run_drc DUT.spf
TEST-T> write_image pass1.image.gz \
ni
–compress gzip –replace –violations
ai
A Later Session:
Tr
BUILD-T> read_image pass1.image.gz
TEST-T> # Ready to resume in TEST mode
ip
ch
ro
ic
3- 34
lM
na
An image file can be password protected and it’s net name and instances can be “garbled” for extra
security. Furthermore, the user can control which commands can be executed when an image file is
er
read. Image files are covered in more detail in the Diagnosis unit.
nt
rI
Fo
se
U
ed
ct
tri
es
R
DRC Setup
ng
ni
Debugging DRC Violations
ai
Tr
ip
ch
Managing Faults
ro
ic
3- 35
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
AP - ATPG untestable, possibly detected
Low-level
NP - not analyzed, possibly detected
Fault Classes
ni
UD – Undetectable:
UU - undetectable unused
ai
UO - undetectable unobservable
Tr
UT - undetectable tied
UB - undetectable blocked
UR - undetectable redundant
ip
AU – ATPG Untestable:
ch
AN - ATPG untestable, not-detected Use set_faults –summary verbose to see
Low-level fault classes in fault summary reports
ND – Not Detected:
ro
NC - not controlled
NO - not observed
ic
3- 36
lM
na
Fault sub classes that are related to loadable nonscan cells
er
D2 - Detected clock fault with loadable nonscan cell faulty value of 0 and 1 (sub class of DT)
nt
P0 - Detected clock fault and loadable nonscan cell faulty value is 0 (sub class of PT)
rI
P1 - Detected clock fault and loadable nonscan cell faulty value is 1 (sub class of PT)
Fo
DR - robustly detected delay fault (sub class of DT for path delay testing)
TP - Transition Partially-detected (sub class of DT for Slack-Based Transition
U
testing)
ed
AX - ATPG untestable timing exceptions (sub class of AN indicating faults that are
untestable due to timing exceptions)
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
DRC traces the scan chains through all the scan flops.
The faults on the scan clock, scan enable and scan path
ro
are “detected by implication” (DI) before ATPG
ic
3- 37
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
fault class code #faults
------------------------------ ---- ---------
Caused by design topology
ni
Detected DT 14666
ai
Possibly detected PT 0
Undetectable UD 44 PI/ATPG constraints,
Tr
ATPG untestable AU 5383 Not 100% Full-Scan,
Not detected ND 68233 and/or need Seq ATPG
ip
-----------------------------------------------
ch
total faults 88326 Most faults start here
test coverage 16.61%
ro
-----------------------------------------------
Have not yet run ATPG
ic
Pattern Summary Report
#internal patterns 0 3- 38
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
machine simulates a 1 or 0 SE
Cannot
predict
ni
AP (ATPG untestable, Possibly 0
value of
1 F2/Q
detected): If this driver
ai
D1 U1 Therefore
is disabled to U0/E SA0
An analysis has proven that this fault cannot be test U0
Tr
is PT
detected under current ATPG settings (this does not D Q
SI 0/Z 0/X
rule out non-ATPG methods)
ip
F0 D Q
SE SI
F2
ch
NP (Not analyzed, Possibly detected): And this 1/0
SE
enable pin
An analysis to prove that the fault cannot be 0
ro
has a SA0
D0 U0
detected was not conclusive
ic
One possible cause is that the abort limit is too low
3- 39
lM
na
Credit may be given for possibly detected faults in the Test Coverage calculation.
The default credit is 50% and may be changed using set_faults -pt_credit 0, for
er
example.
nt
rI
Fo
se
U
ed
ct
tri
es
R
D D D
SI Q SI Q D Q SI Q
...0011 ...0011 ...0011 ...0011 ...0011
ng
SE SE SE
1111111 UU UU UU UO
CLK QN CLK QN EN QN CLK QN
F2 F3 LD F4
ni
UU
ai
CLK_1
CLK_2
Tr
Given that all the QN pins are unconnected or unused
ip
ch
Both the stuck-at-0 and stuck-at-1 faults on the QN pins are classified
as UU
ro
Unconnected/unused faults with fanout are UO faults
ic
3- 40
lM
na
The UO (undetectable unobservable) class is similar to the UU (Undetectable Unused) class, except
that the UO fault class specifically includes faults on unused gates with fanout (i.e., gates connected
er
to other unused gates). Faults on unused gates without fanout are identified as UU faults.
nt
rI
Fo
se
U
ed
ct
tri
es
R
ASIC_TEST D Q D Q
F2 F3
SE SE
...
Reset
ng
Tied Pin has Synchronizer
a UT fault
ni
D Q D Q
0
ai
SE SE
F0 F1
1
Tr
Internal Reset Line
RSTn Inactive During Scan
ip
The F0/D pin stuck-at-1 is classified as UT
ch
ro
It can never be controlled to 0 since it is tied off to 1
ic
3- 41
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
B
1/0
ng
A U1 U0 Y
ni
C
Undetectable
ai
U3 Stuck-At Fault
Tr
To avoid an output glitch, designer has added gate U1 but the added
gate does not alter the function Y, and is thus redundant
ip
ch
Since U1 has no effect, the stuck-at-0 fault is UR
The majority of UR faults are identified during run_atpg
ro
ic
3- 42
lM
na
There are 4 UR faults in this small example. All are stuck-at-0 faults.
U1/Z
er
U1/A
nt
U1/B
rI
U0/B
Fo
se
U
ed
ct
tri
es
R
ng
ASIC_TEST
ni
D Q D Q
ai
Clock F0 F1
Divider 0 SE SE
Tr
1
CLK
ip
ch
Both stuck-at-0 and stuck-at-1 on the MUX D0 pin are AU
ro
Stuck-at-1 for ASIC_TEST is not a tie-off, so it is an AU, not a UT
ic
3- 43
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
NC (Not Controlled):
The starting classification for most faults prior to ATPG
A way in which to control the fault location to the value opposite the stuck-at value
ng
has not yet been found
ni
NO (Not Observed):
ai
Once ATPG controls the NC fault site, it becomes NO
Tr
The fault site could be controlled but a way to propagate the fault effect to an
observe point, either a scan cell or primary output, has not yet been found
ip
Ideally, an “NO” fault will become a “DS” fault during ATPG
ch
ro
ic
3- 44
lM
na
A fault site that is always X is also classified as NC since it can never be controlled to a 1 or 0.
Faults can remain NC or NO after ATPG if they are very difficult to control or observe or the ATPG
er
The addition of faults to the fault list can be inhibited by defining a set
of faults as “nofaults” prior to adding faults
Nofaults can be defined with add_nofaults by:
ng
Pin pathname
ni
Primitive instance pathname
ai
Hierarchical instance pathname
Tr
Module name
Nofaults can also be defined by placing the fault locations in a Fault
ip
Interface File Format and reading the file:
ch
read_nofaults filename
ro
ic
3- 45
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
12456 faults were added to nofault list.
add_nofaults /ORCA_JTAG_BSR_top_inst
ni
2434 faults were added to nofault list.
add_faults –all
ai
When the fault list is populated with add_faults, the faults identified
Tr
with add_nofaults will not be added to the fault list
ip
TetraMAX supports a sampled or partial seeding of faults by using the
ch
-retain_sample option of the remove_faults command:
TEST-T> add_faults -all
ro
87098 faults were added to fault list.
TEST-T> remove_faults -retain 5
ic
Fault sampling finished: #faults reduced from 87098 to 4308
3- 46
lM
na
The commands add_nofaults and add_faults have similar options. Specify nofaults first,
then add the faults.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
sa1 DI /RSTB
sa0 DS /RSTB
ni
sa1 AN /i22/mux2/A
ai
sa1 UT /i22/reg2/lat1/SB
Tr
sa0 UR /i22/mux0/MUX2_UDP_1/A
sa0 UR /i22/mux0/A
ip
sa0 DS /i22/reg1/MX1/D
sa0 DS /i22/mux1/X
ch
sa0 DS /i22/mux1/MUX2_UDP_1/Q
ro
sa1 DI /i22/reg2/r/CK
sa0 AP /i22/out0/EN
ic
sa1 AP /i22/out0/EN
3- 47
lM
na
Fault lists can be exported from and imported into TetraMAX.
er
Column 2 - Class of fault, “--” indicates the fault is equivalent to the last line before it which has
other than “--”
Fo
B U1
ng
U1/A SA1 U1/Y SA0 Z
ni
C
ai
D
Tr
Equivalent Faults:
ip
A set of faults whose effects cannot be distinguished
ch
at the ATE are equivalent to one another. No test can
be created to tell them apart from one another.
ro
ic
3- 48
lM
na
Intuitively, some faults in network N 1 would seem to be identical in their effects:
er
Functional Equivalence:
Functionally equivalent faults in a network produce the same truth-table output.
nt
Two arbitrary faults are functionally equivalent if no test exists to tell them apart.
rI
Structural Equivalence:
U
A trivial example is the two corresponding faults at the ends of a fanout-free net; thus,
an stuck-at-0 fault at port A is equivalent to the stuck-at-0 at the NAND input pin A.
ct
Another equivalence is the stuck-at-1 at inverter pin U1/A and the stuck-at-0 at pin U1/Y.
tri
es
Conclusion:
This slide shows how ATPG begins traversing the logic, thinning out the faults.
R
Only one fault per equivalent fault set is retained—reducing test pattern count.
Nf = 2 ( Ninputs + 1 )
Before
= 6 Collapsing
ng
Nf = ( Ninputs + 2 ) After
ni
= 4
Collapsing
ai
Tr
The effect of a NAND input stuck-at-0 (SA0) is identical to the output
stuck-at-1 (SA1)
ip
ch
The fault set { A SA0, B SA0, Y SA1 } is thus an equivalent set
Only one of the equivalent faults needs to be included
ro
Example: Y SA1
ic
3- 49
lM
na
This slide examines structurally equivalent faults for a typical logic gate, a NAND.
It demonstrates that ATPG need consider only four faults out of the original six.
er
Intuitively, there exists no test that can distinguish an input stuck-at0 and the output stuck-at-1.
rI
On the slide, the two input stuck-at-0 faults (gold diamonds) have thus been eliminated.
A similar structural equivalence analysis can be applied to any other N-input gate.
Fo
se
U
ed
ct
tri
es
R
A Network N 1
ng
Z
ni
C
ai
D After collapsing, only
8 of 32 faults left
Tr
ip
Fault Collapsing:
ch
By testing for only one fault per equivalence set, the fault
ro
population is reduced (or collapsed) which means fewer patterns
ic
3- 50
lM
na
Thinning out all but one fault per equivalent fault set is called fault collapsing.
This slide reveals that, after collapsing, only 8 faults remain in N1 out of 32.
er
Fault collapsing significantly reduces ATPG run time and test-pattern count.
nt
This is one of the techniques TetraMAX uses to efficiently generate test programs.
rI
sa1 DS A
sa1 -- u_nand/A
sa1 DS u_inv/Z
sa0 -- u_inv/A
sa0 -- B
ng
sa1 -- u_nand/B
sa0 DS u_nand/Z
ni
sa0 -- u_norz/A
sa0 DS Z
ai
sa0 -- u_norz/Z
sa1 -- u_norz/A Equivalent
Tr
sa1 -- u_norz/B Faults
sa1 -- u_nand/Z
ip
sa0 -- u_nand/A
... .. ...
ch
ro
By default, faults equivalent to the previously listed fault code are
indicated by --
ic
3- 51
lM
na
This slide is a report derived from the fault list that TetraMAX maintains for a DUT.
The legend -- indicates that a fault is equivalent to the previous reported fault.
er
On the slide, faults belonging to an equivalent set are highlighted in the same color.
nt
The fault code DS means that ATPG successfully generated a pattern for that fault.
rI
double dash "--". Use of -noequiv_code suppresses the use of this character string and uses instead
the fault class of the fault to which this fault is equivalent.
U
ed
ct
tri
es
R
The collapsed fault list contains only “primary” faults (i.e. one fault per
ng
set of equivalent faults)
TetraMAX processes the collapsed fault list during ATPG but keeps
ni
track of both the collapsed and uncollapsed faults
ai
Tr
Test Coverage can be reported using either collapsed or uncollapsed
numbers
ip
set_faults -report [-collapsed | -uncollapsed ]
ch
Fault lists can be saved to files and reported in either the collapsed or
ro
uncollapsed form
write_faults <file> -all [-collapsed | -uncollapsed]
ic
3- 52
lM
na
To improve performance, most ATPG tools identify all equivalent faults and use only a single
member of each fault equivalence class. For example, a stuck-at-0 fault on the input pin of a BUF
er
gate is equivalent to the stuck-at-0 fault on the output pin of the same gate. The collapsed fault list
nt
would contain only one of those faults which is termed the "primary" fault. For a given set of
rI
equivalent faults, the choice of which one is the primary fault is controlled by the equivalency
analysis and is not predictable.
Fo
se
U
ed
ct
tri
es
R
ng
DT + (PT * posdet_credit)
Test Coverage =
all faults - (UD + (AU * au_credit))
ni
ai
Fault Coverage calculation also includes UD faults, which do not
Tr
change the static behavior of the design
ip
DT + (PT * posdet_credit)
Fault Coverage =
ch
all faults
ro
posdet_credit = 50% by default
ic
au_credit = 0% by default
3- 53
lM
na
To consider only hard detected faults, use :
set_faults -pt_credit 0
er
nt
for details.
ed
ct
tri
es
R
ng
Uncollapsed Stuck Fault Summary Report
-----------------------------------------------
ni
fault class code #faults
------------------------------ ---- ---------
ai
Detected DT 82596
Reports Uncollapsed Possibly detected PT 24
Undetectable UD 279
Faults by Default
Tr
ATPG untestable AU 5458
Not detected ND 145
-----------------------------------------------
ip
total faults 88502
test coverage 93.64%
fault coverage 93.34%
ch
-----------------------------------------------
Pattern Summary Report
-----------------------------------------------
ro
#internal patterns 784
#basic_scan patterns 784
ic
-----------------------------------------------
3- 54
lM
na
By default, TetraMAX only outputs the test coverage percentage whose value does not change
based on “set_build –delete_unused_gates”.
er
nt
Fault sites locations of a given fault model can be added to the fault
list for all locations (-all), specific pin pathnames, specific instance
names, or module names
ng
add_faults <pin_path | inst_name | -module <name> | -all>
ni
Faults can also be defined by placing the fault locations in a Fault
Interface File Format and reading the file:
ai
read_faults filename
Tr
Once faults are populated, save all faults or just specific classes:
ip
write_faults my_asic_all.flt –replace –all
ch
write_faults my_asic_au_nd.flt –replace –class {au nd}
ro
Fault files for SoC designs can be huge:
ic
write_faults my_asic_all.flt.gz –all –compress gzip
3- 55
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Describe 2 ways of defining timing in TetraMAX
Name 2 types of procedures used by ATPG
ni
ai
Name the 5 high level fault classes
Tr
ip
ch
Begin Lab 3: Running DRC
ro
ic
3- 56
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
add_pi_equivalences Defines an equal/opposite relation for Pis
add_scan_chains Declares the scan PI/PO for a chain
ni
add_scan_enables Defines a constrained value for a PI to enable shift
ai
report_pi_constraints Reports currently defined PI with constraints
Tr
report_primitives Reports all primary inputs, outputs, etc.
run_drc DUT.spf Performs design rule checks using a STIL file
ip
source commands.tcl Executes the commands store in a file
write_drc_file my.spf Creates on disk the test protocol in STIL format
ch
ro
ic
3- 57
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
DAY
1
i Introduction
ng
ni
1 Introduction to Test and TetraMAX
ai
Tr
2 Building ATPG Models
ip
3 Running DRC
ch
ro
4 Controlling ATPG
ic
4- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Describe when and how to use -abort limit
Describe when and how to use -capture_cycles
ni
ai
Debug Low Fault Coverage
Tr
Name some differences between TetraMAX and TetraMAX II
ip
ch
ro
ic
4- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
TEST
ng
Mode
Gate-level Read Run
ni
Netlist Netlist ATPG
Verify
ai
Patterns
Tr
Build Review
ATPG Model Coverage
ip
ch
DRC
Mode Incremental
ro
STIL Test Check
ATPG
Protocol DFT Rules
(if needed)
ic
4- 3
lM
na
TEST Mode is entered if DRC was successful. In TEST mode, the following operations are typical:
adjust settings for ATPG, start pattern generation, run an incremental ATPG if needed, and save the
er
patterns to disk.
nt
rI
Fo
se
U
ed
ct
tri
es
R
Running ATPG
ng
ni
Post-ATPG Analysis
ai
Tr
ip
ch
TetraMAX II
ro
ic
4- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
-abort_limit, -capture_cycles, -num_processes,
ni
-num_threads, -parallel_strobe_data_file, -patterns,
-power_budget, -verbose
ai
Tr
The command to run ATPG is run_atpg
Best starting point for tradeoff of coverage, pattern count, and runtime
ip
run_atpg –auto_compression
ch
Some other commonly used command options are:
ro
-nodisturb_clock_grouping, -only_chain_test,
ic
-only_chain_diagnosis, -optimize_patterns
4- 5
lM
na
More info on the set_atpg command options mentioned above:
-abort_limit <n> - Specifies the maximum number of remade decisions before terminating a test
er
-num_threads <n> - Specifies the number of threads for multithreading with TetraMAX II.
Fo
-parallel_strobe_data_file [psd_file] - Generates a parallel strobe data (PSD) file used for
debugging parallel simulation failures.
-patterns max_patterns - Specifies the termination of the ATPG effort when the pattern count
se
-verbose - Extra messages are displayed during the pattern merge operation.
ed
-auto_compression - Selects an algorithm that automatically produces compact patterns and high test
coverage using minimal CPU time.
tri
patterns.
-optimize_patterns - Selects an algorithm designed to produce a very compact pattern set with high
test coverage. The trade-off is that this optimization increases the run time by dynamically adjusting the
internal settings, such as abort limits, minimum detects, and merge limits during ATPG.
ng
Full-Sequential: powerful engine supporting more complex designs
ni
ai
Tr
ip
ch
ro
ic
4- 6
lM
na
TetraMAX’s integrated ATPG engines provide the highest Stuck-At test coverage. Synopsys recommends
starting with Basic-Scan (combinational) ATPG, followed by Fast-Sequential (up to 10 capture cycles) and
er
then Full-Sequential (unlimited capture cycles) if necessary. Full-Sequential is a powerful algorithm, but it
nt
takes longer to run. Run it only on the undetected faults after doing Basic-Scan/Fast-Sequential ATPG. All
these ATPG algorithms are available in a single tool, with a single user-interface.
rI
black boxed.
Fast-Sequential for increasing coverage on designs and supports (i.e.: can deterministically propagate faults
U
through) load unstable nonscan cells as long as they are stable (in capture cycle) when all clocks are in their
off-state:
ed
ng
------------------------------ ---- ---------
Detected DT 82669
Slight Increase in Number of
ni
Possibly detected PT 23 PTs, UDs and AUs after ATPG
ai
Undetectable UD 103
ATPG untestable AU 5438
Tr
Not detected ND 93
-----------------------------------------------
ip
Very Few NDs Remain
total faults 88326
ch
test coverage 93.72%
-----------------------------------------------
ro
Pattern Summary Report Have only run Basic-Scan ATPG
ic
-----------------------------------------------
#basic_scan patterns 191 4- 7
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
The ATPG untestable (AU) fault class includes faults which can neither
be hard detected under the current ATPG conditions nor proved
redundant
ng
When calculating test coverage, these faults are considered the same
ni
as untested faults because they have the potential to cause failures
ai
Primary reasons for faults in this classification include:
Tr
Fault untestable due to a PI, ATPG, or cell constraint which is in effect
Fault requires sequential patterns for detection
ip
Fault untestable due to a masked cell or PO
ch
ro
ic
4- 8
lM
na
Faults around non-scan elements (non-scan flip-flops, latches, bus keepers, RAMs) are AU for
Basic-Scan ATPG
er
nt
ng
Basic Scan ATPG
SI SO
ni
Scan Registers
ai
Fast-Sequential: limited amount of non-scan (non-
scan flip-flops, latches, bus keepers, RAMs), multiple
Tr
capture clock pulses possible
ip
Faults Around
If a Nonscan Register
Nonscan
ch
is “Loadable”, it can
Registers Require
be controlled with
Sequential ATPG
Basic-Scan as well
ro
ic
SI Nonscan Registers SO
4- 9
lM
na
Basic-Scan means that there is exactly one capture cycle, i. e. test cycle with active clock and scan
enable set to normal operation mode.
er
nt
Fast-Sequential means there may be from 2 to 10 capture cycles between scan load and unload. By
rI
supporting multiple capture cycles TetraMAX allows full testing of circuitry between non-scan
registers, which would be untestable using Basic-Scan ATPG.
Fo
se
U
ed
ct
tri
es
R
ng
Control of loadable nonscan cells is supported by the Basic-Scan and
ni
two-clock ATPG engines
ai
The additional control allows the more efficient Basic-Scan ATPG
Tr
engine to obtain higher Test Coverage
ip
Logic and fault simulation can simulate these load values for depths up
to the length of the longest scan chain (max of 10)
ch
Simulation of loadable nonscan cells is also supported during Fast-
ro
Sequential ATPG
ic
4- 10
lM
na
By control to a sequential depth of 1, this means that ATPG knows it can load a particular value
(0/1) in a nonscan cell that is one level of sequential depth away from a scan cell. This value loaded
er
in the nonscan cell can be used by ATPG to create a pattern to test a targeted fault.
nt
rI
By simulation of loadable nonscan cells, this mean that ATPG can simulate the last n (max of 10)
cycles of scan load to see if any additional nonscan cells will resolve to known values. This allows
Fo
nonscan registers greater than one level of sequential depth away from a scan register to be loaded
with a known value. ATPG is not able to use these values when creating a pattern to target a fault.
se
However, it can use these additional known values to pickup additional detections from an existing
pattern during fault simulation.
U
ed
ng
nonscan cell load values
ni
set_simulation -shift_cycles <n>
ai
Where 1 < n < 10 (and less than longest chain)
Tr
Reporting nonscan cells
report_nonscan_cells [ load | nonx_load ]
ip
load: Loadable nonscan cells
ch
nonx_load: Loadable nonscan cells which always have a non-X value (i.e.,
ro
0 or 1) during the random pattern based analysis performed during run_drc
ic
Use analyze_nonscan_loading for analysis
4- 11
lM
na
New section printed during run_drc when set_drc –load_nonscan_cells is set:
Begin nonscan rules checking...
er
------------------------------------------------------------------------------
Shift_pattern simulation setup completed: #shift_cycles=1, #shift_patterns=3
Shift simulation completed: #shifts=1, #nonscancells_loaded=160
Fo
ng
capture_cycles:
ni
ai
set_patterns –histogram_summary
Tr
set_atpg -capture_cycles <d>
run_atpg -auto
ip
ch
[Where <d> is an integer between 2 and 10]
ro
ic
4- 12
lM
na
d = 0 (the default) disables Fast-Sequential ATPG pattern effort and results in Basic-Scan ATPG
patterns.
er
number of patterns for each capture depth as well as the number of multi-load patterns.
-----------------------------------------------
Fo
#internal patterns 66
#basic_scan patterns 19
se
#fast_sequential patterns 47
# 2-cycle patterns 7
U
# 3-cycle patterns 24
ed
# 4-cycle patterns 16
# 2-load patterns 14
ct
# 3-load patterns 33
-----------------------------------------------
tri
es
The capture cycles option also determines the number of scan loads that are possible. To prevent
TetraMAX from generating patterns with multiple loads:
R
set_atpg –single_load_per_pattern
ng
------- ----- -------
Control 1 21569
ni
Observe 2 6866
ai
Detect 3 6859
Tr
The depths show the theoretical maximum depths
This doesn’t mean that ATPG will be able to detect all faults with that level of
ip
depth if -capture_cycles is set to the same value as the Detect depth
ch
Recommendation is to start at the Detect depth
Designs with RAM models, recommended start depth is 4
ro
ic
coverage and runtime goals 4- 13
lM
na
Note: it’s not recommended to start with a large number of capture cycles for the initial Fast-
Sequential run. Start with a reasonable setting of capture cycles (2-4). Then in subsequent runs,
er
Non-Scan Flops/Latches D Q D Q
TI TI
SE SE
CP CP
CLK
D Q
ng
D Q
ni
ai
Embedded
Memories
Tr
Internal
SA0
Tristates
ip
Bus Complex
Keeper Internal
RAM R/W,
RAM
ch
Tristate Clock
Logic controls
ro
ic
4- 14
lM
na
The Fast-Sequential algorithm supports (i.e. deterministically propagates faults through) load
unstable nonscan cells as long as they are stable (in capture cycle) when all clocks are in their off
er
state.
nt
rI
Load stable cells can be used by Fast-Sequential by creating patterns with multiple loads. The first
load places a value in a non-scan cell. After the next load, the previously loaded value can be used
se
ng
-------------------------- ---- --------- Possibly detected PT 62
Detected DT 82669 Undetectable UD 129
ni
Possibly detected PT 23 ATPG untestable AU 176
Undetectable UD 103 Not detected ND 315
ai
ATPG untestable AU 5438 -------------------------------------------
Tr
Not detected ND 93 total faults 88326
------------------------------------------- test coverage 99.41%
total faults 88326 -------------------------------------------
ip
test coverage 93.72% Pattern Summary Report
ch
------------------------------------------- -------------------------------------------
Pattern Summary Report #internal patterns 491
ro
------------------------------------------- #basic_scan patterns 195
#basic_scan patterns 191 #fast_sequential patterns 296
ic
Fast Sequential Patterns Added Very Few AUs Remain
4- 15
lM
na
Only the very-hard-to-detect faults remained after running both Basic-Scan and Fast-Sequential
ATPG.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
To run only the Full-Sequential ATPG engine:
ni
run_atpg –auto full_sequential_only
ai
When Full-Sequential ATPG might help:
Tr
Clocks (ordinary clocks, resets/sets, memory writes) to nonscan elements not
controlled from Primary Inputs
ip
Sequential Detect depth greater than 10
ch
ro
ic
4- 16
lM
na
Note: Full-Sequential ATPG is not compatible with some features and flows.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
If sequential ATPG is needed, try running the
Fast-Sequential engine next
ni
Run the Full-Sequential ATPG engine last
ai
For all ATPG engines and fault models, use run_atpg –auto for the
Tr
best results
ip
When run_atpg –auto is run, TetraMAX will cycle through all of the
ch
enabled ATPG engines
ro
ATPG can utilize multiple processor cores to decrease runtime
ic
4- 17
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
User can specify the number of processes to launch based on number of CPUs
and available memory on the machine
ni
Multicore supported for ATPG (run_atpg), fault simulation
ai
(run_fault_sim) and pattern simulation (run_simulation)
Tr
One license supports up to 4 cores
ip
Each additional license allows 4 more cores
ch
ro
ic
4- 18
lM
na
Writing dual-STIL flow parallel compressed patterns requires run_simulation functionality to
generate the internal data
er
nt
ng
Multicore simulation:
ni
set_simulation –num_processes <<n>|max>
ai
Where <n> is a positive integer to specify number slave processes to be used for
Tr
Multicore
If max is specified TetraMAX computes the maximum number of processes available
ip
on the host based on number of CPUs
ch
Command settings are persistent throughout the same
TetraMAX session
ro
ic
4- 19
lM
na
Ensure the machine being used has as many available cores as <n> in set_atpg –
num_processes <n>
er
nt
If multicore is used on a machine that does not have sufficient cores (or memory) available, you are
rI
ng
run_build_model top_level run_build_model top_level
run_drc top_level.spf run_drc top_level.spf
ni
set_pattterns -external data.vcde \
ai
-strobe {rising CLK} \
–strobe {offset 50 ns}
Tr
… …
add_faults –all add_faults –all
set_atpg –num_processes 4 set_simulation –num_processes 4
ip
… …
run_atpg -auto run_simulation
ch
run_fault_sim
ro
Master log file: tmax.log
ic
Slave log files: tmax.log.1, tmax.log.2, tmax.log.3 etc.
4- 20
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Starting parallel ATPG with 2 processes.
…
ni
… Master Process Process id Wall Clock Time Shared + Private Pattern Memory
ai
Processes Summary Report
-----------------------------------------------------------------------------
Tr
Process Patterns Time(s) Memory(MB)
----------- ----------- -------------- ---------------------------------
ID pid Internal CPU Wall Shared Private Total Pattern
ip
-----------------------------------------------------------------------------
0 7611 1231 0.53 35.00 67.78 30.54 98.32 5.27
ch
1 7612 626 35.68 35.00 64.87 22.31 87.18 0.00
2 7613 605 35.50 35.00 64.71 22.47 87.18 0.00
Total 1231 71.71 35.00 67.78 75.32 143.10 5.27
ro
-----------------------------------------------------------------------------
ic
Child Processes Total Memory
4- 21
lM
na
Note: To see the process summary report expert level messaging must be enabled with: set_messages –
level expert
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Running ATPG
ng
ni
Post-ATPG Analysis
ai
Tr
ip
ch
TetraMAX II
ro
ic
4- 22
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
The abort limit controls how many times ATPG will re-attempt to detect
a fault (also called remade decisions)
Raising this limit may reduce the number of ND faults – at the expense of
ng
longer run times and higher pattern counts
ni
In the Basic-Scan and Fast-Sequential engines the abort limit is set with
the following command:
ai
set_atpg -abort <N> (default is 10)
Tr
In the Full-Sequential engine the primary control of ATPG effort is
ip
–full_seq_time which specifies the max time (in seconds) to spend
ch
per fault:
set_atpg –full_seq_time <N> (default is 10)
ro
ic
4- 23
lM
na
What is a remade decision?
A decision is remade when a choice of stimulus to sensitize a fault control path or
er
Even though –full_seq_time is the primary control for Full-Sequential ATPG, there is also an
abort limit for Full-Sequential that can be set when –full_seq_time is set to zero. E.g.:
Fo
set_atpg –full_seq_time 0
se
ng
ni
ai
Tr
ip
ch
ro
ic
4- 24
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
run_atpg –auto
ai
set_atpg –abort 100
Tr
run_atpg –auto
set_atpg –abort 1000
ip
run_atpg -auto
ch
ro
ic
4- 25
lM
na
More information on experimental results seen with gradually increasing abort limit can be found in
this Tutorial from San Jose SNUG 2009:
er
https://www.synopsys.com/news/pubs/snug/sanjose09/wc2_test_tutorial.pdf
nt
rI
Fo
se
U
ed
ct
tri
es
R
TEST-T> report_pi_constraints
port_name constraint_value
---------- ----------------
ng
RTFM_CLK 0
THAT can’t be good
ni
TMU_MODE_0 0
ai
TMU_MODE_1 0 Circuit behind MODE is AU
Tr
POW_RST_N 1
Missing RESET coverage
TAP_RST_N 1
ip
TMS 0
ch
Complex MODE
ABCD_CS0_N 0
ro
SCAN_EN 1
This isn’t good, either
ic
4- 26
lM
na
Audit the list of PI constraints. Make sure that only the required PI constraints are listed.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
clock_name off clock set reset clock set reset
-------------- --- ------------------ -------------------
ni
RTFM_CLK 0 18 0 0 0 0 0
ai
PIPE_STAT0 0 47511 0 0 851 0 0
Tr
TRACE_SYNC 0 54844 0 0 2124 0 0
A08 0 0 0 0 6070 0 0
ip
RESET 1 0 500 2457 0 23 11
ch
ro
Large # of Nonscan FF’s
ic
4- 27
lM
na
To perform “what if” analysis of the Test Coverage impact if non-scan FF’s were made scanable,
use the set_scan_ability command.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Nonscan cell summary: #DFF=12855 #DLAT=3159
#RAM_outs=737 tla_usage_type=X_clock_tla
ni
Nonscan behavior: #CU=184 #C0=184 #C1=2138
ai
#TLA=1045 #LE=12453 #TE=1 #LS=9
#RAM_outs=737
Tr
Load disturbs : #CU=184 #C0=0 #C1=0 #TLA=1045
#LE=5507 #TE=1 #LS=1 #RAM_outs=0
ip
ch
TLA behavior: #no_clock=27, #hot_clock=1016,
#X_clock=2
ro
ic
4- 28
lM
na
C0 (constant zero) - This is a nonscan cell that has been initialized to a 0 state from the test
setup procedure and will always retain that state in the presence of the current PI (primary input) constraints.
er
C1 (constant one) - This is a nonscan cell that has been initialized to a 1 state from the test setup
nt
procedure and will always retain that state in the presence of the current PI constraints.
CU (clock unstable) - This is a nonscan cell that does not have clock-off stability and does not qualify to
rI
L0 (load 0) - This is a nonscan cell that has been set to a 0 state at the end of the scan chain load, but is not
restricted to always retain the state.
L1 (load 1) - This is a nonscan cell that has been set to a 1 state at the end of the scan chain load, but is not
se
the opportunity to behave as a transparent latch when one of its clock inputs is active while the other
ed
clock/set/reset inputs are inactive. The transparency condition must occur at the force_pi time of a pattern
when all clocks are off.
ct
LE (leading edge clock behavior) - This is a nonscan DFF that is stable when all clocks are off and the
clock-off state results in a 0 on its clock input lines. An LE cell captures data on the leading edge of a clock
tri
pulse.
es
TE (trailing edge clock behavior) - This is a nonscan DFF that is stable when all clocks are off and the
clock-off state results in a 1 on its clock input lines. A TE cell captures data on the trailing edge of a clock
R
pulse.
LS (level sensitive behavior) - This is a nonscan DLAT that is stable when all clocks are off.
ng
X1, and Z-rules for example
ni
Example – C12 violation:
ai
Tr
ip
ch
By default, a C12 violation
will cause the captured
ro
value to be masked
ic
4- 29
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
86866 93.55% /I_ORCA_TOP (ORCA_TOP)
11734 100.00% /I_ORCA_TOP/I_SDRAM_WRITE_FIFO (SDRAM_WFIFO)
ni
11734 99.81% /I_ORCA_TOP/I_SDRAM_READ_FIFO (SDRAM_RFIFO)
ai
2116 99.24% /I_ORCA_TOP/I_SDRAM_IF (SDRAM_IF)
12788 58.14% /I_ORCA_TOP/I_RISC_CORE (RISC_CORE)
Tr
12008 100.00% /I_ORCA_TOP/I_PCI_WRITE_FIFO (PCI_WFIFO)
11694 99.34% /I_ORCA_TOP/I_PCI_READ_FIFO (PCI_RFIFO)
ip
2344 100.00% /I_ORCA_TOP/I_PCI_CORE (PCI_CORE)
ch
1924 99.95% /I_ORCA_TOP/I_PARSER (PARSER)
19268 99.27% /I_ORCA_TOP/I_BLENDER (BLENDER)
ro
610 100.00% /I_ORCA_TOP/I_PCI_W_MUX (PCI_W_MUX)
ic
610 100.00% /I_ORCA_TOP/I_SD_W_MUX (SD_W_MUX)
4- 30
lM
na
The -level option to the report faults command can be used to display test coverage on a
hierarchical basis.
er
nt
Generates a fault report for specified hierarchical levels. The d argument specifies the hierarchical
depth of the report and the m specifies a minimum number of faults required to display a given
Fo
depth. For example, “-level 6 32” reports faults from the top level down for a total of six
levels, but shows only those hierarchical blocks that had 32 faults or more. When the -level and
se
-all options are specified with an instance, the depth can be calculated based on the specified
instance.
U
ed
Note: The faults associated with top level inputs, outputs, and bidirectional ports are not considered
as "under" the top level of hierarchical and are not included in the counts of the hierarchical report.
ct
ng
5337 58.14% /I_ORCA_TOP/I_RISC_CORE (RISC_CORE)
ni
TEST-T> report_faults -class au -level {4 256}
ai
#faults testcov instance name (type)
------- ------- -----------------------
Tr
5427 93.60% / (top_module)
5389 93.55% /I_ORCA_TOP (ORCA_TOP)
ip
5337 58.14% /I_ORCA_TOP/I_RISC_CORE (RISC_CORE)
ch
448 83.73% /I_ORCA_TOP/I_RISC_CORE/I_REG_FILE (REG_FILE_ram)
914 11.61% /I_ORCA_TOP/I_RISC_CORE/I_DATA_PATH (DATA_PATH)
ro
3705 0.05% /I_ORCA_TOP/I_RISC_CORE/I_ALU (ALU)
ic
4- 31
lM
na
By combining the -level option and -class option to the report faults command specific
classes of faults can be reported by hierarchy.
er
nt
This example shows the density of AU faults by hierarchy side-by-side with the test coverage by
rI
hierarchy.
Fo
se
U
ed
ct
tri
es
R
ng
16 faults are connected to SHADOW.
17 faults are connected to TIEX.
Note: a fault may belong to
ni
6 faults are connected to TLA.
multiple analysis categories
ai
287 faults are connected to RAM_ADR.
2232 faults are connected to RAM_DATA.
Tr
139 faults are connected to RAM_WRITE.
8 faults are connected to RAM_READ.
ip
89 faults are connected to CLOCK.
9 faults are connected to SET.
ch
11 faults are connected to RESET.
4 faults are connected to TS_ENABLE.
ro
244 faults are connected from CLOCK.
ic
1 faults are connected from TLA.
392 faults are connected from TIEX. 4- 32
lM
na
The analyze_faults command can produce a summary of faults assigned to that class and
possible reasons why the faults were placed in that class.
er
nt
The vast majority of AU faults are due to constrain values, constrain value blockages and
rI
ng
sa1 AN I_CLOCK_GEN/U19/S
1670 faults are untestable due to constrain value blockage.
ni
sa0 AN I_CLOCK_GEN/U16/S0
sa1 AN I_CLOCK_GEN/U16/S0
ai
. . .
sa0 AN I_ORCA_TOP/I_BLENDER/latched_clk_en_reg/Q
Tr
. . .
130 faults are connected from TIEX.
ip
sa0 AN I_CLOCK_GEN/U16/S0
sa1 AN I_CLOCK_GEN/U16/S1
ch
sa1 AN I_CLOCK_GEN/U16/S0
sa1 AN I_CLOCK_GEN/U15/S
ro
sa1 AN I_CLOCK_GEN/U15/D0
ic
sa0 AN I_CLOCK_GEN/U15/D0
. . .
4- 33
lM
na
The -verbose option of the analyze_faults command will produce a detailed report of
reasons why the faults were placed in that class.
er
nt
See the TetraMAX online Help FAQ on “Understanding Reported Data”, analyze_faults for
rI
more information.
Fo
se
U
ed
ct
tri
es
R
ng
------------------------------------------
o_dout[7] 14.04%
due to blockages
o_dout[6] 14.04%
ni
o_dout[5] 14.04%
o_dout[4] 14.04%
ai
o_dout[3] 14.04% Only 8 points met
o_dout[2] 14.04%
Tr
o_dout[1] 14.04% threshold of 5% of
o_dout[0] 14.04% explained faults
Blockage Value Source Points - Total 1:
ip
------------------------------------------
i_test_se 20.48%
ch
Constraint Value Source Points - Total 6:
------------------------------------------
test_mode1 7.92%
ro
SNPS_PipeHead_test_si7_1 5.73%
SNPS_PipeHead_test_si2_1 5.02%
ic
TEST-T>
4- 34
lM
na
-source_points min_percent max_points
Prints a list of blockage points, blockage value source points, and constraint value source points
er
based on the order of their effect on explained faults. The parameters for this option control the
nt
length of the report. The min_percent parameter is the minimum percentage of explained faults for
rI
the point to be reported. The max_points parameter is the maximum number of points to list in each
category; 0 specifies that there is no limit. This option must be used with the -class option. The fault
Fo
classes are supported: Undetectable (UD) and ATPG Untestable (AU), and any of their subclasses.
se
U
ed
ct
tri
es
R
ng
The –display option will
ni
show the fault analysis
results in the GSV
ai
Tr
Source of
constraint
ip
ch
ro
ic
4- 35
lM
na
~01 means “can’t be controlled to a 0 or a 1”
er
See the TetraMAX online Help FAQ “Understanding Schematic Data” for more information.
nt
rI
analyze_faults –display drew the highlighted MUX and path back to test_mode PI.
The net connection diamond on the MUX D0 input can be clicked on to display the clk pin driven
Fo
ng
ni
ai
Source of Blockage
Tr
blockage point
ip
ch
ro
ic
4- 36
lM
na
Note: pindata is set to “constrain_value”.
er
Examples:
a) X/-,X/-,X/- b) 0/-,0/B,0/- c) X/-,1/B,1/- d) X/-,~01/B,~01/B
Fo
Example B "0/-,0/B,0/-" indicates the pin is constrained to 0 due to tied logic, there is also a
constraint of 0 during combinational ATPG which contributes to a blockage. During sequential scan
U
Example C "X/-,1/B,1/-" indicates a constraint to 1 for both combinational and sequential scan
ct
ATPG, but a blockage due to that constraint only for combinational ATPG.
tri
es
R
ng
Launched as a stand-alone window
Supplements the GSV by enabling
ni
graphical analysis of test coverage and
ai
fault information while browsing the
Tr
design’s hierarchy
ip
ch
ro
ic
4- 37
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
More effort
See if some PI constraints can be eliminated
ni
Example: PI constraint on an async reset will result in reduced coverage
ai
With design changes
Tr
Fix DRC violations
Many DRC violations have some impact on coverage
ip
Add scan to non-scan cells
ch
Use set_scan_ability for what-if analysis
ro
Add test points
Analyze test points with run_testpoint_analysis
ic
ng
Features of Z01X:
ni
Optimized concurrent fault simulator (150M+ primitives)
ai
RTL & gate level fault simulation
Tr
Verilog (1995, 2001 & 2005) and SystemVerilog (partial) support
Stuck-At, Transition Delay, Bridge, IDDQ & transient (soft error) faults models
ip
ch
Advanced fault classification (28 classes) & reporting
ro
Import and export of ATPG fault lists
ic
4- 39
lM
na
Note: Z01X is a separate tool from TetraMAX and requires a separate license.
er
run_drc atpg_related.spf
set_faults –persistent_fault_models
se
add_faults -all
run_atpg -auto
U
remove_pi_constraints -all
es
remove_clocks -all
set_drc -nofile
R
test
set_patterns -external –strobe_period {20 ns}... my_asic.evcd
run_simulation -sequential
run_fault_sim -sequential
First Session:
BUILD-T> read_netlist . . .
BUILD-T> run_build_model
DRC-T> run_drc DUT.spf
ng
TEST-T> add_faults –all
TEST-T> run_atpg -auto
ni
TEST-T> write_image pass1.image.gz \
ai
–compress gzip –replace -violations
Tr
TEST-T> write_faults faults.all -all -replace
TEST-T> write_patterns pats.bin –format bin –replace
ip
A Later Session:
ch
BUILD-T> read_image pass1.image.gz
ro
TEST-T> read_faults faults.all
TEST-T> set_patterns –external pats.bin
ic
4- 40
lM
na
An image file can be password protected and it’s net name and instances can be “garbled” for extra
security. Furthermore, the user can control which commands can be executed when an image file is
er
read. Image files are covered in more detail in the Diagnosis unit.
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
When there is the need to abort the current command and any pending
output is not desired
ip
The “Discard” button will only be visible in the GUI after a user interrupt
ch
is detected (by “Stop” button or “ESC” key)
ro
When the original command output is discarded/flushed, the “Discard”
button will be hidden
ic
4- 41
lM
na
The Stop button will always be enabled and operational as long as the kernel is still processing the
current command.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Running ATPG
ng
ni
Post-ATPG Analysis
ai
Tr
ip
ch
TetraMAX II
ro
ic
4- 42
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
PrimeTime
Multithreading allows for more efficient TetraMAX II ATPG
ni
memory usage across multiple threads 10X Faster - 25% Fewer Patterns
ai
StarRC
VCS
reduction on average) Pattern Silicon Fine-grain
Tr
Generation Diagnosis Multithreading
HSPICE
ip
threads to be used by ATPG which will
ch
improve runtime (10x faster on average) Yield Explorer
ro
pessimism and decrease pattern count (25%
ic
pattern reduction on average) 4- 43
lM
na
Running TetraMAX II requires an additional add-on license
There are separate licensing options to support 8 threads per license or 20 threads per license
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
report_settings atpg shows num_threads=8
ni
report_settings simulation shows num_threads=8
ai
Threaded ATPG can not be used after invoking tmax
Tr
Non-threaded ATPG can be used after invoking tmax2
ip
Just set_atpg –num_threads 0 and set_simulation –num_threads 0
ch
ro
ic
4- 44
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Always set both to same number
ni
Default is 8
ai
Set to 0 to disable threading
Tr
Multicore options have no effect when N > 0
These are used if execution switches to non-threaded ATPG or simulation
ip
set_atpg –num_processes <P>
ch
set_simulation –num_processes <P>
ro
ic
4- 45
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
run_fault_sim
ni
run_diagnosis (good-machine simulation portion only)
ai
report_power (simulation portion only)
Tr
write_patterns (dual STIL/parallel patterns for simulation)
All other commands behave identically whether threading is used or not
ip
ch
ro
ic
4- 46
lM
na
Messages when first command using threading is run
Parallel simulation data created for 16 threads
er
Note: When chain test is enabled, this is not printed until after chain test generation
Message when run_simulation or run_fault_sim starts using threads
U
64.
Fault simulation will be performed on 16 threads using words of
ct
size 64.
To confirm: search for the word threads
tri
es
R
ng
The M733 message will confirm that threaded ATPG is being used
Example
ni
TEST-T> run_atpg -auto
ai
The following settings are ignored for threaded ATPG. (M724)
Tr
set_atpg -decision random
set_atpg -lete_fastseq
ip
set_atpg -fast_min_detects_per_pattern 17 40
Starting threaded ATPG with 8 threads. (M733)
ch
See the “TetraMAX II Command Option Support” section of the OLH for
ro
details
ic
4- 47
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
TetraMAX II threaded ATPG patterns should not be simulated
ni
(run_simulation) or fault simulated (run_fault_sim) with non-
ai
threaded simulation
Tr
Non-threaded run_simulation may give got=X mismatches
run_fault_sim may lead to Possibly Detected (NP) credit for Detected (DS) faults
ip
ch
ro
ic
4- 48
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
patterns allow slow primary inputs to settle
ai
Can be disabled by set_delay –noextra_force
Tr
TetraMAX II never adds a dummy cycle for slow primary inputs
Instead use write_patterns –use_delay_capture_start N
ip
ch
TetraMAX II may generate 2-cycle patterns for Stuck-At faults by default
This can happen even with set_atpg –capture_cycles 0
ro
To prevent 2-cycle pattern generation in TetraMAX II
ic
set_atpg –noextra_cycle 4- 49
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
The M733 message will confirm the switch to non-threaded - Example
ni
run_atpg -auto
ai
Warning: The following setting requires single-process/multi-core ATPG. (M729)
set_delay -launch_cycle last_shift
Tr
Warning: Feature "fault model" requires single-process/multi-core ATPG. (M729)
ip
Starting single-process ATPG. (M733)
ch
If num_processes > 0 the M733 message reflects that as well
Starting parallel ATPG with 4 processes. (M733)
ro
ic
4- 50
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Describe when and how to use -capture_cycles
Debug Low Fault Coverage
ni
ai
Name some differences between TetraMAX and
TetraMAX II
Tr
ip
ch
Begin Lab 4: Controlling ATPG
ro
ic
4- 51
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
remove_faults -retain 5 Remove 95% of the faults from the fault list
report_faults -all -level {3 256} Report fault statistics hierarchically
ni
report_faults –class AU -lev {3 256} Report only AU faults hierarchically
run_atpg basic_scan_only Run only the Basic-Scan ATPG engine
ai
run_atpg fast_sequential_only Run only the Fast-Sequential ATPG engine
Tr
run_atpg full_sequential_only Run only the Full-Sequential ATPG engine
set_atpg -abort 100 Increase Basic and Fast-Sequential ATPG effort
ip
set_atpg -capture_cycles 4 Enable Fast-Sequential ATPG with a depth of 4
ch
set_atpg -coverage 98 Stop ATPG if test coverage reaches 98%
set_atpg -full_seq_atpg Enable the Full-Sequential Engine
ro
set_atpg -full_seq_abort_limit 100 Give Full-Sequential ATPG more time for NDs
ic
set_atpg -patterns 1000 Limit the total number of ATPG patterns to 1,000
4- 52
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Test Point Analysis
ni
ai
Tr
ip
ch
ro
ic
4- 53
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
TetraMAX can analyze the design and suggest possible locations for
Test Points
The analysis can be focused on adding Test Points to improve
ng
Testability, reduce pattern count, or target specific fault classes
ni
The TetraMAX command that performs the Test Point analysis is
ai
analyze_test_points
Tr
analyze_test_points -target <testability | pattern_reduction | fault_class>
-test_points_file <file_name>
ip
[-max_control_points <n>] [-max_observe_points <n>]
[-num_observe_points_per_scan_cell <n>]
ch
[-class <list_of_fault_classes)]
ro
[-exclude <list_of_instance_names>] [-replace]
ic
4- 54
lM
na
Note: the analyze_test_points command requires a DFTMAX license
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Uses random patterns for iterative static analysis
ni
Does not require prior ATPG
ai
pattern_reduction
Targets reduced pattern size with observe points
Tr
ip
Does not require prior ATPG
ch
fault_class
Improves Test Coverage with observe points for fault classes
ro
Uses fault cone topology for dynamic analysis
ic
Requires initial ATPG for analysis of fault cones
4- 55
lM
na
SCOAP: Sandia Controllability and Observabilty Analysis Program
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
-test_points_file <file_name>
Specifies the name of the output file containing the list of test points
-max_control_points <number>
ng
Specifies the maximum number of control points selected in the design (default is
ni
1000)
ai
-max_observe_points <number>
Tr
Specifies the maximum number of observe points selected in the design (default
is 1000)
ip
-num_observe_points_per_scan_cell <number>
ch
Number of observe points XOR’ed to a scan cell or PO (default is 8)
ro
ic
4- 56
lM
na
Note: -max_control_points only support with –target testability
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
-class:
Default is to analyze all undetected faults
User can choose to target specific fault sub-classes
ng
Detected (DS, DI, TP, DR)
Possibly detected (AP, NP)
ni
Undetectable (UU, UO, UT, UB, UR)
ai
ATPG untestable (AN, AX)
Not detected (NC, NO)
Tr
Can specify multiple sub-classes, i.e. –class {NO AN}
ip
-exclude <list_of_instances>
ch
Instances to avoid placing a test point
TCL syntax: –exclude {inst_xx inst_yy}
ro
-replace
ic
Replaces an existing output file
4- 57
lM
na
Major fault classes not supported for –class:
DT, PT, UD, AU, ND
er
nt
ng
resulting coverage
run_build_model
ni
run_drc
add_faults –all
ai
run_atpg –auto
Tr
analyze_test_points <options>
run_atpg –auto –observe_file <test_point_file>
ip
Fine tune the test point list as needed by running analysis before
going to DFT Compiler for insertion
ch
The test point file is sourced in DFT Compiler prior to insert_dft
ro
ic
4- 58
lM
na
Actual TMAX test point file:
set_test_point { CHIP_CORE_1/DM_1/dm_inface_1/U706/Z } -type observe
er
If –clock option not used, a new clock pin name tpclk would be inserted
U
Limitations:
ed
DAY
2
5 Minimizing ATPG Patterns
ng
ni
6 Pattern Validation
ai
Tr
7 Fault Models and At-Speed Testing
ip
8 At-Speed Constraints
ch
ro
ic
5- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-1
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objectives
ng
List 3 methods for reducing test program size
ni
Describe example design topologies which create parallel or
ai
disturbed dynamic clock grouping
Tr
Run ATPG on DFTMAX compressed designs
ip
ch
ro
ic
5- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-2
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Benefits of Compact Vector Sets
0.0001
ng
Test
ni
0.00001
1991 1994 1997 2000 2003 2006 2009 2012
ai
Year
cost = $ $ $ $
Tr
10001010111000101
cost = $
ip
10001010111000101
00001000101011101
ch
11111000101011101 11111000101011101
10001010101011101
11001100101011101
vs. 10001010101011101
11001100101011101
10111000101011101 10111000101011101
ro
01110100101011101 01110100101011101
11001100101011101 11001100101011101
11001100101011101 ...
ic
11001100101011101
...
5- 3
lM
na
Most ASIC Vendors charge for “extra” tester time and/or vector set sizes.
The larger the vector sets, the longer the tester time, and the more expensive the ASIC Production
er
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-3
TetraMAX Workshop
For Internal Microchip Training Purposes Only
What is Dynamic Pattern Compression?
ng
Original Merged
ni
1 1 0 0 - - 1 1 0 0 1 0 1
ai
2 0 - 1 1 - - 0 - 1 1 - -
3 - 0 0 - 0 1
Tr
4 1 - 0 1 0 -
ip
5 1 - 0 - 1 - 1 1 0 - 1 0
6 - 1 0 - 1 0
ch
0/1: Care Bits
ro
“-”: Don’t Care
ic
5- 4
lM
na
Note that the example above is only a partial description of how TetraMAX merges patterns.
er
Pattern merging - also known as dynamic pattern compression - is being performed during ATPG.
nt
Pattern merging takes advantage of don’t-care values. Dynamic pattern merging is controlled with
rI
the setting of the set_atpg -merge command option prior to generating patterns.
Fo
Be aware that ATPG runtime may increase when the merging defaults are increased during
run_atpg -auto. Using a high merge effort is only recommended for generating final test
se
When merge is on, for each new fault detected an attempt is made to modify an existing pattern to
ed
also detect this fault and still detect previous faults. If successful, no new pattern is needed. If not
successful another fault is tried until the merge effort limit is reached. Once the limit is reached a
ct
new pattern is added for the fault detection that could not be merged with existing patterns.
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-4
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Controlling Dynamic Pattern Compression
ng
Basic-Scan & Fast-Sequential
ni
set_atpg -merge <low|medium|high|<d>> [<low|medium|high|<d>>]
ai
Full-Sequential
set_atpg –full_seq_merge <low|medium|high|<d>>
Tr
Use set_atpg -verbose reporting to get details of how effective merge
ip
settings are on your design
ch
If the #failed_merges continually hits the limit, try raising limits (gradually); the
tradeoff is increased run time
ro
ic
5- 5
lM
na
The arguments indicate how much effort to spend doing merging. The default is off (0), which
means no merging is performed. Unless a value for this option is specified or the run_atpg -
er
auto command is being used, no merging will occur and there is no verbose output to report.
nt
rI
The first value sets normal ATPG secondary test generation merge effort The second value sets the
merge effort for multiple fault sensitization, which occurs when –auto is used. The labels low,
Fo
medium, and high are accepted for both, as well as an integer value. The first group of labels have
corresponding numeric values of low=20, medium=100, and high=500. The second group of labels
se
Integer values <d> can also be specified for the merge effort:
ed
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-5
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Minimum Detects ATPG Option
ng
Separate option for each ATPG engine:
ni
set_atpg -basic_min_detects_per_pattern <d1> [d2]
set_atpg -fast_min_detects_per_pattern <d1> [d2]
ai
set_atpg -full_min_detects_per_pattern <d1> [d2]
Tr
Where:
<d1> = Minimum num of faults detected/pattern
ip
[d2] = Number of consecutive rejected patterns (optional)
ch
Examples:
set_atpg –basic_min_detects_per_pattern [list 5 10]
ro
set_atpg –fast_min_detects_per_pattern {10 20}
ic
5- 6
lM
na
This option may be set at any time prior to running ATPG; the default is 0 (not used). The second d
parameter specifies to terminate Basic-Scan ATPG when the number of consecutive rejected
er
patterns due to failure to achieve minimum detections reaches the value specified. The default value
nt
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-6
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Avoiding Patterns that Detect Too Few Faults
ng
#basic_scan patterns 205
#fast_sequential patterns 248
ni
-----------------------------------------------
reset_state
ai
set_atpg –basic_min_det 10 –fast_min_det 10
run_atpg - auto
Tr
test coverage 98.21% -1.04% drop in
ip
----------------------------------------------- test coverage
Pattern Summary Report
ch
-----------------------------------------------
#internal patterns 163
In about 1/3rd the
ro
#basic_scan patterns 101 number of Basic
#fast_sequential patterns 62 and Fast Seq
ic
patterns! 5- 7
lM
na
For more information on the commands that control minimum detects per patterns reference:
er
SolvNet Article: 000939 – Using TetraMAX’s Minimum Detects per Pattern Options To
nt
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-7
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Using run_atpg -optimize_patterns
Produces a very compact set of patterns with high test coverage with a
single run_atpg command
TetraMAX dynamically adjusts the internal algorithms to generate a
ng
compact pattern set
ni
All manually specified set_atpg settings, such as abort limits,
ai
minimum detects, and merge limits are ignored during this operation
Tr
The -optimize_patterns option is useful for a final TetraMAX ATPG
run where the goal is to optimize the pattern count at the expense of
ip
added run-time
ch
Only supports Basic-Scan and Two-Clock optimized ATPG engines
ro
ic
5- 8
lM
na
Note the following limitations when using the -optimize_patterns option:
• Multiple run_atpg commands are supported, but pattern optimization can only be specified
er
once.
nt
capture_cycle number will not enable Fast-Sequential ATPG during the pattern optimization
process. To run Fast-Sequential top-off ATPG, it must be done as an extra step. For example:
se
run_atpg –optimize_patterns
set_atpg –capture 4
U
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-8
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Dynamic Clock Grouping
The clocks pulsed for a given vector are selected dynamically during
pattern generation:
Maximizing the fault detection
ng
Minimizing the pattern count
ni
Dynamic clocking schemes:
ai
Parallel
Tr
Disturbed
Clock grouping allows multiple clock domains to be pulsed in
ip
simultaneously during the capture window
ch
Dynamic clock grouping is enabled by default
ro
ic
5- 9
lM
na
It is possible to pulse several clocks in the same vector, thus observing more logic and reducing the
need for additional patterns. Given two clocks independent from one another (when one clock is
er
pulsed, no logic driven by the other clock is affected), then two patterns would be required to
nt
exercise the logic in the two clock domains. However, since the clocks are independent, they could
be safely pulsed together, thereby saving one test pattern.
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-9
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Dynamic Clock Grouping: Parallel
No data paths between the
Clock CLK1 and CLK2 clock domains
Domain
1 skew
CLK1
ng
CLK1
ni
Clock
Domain CLK2
ai
2
CLK2
t t
Tr
B A
Parallel clock pairs are clocks that can be pulsed in the same tester cycle
without any sequential effects
ip
set_drc -clock –dynamic (Enabled by default)
ch
More flexible and gives better results than static clock grouping
ro
TetraMAX decides on a pattern-by-pattern basis whether to pulse a clock
ic
alone or along with other clocks 5- 10
lM
na
With dynamic clock grouping enabled during DRC and clock domains CLK1 and CLK2 identified
as parallel, Basic-Scan ATPG can pulse CLK1 and CLK2 simultaneously during the same capture
er
cycle.
nt
rI
Skew is the difference between the capture clock edges of flip-flops from two different clock
domains. The test protocol timing or add_clocks command defines clock edges.
Fo
Skew does not matter when clock domains share no paths. Skew DOES matter when the clock
se
domains do share paths. TetraMAX uses the setting for skew defined by the following command
set_drc –skew <d> (default is 1)
U
ed
When the design has two state elements, A and B, with the output of A connected to the input of B,
and each element is clocked by a different clock, and those clocks have nearly identical timing, then
ct
the two clocks have a parallel grouping relationship only if the capture edge of clock B occurs at or
tri
before the capture edge of clock A minus the skew value. Otherwise, the clocks are ungrouped, or
have a disturbed grouping.
es
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-10
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Dynamic Clock Group: Disturbed
Data paths between the CLK1 and CLK2
clock domains going in both directions
skew
CLK1
ng
CLK2
ni
ai
t t
B A
Disturbed clocks pairs are clocks that can be pulsed in the same tester
Tr
cycle with a limited amount of sequential effects
ip
set_drc [-disturb_clock_grouping | -nodisturb_clock_grouping]
ch
Disturbed cells are masked during ATPG. Disturbed clock grouping results
in fewer patterns but can leave some faults undetected due to masks
ro
To recover coverage loss due to masks, run ATPG again without disturb clock grouping
ic
run_atpg –nodisturb_clock_grouping
5- 11
lM
na
With clock grouping disabled, Basic-Scan ATPG must pulse CLK1 and CLK2 in separate capture
cycles with a load_unload in between the two patterns.
er
nt
With dynamic clock grouping enabled and clock domains CLK1 and CLK2 identified as
rI
disturbed, Basic- Scan ATPG can pulse CLK2 and CLK1 in the same capture cycle masking
cells disturbed by sequential behavior.
Fo
Dynamic and disturbed clock grouping is supported for the Basic-Scan and Fast-Sequential engines
se
only.
U
•Performing a separate ATPG run without disturb clock grouping may be able to detect
tri
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-11
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Analyze Clock Grouping and Disturbances
TEST-T> report_clocks –matrix
id# clock_name type 0 1 2 3
--- ---------------- ---- --- --- --- ---
0 pclk CW --- -D- -D- ---
1 sys_clk CW -D- --- -D- ---
ng
2 sdr_clk CW -P- -P- --- -D-
3 prst_n SR --- --- -D- ---
ni
------------------------------------------------
clock 1 clock 2
ai
id# #masks #cells id# #masks #cells masked gates
Tr
--- ------ ------ --- ------ ------ --------------
0 25 1074 1 25 722 29284 ...
0 5 1074 2 7 1132 29392 ...
ip
1 38 722 2 47 1132 31063 ...
ch
2 99 1132 3 78 1301 31062 ...
ro
grouped with Clock ID 2 (sdr_clk)
ic
sdr_clk has 1132 flops of which sys_clk disturbs 47 5- 12
lM
na
Note that report_clocks –matrix is supported only in TEST mode.
er
-matrix
nt
Displays the dynamic clock pair group ability in table form where each row indicates the potential
rI
grouping relationship of a candidate clock with each of the other candidate clocks.
Fo
The type indicates the current clock type. The clock type may be any combination of C (flip-flops),
W (RAM write control), S (set), or R (reset).
se
If two clock have a parallel relationship, then there will be a “P” in the second character of the
U
If there is a disturb relation between two clocks, then “-D-” is seen in the matrix. These are disturb
ct
clock pairs.
tri
Dashes “---” in the matrix means that the pair of clocks did not meet the criteria for a disturb
es
relationship.
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-12
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Clock Grouping for Each Pattern
ng
----- ------------ ----- ----- ------- ------
0 basic_scan 1/0 1 - -
ni
. . .
ai
33 basic_scan 1/1 1 - pclk,sdr_clk
Tr
34 basic_scan 1/1 1 - pclk,sys_clk,sdr_clk
35 basic_scan 1/1 1 - sys_clk,sdr_clk
ip
36 basic_scan 1/1 1 - sys_clk
ch
37 basic_scan 1/1 1 - pclk,sys_clk,sdr_clk
38 basic_scan 1/1 1 - sys_clk,sdr_clk
ro
39 basic_scan 1/1 1 - pclk,sys_clk,sdr_clk
ic
. . .
5- 13
lM
na
Patn num:
Indicates the pattern number. Pattern numbers start with zero.
er
Pattern type:
nt
Indicates the type of pattern. Basic-Scan is a combinational pattern using one scan
rI
load, one capture clock (optional), and one scan unload. Fast-Sequential can use up to 10 scan loads
and 10 captures. Basic_scan(COM) indicates a "Clock On Measure" is being performed. A clock is
Fo
being held on and the primary outputs are being measured during the clocks on time. A type of
sequential is also possible when the pattern source is external functional patterns.
se
Cycle count:
The cycle count reports two numbers: N1/N2. The N1 is the number of capture
U
procedures, or in other words the number of force/measure pairs. This corresponds to the number of
ed
tester cycles that will be used by the pattern. The N2 is the number of these capture procedures that
contain a clock pulse. Since not every force/measure pair needs to be accompanied by a clock
ct
Load count:
Indicates the number of scan loads used by the pattern.
es
Observe proc:
If a master observe or shadow observe procedure is used, the type is indicated here.
R
Clocks used:
Indicates the active clock used by the pattern. If more than one clock is listed the
order matches the order used by the pattern.
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-13
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Adding Fault Models Increases Test Cost
ng
130nm & Below Transition Delay Test Bridging
(High Cost) SA BridgingTest
Test
Slack-Based Delay Test
ni
ai
130nm & Below
With Compression
Tr
(Low Cost)
Tester Cycles
ip
ch
Test budget fixed, yet
must not compromise on product quality
ro
Test Pattern Compression Needed!
ic
5- 14
lM
na
With legacy process nodes, designers generally use Stuck-At tests and some Transition Delay
testing up to the memory limits of their tester.
er
nt
At smaller process nodes, Transition delay, Slack-Based Transition Delay, and Bridging tests
rI
become critical. The Transition Delay tests can replace some of our stuck-at tests, but tester
memory is usually far exceeded.
Fo
By adding compression, we can maintain the quality of our tests and avoid any cost of upgrading
se
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-14
TetraMAX Workshop
For Internal Microchip Training Purposes Only
How Compression Works
ng
Traditional Scan Scan Compression
ni
ai
Tr
…
ip
ch
One Scan chain for each Multiple Scan chains share
ro
scan-in/scan-out pin same scan-in/scan-out pins
ic
5- 15
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-15
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Test Compression Concepts
ng
TATR =
Compressed Patterns x Compressed Chain Length
ni
ai
Test Data Volume Reduction (TDVR)
Tr
Used to ensure test program resides within tester memory
ip
Avoids time-consuming reloads
ch
Used if adding more patterns to increase test quality
Regular Scan Patterns x Regular Pin Data
ro
TDVR =
ic
Compressed Patterns x Compressed Pin Data
5- 16
lM
na
DFTMAX TATR:
er
TATR =
rI
TATR =
ed
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-16
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Test Cycle Savings
ng
ni
4 chains 4 chains
ai
Test Application Time = Patterns x ScanLength
Tr
Example: Example:
ip
2,000 patterns 2,400 patterns
ch
1,000 cycles to load a pattern 100 cycles to load a pattern
ro
= > 2000 * 1000 = 2,000,000 cycles = > 2400 * 100 = 240,000 cycles
ic
TATR = 2000000 / 240000 = 8.33 X
5- 17
lM
na
How does this compression work?
er
We know from scan that Test Application Time is equal to the number of patterns times the length
nt
of the longest scan chain. With DFTMAX, we are shrinking the length of that longest chain.
rI
For scan, Test Data Volume is proportional to the longest chain times the number of pins we use to
Fo
push the data through. Of course we then multiply by the number of patterns, but lets say that for
Adaptive Scan, the pattern count is the same. Again, since the scan chain length is shorter in
se
Adaptive Scan, but the pin count is identical, we get a lower Test Data Volume.
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-17
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Test Modes Created During Insertion
ng
-test_mode Internal_scan
Short compression chains are reconfigured into longer scan
ni
chains
ai
Also called:
Tr
Reconfigured/regular/uncompressed scan mode
Scan Compression Mode
ip
Uses the shorter chains directly
ch
dc_shell> write_test_protocol –out scancompression.spf \
-test_mode ScanCompression_mode
ro
Also called:
ic
Compressed/DFTMAX/Ultra mode 5- 18
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-18
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Passing Compression Information to TetraMAX
ng
can be written out as follows:
ni
write_test_protocol -out scancompress.spf \
ai
-test_mode ScanCompression_mode
Tr
The ATPG flow in TetraMAX for DFTMAX is the same as for regular scan
Both DFTMAX and regular scan designs use the same fault diagnosis
ip
flow in TetraMAX
ch
ro
ic
5- 19
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-19
TetraMAX Workshop
For Internal Microchip Training Purposes Only
ATPG – Scan Compression Flow
Simply read in the DFTMAX scan netlist and run_drc with the
ScanCompression_mode STIL protocol file:
ng
read_netlist libs/tmax_libs/*.v
ni
read_netlist design_w_compression.v
ai
run_build top
Tr
run_drc scancompress.spf
add_faults –all
ip
run_atpg –auto
ch
write_patterns pat_compression.stil -format stil
ro
ic
5- 20
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-20
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Explore Compression in TetraMAX
ng
-num_chains <d>
-num_inputs <d>
ni
-num_scanouts <d>
ai
[-xtolerance <default | high>
[-nodiag]
Tr
[-verbose]
ip
ch
Runs only Scan Compression mode ATPG
Reports coverage, pattern count, and an estimate of compression and
ro
compressor area
ic
5- 21
lM
na
SolvNet Article: 017408 – Performing 'What If' Analysis for Inserting Adaptive Scan
Compression Logic
er
nt
-nodiag
rI
Specify this option to disable the requirement to generate a compressor with high precision
diagnosis. By default, the analyze compressors command generates a compressor with failure
Fo
diagnosis; this requires a specific number of scan outputs for a given number of chains.
se
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-21
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Using analyze_compressors Example
Example:
run_build_model
run_drc SCAN.spf
ng
analyze_compressors –num_chains 96 \
-num_inputs 8 –num_scanouts 8
ni
ai
Check pattern count and coverage
Tr
Compare with scan mode pattern count and coverage
ip
ch
ro
ic
5- 22
lM
na
Uncollapsed Stuck Fault Summary Report
-----------------------------------------------
fault class code #faults
er
Possibly detected PT 7
Undetectable UD 3218
rI
-----------------------------------------------
#internal patterns 250
#basic_scan patterns 250
U
-----------------------------------------------
CPU Usage Summary Report
-----------------------------------------------
ed
gates
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-22
TetraMAX Workshop
For Internal Microchip Training Purposes Only
DFTMAX Ultra and ATPG
ng
DECOMPRESSOR
ni
architecture from Synopsys
ai
The ATPG flow for regular DFTMAX and
Tr
DFTMAX Ultra is the same
There are some ATPG features that are unique
ip
to DFTMAX Ultra COMPRESSOR
ch
ro
ic
5- 23
lM
na
Some current limitations of DFTMAX Ultra in TetraMAX:
er
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-23
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Updating DFTMAX Ultra Patterns
ng
Use -load_scan_in option
ni
Increase the maximum shift length of patterns to allow top-level pattern set
merging
ai
Use -max_shift option
Tr
Optimizing padding patterns
ip
Use -remove_padding_patterns option
Add virtual pipeline stages to account for pipelines to be added at a higher level
ch
Use -virtual_head_pipelines and -virtual_tail_pipelines options
ro
Removing and reordering patterns
ic
Use -remove and -insert options
5- 24
lM
na
Note: virtual pipelines can also be accounted for when the patterns are originally generated by
ATPG by using the following command options:
er
nt
VCS simulations of scan patterns will pass only if the correct number of pipelines are in the netlist.
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-24
TetraMAX Workshop
For Internal Microchip Training Purposes Only
DFTMAX Ultra Padding Patterns
ng
Padding patterns are automatically removed during write_patterns
ni
Manual removal of padding patterns with update_streaming_patterns
ai
P0P1 P2.........P 32P33P34 P35......... P 65P 66……Plast
Tr
ip
update_streaming_patterns –remove_padding_patterns
ch
P0P1 P2.........P 32P33P34 P35......... P 65P 66…… Plast
ro
ic
5- 25
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-25
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objectives Summary
ng
Describe example design topologies which create
parallel or disturbed dynamic clock grouping
ni
Run ATPG on DFTMAX compressed designs
ai
Tr
ip
ch
Begin Lab 5: Minimizing ATPG Patterns
ro
ic
5- 26
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-26
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Command Summary (Lecture, Lab)
ng
set_atpg -fast_min_detects 10 Constrain minimum faults detected per Fast pattern
set_atpg -full_min_detects 5
ni
Constrain minimum faults detected per Full pattern
set_atpg -full_seq_merge value Enable Full-Sequential ATPG pattern compression
ai
set_atpg -merge [list high med] Enable Basic-Scan ATPG pattern compression
Tr
set_atpg -merge [list high low] Enable Fast-Sequential ATPG pattern compression
set_drc -disturb_clock_grouping Allow disturbed clock grouping with Basic patterns
ip
set_drc -clock -dynamic Enable DRC to analyze clock grouping
ch
analyze_compressors Perform “what if” analysis on compression setups
ro
ic
5- 27
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-27
TetraMAX Workshop
For Internal Microchip Training Purposes Only
This page was intentionally left blank.
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Minimizing ATPG Patterns ©2018 Synopsys, Inc. All Rights Reserved. 5-28
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Agenda
DAY
2
5 Minimizing ATPG Patterns
ng
ni
6 Pattern Validation
ai
Tr
7 Fault Models and At-Speed Testing
ip
8 At-Speed Constraints
ch
ro
ic
6- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
simulated with serial load_unload
ai
Use two ways to translate a STIL pattern to a Verilog
Tr
testbench with MAX Testbench
ip
Describe 2 reasons why you might use the ATPG masking
ch
commands
ro
ic
6- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
TEST
ng
Mode
Gate-level Read Run
Test Patterns
Netlist Netlist ATPG
ni
ai
Tr
Build Review
ATPG Model Coverage Verify
ip
Patterns
ch
DRC
Mode Incremental
ro
STIL Test Check
ATPG
Protocol DFT Rules
(If needed)
ic
6- 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Writing Patterns
ng
Pattern Validation
ni
ai
Tr
Simulation Debug
ip
ch
Dealing With ATE Failures
ro
ic
6- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
Check with your vendor:
ai
Documentation
Tr
Help desk
ip
Check with Synopsys
ch
Documentation
ro
SolvNet
ic
6- 5
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Pattern Range - provides the ability to specify the
starting or stopping range to write (pattern
ni
numbering starts at zero)
ai
Tr
ip
write_patterns <file> [-replace] [-first <d>] [-last <d>] [-split [n]]
ch
[-internal | -external] [-serial | -parallel [d]] [-compress <gzip|binary>]
ro
[-nocompaction] [–use_delay_capture_start <d>] [-use_delay_capture_end <d>]
[-format <binary | stil | wgl | wgl_flat ...>] [-unified_stil_flow]
ic
[-exclude <setup|repeat_setup|patterns|chain_test|atpg_patterns|all>] ...
6- 6
lM
na
Available Formats:
STIL, WGL, WGL_Flat, STIL/99, TDL91, FTDL, TSTL2, Binary
er
nt
Unified STIL Flow (USF) uses single STIL pattern for all targets
Failing cell identification with parallel compressed simulations requires PSD
Dual STIL Flow uses separate STIL patterns for serial/parallel
ng
Can be used to get failing cell information of parallel compressed simulation but only
ni
if N-shifts is not required – only serial STIL pattern is appropriate for the ATE
Dual STIL Flow
ai
Unified STIL Flow (Default)
Different STIL Generate 1 STIL
TMAX TMAX
Tr
One STIL file, constructs for Scan (serial) or 2,
supports all design types, Compression depending on
simulation modes, and the ATE
Serial STIL limited
ip
STIL Parallel STIL
limited to Par STIL Ser STIL to serial sim for
Scan Compression
ch
parallel sim for
MAXTB Scan MAXTB MAXTB
Compression Be sure to send
ro
TB Ser TB the right STIL to
Par TB
Parallel N-shift not the ATE
ic
VCS ATE supported for Scan
VCS ATE
Compression 6- 7
lM
na
To support failing cell identification with USF and parallel simulation of compressed patterns
requires a Parallel Strobe Data (PSD) file. We cover creating/using a PSD file later in this Unit.
er
nt
Note: Dual STIL Flow serial and parallel patterns are identical for un-compressed (regular scan)
rI
designs
Fo
se
U
ed
ct
tri
es
R
ng
write_patterns –format binary . . .
ni
write_image run_img.gz . . .
ai
Save patterns in appropriate format for simulation and for
Tr
translation to ATE (USF by default):
write_patterns pats.stil –format stil -replace
ip
write_patterns pats.wgl –format wgl –replace
ch
ro
ic
6- 8
lM
na
Dual STIL patterns are written by specifying –nounified_stil_flow and –serial or –
parallel. For example:
er
nt
Note: If the pattern file name already exists, the –replace option will overwrite the existing file
U
ng
mismatches in the simulator that
ni
you do not know where to begin?
ai
Was Static Timing Analysis performed on your scan design in scan shift
Tr
mode?
Were best-case back-annotated delays or parasitics used to check for
ip
hold time problems?
ch
Were worst-case delays used to check the shift speed?
ro
Need to validate that scan shifting works!
ic
6- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
0101 = repeating pattern of 01..
1000 = leading bit 1, rest 0, i.e. 1000000...000
ni
0111 = leading bit 0, rest 1's, i.e. 01111.…111
ai
string = user defined sequence of 1's and 0's with a
Tr
final character of "C" to repeat last digit as
a constant or "R" to repeat the sequence, For example:
ip
– 011001R -> 011001 011001 011001...
ch
– 011001C -> 011001 111111 111111...
ro
run_atpg –auto ...
ic
write_patterns chain_test.stil –format stil –last 0
6- 10
lM
na
TetraMAX generates a user-controllable chain test as Pattern 0 during ATPG for regular scan
designs.
er
nt
The default chain test pattern, 0011, results in a 50% toggle rate during scan shift.
rI
TetraMAX automatically generates additional chain test patterns for DFTMAX X-tolerant designs
Fo
To enable/disable
set_atpg [–augmented_chain_test|-noaugmented_chain_test]
U
ed
For compressed designs with multiple chain tests, run_atpg –chain_test_only can be
used:
ct
run_atpg –chain_test_only
tri
ng
Patterns test all faults marked DI in fault list
ni
Required to distinguish failures in DFT logic from regular failures
ai
Pattern count roughly equal to compression ratio
Tr
1 pattern per internal chain if 1 scan-out port is used
Divide this by N if N scan-out ports are used
ip
ch
Total pattern count determined by codec requiring most patterns
ro
ic
6- 11
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Patterns will be named pat_0.stil, pat_1.stil, etc.
ni
Each pattern file will contain a test_setup section unless excluded
ai
If –exclude repeat_setup is used, the first split pattern (pat_0.stil) will
Tr
contain a test_setup but all other split patterns will not
Only the first split pattern file contains the chain test patterns
ip
ch
ro
ic
6- 12
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
Scan unload miscompare on chain c4 position 10…
ai
What is the corresponding design flip-flop?
Tr
report_scan_cells –all
ip
ch
Obtain a list of any shadow cells:
report_scan_cells -shadow
ro
ic
6- 13
lM
na
Shadow cells can effect the results of parallel Verilog simulation of scan patterns. The shadow cells
need to be accounted for by either adding serial shifts after parallel load (N-shift) or by disabling
er
Writing Patterns
ng
Pattern Validation
ni
ai
Tr
Simulation Debug
ip
ch
Dealing With ATE Failures
ro
ic
6- 14
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Pre Scan
design
ng
Formality DFT Compiler
DFTMAX
ni
ai
Optimized STIL
scan design Procedures
Tr
PrimeTime DSMTest
DSMTest TetraMAX IDDQ
ip
Verify scan path timing
ch
DSMTest Stuck-At IDDQ Test
Vectors Test Vectors Vectors
ro
MAX Testbench IDDQ-PLI
ic
Verify scan pattern functionality VCS 6- 15
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
The method for simulating ATPG
ni
patterns from TetraMAX is called
MAX Testbench
ai
Tr
MAX Testbench uses STIL as the
source for creation of the Verilog
ip
testbench Design Under Test
ch
The Test Pattern Validation User’s
Guide contains details on APTG
ro
pattern validation and using MAX
ic
Testbench 6- 16
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Stimulus/response
TetraMAX
Testbench
MAX Testbench
ng
write_testbench Module test; DUT
or stil2verilog
ni
Instance of DUT Model
ai
Stimulus/response
Data File Verilog
Tr
Netlist/library
ip
MAX Testbench converts STIL patterns into a Verilog simulation
ch
testbench using write_testbench or stil2verilog
ro
The Verilog testbench applies test stimulus to the DUT and checks
the responses against the expected data specified in the data file
ic
6- 17
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
[-replace]
[-config_file config_filename]
ni
[-parameters {list_of_parameters}]
ai
Or use stil2verilog utility from UNIX
Tr
UNIX% stil2verilog <stil_filename> <testbench_name>
[-config_file <file>] [options]
ip
Two output files are generated
ch
Verilog testbench file: <testbench_name>.v
ro
Data file: <testbench_name>.dat
ic
6- 18
lM
na
-config_file config_filename
Specifies the name of a configuration file that contains a list of customized options to the MAX
er
-parameters {list_of_parameters}
Enables you to specify additional stil2verilog options to the MAX Testbench command line
Fo
-config_file <TB_config_file>
-first <d> -last <d>
U
-generate_config <config_file_template>
ed
-help [<msg_code>]
-log <log_file>
ct
ng
A template of the configuration file can be created by
ni
write_testbench_config or stil2verilog:
ai
TEST-T> write_testbench_config
Tr
UNIX% stil2verilog -generate_config <config_name>
ip
Variables affecting the testbench definition
ch
Variables affecting the simulator script generation
ro
ic
6- 19
lM
na
The write_testbench_config command is an alias of the following command:
write_testbench -parameters {-generate_config stil2verilog.config} -rep
er
nt
#set cfg_patterns_report_interval 5
se
ng
contain test cycles that shift data into the scan chains
Parallel - scan chain load/unload is flattened and scan cells are broadside
ni
loaded
ai
N-Shifts <d> - parallel load followed by “d” serial shifts
Tr
A single STIL pattern set can support both parallel and serial load
ip
during scan pattern simulation (default is parallel load)
ch
The simulation load method can be changed when STIL patterns are
translated with write_testbench / stil2verilog or at simulation
ro
run-time
ic
6- 20
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Number of N-shifts is based on shadow cells and settings for loadable nonscan
ni
cells
ai
MAX Testbench can specify serial vs. parallel when translating the STIL
Tr
to a Verilog testbench - Example:
write_testbench –in pats.stil –out pat_xtb –parameters {-serial}
ip
Can also be changed in the VCS compile script:
ch
+define+tmax_parallel=N Parallel with N serial shifts
ro
+define+tmax_serial=M First M patterns serial, remaining patterns parallel
ic
6- 21
lM
na
Parallel Options:
None or 0: all parallel patterns
er
Serial Options:
None or 0: all serial patterns
Fo
ng
chain test pattern(s)
ni
Beyond chain test, it’s at user discretion – one
ai
strategy would be to identify a selection of patterns
Tr
so that each capture clock is serially simulated at
least once
ip
Use report_patterns –all –type to document
ch
the capture clocks used for each pattern
ro
ic
6- 22
lM
na
Note: simulating each capture clock at least is example method that could be used to determine
which patterns to simulate with serial load. At a minimum, the chain test pattern should be
er
simulated with serial load. Beyond that, it’s up to user discretion regarding which patterns to
nt
ng
1 basic_scan 1/1 1 - sdr_clk,sys_clk,pclk
2 basic_scan 1/1 1 - sdr_clk,sys_clk,pclk
3 basic_scan 1/1 1 - sdr_clk,prst_n
ni
4 basic_scan 1/1 1 - sdr_clk,sys_clk,pclk
Patterns of
ai
5 basic_scan 1/1 1 - sdr_clk,sys_clk,pclk
Interest 6 basic_scan 1/1 1 - sdr_clk,sys_clk,pclk
Tr
7 basic_scan 1/1 1 - sdr_clk,prst_n
8 basic_scan 1/1 1 - sys_clk,pclk
9 basic_scan 1/1 1 - prst_n
ip
10 basic_scan 1/1 1 - prst_n
11 basic_scan 1/1 1 - sdr_clk,prst_n
ch
12 basic_scan 1/1 1 - prst_n
13 basic_scan 1/1 1 - sdr_clk,sys_clk,pclk
ro
14 basic_scan 1/1 1 - sdr_clk,sys_clk,pclk
15 basic_scan 1/1 1 - sdr_clk,sys_clk
ic
6- 23
lM
na
TEST-T> report_clocks
er
0 basic_scan 1/0 1 - -
ng
1 basic_scan 1/1 1 - sdr_clk,sys_clk,pclk
3 basic_scan 1/1 1 - sdr_clk,prst_n
ni
TEST-T> write_patterns select_pats.stil –format stil \
ai
-reorder serial_select.rpt –serial
Tr
DFTMAX compressed patterns cannot be reordered but a range of
ip
patterns can be written
ch
TEST-T> write_patterns range_pats.stil –format stil \
ro
-first 0 -last 3 –serial
ic
6- 24
lM
na
Adaptive Scan patterns cannot be “reordered” with the –reorder option. See the following
SolvNet article for a workaround flow:
er
FYI, by default the first pattern is pattern 0, so it’s not required to specify that option in the above
example. The option was included to demonstrate how a range of pattern can be written.
Fo
se
U
ed
ct
tri
es
R
ng
Separate “partitions” are created when the testbench is created
Each split pattern set is a partition and will have its own data file (i.e.,
ni
pat_xtb_0.dat)
ai
By default, all partitions are simulated in order
Tr
A specific partition can be simulated by specifying simv
+tmax_part=<partition#>
ip
Alternately, a single large STIL pattern file can be split out into multiple
ch
partitions by MAX Testbench for simulation
ro
write_testbench -input pat.stil –output pat_xtb –replace \
–parameters {-split_out <n>}
ic
Partition handling is the same as mentioned above 6- 25
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Two types of runtime programmability
ni
Basic programmability (changing serial vs. parallel simulation, etc.)
ai
Pattern programmability (different pattern sets reuse the same simv)
Tr
Basic programmability involves specifying runtime options with simv
ip
simv +<runtime_option>
ch
The available runtime options are: tmax_msg, tmax_rpt, tmax_serial,
tmax_parallel, tmax_n_pattern_sim, tmax_test_data_file
ro
ic
6- 26
lM
na
+tmax_msg=N Control for a pre-specified set of trace options
+tmax_rpt=N Specifies the interval of the progress message
er
+tmax_serial=N Forces the serial simulation of the first N patterns for a testbench written by
nt
MAX Testbench with only the -parallel option. This option then starts the parallel simulation of the
rI
remaining patterns using the parallel parameters specified when the testbench was written. If N=0
or not specified, then all patterns will be serial simulated.
Fo
+tmax_parallel=N Forces the parallel-load simulation of all scan data, with N bits extracted and
serially simulated. This option overrides the behavior of a testbench written by MAX Testbench
se
with the -serial option and overrides the value of N of a testbench written by MAX Testbench with
the -parallel option. If N is not specified, it is processed as zero (meaning all bits are parallel-
U
loaded).
ed
ng
Pattern can be changed at runtime without having to recompile simv
ni
run_atpg -auto
ai
write_patterns pats_1.stil –format stil
write_testbench –input pats_1.stil –output xtb_1 -parameter {–generic_testbench}
Tr
run_atpg -auto
write_patterns pats_2.stil –format stil
ip
write_testbench –input pats_2.stil –output xtb_2 -parameter {–patterns_only}
write_patterns -first 5 –last 10 pats_3.stil –format stil
ch
write_testbench –input pats_3.stil –output xtb_3 -parameter {–patterns_only}
ro
%> ./simv
%> ./simv +tmax_test_data_file=“xtb_2.dat"
ic
%> ./simv +tmax_test_data_file=“xtb_3.dat"
6- 27
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Validate the ATPG patterns as early as possible in the overall design
ni
flow in order to stay out of the critical path
ai
With post-route SDF timing annotated simulate:
Tr
ALL patterns with the parallel-load testbench
As many patterns as possible with the serial-load testbench (how many depends
ip
on simulation runtime and/or ASIC vendor requirements)
ch
At a minimum, the chain test pattern should be serially simulated
ro
ic
6- 28
lM
na
Zero delay:
nt
Typical delay:
Typical cell delays, what about interconnect delays
U
ng
parallel_xtb.v -v ../lib/class.v ../dftc/result/timer.v
ni
Check the simulation log for mismatches
ai
#############################################################################
MAX TB Version I-2017.09-SP2
Tr
Test Protocol File generated from original file "test.stil"
STIL file version: 1.0
Enhanced Runtime Version: use <sim_exec> +tmax_help for available runtime options
#############################################################################
ip
XTB: Starting parallel simulation of 375 patterns
ch
XTB: Using 0 serial shifts
XTB: Begin parallel scan load for pattern 0 (T=200.00 ns, V=3)
XTB: Begin parallel scan load for pattern 5 (T=3200.00 ns, V=33)
ro
XTB: Begin parallel scan load for pattern 10 (T=6200.00 ns, V=63)
...
XTB: Begin parallel scan load for pattern 370 (T=222200.00 ns, V=2223)
ic
XTB: Simulation of 375 patterns completed with 0 errors (time: 225400.00 ns, cycles: 2254)
6- 29
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Writing Patterns
ng
Pattern Validation
ni
ai
Tr
Simulation Debug
ip
ch
Dealing With ATE Failures
ro
ic
6- 30
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
Differences with Z’s
ai
Tristate enable lines (set_buses –external_z x)
Tr
1/0 or 0/1 mismatches
ip
Timing problems
ch
Strobe positioning
Extra/missing clocks, glitches, transients
ro
Bad Memory model (have the memory models been validated?!)
ic
DRC violations (for example C1, C5, or C39) 6- 31
lM
na
The first piece of data to analyze is the expected state, specified in the test data, and the actual state
present from the simulation run.
er
nt
Are all the actual states an “X” value? This can indicate initialization issues, or the loss of the
rI
internal design state during operation, caused by glitches or transient events. If an “X” is found in
the simulation, start tracing that “X” backwards in both the design and in simulation time - where
Fo
Are the mismatches on bi-directional signals, and do the differences involve actual or expected “Z”
values? In this type of situation, review the state of the tristate enable lines.
U
ed
Are the mismatches “hard errors” - for instance, an expected “1” but an actual “0” or vice-versa?
This could be caused by timing problems in the design, or strobe positioning, or extra or missing
ct
clocks, glitches, or transients in the design that are causing the wrong state to appear too soon or too
tri
ng
The previous load_unload Shift that loads the scan-in state
ni
One or more capture cycles
ai
The current load_unload Shift that unloads the new scan-out state
Tr
Example failure log
XTB: Begin parallel scan load for pattern 0 (T=200.00 ns, V=3)
ip
XTB: Begin parallel scan load for pattern 5 (T=1700.00 ns, V=18)
ch
>>> Error during scan pattern 8 (detected from parallel unload of pattern 7)
ro
>>> At T=3340.00 ns, V=34, exp=0, got=1, chain 1, pin test_so1, scan cell 25
XTB: Begin parallel scan load for pattern 10 (T=4700.00 ns, V=48)
ic
6- 32
lM
na
Because Basic-Scan patterns, starting with a scan load and ending with a scan unload, are self-
contained units, failures in one scan pattern do not typically propagate - unless the failure is
er
indicative of a design or timing fault that persists throughout the patterns (or the patterns have
nt
sequential behavior).
rI
Do not take “first” literally as the first printed mismatch - all mismatches that happen at the same
Fo
time step (or even at different times but in the same STIL Vector) - are all a consequence of the
problem that was functionally detected at this point. Any error generated in the first failing Vector is
se
ng
factors including:
ni
Parallel vs. serial simulation
ai
Uncompressed vs. compressed mode
Tr
Unified STIL Flow vs. Dual STIL Flow
MAX Testbench runtime defines
ip
MAX Testbench configuration file options
ch
ro
ic
6- 33
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
XTB: Begin parallel scan load for pattern 0 (T=200.00 ns, V=3)
ni
>>> Error during scan pattern 4 (detected from parallel unload of pattern 3)
>>> At T=1540.00 ns, V=16, exp=1, got=0, chain 15, pin test_so15, scan cell 33
ai
XTB: Begin parallel scan load for pattern 5 (T=1700.00 ns, V=18)
>>> Error during scan pattern 9 (detected from parallel unload of pattern 8) Cell names can be
determined by cross-
Tr
>>> At T=3040.00 ns, V=31, exp=1, got=0, chain 15, pin test_so15, scan cell 33
referencing with
Serial simulation: report_scan_cells
ip
XTB: Begin serial scan load for pattern 0 (T=200.00 ns, V=3)
ch
>>> Error during scan pattern 4 (detected from unload of pattern 3)
>>> At T=25240.00 ns, V=253, exp=1, got=0, chain 15, pin test_so15, scan cell 33
XTB: Begin serial scan load for pattern 5 (T=27200.00 ns, V=273)
ro
>>> Error during scan pattern 9 (detected from unload of pattern 8)
>>> At T=52240.00 ns, V=523, exp=1, got=0, chain 15, pin test_so15, scan cell 33
ic
6- 34
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
To see the cell names in the fail log, the MAX Testbench can be created
using the following configuration variable:
set cfg_parallel_stil_report_cell_name 1
ng
Cell Names
Parallel simulation:
ni
XTB: Begin parallel scan load for pattern 0 (T=200.00 ns, V=3)
ai
>>> Error during scan pattern 4 (detected from parallel unload of pattern 3)
>>> At T=1540.00 ns, V=16, exp=1, got=0, chain 15, pin test_so15, scan cell 33, cell name q1_reg_0_
XTB: Begin parallel scan load for pattern 5 (T=1700.00 ns, V=18)
Tr
>>> Error during scan pattern 9 (detected from parallel unload of pattern 8)
>>> At T=3040.00 ns, V=31, exp=1, got=0, chain 15, pin test_so15, scan cell 33, cell name q1_reg_0_
ip
Serial simulation:
ch
XTB: Starting serial simulation of 288 patterns
XTB: Begin serial scan load for pattern 0 (T=200.00 ns, V=3)
>>> Error during scan pattern 4 (detected from unload of pattern 3)
ro
>>> At T=25240.00 ns, V=253, exp=1, got=0, chain 15, pin test_so15, scan cell 33, cell name q1_reg_0_
XTB: Begin serial scan load for pattern 5 (T=27200.00 ns, V=273)
ic
>>> Error during scan pattern 9 (detected from unload of pattern 8)
>>> At T=52240.00 ns, V=523, exp=1, got=0, chain 15, pin test_so15, scan cell 33, cell name q1_reg_0_
6- 35
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
XTB: Starting parallel simulation of 514 patterns
XTB: Using 1 serial shifts
XTB: Begin parallel scan load for pattern 0 (T=200.00 ns, V=3)
ni
...
XTB: Begin parallel scan load for pattern 30 (T=12200.00 ns, V=123)
ai
>>> Error during scan pattern 34 (detected from parallel unload of pattern 33)
>>> At T=13940.00 ns, V=140, exp=1, got=0, pin test_so3, shift cycle 4 ScanOut port and
shift cycle reported.
Tr
>>> Error during scan pattern 34 (detected from parallel unload of pattern 33)
>>> At T=13940.00 ns, V=140, exp=1, got=0, pin test_so4, shift cycle 6
>>> Error during scan pattern 34 (detected from parallel unload of pattern 33) Can use diagnosis to
>>> At T=13940.00 ns, V=140, exp=1, got=0, pin test_so13, shift cycle 4 determine failing cell.
ip
Serial simulation
ch
XTB: Starting serial simulation of 514 patterns
XTB: Begin serial scan load for pattern 0 (T=200.00 ns, V=3)
...
ro
XTB: Begin serial scan load for pattern 30 (T=54200.00 ns, V=543)
>>> Error during scan pattern 34 (detected from unload of pattern 33)
>>> At T=61940.00 ns, V=620, exp=1, got=0, pin test_so3, shift cycle 4
ic
>>> At T=61940.00 ns, V=620, exp=1, got=0, pin test_so13, shift cycle 4
>>> At T=62140.00 ns, V=622, exp=1, got=0, pin test_so4, shift cycle 6
6- 36
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
With compression mode and Dual STIL Flow, failing cells are reported
XTB: Starting parallel simulation of 514 patterns
XTB: Using 0 serial shifts Note that N-shift is
XTB: Begin parallel scan load for pattern 0 (T=200.00 ns, V=3)
not supported with
ng
...
XTB: Begin parallel scan load for pattern 30 (T=9200.00 ns, V=93) the Dual STIL Flow
>>> Error during scan pattern 34 (detected from parallel unload of pattern 33)
ni
>>> At T=10540.00 ns, V=106, exp=1, got=0, chain 242, scan cell 1
ai
With set cfg_parallel_stil_report_cell_name 1 in config file:
Tr
XTB: Starting parallel simulation of 514 patterns
XTB: Using 0 serial shifts
XTB: Begin parallel scan load for pattern 0 (T=200.00 ns, V=3)
ip
...
XTB: Begin parallel scan load for pattern 30 (T=9200.00 ns, V=93)
>>> Error during scan pattern 34 (detected from parallel unload of pattern 33)
ch
>>> At T=10540.00 ns, V=106, exp=1, got=0, chain 242, scan cell 1, cell name q1_reg_0_
Reporting of serial simulations with Dual STIL Flow is the same as for USF
ro
ic
6- 37
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
write_patterns
TetraMAX can create a Parallel Strobe STIL (USF)
ni
Data (PSD) file to provide that additional
write_testbench
ai
information to MAX Testbench
MAX
Tr
The PSD file is a binary file that contains Testbench
additional internal parallel strobe data
ip
tb.v tb.dat tb_psd.dat
The PSD file can be created by
ch
TetraMAX either during pattern
generation (run_atpg) or during
ro
VCS
simulation (run_simulation)
ic
6- 38
lM
na
Note: CPV limitations:
er
• The set_patterns and run_simulation commands are not supported for multiple contiguous runs
rI
(see “Creating a PSD File”). Also, update and masking flows are not supported, including pattern
restore from binary and new pattern write flows, multiple pattern read back, and single merged
Fo
pattern write.
• When the set_atpg –parallel_strobe_data command is used with DFTMAX Ultra compression,
se
• The -first, -last, -sorted, -reorder, and -type options of the write_patterns command are not
supported.
ct
• The -sorted, -reorder, and -type options of the write_testbench and stil2verilog commands are not
tri
supported.
• The -last option of the run_simulation command is not supported.
es
R
ng
PSD file can be (re)generated during simulation with:
ni
run_sim -parallel_strobe_data_file <PSDfile> -replace
ai
TetraMAX II does not support generating a PSD file during run_atpg
Tr
If enabled, a Warning message will be issued
A PSD file will still be created but it will be unusable
ip
Use run_sim to create the PSD file with TetraMAX II
ch
In DFTMAX Ultra flows, the PSD file should be created by run_sim after
ro
the patterns have been generated by ATPG and the padding patterns
have been removed
ic
6- 39
lM
na
To create the PSD file with DFTMAX Ultra compression in a single session:
er
run_atpg -auto
rI
7. Write the final set of patterns that match the PSD file.
write_patterns pat_u.stil -for stil -repl -unified_stil_flow -ext
es
ng
XTB: Using 1 serial shifts
XTB: Begin parallel scan load for pattern 0 (T=200.00 ns, V=3)
...
ni
XTB: Begin parallel scan load for pattern 30 (T=12200.00 ns, V=123)
>>> Error during scan pattern 34 (detected from parallel unload of pattern 33)
>>> At T=13940.00 ns, V=140, exp=1, got=0, pin test_so3, shift cycle 4
ai
>>> Error during scan pattern 34 (detected from parallel unload of pattern 33)
>>> At T=13940.00 ns, V=140, exp=1, got=0, pin test_so4, shift cycle 6
Still reports the
Tr
>>> Error during scan pattern 34 (detected from parallel unload of pattern 33)
>>>
XTB:
At T=13940.00 ns, V=140, exp=1, got=0, pin test_so13, shift cycle 4
searching corresponding parallel strobe failures...
failures seen at the
>>> At T=13940.00 ns, V=140, exp=1, got=0, chain 242, scan cell 1, cell name q1_reg_0_ ScanOut pins
ip
ch
New section of the failure log
To have the cell name reported, you
ro
shows the “internal” parallel
strobe failures that led to the still need to use a configuration file
ic
failures seen on the ScanOuts when generating the MAX Testbench
6- 40
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
If a W-048 message is seen when creating the MAX Testbench, the
ni
overhead required to report the failing cell names via the configuration
ai
file may be significant
Tr
Candidate to use the post processing flow
Uses stil2verilog to post-process a failure log and identify failing
ip
cell names
ch
stil2verilog pats.stil -failing_cell_report sim.log –log new_sim.log
ro
ic
6- 41
lM
na
W-048: Failing scan cell name display feature may have an impact on simulator performance.
er
The failing scan cell name display functionality increases the Verilog testbench size and the
nt
memory usage. On large designs, this feature can impact the simulator performance.
rI
Fo
se
U
ed
ct
tri
es
R
ng
Scan chain name, Cell ID No cell
PSD File STIL File
names
ni
MAX Testbench stil2verilog
ai
stil2verilog –failing_cell_report
Tr
Log with Verilog
ip
Enhanced Simulation Log
W-048 Testbench Pattern, Time, Vector number,
ch
Scan chain name, Cell ID, Cell
Scan cell instance name names
ro
added
VCS
ic
6- 42
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
Clocks/Resets
ai
ScanEnable
Tr
...
"pattern 3":
Call "load_unload" {
"test_so1"=HLHLHHLLHLLLLLLLLLL; "test_so2"=HLHLH…; "test_so3"=HLHL…;
ip
"test_so4"=LLLLLLLLLLLLLLLLLLL; "test_so5"=HHHHL…; "test_so6"=LLLL…;
"test_si5"=0011111011000011101; "test_si1"=00011…; "test_si2"=0110…;
ch
"test_si3"=1111111011000010111; "test_si4"=01111…; "test_si6"=0000…; }
Call "allclock_launch" {
ro
"_pi"=1P101011001000111; }
Call "allclock_capture" {
"_pi"=0P001011000011111; "_po"=LLLLLHHLHHHLLLH…; }
ic
...
6- 43
lM
na
TetraMAX has a command called write_simtrace that can be used to monitor certain signals
during Verilog simulation for debug purposes. See the write_simtrace man page for details.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Reduces long shift cycle to single cycle for load
ni
Strobe of scan_flop.Q done in same load cycle
ai
Capture cycles applied by normal means
Tr
Shift load/unload can be extended by using N-shift
ip
+define+tmax_parallel=N
ch
Where N is > 0
ro
ic
6- 44
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Sometimes the only way to debug a simulation issue is to view the waves
Time when scan cell is forced
ng
Time when scan cell is released
ni
ai
Time where scan cells
Tr
are strobed/measured
ip
1st pulse to do parallel
load, 2nd pulse for N-shift
ch
ro
Additional cycles for
load_unload and capture
ic
6- 45
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
compared to the value expected by
TetraMAX
ni
To show the simulated values for a
ai
specific pattern in the GSV
Tr
analyze_simulation_data –fast <n>
ip
The GSV will show that pattern’s
ch
values for the capture procedure(s)
ro
Trace backwards in the GSV and in
Waves to find the cause
ic
6- 46
lM
na
Another option to show simulated values in the GSV is:
set_pindata –good_sim_results <n>
er
nt
In many cases the cause of the mismatch is a scan cell that was loaded with the wrong value.
rI
Fo
se
U
ed
ct
tri
es
R
ng
DRC violations: C5, C12, S18, S29, etc.
ni
Watch for warnings issue during ATPG and/or when patterns are written in TetraMAX
ai
If the chain test is failing, then there’s an issue with the parallel load itself
Tr
Timing issue and/or missing TetraMAX SDC exception with SDF At-Speed
simulation
ip
Clock edge for falling edge flops too late in period
ch
Conflicting forces elsewhere in the simulation environment
Some common causes of serial simulation mismatches
ro
Issue with compression mode logic
ic
Pipelined scan data not behaving as TetraMAX expects 6- 47
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Writing Patterns
ng
Pattern Validation
ni
ai
Tr
Simulation Debug
ip
ch
Dealing With ATE Failures
ro
ic
6- 48
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Even with clean STA and simulation with no simulation
mismatches, actual DUTs can still fail on ATE
ni
If the same ATE timing and post-route SDF is used in both STA and
ai
simulation, and STA reports no violations, simulation mismatches can
Tr
still occur due to:
Simulation mode (zero, unit, typical) issues
ip
ch
ro
The project schedule is tight:
ic
How will you debug the simulation mismatches or ATE failures? 6- 49
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
If the mismatches and failures are localized and not widespread, one
ni
option is to use PI/PO Masks, Cell Constraints, or Capture Masks
ai
Reduce simulation mismatches
Tr
Reduce ATE false negatives
Perform the masking in TetraMAX rather than ATE
ip
Determine reduction in test coverage
ch
ro
ic
6- 50
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
An output mask is used to prevent the ATPG algorithm from observing
ni
faults through a specific output port
ai
add_po_masks <port_name> | -all
Tr
Faults can no longer be controlled from masked inputs or observed
from masked outputs (therefore coverage will drop)
ip
ch
ro
ic
6- 51
lM
na
Useful if you have a reduced-pin count revision to a full pin count chip and need to determine the
fault coverage (reduction).
er
nt
Power and Ground (VDD/VSS) pins would typically not be masked but totally excluded from the
rI
If you discover after simulation or on the ATE that an output has glitches or is difficult to strobe at
ct
This command is also useful to determine the fault coverage (reduction) of a reduced-pin count
es
ng
[-position {<cell_pos1|sci> [cell_pos2]>}|-all>>]
ni
Other settings provide for scan cell masking
ai
OX - scan cell will always “Observe X” regardless of captured value (note: OX =
Tr
“oh X”)
XX - scan cell will always be loaded with X and observed as X
ip
To control the value loaded and mask unload
ch
0X – scan cell will be loaded with a 0 and observe an X
ro
1X – scan cell will be loaded with a 1 and observe an X
ic
6- 52
lM
na
Cell constraints can be specified in several ways:
er
1. instance name
nt
add_cell_constraints OX reg2/r/D
rI
add_po_masks chain_1_SDO
ed
ng
Is similar to but has slightly different behavior than
ni
add_cell_constraints OX
ai
Example:
Tr
add_capture_masks /PROBLEM/NONSCAN/FLOP
ip
To prevent a loadable non-scan cell from being loaded but still allow the
ch
cell to capture
ro
add_capture_masks nonscan/cell –load_only
ic
6- 53
lM
na
Example report_capture_masks output
Only when add_capture_masks –load_only has been used
er
45 DFF -- s1
58 DFF LO n0and
Fo
901030 – Difference Between the add cell const OX and the add capture mask Commands
ed
ct
tri
es
R
Goal: replace L’s and H’s with X’s in scan patterns to mask specific
measures that mismatch on tester
Use –resolve_differences <mask_file> option of set_patterns
ng
to update external patterns
ni
set_patterns –external <patterns_file> \
ai
–resolve_differences <masks_file>
Tr
When the external patterns are read, TetraMAX will report the total
number of X measures added
ip
ch
set_patterns -external pat.stil –resolve_differences mask.txt
End parsing STIL file pat.stil with 0 errors.
ro
End reading 200 patterns, CPU_time = 33.40 sec, Memory = 5MB
6 X measures were added in the external patterns.
ic
write_patterns mask_pats.stil –format stil –external -replace
6- 54
lM
na
To determine the Test Coverage difference after masking:
er
add_faults –all
nt
faults
read_faults ud.flt –retain_code
Fo
run_fault_sim
se
• Failures in cycle-based format with cycle offset can not be automatically read
• Full-Sequential patterns could have multiple load-unloads with measures on the scanout in each
ct
unload. Only the failures for the first unload can be masked
tri
es
R
ng
>>> At T=10195.00 ns, V=102, exp=0, got=1, chain 1, pin pc[11] , scan cell 0
ni
To format failure messages for per-cycle pattern masking or diagnosis,
MAX Testbench can be configured to store the failures in a fail data file
ai
Use –run_mode diagnosis option at stil2verilog execution time
Tr
Initializes file name for collection of the failures for the diagnostics to diag.txt
ip
Set the variable cfg_diag_file in the config file with the name of the file
ch
set cfg_diag_file <file_name>
Specify failures file using the tmax_diag_file and tmax_diag define options
ro
at simulation execution
ic
% vcs ... +define+tmax_diag_file=\”<file_name>\”
6- 55
lM
na
For MAX Testbench, the tmax_diag define controls the format of the fail data file.
er
+tmax_diag=<N>
nt
rI
Serial simulation
Pattern-based failure file with output port name
5 test_so4 10 (exp=1, got=0)
ng
File can be used for per-cycle pattern masking or diagnosis
ni
Parallel simulation
ai
Pattern-based failure file with chain name
Tr
3 chain2 7 (exp=0, got=1)
File can be used for per-cycle pattern masking or diagnosis
ip
ch
ro
ic
6- 56
lM
na
Note: If a pattern-based failure file with chain name is used with a DFTMAX design the following
command is required:
er
set_diagnosis -dftmax_chain_format
nt
rI
Note: there is also a cycle based fail data format that is covered in the Diagnosis unit:
Fo
Cycle-based:
se
ng
Chain masking applied at compressor inputs
ni
Done by adjusting values scanned into decompressor cache
ai
Masked chains loaded with normal scan-in values
Tr
Not consistent with any type of chain defect
Result is reduction in number of mismatches
ip
Large mismatch count can be hard to debug with high compression
ch
ro
mismatches
ic
6- 57
lM
na
add_chain_masks main options:
er
-compressor { <string_value> ... } Specify compressors for which all chains will be masked
-filename <string_value> Specify file containing chains to be masked
se
The following example masks all chains in the abc.txt file and chains 12, 45, and 67:
R
ng
add_chain_masks –name {ch1 ch2}
# add_chain_masks has specified constraints on ATPG,
# so nothing actually happens until run_atpg
ni
run_atpg -auto
ai
# Write the masked pattern set
write_patterns ..
Tr
Chain masking for an existing pattern set
ip
set_patterns –external …
# User wants to mask ch1 and ch2 of the external pattern set
ch
add_chain_masks –name {ch1 ch2} –external
# add_chain_masks has resimulated the patterns,
ro
# so they are ready to write out immediately
# Write the masked pattern set
ic
write_patterns .. –external
6- 58
lM
na
Limitations of DFTMAX Ultra chain masking:
er
• Chains not within the DFTMAX Ultra codecs (e.g. OCC chains) cannot be masked by this
nt
command
rI
ng
Describe the minimal set of ATPG patterns that should
be simulated with serial load_unload
ni
Use two ways to translate a STIL pattern to a Verilog
ai
testbench with MAX Testbench
Tr
Describe 2 reasons why you might use the ATPG
ip
masking commands
ch
Begin Lab 6: Pattern Validation
ro
ic
6- 59
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
write_patterns –format stil Write patterns in STIL format for translation to ATE
write_patterns -last 0 Writes the chain test, pattern 0
ni
write_patterns -sorted Writes patterns ordered by complexity
ai
report_scan_cells –all Reports all scan cells
Tr
report_scan_cells -shadow Reports only the shadow gates of scan cells
add_pi_constraints X <port> Apply an input mask to a port
ip
add_cell_constraints <0|1|XX| Control value loaded and/or mask the value
OX|0X|1X> –chain <name> <pos> unloaded from a scan cell
ch
add_po_masks <port> Apply an output mask to a port
add_capture_masks <instance> Mask values captured on a non-scan or scan cell
ro
set_patterns –resolve_diff <f> Apply per-cycle pattern masking
ic
6- 60
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
DAY
2
5 Minimizing ATPG Patterns
ng
ni
6 Pattern Validation
ai
Tr
7 Fault Models and At-Speed Testing
ip
8 At-Speed Constraints
ch
ro
ic
7- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-1
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objective
ng
List several fault models supported by TetraMAX
ni
Describe At-Speed defects
ai
Describe two popular fault models for At-Speed testing
Tr
Describe three different way to launch an At-Speed transition
ip
for delay testing
ch
Modify the default STIL Protocol File (SPF) written out from
DFT Compiler to support At-Speed ATPG
ro
ic
7- 2
lM
na
In this unit you will see an overview of At-Speed defects and their causes. You will also learn why
it is important to include At-Speed ATPG tests as part of your overall manufacturing test flow.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-2
TetraMAX Workshop
For Internal Microchip Training Purposes Only
New Defect Types with New Technologies
ng
Many defects will pass Stuck-At testing and defective parts are sent
ni
back to silicon provider
ai
Additional IDDQ patterns are not enough, IDDQ current is too high in
Tr
Deep Submicron technology
ip
Test cost should not increase
ch
ro
~50% of defects at < 0.18µ
not covered by Stuck-At
ic
7- 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-3
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Sources of Test Escapes
Nigh and Gattiker list 7 types of test-escapes
Timing-related defects Environmental failures
Resistive contacts/vias, Soft errors
Resistive bridges, Untested faults
ng
resistive opens <100% coverage
ni
gate oxide shorts
Faults unmodeled by Stuck-At
improper implants
ai
“stuck opens” causing sequential
Silicide breaks behavior
Tr
ip
Circuit / process sensitivities
ch
Many of the defects can be detected with DFT techniques
Timing-related defects • Unmodeled faults
ro
Untested faults
ic
Nigh & Gattiker (IBM), Test Method Evaluation Experiments & Data 7- 4
lM
na
Note: a “test escape” is a device that passes every test applied on the ATE but still has undetected
defects that could cause functional issues and/or a customer return
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-4
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Delay Testing Introduction: Agenda
Fault Models
ng
ni
At-Speed Launch Methods
ai
Tr
ip
SPF Timing For External Clock
ch
Delay Testing
ro
ic
7- 5
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-5
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Fault Models
ng
1 0
D Q
ni
D Q
ai
0 0
Tr
Slack-Based
Stuck-At Slack-Based Hold-Time Static Bridging IDDQ
1
ip
ch
1 1 0
ro
Transition Cell-Aware Path Delay Dynamic Bridging IDDQ-Bridging
ic
7- 6
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-6
TetraMAX Workshop
For Internal Microchip Training Purposes Only
At-Speed Defect
ng
In the presence of a defect, the output does not transition within the
stipulated time
ni
Critical timing paths are particularly susceptible to At-Speed defects, but
ai
other paths as well can have a defect which can lead to failure of the chip
Tr
If not detected, At-Speed defects will increase the number of test escapes
ip
Normal Transition Slow Transition
High
ch
ro
Low
ic
At-Speed strobe Stuck-At strobe
7- 7
lM
na
Studies have shown if scan-based At-Speed tests are removed from the test program, the escape rate
goes up nearly 3%
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-7
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Why Chips Fail “At-Speed”?
ng
Dark/missing vias
Poly cracks Oxide thickness
ni
ai
Metal/poly bridges Metal widths
Tr
Metal thickness
ip
Metal short Open via FinFET opens Lithography defect
ch
ro
ic
7- 8
lM
na
Think of “point defects” like circuit nodal defects affecting a gate, for example.
er
Distributed defects affect a bigger part of a circuit. These might be magnified across a long circuit
nt
path.
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-8
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Methodologies for At-Speed Defect Testing
ng
Costly high speed, high bandwidth ATE required
ni
ai
Scan based ATPG patterns
Tr
Automated using DFT structures
Predictable with high coverage
ip
Less expensive ATE needed
ch
Complementary to Stuck-At Methodology
ro
ic
7- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-9
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Which Methodology Detects Most Defects?
Slow At-Speed
0 8 Functional
Functional 0
0 5
0 22
ng
190
4 6
ni
2
Stuck-At 0 At-Speed
24 Scan
Scan
ai
Tr
Venn diagram from HP ITC paper:
A single fault model does not catch all failures
ip
ch
ro
ic
Maxwell (HP), et al, ITC ’96, IDDQ and AC Scan: The War Against Unmodelled Defects
7- 10
lM
na
Many faults fail only At-Speed testing.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-10
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Transition Delay Fault Model
ng
Path to apply the transition or to capture its effect is selected by the
tool
ni
May not be the longest path (more on this later)
ai
Same fault sites and classes as stuck-at ATPG
Tr
Many possible paths for detection Transition Delay Fault
ip
ch
ro
ic
Defect causes DUT to fail At-speed
7- 11
lM
na
Time you strobe the output is constant (red arrow) and the size of the defect (hashed red pulse) is
constant.
er
nt
With 3 different length paths coming in, the amount of the delay added from the defect is the same,
rI
but you can sensitize it from different paths (I.e. the arrival time of the transition is changing).
(This example shows three paths.)
Fo
Will measure a 0 in the good circuit and a 1 if there’s delay. The larger the delay, the easier it is to
se
detect.
U
In this example, the short path will cause you to actually measure 0 and miss detecting fault. For a
ed
This is generally the opposite behavior of ATPG, which tries to use less effort to generate a vector
tri
and is one of the limitations of the transition delay model (in general).
To accommodate for this limitation, you should also use the path delay model to detect defects that
es
are distributed along the path. The ATPG algorithm is given the path to test, and it doesn’t have a
choice to use less effort. Targeting a specific path requires a powerful (full-sequential) ATPG
R
algorithm.
In general, for any given transition, there may be multiple paths coming into/out of gate – need to
enhance w/Path Delay testing. Note: this paths can come directly from Prime Time.
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-11
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Detection Path : Does it Matter?
ng
Consider fault b0 slow-to-rise (STR) on a 4 bit adder
ni
Can be detected at S0,S1,S2,S3 or C4
ai
Detection at S0
Tr
Minimum effort for ATPG
ip
Maximum Slack on the path
ch
Detection at C4
ro
Maximum effort for ATPG
Minimum Slack on the path
ic
7- 12
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-12
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Detecting a Small Delay Defect
C D Q
1
1 B
A TA-B
Δt
ng
D Q
ni
Defect
ai
B Small delay defect not detected through path A-B
Tr
TA-B
ip
C Much better chance to detect through path A-B-C
ch
TA-B-C
ro
ic
Capture
7- 13
lM
na
To illustrate, let’s see what happens when there’s a small delay defect on node A…
• Standard transition delay ATPG will most likely target this fault along the shortest path, path A-B.
er
• Because the slack is so large relative to the defect delay, there’s enough time for the transition and
nt
• However, Slack-Based ATPG will target the fault along the longest path, path A-B-C.
• This time, the slack is less than the defect delay, so there’s not enough time for the transition and
Fo
there’s a much better chance to detect the fault through this path.
se
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-13
TetraMAX Workshop
For Internal Microchip Training Purposes Only
How Are Delay Defects Distributed?
9
Delay Defect Distribution
8
ng
6
ni
4 Cycle
Time Covered by transition
ai
3
testing
Tr
2
ip
0
4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46
ch
Additional Delay (ns)
ro
Source: IBM for 0.45um technology
P. Nigh and A. Gattiker, “Test Method Evaluation Experiments &
ic
Data,” ITC, Oct. 2000.
7- 14
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-14
TetraMAX Workshop
For Internal Microchip Training Purposes Only
TetraMAX Slack-Based Transition ATPG
SDC,
One-pass flow SDF,
Exceptions
Parasitics
Slack-based ATPG for small delay
defects
ng
PrimeTime
Standard transition delay ATPG for
larger delay defects
ni
Pin Slacks
ai
Uses PrimeTime
Tr
Industry’s de-facto sign-off timing TetraMAX
ip
engine Slack-Based ATPG
ch
No design or DFT changes required Transition and
ro
Small Delay Reports,
Defect Patterns Histograms
ic
7- 15
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-15
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Cell-Aware Test
ng
Traditional test
targets inter-cell
Supports flexible ATPG flows faults on pins
ni
Cell- or instance-based
ai
Inter-cell + intra-cell patterns
Tr
Stuck-at and transition delay
Traditional test might
ip
not cover defects like
this inside the cell
ch
ro
ic
7- 16
lM
na
Unlike standard ATPG, cell-aware ATPG explicitly target faults inside cells (intra-cell faults).
er
• It complements existing inter-cell fault models, so it can be thought of as yet another way to
nt
increase defect coverage and lower DPPM. It can be applied to any design to increase defect
rI
• The cell-aware ATPG flows are highly flexible. For example, you can use cell-aware ATPG on
specific cells or instances in a design.
se
• One possible flow is to first run TetraMAX ATPG using inter-cell models. Then, after fault-
U
simulating those patterns using intra-cell models, perform incremental ATPG using intra-cell
ed
models.
ct
• You can use it for both stuck-at and transition delay testing.
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-16
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack-Based Cell-Aware Test
ng
VDD
ni
ai
Tr
ip
ch
ro
ic
7- 17
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-17
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Z01X Cell-Aware Fault Simulation
ng
Slacks
functional patterns
ni
Z01X fault simulates functional TetraMAX II ATPG
ai
patterns to measure cell-aware fault Cell Test
Tr
coverage Models
ip
types
ch
Reuses cell-aware fault models and Coverage Reports
fault list from TetraMAX
ro
Reports aggregate fault coverage
ic
7- 18
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-18
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path Delay Fault Model
ng
The entire specified path is considered as the Path Delay “fault”
Huge number of possible circuit paths
ni
Specific Paths extracted from STA
ai
Cumulative effect of
Tr
all defects along path
ip
ch
Test along a
ro
0 1 0
specific path
ic
7- 19
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-19
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Bridging Fault Models
ng
victim node 1
1
ni
Stuck-At fault Model used for victim with aggressor
forced to 1/0
ai
0
Dynamic Bridging 0
Tr
0 1
Bridge fault is dynamic in nature
ip
Victim node too slow for the rated clock speed
Victim
ch
because of aggressor node effects
Transition Fault Model used for victim with
ro
aggressor forced to 1/0
ic
7- 20
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-20
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Delay Testing Introduction: Agenda
Fault Models
ng
ni
At-Speed Launch Methods
ai
Tr
ip
SPF Timing For External Clock
ch
Delay Testing
ro
ic
7- 21
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-21
TetraMAX Workshop
For Internal Microchip Training Purposes Only
At-Speed Fault Models
Transition Delay
Standard Transition Delay (targets medium to large delay defects)
Slack-Based Transition Delay (targets small delay defects)
ng
Path Delay
ni
Setup Time Fault
ai
Hold Time Fault
Tr
Dynamic Bridging
ip
Faults are targeted as STR and STF
ch
STR --- Slow to Rise
STF --- Slow to Fall
ro
ic
7- 22
lM
na
The Transition Delay fault model models the behavior of defects that cause individual nets or gates
to Transition too slowly. The defects are assumed large enough so that an incorrect value is sampled
er
at any flip-flop.
nt
rI
Transition Delay faults target point defects that can cause an At-Speed failure. Examples of point
defects include a bad metal contact, or a partially defective gate oxide. Transition delay tests can
Fo
provide good At-Speed coverage of gates that are not on a critical path. Path Delay faults may
catch some point defects, but specifically target systematic defects.
se
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-22
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Structured At-Speed Fault Testing
ng
target fault site
ni
Scan shifting can be done at a slower speed
Pulse clock to launch Transition (V2)
ai
Tr
ip
V1 V2
ch
CLK
SE
ro
ic
7- 23
lM
na
The principle of detecting a delay fault consists in applying a Transition to the fault site and, after a
specific time (your At-Speed, functional, clock period), measuring the effect of that Transition in
er
the design.
nt
rI
In this timing diagram, TetraMAX will first put the design in a known state using the V1 vector.
Then it will apply the Transition at the fault site; this is achieved using the V2 vector. (V2 vector
Fo
After one period of an At-Speed clock, TetraMAX will measure the effect of the Transition on the
design. This effect must correctly propagate to a PO or a scan flop in order to not have a delay
U
Note that the only “critical” time is the time between V2 and the capture clock edge (symbolized by
ct
the green arrow). All other operations can be done using the classical test clock, which typically has
tri
a slower period.
es
The tester will use two time sets (i.e. Waveform Tables in TetraMAX) and it changes the timesets
on the fly. (Note: Inexpensive testers can have poor accuracy, and the placement of the pulse is
R
critical.)
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-23
TetraMAX Workshop
For Internal Microchip Training Purposes Only
At-Speed Launch Methods
ng
Uses the last clock pulse of load_unload as the launch
system_clock
ni
ai
extra_shift
Tr
Launch the transition with a fast OCC shift pulse after the slow shift
any
ip
ch
ro
Fast-Sequential Path Delay: always uses system_clock launch
ic
Full-Sequential Path Delay: can avoid last_shift launch by constraining ScanEnable
7- 24
lM
na
Fast-Sequential Path Delay: always uses system_clock launch
Full-Sequential Path Delay: constrain ScanEnable to it’s inactive state during capture to avoid
er
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-24
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Transition Launch Methods
ng
CLK CLK
ni
launch capture launch capture
ai
extra_shift Launch
Tr
SE active inactive
ip
active inactive
Internal Pipelined SE
ch
At-Speed testing time
CLK
ro
ic
Slow Shift Last Slow Shift launch capture
7- 25
lM
na
The system_clock launch is easier to use because it does not require SE switch between
launch and capture.
er
nt
By default, the system_clock launch mode uses a two-clock ATPG engine. (This is similar to
rI
If you can use last_shift launch, you definitely can use system_clock Launch.
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-25
TetraMAX Workshop
For Internal Microchip Training Purposes Only
system_clock Launch (Default)
ng
ni
Capture Transition
ai
Launch Transition
Tr
ip
ch
Vector Shift Shift Shift Capture Capture Shift Shift Shift
Load_unload Load_unload
ro
Apply PI's for Launch Apply PI's for Capture
ic
7- 26
lM
na
set_delay –launch_cycle system_clock
er
A selection of system_clock results in a capture clock procedure being used to launch the
nt
Use of system_clock will enable you to also generate Fast-Sequential patterns with the -
Fo
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-26
TetraMAX Workshop
For Internal Microchip Training Purposes Only
system_clock Launch: Example
ATPG controls load and capture
SI STR fault
values to SO
launch a transition
Scan Chain
X Don’t Care
X A A A
X X X
ng
1 B X B B
ni
1 0 1 1 X 1
ai
D D D
Tr
1 C X C C
X 0 1
0 1 X
ip
ch
After Nth shift V2 vector SE=0
ro
V1 vector SE=0 Capture clock
ic
SE = 1 Launch clock
7- 27
lM
na
This example shows a STR fault at the output of the AND gate. (To test a STR fault on this pin, the
tool must use a two pattern sequence which will change the value from a ‘0’ to a ‘1’).
er
nt
For system_clock, launching the ‘0’ to ‘1’ Transition (launch) at the fault location happens by the
rI
On the last shift, the inputs of the AND gate are ‘1’ and ‘0’, which means that the output is ‘0’. The
initial state on the output of AND gate has been achieved. The next step is to launch the fault.
se
Take a note on the functional pins of flops “B and C” driving the AND gate; both are at value ‘1’.
U
Pulsing the clock driving these flops, causes the output of the AND gate to ‘1’ and initiates the
ed
Immediately after the launch, the capture clock is pulsed, which captures the Transition on the
tri
The launch and the capture happens with Scan Enable inactive.
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-27
TetraMAX Workshop
For Internal Microchip Training Purposes Only
system_clock Launch: Details
ng
If set_atpg –capture <n> is set where n>2, then a Fast-Sequential pass is
performed
ni
The ScanEnable timing does not affect the capture operation, it is
ai
constrained to its inactive state
Tr
At-Speed timing for external clocks can be defined by the user in
ip
special WaveFormTable (WFTs) in the SPF
ch
Most commonly used At-Speed launch method
ro
ic
7- 28
lM
na
Note: run_atpg –optimize_patterns supports the two-clock ATPG engine
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-28
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Additional Delay Test Cycles
Setup Cycles
Precede launch cycle
Get V1 values to non-scan devices
ng
Propagation Cycles
ni
Follow At-Speed capture cycle
ai
Get fault effect to an observation point
Tr
These are slow cycles and their WFT is the same as what is defined in
the _multiclock_capture_WFT
ip
With On-Chip Clocking the additional cycles are fast pulses
ch
SE
ro
Shift Cycles Setup Cycles L C Propagation Cycles
ic
CLK
7- 29
lM
na
For Fast and Full sequential ATPG, there can be additional cycles that may be needed to set up the
fault detection.
er
nt
For example, extra clock cycles are needed to pass values through a non-scan element or when
rI
detecting faults around the shadow of the memory (i.e. when propagating values through the
memory.)
Fo
Once the capture clock arrives, additional cycles may also be needed to propagate the fault to a scan
se
These extra cycles use the WFTs that are defined for their capture in the SPF file.
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-29
TetraMAX Workshop
For Internal Microchip Training Purposes Only
last_shift Launch
ng
ni
ai
Capture Transition
Launch Transition
Tr
SE
ip
CLK
ch
Shift Shift Shift Shift Capture Shift Shift Shift Shift Shift Capture Shift Shift
Load_unload Load_unload
ro
Apply PI's for Launch Apply PI's for capture
ic
7- 30
lM
na
set_delay -launch_cycle last_shift
er
For the Transition fault model, this specifies how the Transition is launched. A selection of
nt
last_shift results in the Transition being launched on the last shift clock of the scan chain
rI
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-30
TetraMAX Workshop
For Internal Microchip Training Purposes Only
last_shift Launch: Example
ATPG controls load values
SI STR fault
to launchSO
a transitionSI SO
Scan Chain
X Don’t Care
X A A A
X
ng
1 X
X B
ni
B B
1 0 1 1 X 1
ai
D D D
Tr
X C C C
X 0 1
0 1 X
ip
ch
N - 1 shift Nth shift Capture Mode
ro
V1 vector V2 vector SE = 0
ic
SE = 1 SE = 1 Capture clock
7- 31
Launch clock
lM
na
This example shows a STR fault at the output of the AND gate. (To test a STR fault on this pin, the
tool must use a two pattern sequence which will change the value from a ‘0’ to a ‘1’).
er
This AND gate is in between some flops. These flops (A,B,C,D) are part of a scan chain, shown as
nt
The ‘0’ to ‘1’ Transition (launch) at the fault location has to happen on the last shift.
Fo
On the N-1 shift, the values on the input of the AND gate are ‘1’ and ‘0’. This gives the V1 vector.
The output is now low. At this time notice the value of flop “A”. Since it creates the Transition, it
se
On the Nth shift, the output of the AND gate changes to ‘1’ - that is the fault has been launched.
ed
After the launch the SE goes low. Scan chains are no longer present. The capture clock comes in the
first tester cycle and captures the Transition on the functional pin of flop D.
ct
tri
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-31
TetraMAX Workshop
For Internal Microchip Training Purposes Only
last_shift Launch: Details
ng
the capture operation
ni
Pipelining ScanEnable can help
ai
Critical timing for the ScanEnable requires special tester control
Tr
Not a commonly used launch method
ip
ch
ro
ic
7- 32
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-32
TetraMAX Workshop
For Internal Microchip Training Purposes Only
extra_shift Launch: Details
ng
Better coverage
ni
Patterns are generated using two_clock algorithm
ai
Fast and full sequential ATPG can be used
Tr
Requires pipelined ScanEnable
ip
Separate for each clock domain and edge
ch
Can be added by insert_dft
Both OCC controller and clock chain need non-pipelined ScanEnable
ro
ic
7- 33
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-33
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Pipelined ScanEnable
D Q D Q D Q D Q
SI QB SI QB SI QB SI QB
SE SE SE SE
Launch on shift clock requires the >CK >CK >CK >CK
ng
D Q PipelineSE
Scan enable net has a high load QB
ni
>CK
Due to high load, it is sometimes not
ai
LOSPipelineEnable
possible to meet timing
Tr
Pipelined ScanEnable can be used LOSPipelineEnable
ip
Clock
extra_shift
ch
SE
ro
PipelineSE
PI data
ic
Scan In
7- 34
lM
na
Pipelining scan enable allows a full cycle for the internal scan enable to propagate to the scan
registers. Without pipelining, you have less that a cycle for the external scan enable to propagate
er
and also the added input delay from the pad to account for.
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-34
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Delay Testing Introduction: Agenda
At-Speed Faults
ng
ni
At-Speed Launch Modes
ai
Tr
ip
SPF Timing For External Clock
ch
Delay Testing
ro
ic
7- 35
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-35
TetraMAX Workshop
For Internal Microchip Training Purposes Only
STIL Protocol File Timing
DFT Compiler generates the SPF with only a single timing setup
Multiple WaveFormTables (WFT’s) all with the same timing
The default SPF timing provided works ‘as-is’ for Stuck-At, Static
ng
Bridging, IDDQ, and OCC-based At-Speed testing
ni
Only need to modify the WFT’s timing when external clocks are used for
ai
At-Speed testing
Tr
The same protocol file can be used for both Stuck-At and At-Speed
ATPG
ip
ch
ro
ic
7- 36
lM
na
To generate a SPF from TetraMAX that included all_clock_* procedures:
er
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-36
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Allclock Capture Procedures
ng
procedure
ni
allclock_launch {}: applied to tagged launch operations in
launch/capture contexts only
ai
Tr
allclock_capture {}: applied to tagged capture operations in
launch/capture contexts only
ip
allclock_launch_capture {}: applied to tagged launch-capture
ch
operations only (single-cycle At-Speed tests)
ro
ic
7- 37
lM
na
The all_clock_* capture procedures are referred to a “tagged” procedures. A tagged procedure
is one that is called by TetraMAX for a specific purpose.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-37
TetraMAX Workshop
For Internal Microchip Training Purposes Only
allclock_*{} Procedures Example
"allclock_capture" { "allclock_launch_capture" {
W "_allclock_capture_WFT_"; W "_allclock_launch_capture_WFT_";
F { F {
"i_scan_block_sel[0]" = 1; "i_scan_block_sel[0]" = 1;
"i_scan_block_sel[1]" = 1; "i_scan_block_sel[1]" = 1;
"i_scan_compress_mode" = 0; "i_scan_compress_mode" = 0;
"i_scan_testmode" = 1; "i_scan_testmode" = 1;
ng
} }
V { V {
ni
"_po" = \r168 #; "_po" = \r168 #;
"_pi" = \r179 #; "_pi" = \r179 #;
ai
} }
} }
Tr
"allclock_launch" {
W "_allclock_launch_WFT_";
F {
ip
...
}
ch
V {
"_po" = \r168 #;
"_pi" = \r179 #;
ro
}
}
ic
7- 38
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-38
TetraMAX Workshop
For Internal Microchip Training Purposes Only
WFTs for External System Clock Launch
WaveformTable "_allclock_launch_WFT_" {
Period ’40ns’;
65 ns Waveforms {
15 ns "CLK1" { P { ’0ns’ D; ’5ns’ U; ’10ns’ D; } }
40 40 "CLK2" { P { ’0ns’ D; ’30ns’ U; ’35ns’ D; } }
ng
"_default_In_Timing_"{01ZN {’0ns’ D/U/Z/N; } }
"_default_Out_Timing_"{X {’0ns’ X; } }
5 10 30 35
ni
"_default_Out_Timing_" { HLT { ’0ns’ X; ’4ns’ H/L/T; } }
CLK1 }
ai
}
30 35 5 10 WaveformTable "_allclock_capture_WFT_" {
Tr
Period ’40ns’;
CLK2
_allclock_launch_WFT_ _allclock_capture_WFT_ Waveforms {
ip
"CLK1" { P { ’0ns’ D; ’30ns’ U; ’35ns’ D; } }
ch
SE
"_default_In_Timing_"{01ZN {’0ns’ D/U/Z/N; } }
"_default_Out_Timing_"{X {’0ns’ X; } }
ro
CLK1 has an effective cycle time of 65ns "_default_Out_Timing_" { HLT { ’0ns’ X; ’4ns’ H/L/T; } }
CLK2 has an effective cycle time of 15ns
ic
}
}
7- 39
lM
na
The WFT period does not need to be At-Speed
• Just need to ensure that there’s an At-Speed relationship between the launch and capture pulses
er
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-39
TetraMAX Workshop
For Internal Microchip Training Purposes Only
WFTs for External Clock Last Shift Launch
Timing { Timing {
WaveformTable "_default_WFT_" { Original Modified
WaveformTable "_default_WFT_" {
Period '100ns'; Timing Period '100ns'; Timing
Waveforms { Waveforms {
"all_inputs" {01Z {'0ns' D/U/Z;}} "all_inputs" {01Z {'0ns' D/U/Z;}}
"all_outputs" {X {'0ns' X;}} "all_outputs" {X {'0ns' X;}}
"all_outputs" {HLT {'0ns' X; '40ns' HLT;}} "all_outputs" {HLT {'0ns' X; '40ns' HLT;}}
"pci_Clk" {P {'0ns' D; ‘45ns' U; ‘55ns' D;}} "pci_Clk" {P {'0ns' D; '90ns' U; '95ns' D;}}
} }
ng
} }
WaveformTable "_multiclock_capture_WFT_" { WaveformTable "_multiclock_capture_WFT_" {
Period ‘100ns'; Period ‘100ns';
Waveforms { Waveforms {
ni
"all_inputs" {01Z {'0ns' D/U/Z;}} "all_inputs" {01Z {'0ns' D/U/Z;}}
"all_outputs" {X {'0ns' X;}} "all_outputs" {X {'0ns' X;}}
ai
"all_outputs" {HLT {'0ns' X; '40ns' HLT;}} "all_outputs" {HLT {'0ns' X; '8ns' HLT;}}
"pci_Clk" {P {'0ns' D; ‘45ns' U; ‘55ns' D;}} "pci_Clk" {P {'0ns' D; '10ns' U; '15ns' D;}}
} }
Tr
} }
}
}
SE
ip
_default_WFT_ _multiclock_capture_WFT_ _default_WFT_
ch
20ns
pci_Clk = 20ns
ro
90 95 90 95 10 15 90 95
ic
100 ns 100 ns 100 ns 7- 40
lM
na
The delta between rising edges of clock in the Shift WFT and the capture WFT should be equal to
the period of the system clock
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-40
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Preambles and Postambles
ng
ni
"load_unload" {
W "_default_WFT_";
ai
// preamble vectors
Tr
Shift {
V { "BPCICLK"=P; “pci_CLk"=P; "Test_mode"=1;
"nReset"=1; test_sei"=0; "_so"=###; "_si"=###; }
ip
}
// postamble vectors
ch
}
ro
ic
7- 41
lM
na
Preamble and postamble vectors are often seen in scan-through-TAP designs.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-41
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objectives Summary
ng
Describe At-Speed defects
Describe two popular fault models for At-Speed
ni
testing
ai
Describe three different way to launch an At-Speed
Tr
transition for delay testing
ip
Modify the default STIL Protocol File (SPF) written
ch
out from DFT Compiler to support At-Speed ATPG
ro
ic
7- 42
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-42
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Command Summary (Lecture, Lab)
set_delay -launch_cycle Launch delay fault transitions on the last scan shift
last_shift
set_delay -launch_cycle Launch delay fault transitions during capture
system_clock
ng
set_delay -launch_cycle Launch delay fault transitions with an OCC shift
extra_shift
ni
set_delay -launch_cycle any Launch delay fault transitions with any method
ai
multiclock_capture { } Capture procedure used for Stuck-At ATPG and
delay testing with OCC clocks
Tr
allclock_capture { } Capture procedure for capturing an At-Speed
transition with system_clock launch patterns
ip
allclcok_launch { } Capture procedure for launching an At-Speed
transition with system_clock launch patterns
ch
allclock_launch_capture { } Capture procedure for single cycle At-Speed
testing with system_clock launch patterns
ro
ic
7- 43
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-43
TetraMAX Workshop
For Internal Microchip Training Purposes Only
This page was intentionally left blank
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Fault Models and At-Speed Testing ©2018 Synopsys, Inc. All Rights Reserved. 7-44
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Agenda
DAY
2
5 Minimizing ATPG Patterns
ng
ni
6 Pattern Validation
ai
Tr
7 Fault Models and At-Speed Testing
ip
8 At-Speed Constraints
ch
ro
ic
8- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
List sources of timing exceptions
ni
Read SDC from PrimeTime to import timing exceptions
ai
in TetraMAX
Tr
Handle the slow ports and Bidi’s of your designs
ip
Use Power-Aware ATPG to reduce switching activity
ch
during At-Speed testing
ro
ic
8- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Excessive switching activity during At-Speed scan testing may cause power
issues
ni
ai
Paths that cannot meet timing can be accounted for with Timing
Exceptions (i.e. design constraints)
Tr
Excessive switching activity during At-Speed scan testing can be
ip
controlled using Power-Aware ATPG
ch
ro
ic
8- 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Timing Exceptions
ng
ni
ai
Using SDC In ATPG
Tr
ip
ch
Power-Aware ATPG
ro
ic
8- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Inter-clock domain paths
ni
If Timing Exceptions are not defined, At-Speed patterns may fail SDF-
ai
based simulation and/or on the ATE because of timing issues
Tr
Timing Exceptions affect the test coverage
They cause X’s in the design during ATPG due to masking
ip
ch
More of an impact for Scan Compression architectures (especially if high x-
ro
tolerance mode is not used)
ic
8- 5
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
set_delay –nopo_measure
ni
Bidirectional loopback test can fail
ai
add_slow_bidis
Tr
Output of the BUS primitive goes to X when BIDI is in
output mode
ip
Combo
ch
Logic
X Disables the path in red when
BUS
FLOP
propagating a Transition along
ro
Combo the path in green
Logic
ic
BIDI
8- 6
lM
na
Using “set_delay –nopi_changes” introduces one dead cycle between the last shift and the launch
clock for system_clock launch patterns.
er
nt
https://solvnet.synopsys.com/retrieve/022840.html
se
U
ed
ct
tri
es
R
Cells that drive multi-cycle or false paths can be called “slow cells”
Specified with the add_slow_cells command
ng
Can be set on scan or non-scan elements
A transition launched from these cells will be simulated as an X
ni
add_slow_cells <instance_path>
ai
Tr
ip
ch
ro
ic
8- 7
lM
na
For Basic-Scan ATPG, the output is masked if there is a transition on the last-shift cycle. For Fast-
Sequential or Full-Sequential ATPG, the output is masked if there is a transition on any ATPG clock
er
cycle.
nt
rI
Fo
se
U
ed
ct
tri
es
R
Timing Exceptions
ng
ni
ai
Using SDC in ATPG
Tr
ip
ch
Power-Aware ATPG
ro
ic
8- 8
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
read_sdc <file_name>
ni
By reading the SDC, TetraMAX can apply the same timing exceptions
ai
during ATPG
Tr
By default, timing exceptions from the SDC are only honored during At-
Speed testing
ip
ch
Timing exceptions can be honored during Stuck-At testing with the
following command:
ro
set_simulation –timing_exceptions_for_stuck_at
ic
8- 9
lM
na
The set_sdc command can be used to control how the timing exceptions are interpreted by
TetraMAX.
er
nt
The report_sdc command can be used to report the timing exceptions that were read by
rI
TetraMAX.
Fo
se
U
ed
ct
tri
es
R
ng
set_sdc [-setup|-nosetup] [-hold|-nohold]
ni
If both –setup and -hold exceptions are enabled
ai
If there is no type specified in the SDC, both exceptions are applied
Tr
set_false_path –to iq_reg/D
Otherwise only specified exception is applied
ip
set_false_path –to iq_reg/D -setup
ch
ro
ic
8- 10
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
FF1 FF2
D Q D Q
SI QB
SI QB
SE
SE
>CK
ng
>CK
set_false_path-to FF2/D
ni
CK
ai
D
Tr
Q (normal)
ip
Q (-setup)
ch
Q (-hold)
ro
Q (both)
ic
8- 11
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Some TetraMAX Tcl API commands are also valid SDC commands: get_clocks,
ni
get_pins, etc.
ai
SDC commands affecting Clocks (Propagation)
Tr
create_clock, create_generated_clock, set_case_analysis
SDC commands affecting ATPG
ip
set_false_path, set_multicycle_path, set_disable_timing,
ch
set_case_analysis, set_clock_group
ro
Other SDC timing constraint commands are ignored
ic
set_clock_uncertainty, set_output_delay
8- 12
lM
na
Note: SDC commands are NOT shell commands
- If the SDC file was read in PT with read_sdc, then the file should only contain SDC
er
commands
nt
- If the SDC file was “sourced” in PT, then the SDC file may also contain regular PT Tcl
rI
ng
CLKB OCC
ni
PLL
ai
RAM
Tr
create_clock
-name CLK
ip
–period 100
ch
–waveform {45 55}
CLK
ro
ic
8- 13
lM
na
In summary:
create_clock defines the clock period and timing for all clock sources.
er
nt
set_clock_group defines relationship between different clocks. Used to specify clock groups
rI
that are mutually exclusive or asynchronous with each other in a design so that the paths between
these clocks are not considered during timing analysis or at speed testing. Options such as –
Fo
asynchronous or –exclusive will, in effect, create false_path information between different the
clock domains.
se
create_generated_clock can be used to create internally generated clocks based upon other
U
master clocks.
ed
ct
tri
es
R
set_multicycle_path
CLKA (across a path)
ng
CLKB OCC
set_false_path
ni
PLL
-from …
ai
-to … RAM
(across a path)
Tr
ip
set_case_analysis 1
ch
test_mode
set_disable_timing
ro
(across a single arc)
ic
8- 14
lM
na
set_false_paths defines paths which are not timed or tested.
er
set_disable_timing does what the name implies. It will disable a timing arc.
Fo
set_multicycle_path defines a path which propagates data in, typically, more than one clock
se
cycle. The idea is that data through this path will likely be unknown until X-many cycles have
gone by. It is typically an X-generator.
U
ed
ct
tri
es
R
create_clock in SDC
ng
add_clocks in TetraMAX or SPF
ni
ai
Tr
Clocks can be defined in the SDC file, in TetraMAX (SPF or add_clocks
ip
command), or both
ch
With the default setting of none, both “Functional Clock” and “Test
ro
Clock” will be considered to propagate through the mux so SDC
ic
exceptions that refer to either clock will be honored
8- 15
lM
na
Note:
er
propagate based on the set_case_analysis commands in the SDC will be honored. In the
rI
above example, only SDC exceptions that refer to the “Functional Clock” would be honored by
TetraMAX, since that’s the only clock that is able to propagate through the mux based on the
Fo
set_case_analysis command.
se
Likewise, with a setting of set_sdc –environment tmax_drc, only clocks that propagate
based on the TetraMAX PI constraints will be honored. In the above example, only SDC exceptions
U
that refer to the “Test Clock” would be honored by TetraMAX, since that’s the only clock that is
able to propagate through the mux based on the add_pi_constraint command.
ed
ct
tri
es
R
ng
Neither of these clocks are used for scan shift or capture, so they are
ni
not TetraMAX clocks
ai
This exception will be honored in TetraMAX by specifying:
Tr
set_sdc –environment sdc_case_analysis | none
ip
ch
ro
ic
8- 16
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
For manufacturing testing, the environment can be very different
ni
Synchronization – everything fits into a tester cycle
ai
Operational speeds – scan shifting and static defect detection is slower that
functional speed
Tr
Test head effects – input drives/slew and output loads/strobes are very different to
ip
the application environment
ch
Controlled environment – testers work at set temperatures and voltage supply
levels
ro
This is therefore a completely different STA environment!
ic
8- 17
lM
na
SolvNet article ID: 019765 - TetraMAX at-speed timing exceptions for a complex clocking flow
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Must run full chip Static Timing Analysis (STA) in scan test mode (ATPG
mode)
STA should be configured to match the environment on the ATE (timing
ng
and loads)
ni
All the Test-Modes and Test-Operations should be verified:
ai
Scan Shift (used for both Stuck-At and At-Speed testing)
Tr
Stuck-At Capture (slow speed capture)
At-Speed Capture
ip
Design must pass full-chip STA in Test mode (ATPG mode) with sign-off
ch
accuracy
ro
ic
8- 18
lM
na
When we begin the discussions about at-speed test generation, we need the designer to consider the
operating environment of the tester. There may be new constraints to deal with in this environment.
er
nt
ng
ATPG
ni
Result: Too many STA timing exceptions that create X’s in ATPG, but real ATPG
timing violations are missed
ai
Possible solution: Generate new SDC based on violations found by STA
Tr
using ATPG timing
ip
ch
TetraMAX at-speed timing exceptions for a complex clocking flow
https://solvnet.synopsys.com/retrieve/019765.html
ro
ic
8- 19
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
write_timing_constraints \
–mode capture -wft _allclock_capture_WFT_
capture.tcl
ni
2. In PrimeTime:
PrimeTime
ai
a) Use timing from source pt2tmax.tcl
Tr
tmax2pt.tcl output source capture.tcl
write_exceptions_from_violations \
b) Source pt2tmax.tcl -output exceptions.sdc
ip
write_exceptions_from_violations
ch
TetraMAX exceptions.sdc
3. TetraMAX: Read new SDC set_sdc -environment tmax_drc
ro
from pt2tmax using read_sdc exceptions.sdc
ic
set_sdc –environment tmax_drc …
8- 20
lM
na
1. In TetraMAX
a) Run run_drc
er
2. In PrimeTime
a) Use timing from write_timing_constraints output script
Fo
3. Re-run TetraMAX
a) Use set_sdc –environment tmax_drc
U
ng
Prepend the specified instance path to all instances in the SDC file
ni
set_sdc –instance <instance_path>
ai
For more verbosity during read_sdc
Tr
set_sdc –verbose
ip
To control the length of multi-cycle paths
ch
set_delay –multicycle_length <d>
ro
ic
8- 21
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
-to_cells # Report to cells
-groups # Report clock groups
-case_analysis # Report case analysis
ni
-false_paths # Report false paths
ai
-multicycle_paths # Report multi-cycle paths
-case_paths # Report case analysis paths
Tr
-disable_paths # Report disable timing paths
-all_paths # Report all paths
ip
This command may be used to report on how the SDC timing
ch
exceptions were interpreted by TetraMAX and for debug
ro
ic
8- 22
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
SDC timing exceptions identify paths that are not expected to meet
single cycle timing and will be masked in TetraMAX
These masks will cause some faults to be untestable (AU)
ng
The following command can be used to identify faults that are AU due
ni
to SDC timing exceptions
ai
set_atpg –timing_exception_au_analysis
Tr
The AU faults identified are only reported separately when the
set_faults -summary verbose command has been set. They will
ip
appear in the fault summary report under the AX subclass of faults
ch
ro
ic
8- 23
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Timing Exceptions
ng
ni
ai
Using SDC in ATPG
Tr
ip
ch
Power-Aware ATPG
ro
ic
8- 24
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
50%
ni
40%
ai
Tr
30%
20%
ip
ch
10%
0%
ro
0 50 100 150 200 250
ic
Pattern Number
8- 25
lM
na
This is a plot of flop switching activity vs. pattern number during scan testing. Notice the peaks;
they can produce up to 10 times the peak power in a device compared with its normal operating
er
mode.
nt
rI
Exceeding the power limits of a design can lead to yield loss and slows test program ramp-up
because too much power consumption can damage devices or cause false failures. It can also be
Fo
very difficult and time-consuming to trace these problems back to excessive power consumption.
se
Today’s nanometer designs are more susceptible to power problems during test because these power
spikes can affect the outcome of at-speed tests.
U
ed
ct
tri
es
R
ng
from shifting at target frequency
Excessive average power
ni
ai
Hot spots damage device or
drive it out-of-spec
Tr
Ad hoc “solution”
ip
Reduce scan shift frequency
ch
Functional
Test
(adds more tester time)
ro
ic
8- 26
lM
na
Too much power consumption affects test in different ways depending on whether a device is
shifting in the patterns or capturing the responses.
er
nt
During shift mode, excessive peak power can produce IR-drop delays that prevent scan data from
rI
shifting at the target frequency. That’s what we’re seeing in the red region of this graph of peak IR-
drop in a device.
Fo
Also during shift mode, excessive average power can create hot spots that damage a device or drive
se
it out-of-spec.
U
Both these problems could be addressed by reducing the scan shift frequency on the tester, but this
ed
ng
ADJACENT-FILL 0 0 0 0 1 1 1 transition
RANDOM-FILL 0 1 0 0 1 0
ni
CARE BITS 0 · · 0 1 · 4 transitions
ai
SCAN_IN
Tr
CLK
ip
Up to 50% Reduction in Average Test Power
ch
Generate chain tests with limited switching activity
ro
set_atpg -quiet_chain_test | -noquiet_chain_test
ic
8- 27
lM
na
Typically, only a small fraction of the bits in a pattern are actually needed to detect target faults.
These are called “care bits.”
er
nt
But low-power fill replicates care bits as far as possible down the scan chain, and this results in
Fo
much less switching and up to a 50% reduction in average test power during shift mode.
se
There is a command to control the “effort” level when attempting to reduce shift power:
U
This option enables you to reduce switching activity. The arguments specify a relative level of
effort for reducing switching activity. You can use the number argument to specify a number
ct
between 1 and 100. The lower the specified number, the more effort will be applied to reducing
tri
switching activity. The low argument corresponds to a setting of 50, the medium argument
corresponds to a setting of 30, and the high argument corresponds to a setting of 10.
es
R
ng
To specify a shift power budget
set_atpg –shift_power_budget <d>
ni
Where d is the maximum percentage of scan cells that switch during shift
ai
Tr
To reject patterns that exceed the max shift budget, both
switches must be used
ip
set_atpg –shift_power_budget 50
ch
set_atpg –shift_power_effort high
ro
If high effort is not used, patterns that exceed the budget will be kept if
ATPG can’t detect a fault without exceeding the budget
ic
8- 28
lM
na
-shift_power_effort <off | low | medium | high | d >
Specifies a relative level of effort for reducing switching activity. You can use the d argument to
er
specify a number between 1 and 100. The lower the specified number, the more effort is applied to
nt
reducing switching activity. The low argument corresponds to a setting of 50, the medium argument
rI
corresponds to a setting of 30, and the high argument corresponds to a setting of 10. The default is
the off argument, which disables the -shift_power_effort option.
Fo
-shift_power_budget number
ed
Sets a budget for TetraMAX ATPG to reject patterns that exceed the specified maximum percentage
of scan cells switching in a shift cycle. This option must be used with the -
ct
shift_power_effort option, and works only with basic scan, fast-sequential, and two-clock
transition ATPG. Set the -shift_power_budget option to 0 to turn it off, as shown in the
tri
following example:
es
set_atpg shift_power_budget 0
R
CLK
Low-power fill doesn’t limit
switching during capture
SE
Excessive peak power
ng
IR-drop delays cause “good”
V1 V2
devices to fail at-speed tests
ni
ai
Ad hoc “solutions”
80%
70%
Tr
60% Over-design power rails
(increases die cost)
Switching Activity
50%
ip
40%
30%
ch
20%
10%
ro
0%
0 50 100 150 200 250
ic
Pattern Number
8- 29
lM
na
Power problems during capture mode tend to be more difficult to debug and fix. They’re caused by
these peaks in switching activity that occur going from shift mode to capture mode when there are a
er
If the switching peaks are large enough, the IR-drop delays cause “good” devices to fail at-speed
tests.
Fo
The problem could be addressed by over-designing the power rails, but this increases die size and
se
die cost. DFT techniques could be used to limit switching during capture mode, but they’re
cumbersome and require a lot of manual intervention.
U
ed
A better approach is to use power-aware ATPG to automatically reduce switching during capture
mode.
ct
tri
es
R
ng
May cause IR drop and unintended ATE failures, or worse, product damage
ni
Power-Aware ATPG Uses clock-gating structures to limit switching
ai
Analyzes the fanout of clock gating structures and other clock sources during
Tr
DRC
Uses a power budget directive for ATPG to reduce maximum number of switching
ip
scanable FF’s
ch
Actual FF switching activity can be reported after ATPG
ro
ic
8- 30
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
40% mission mode operation
ni
30%
ai
Switching
Budget
Tr
20%
ip
10%
ch
0%
ro
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500
Pattern Count
ic
8- 31
lM
na
This is a standard ATPG run. Each of these red dots represents the percentage of total scan flops in
the design that switch during capture mode for each pattern, and we’re including all the patterns in
er
an ATPG run.
nt
rI
Now let’s say we have a switching budget, about 25% in this example, that reflects the peak
switching activity of mission mode operation.
Fo
It’s apparent that standard ATPG generates a large number of patterns that exceed the switching
se
budget.
U
But power-aware ATPG tries to observe this budget every time it generates a test pattern….
ed
ct
tri
es
R
ng
40% mission mode operation
ni
30%
ai
Switching
Budget
Tr
20%
Trades off more
ip
patterns for lower
10%
switching activity
ch
0%
ro
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500
Pattern Count
ic
Avoids Yield Loss from False Test Failures
8- 32
lM
na
There’s always a tradeoff between switching activity and pattern count, but the designer now has
control over it.
er
nt
TetraMAX’s power analysis summary provides the “minimum level for peak power budgeting.”
rI
It’s the flop fan-out of the largest independently-controlled clock domain in the design, expressed as
a percentage of total scan flops.
Fo
For more info on Synopsys Power-Aware Test solutions, see the following flash recording on
se
SolvNet:
SolvNet Article: 023940 – Complete Power-aware Test Solution
U
ed
ct
tri
es
R
ng
set_atpg –power_effort <high | low>
ni
Allow testing of asynchronous sets/resets with
ai
Power-Aware on regular scan designs
Tr
set_atpg -power_aware_asyncs | -nopower_aware_asyncs
ip
Report clock gating analysis done during run_drc
ch
report_clocks –gating
ro
Report the switching activity per pattern after ATPG
ic
report_power –per_pattern -percentage
8- 33
lM
na
There are several other options for the report_power command:
er
report_power
nt
[-shift] [-capture]
rI
[-average] [-peak]
[-per_clock_domain]
Fo
[-per_pattern] [-per_cycle]
[-first_pattern d] [-last_pattern d]
se
ng
If DRC finds CG-cells transparent, then those CG cells are not reported
ni
run_drc
…
ai
Begin clock-gating analysis...
585 ATPG controllable clock-gating cells were found
Tr
…
report_clocks –gating -verbose
Clock name: clk (75)
ip
Number of cells directly controlled by the clock: 896 (6.65%)
Number of cells controlled by the clock through a clock-gating cell: 12562 (93.18%)
ch
Number of cells directly controlled by the clock + largest clock-gating domain:
1025 (7.60%)
Clock-Gating Latch topt4/regs/cgc6/latch (1287508) drives 12 (0.1%) scan cells
ro
…
Minimum Recommended Low-Power ATPG Budget: 7.60% (1025)
Estimated minimum. Don’t
ic
use as the power budget! 8- 34
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
-------------------------------------------------------------
Power Analysis Summary
-------------------------------------------------------------
ni
Number of Scan Cells 134813
ai
Number of Patterns 0-2908
Cycles Per Load 2366
Tr
Average Shift Switching 2440.84 1.81%
Average Capture Switching 5882.63 4.36%
ip
Peak Shift Switching 7190 5.33% (pattern: 2 cycle: 1)
Peak Capture Switching 10792 8.01% (pattern: 2669)
ch
To make report_power run faster, use set_atpg –calculate_power
ro
before run_atpg
ic
8- 35
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
read_netlist …
run_build_model
…
ng
run_drc
ni
report_clocks –gating [-verbose]
ai
…
Tr
set_atpg –power_budget N
ip
set_atpg –calculate_power
ch
run_atpg –auto
report_power -per_pattern -percentage
ro
ic
8- 36
lM
na
report_clocks [-gating] [-verbose]
Performs an analysis based upon DRC’s and reports the clock gating latches associated with
er
• Minimize power usage during capture cycles. It requires an integer argument identifying
the maximum percent of scancells associated with clocks which may be pulsed for a
se
given cycle.
U
report_power
[-shift] [-capture] [-average] [-peak]
es
ng
Read SDC from PrimeTime to import timing
exceptions in TetraMAX
ni
ai
Handle the slow ports and Bidi’s of your designs
Tr
Use Power-Aware ATPG to reduce switching
activity during At-Speed testing
ip
ch
Begin Lab 8: Power-Aware ATPG
ro
ic
8- 37
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
set_sdc –environment Use SDC case analysis for clock propagation
sdc_case_analysis
set_sdc –instance <inst_path> Prepend inst_path to all paths in the SDC
ni
set_sdc -verbose Verbose reporting when SDC is read
ai
read_sdc <sdc_file> Read SDC exceptions into tmax
Tr
report_sdc Report the results after SDC has been read
set_delay -nopi_changes Specify that PI’s cannot change At-Speed
ip
set_delay –nopo_measures Specify that PO’s cannot be measured At-Speed
ch
add_slow_cells <instance> Mask transitions launched from a slow cell
add_slow_bidis <port | -all> Mask the bidirectional loopback path
ro
set_atpg –power_budget <n> Set a switching activity budget
report_power –per_pattern Report the switching activity for each pattern
ic
8- 38
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
DAY
3
9 Transition Delay Testing
ng
ni
10 On-Chip Clocking (OCC)
ai
Tr
11 Path Delay Testing
ip
12 Diagnosis
ch
ro
13 Conclusion
ic
9- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-1
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objective
ng
After completing this unit, you should be able to:
Run ATPG for the Transition fault model
ni
ai
Describe guidelines and flow considerations for Transition
ATPG
Tr
Describe small delay defects
ip
Use PrimeTime to generate necessary files for Slack-Based
ch
ATPG
ro
ic
9- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-2
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Transition Delay: Agenda
ng
Slack-Based Testing
ni
ai
Tr
Slack-Based ATPG
ip
ch
Persistent Fault Models
ro
ic
9- 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-3
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Step-by-Step Transition ATPG
DRC
1. Read the SDC file (read_sdc …)
Define the delay options (set_delay …)
ng
2.
3. Constrain the resets and the Scan Enable if not constrained in the SPF
ni
4. Set SPF file to use (set_drc <SPF file>)
ai
5. Run Design Rule Check (run_drc)
Tr
ATPG
ip
1. Specify the target fault model (set_faults –model transition …)
ch
2. Run ATPG (run_atpg –auto)
Write pattern in desired format (write_patterns …)
ro
3.
ic
9- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-4
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Transition Delay ATPG Script
ng
read_netlist test.v
run_build_model –model top
ni
read_sdc test_mode.sdc
ai
set_delay –launch_cycle <last_shift|system_clock|extra_shift|any>
add_pi_constraints 0 scan_en
Tr
set_drc test.spf
run_drc
ip
set_faults –model transition
ch
run_atpg –auto
write_patterns pats.stil –format stil
ro
exit
ic
9- 5
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-5
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Adding Transition Delay Faults
ng
add_faults <pin_pathname> -slow <r|f|rf>
ni
Reading a Fault List File
ai
read_faults <fault file>
Tr
By default, TetraMAX does not add faults on the Clocks and Scan Enables
for Transition ATPG
ip
To add faults on the clocks and scan enable
ch
add_faults –clocks
add_faults -scan_enable
ro
It is not recommended to add faults on clocks and scan enable for Transition
ic
ATPG 9- 6
lM
na
To consider a slow-to-rise (str) and slow-to-fall (stf) delay faults as equivalent:
er
set_delay –slow_equivalence
nt
rI
Transition pattern generation where the slow-to-rise fault for a particular node is considered
equivalent to the slow-to-fall fault for the same node. Once one fault is detected by simulation
Fo
(DS), then the other is considered detected by implication (DI). Reduces run time and pattern count
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-6
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Optimized Transition Delay ATPG Engine
set_delay –two_clock_transition_optimization
Two-clock optimized patterns (on by default)
ng
Following conditions must be satisfied for optimization
Fault model must be Transition fault
ni
ai
Tr
ip
ch
ro
ic
9- 7
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-7
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Design Guidelines for Transition Testing
ng
Disable asynchronous resets
ni
Provide ability to hold resets at their inactive state
ai
Usually these are multi-cycle (slow) signals
Tr
Optionally disable test points
ATPG may miss delay defects on longer functional paths (if not using Slack-
ip
Based ATPG)
ch
Test points may also not be designed to launch/capture At-Speed
ro
ic
9- 8
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-8
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Requirements for Transition ATPG
ng
clock controller (OCC)
ni
Must run full chip Static Timing Analysis (STA)
ai
Recommended that the STA environment be configured to match timing on tester
and the pass full-chip STA in Test mode (ATPG mode)
Tr
Automated by tmax2pt.tcl
ip
Transition ATPG should include multi-cycle and false path timing
ch
exceptions
Use read_sdc command to read SDC from PrimeTime
ro
ic
9- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-9
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Transition Delay Flow Considerations
ng
Transition patterns may detect Stuck-At faults other than the direct
credited Transition faults
ni
For cumulative coverage, fault simulation of transition patterns against the Stuck-
ai
At fault model is recommended
Tr
Some Stuck-At faults won’t be detected by any Transition Delay pattern,
ip
so additional patterns will be required to top-off the Stuck-At coverage
ch
Some transition faults not detectable by system-clock launch can be
detected by last-shift launch
ro
However, many of those faults are functional false paths and could be considered
ic
to be untestable delay faults 1 9- 10
lM
na
1J. Rearick, “Too Much Delay Fault Coverage Is A Bad Thing”, Proceedings International Test
Conference, pp. 624-633, Oct 2001
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-10
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Inter-Clock Domain Paths
ng
To disable test generation on inter-clock domain paths (system clock
ni
launch)
ai
set_delay -common_launch_capture_clock
Tr
The faults will only be detected using the same clock for launch and capture
Faults that cannot be launched and captured by the same clock will not be
ip
detected
ch
To allow multiple clocks to be pulsed together
set_delay –allow_multiple_common_clocks
ro
ic
9- 11
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-11
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Common Launch Capture
ng
X
Non targeted 1 0
ni
clock domains
held constant
ai
CK2 CK2
Tr
CK1
ip
CK2
ch
Fast Slow
Capture Shift
ro
ic
9- 12
lM
na
TetraMAX is capable of testing multiple clock domains at once, as seen on the left, by using
set_delay -common_launch_capture_clock . This will cause TetraMAX to only test
er
register to register paths in the same clock domain. Any paths that go between clock domains
nt
(which could cause race conditions) will get masked out, as indicated by the X on the left.
rI
To get higher coverage, TetraMAX will run additional passes where the cross clock paths will have
Fo
static values there, as on the right. This allows for improved coverage on the CK1 domain, as
shown on the right side of the figure.
se
`
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-12
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Transition Delay: Agenda
ng
Slack-Based Testing
ni
ai
Tr
Slack-Based ATPG
ip
ch
Persistent Fault Models
ro
ic
9- 13
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-13
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Testing for Small Delay Defects
ng
More accurate slack calculations than an SDF approach
ni
Considers “Clock Reconvergence Pessimism Removal”
ai
Provide user settings for trade-offs
Tr
Control which faults are to be targeted in test generation based on the slack
margin available
ip
Define how close to the longest path a detected fault must be to be considered
ch
detected adequately
ro
Trade off ATPG effort to test longer paths against runtime, coverage, and pattern
count
ic
9- 14
lM
na
SNPS has a sign-off STA engine that is widely used in the industry and extremely accurate.
er
Rather than build our own timing engine inside of TetraMAX, we’re going to leverage PrimeTime.
nt
The tool provide the user with tradeoffs to allow them to generate an optimal set of test benches.
Fo
1) Control the faults which have to be targeted using the Slack-Based ATPG
se
algorithm.
2) Relax the constraint for ATPG to detect the fault on the longest path.
U
ed
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-14
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack-Based ATPG Flow
SDC,
SDF,
Exceptions
Parasitics
PrimeTime
ng
ni
Pin Slacks
ai
Tr
TetraMAX
ip
Slack-Based ATPG
ch
ro
Transition and Slack- Reports,
Based ATPG Patterns Histograms
ic
9- 15
lM
na
This shows a flow for Slack-Based ATPG. TetraMAX will read pin slacks from PrimeTime prior to
ATPG. These pin slacks represent the full accuracy of PrimeTime, including CRPR. In this flow,
er
Slack-Based ATPG is being used to measure how good existing transition fault patterns are at
nt
detecting small delay defects, and then to “top off” those patterns to improve coverage of small
rI
delay defects. In summary, Slack-Based ATPG is a way to improve transition fault testing.
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-15
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack Data Generation : PrimeTime Flow
ng
* * * * TOP/Z
Timings and constraints to match 13.72 13.41 1.20 1.46 U114/A1
tester environment 12.44 11.93 1.35 1.74 U114/A2
ni
12.44 11.93 1.20 1.46 U114/Z
Report the worst case rise and
ai
13.72 13.41 1.20 1.46 U106/A1
12.44 11.93 1.35 1.74 U106/A2
fall slack available on every
Tr
12.44 11.93 1.20 1.46 U106/Z
node for Slack-Based ATPG 13.72 13.41 1.20 1.46 U126/A1
12.44 11.93 1.35 1.74 U126/A2
ip
12.44 11.93 1.20 1.46 U129/Z
ch
ro
ic
9- 16
lM
na
From the global slack file, only the 1st, 2nd and last column is used by TetraMAX.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-16
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Reading Slack Data
ng
The –delete option removes current slack data and replaces with the
data in the file (default just adds data in file to current data)
ni
Hierarchical Slack Data is not supported
ai
Manually add the additional hierarchy to the slack data
Tr
Slack data can be read at any time after run_build_model and prior to
ip
ATPG or fault simulation
ch
Automatically turns on Slack-Based ATPG
ro
ic
9- 17
lM
na
Turns on/off use of slack for ATPG:
set_delay < –slackdata_for_atpg | –noslackdata_for_atpg >
er
nt
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-17
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack on Red Path
Slack =1/1
Slack =1/1
For each Flop:
Tcq = 0.5ns Tsetup = 0.5ns
Slack =1/1
For each two input Gate:
ng
Slack =1/1
T2pind = 2.0ns
Slack =1/1
Slack =1/1 For each single Input Gate:
T1pind = 1.0ns
ni
Slack =1/1
Slack =1/1 Clock Frequency:
ai
Slack =1/1 Clk Period = 12.0ns
Slack =1/1 Rise Transition = Fall Transition
Tr
Slack =1/1
ip
Slack =1/1 Slack available on the node
Slack =1/1
for Rise / Fall Transition
ch
ro
ic
9- 18
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-18
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack on Green Path
Slack =8/8
Slack =8/8
Slack =8/8 Slack =8/8
For each Flop:
Tcq = 0.5ns Tsetup = 0.5ns
For each two input Gate:
ng
Slack =8/8
Slack =8/8 T2pind = 2.0ns
For each single Input Gate:
ni
T1pind = 1.0ns
Clock Frequency:
ai
Clk Period = 12.0ns
Rise Transition = Fall Transition
Tr
ip
ch
ro
ic
9- 19
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-19
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack on Blue Path
ng
Slack =4/4 T2pind = 2.0ns
For each single Input Gate:
ni
Slack =4/4 Slack =4/4 T1pind = 1.0ns
Clock Frequency:
ai
Slack =4/4 Clk Period = 12.0ns
Rise Transition = Fall Transition
Tr
Slack =4/4
Slack =4/4
Slack =4/4
ip
Slack =4/4
ch
Slack =4/4
Slack =4/4
ro
ic
9- 20
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-20
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Lowest Slacks On Each Pin
Slack =1/1
Slack =1/1 Slack =8/8 Slack =8/8
ng
Slack =1/1 Slack =1/1 by the
report_global_slacks
ni
Slack =1/1 Slack =1/1
command
ai
Slack =1/1
Slack =4/4
Tr
Slack =1/1
ip
Slack =1/1
ch
Slack =4/4
ro
ic
9- 21
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-21
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack-Based ATPG Terminology
ng
Slack values read with read_timing
ni
Note: PrimeTime does not know if it’s even possible to launch and capture a
transition fault along its longest path
ai
Tr
Detection Margin: Tdet
The slack of path on which the fault is detected
ip
This may not be the longest path
ch
Delta
ro
The difference between tmgn and tdet ( tdet – tmgn )
ic
Ideally the delta would be 0 which means the detection was along the longest path
9- 22
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-22
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Illustration of Tmgn Tdet and Delta
Slack = 4
16
t mgn = 1 ns
ng
t det = 3ns
Slack = 3
ni
17
ai
Tr
18 Slack = 2
ip
Slack = 1
19
ch
ro
tmgn tdet
ic
9- 23
lM
na
Probability of Defect: The chances of physical defect present in the chip after manufacturing.
er
For a given fault : Any defect size less than its Tmgn does not create a problem. This fault does not
nt
affects the function of the chip and hence can be ignored. (area from 0 to Tmgn)
rI
Any defect size bigger that Tdet is supposed to be captured by the regular Transition ATPG.
Fo
If the defect size is between Tmgn and Tdet, those defects get escaped during regular Transition
Test. This is the range of defect magnitude that is to be targeted by Slack-Based ATPG.
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-23
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Test For Understanding (Ex. 1)
1/1
1/1
ng
1/1
For each Flop: 1/1
ni
Tcq = 0.5ns Tsetup = 0.5ns
ai
For each two input Gate:
T2pind = 2.0ns 1/1
Tr
For each single Input Gate:
T1pind = 1.0ns
ip
Clock Frequency:
Clk Period = 10.0ns
1/1
ch
Rise Tr. = Fall Tr.
ro
Tmgn = ________
Tdet = ________
ic
Delta = ________
9- 24
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-24
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Test For Understanding (Ex. 2)
1/1 4/4
1/1 4/4
ng
1/1
For each Flop:
ni
Tcq = 0.5ns Tsetup = 0.5ns
3/3
ai
For each two input Gate:
T2pind = 2.0ns
Tr
For each single Input Gate:
T1pind = 1.0ns
ip
Clock Frequency:
Clk Period = 10.0ns
ch
Rise Tr. = Fall Tr.
ro
1’b0
Tmgn = ________
Tdet = ________
ic
Delta = ________
9- 25
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-25
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Test For Understanding (Ex. 3)
4/4
4/4
ng
For each Flop:
ni
Tcq = 0.5ns Tsetup = 0.5ns
1’b0
ai
For each two input Gate: 3/3
T2pind = 2.0ns
Tr
For each single Input Gate:
T1pind = 1.0ns
ip
Clock Frequency:
Clk Period = 10.0ns
ch
Rise Tr. = Fall Tr. 3/3
ro
Tmgn = ________
1’b0
Tdet = ________
ic
Delta = ________
9- 26
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-26
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Negative and Infinite Slack
Negative Slack
Path segment with a timing violation
Indication that PrimeTime and TetraMAX timing exception setups might be different
ng
Presumably, the PrimeTime functional mode setup was “clean” (i.e., no negative slacks)
ni
If the PrimeTime setup for Scan mode has negative slacks, then those paths will not
meet single cycle timing on the ATE (and in simulation)
ai
Inconsistency in timing exceptions may result in bad patterns
Tr
Use set_delay -negative_slack_checks to identify negative slack values
ip
Infinite Slack
ch
Fault not testable
Use set_delay -infinite_slack_checks to identify infinite slack values
ro
ic
9- 27
lM
na
-negative_slack_checks | -nonegative_slack_checks
er
Enables or disables negative slack check during read timing file, slack-based transition fault test
nt
generation, or fault simulation. During slack-based transition fault test generation or fault
rI
simulation, warning message M752 is printed if this check is enabled. The default is -
nonegative_slack_checks.
Fo
se
-infinite_slack_checks | -noinfinite_slack_checks
U
Enables or disables infinite slack check during read timing file, slack-based transition fault test
ed
generation, or fault simulation. During read timing file, warning message M751 is printed if this
check is enabled. During slack-based transition fault test generation or fault simulation, warning
ct
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-27
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Transition Delay: Agenda
ng
Slack-Based Testing
ni
ai
Tr
Slack-Based ATPG
ip
ch
Persistent Fault Models
ro
ic
9- 28
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-28
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Setting Standard for Targeted Faults
ng
Faults with tmgn less than max_tmgn or fault% of total faults will be
ni
targeted using Slack-Based ATPG
ai
Value of max_tmgn is reported when ATPG starts
Tr
TEST-T> run_atpg –auto
The max tmgn for small delay defect faults has been set to 6.04
ip
ch
Remaining faults targeted as standard transition faults
The fault targeting process occurs automatically
ro
ic
9- 29
lM
na
This parameter is for the Test Generator and making tradeoffs
er
If you specify set_delay -max_tmgn 50%, you are setting the max_tmgn to include 50% of all the
nt
faults with the smallest tmgn faults as Slack-Based ATPG targets. A message is printed that informs
rI
of multiple ATPG runs. Otherwise the set of Slack-Based ATPG faults is a moving target.
2. The max_tmgn is adjusted according to the percentage you specify. As a result, it may not be
U
possible to have the exact percentage of faults sampled. For example, if 1/2 of the faults have
ed
tmgn=1, and 1/2 of faults have tmgn=infinite, an 80% setting is essentially the same as 100% since
it will internally set the max_tmgn to infinite.
ct
3. The number of faults can be counted either as collapsed or uncollapsed, which is controlled by
tri
For multicore runs, you need to look at the slave logs to find the absolute value of max_tmgn.
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-29
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Minimizing Pattern Count Inflation
ng
Use of the following can help to minimize pattern count increase:
ni
Set a realistic target fault list (max_tmgn)
ai
Faults that already have a large timing slack can be targeted with transition ATPG
Tr
Define minimum detection per pattern limits during slack based ATPG, e.g.:
set_atpg –basic_min_detect 10 –fast_min_detect 10
ip
ch
ro
ic
9- 30
lM
na
Note: During the pattern generation, run_atpg –optimize_patterns can also be used to
reduce the number of Slack-Based patterns that use the two-clock ATPG engine.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-30
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Setting max_tmgn – Default ∞ – Too Many
50000
ng
30000
ni
20000
ai
10000
Tr
ip
0
ch
Slack
ro
Default max_tmgn setting is infinity – targets too many faults for Slack-
Based testing
ic
9- 31
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-31
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Setting a Reasonable max_tmgn
Fault Universe Targeted by
50000 = Slack-Based ATPG
40000
ng
Endpoints
30000
ni
ai
20000
Tr
0.2
10000
ip
0
ch
Slack
ro
A setting of 0.2 or 20% covers a reasonable percentage of faults for
ic
Slack-Based testing
9- 32
lM
na
In the TetraMAX reference methodology scripts, a setting of set_delay -max_tmgn 20% is
used as good starting point. Ultimately, it’s up to the user to determine a reasonable setting for –
er
max_tmgn.
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-32
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Setting Standard for Full Detection
ng
longest path)
ni
If delta for a detected fault is less than or equal to
ai
–max_delta_per_fault, the fault is DS; otherwise it is TP (transition
Tr
partially detected)
The default is 0
ip
ch
ro
ic
9- 33
lM
na
TP = Transition Partially detected (it’s a sub-category of DT). A TP fault will continue to remain
active in the fault list.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-33
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Setting max_delta_per_fault
Targeted Transition
Delay Fault
SET
D Q D
SET
Q
ng
Q
ni
CLR
CLR Q
ai
Tr
SET
D Q
ip
CLR Q
ch
Detected path slack = 0.5 = TP DS
ro
(if max_delta_per_fault > 0.2)
Minimum slack path = 0.3 (longest) = DS
ic
delta = 0.2 9- 34
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-34
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Partially Detected Faults : TP
ng
Verbose fault report shows the TP faults
ni
set_faults –summary verbose
ai
report_faults –summary
Tr
fault class code #faults
------------------------------ ---- ---------
Detected DT 22079
ip
detected_by_simulation DS (14630)
detected_by_implication DI (3856)
ch
transition-partially_detected TP (3593)
Possibly detected PT 0
ro
Undetectable UD 284
ATPG untestable AU 28
Not detected ND 7989
ic
9- 35
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-35
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Fault Report with Slack Data
ng
tmgn delta
str DS mem2/na1_10/u57/B 3.74 0.00
ni
stf DS a2901/g0/g75/g7/B 5.27 0.00
ai
stf DS mem2/na1_10/u55/Z 3.14 0.06
str DS mem2/na1_10/u58/Z 3.12 0.15
Tr
stf DS mem2/na1_10/u58/Z 2.94 0.28
str DS a2901/g0/g75/g7/Z 3.12 0.00
ip
stf DS a2901/g0/g75/g7/Z 2.94 0.00
ch
str DS a2901/g0/g40/g7/LD 5.51 0.00
ro
ic
9- 36
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-36
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Fault Report: report_faults –slack tmgn
ng
tmgn tmgn
values #faults values #faults
----------------------- -----------------------
ni
1.30 - 3.13: 8509 3.13: 8509
3.13 - 4.97: 22464 4.97: 30973
ai
4.97 - 6.80: 24549 6.80: 55522
Tr
6.80 - 8.64: 14768 8.64: 70290
8.64 - 10.48: 5741 10.48: 76031
10.48 - 12.31: 19629 12.31: 95660
ip
12.31 - 14.15: 19186 14.15: 114846
14.15 - 15.98: 6372 15.98: 121218
ch
15.98 - 17.82: 7374 17.82: 128592
17.82 - 19.66: 4196 19.66: 132788
ro
> 19.66: 0 < inf: 132788
Infinite: 12220 Infinite: 12220
ic
Undefined: 0 Undefined: 0
9- 37
lM
na
Here is the distribution of the timing margin for a particular design. The default of 10 buckets was
used.
er
nt
Both the histogram and cumulative reported simultaneously using the command.
rI
The group labeled “Infinite” are faults that have timing exceptions (i.e. set_false_path,
Fo
set_multicycle_path, etc.)
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-37
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Fault Report: report_faults –slack tdet
ng
tdet tdet
values #faults values #faults
----------------------- -----------------------
ni
1.30 - 3.15: 0 3.15: 0
3.15 - 5.01: 182 5.01: 182
ai
5.01 - 6.86: 3278 6.86: 3460
Tr
6.86 - 8.71: 18560 8.71: 22020
8.71 - 10.57: 13594 10.57: 35614
10.57 - 12.42: 15070 12.42: 50684
ip
12.42 - 14.27: 17708 14.27: 68392
14.27 - 16.13: 1596 16.13: 69988
ch
16.13 - 17.98: 5867 17.98: 75855
17.98 - 19.66: 3812 19.66: 79667
ro
> 19.66: 0 < inf: 79667
Infinite: 946 Infinite: 946
ic
Undefined: 64395 Undefined: 64395
9- 38
lM
na
Undetected faults (ND/AU/UD) do not have a tdet defined and are put in the “Undefined” group.
er
The group labeled “Infinite” are faults that have timing exceptions (i.e. set_false_path,
nt
set_multicycle_path, etc.)
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-38
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Fault Report: report_faults –slack delta
ng
delta delta
values #faults values #faults
----------------------- -----------------------
ni
0.00 - 1.27: 39827 1.27: 39827
1.27 - 2.55: 11692 2.55: 51519
ai
2.55 - 3.82: 10103 3.82: 61622
Tr
3.82 - 5.10: 9508 5.10: 71130
5.10 - 6.37: 5248 6.37: 76378
6.37 - 7.64: 2715 7.64: 79093
ip
7.64 - 8.92: 946 8.92: 80039
8.92 - 10.19: 255 10.19: 80294
ch
10.19 - 11.47: 79 11.47: 80373
11.47 - 12.65: 4 12.65: 80377
ro
> 12.65: 0 < inf: 80377
Infinite: 236 Infinite: 236
ic
Undefined: 64395 Undefined: 64395
9- 39
lM
na
Undetected faults do not have delta defined because they don’t have a tdet defined and are therefore
put in the “Undefined” group.
er
nt
The group labeled “Infinite” are faults that have timing exceptions (i.e. set_false_path,
rI
set_multicycle_path, etc.).
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-39
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Metric: Delay Effectiveness
Delay Effectiveness = (Area under green curve / Area under red curve) * 100
= (Area under Tdet curve / Area under Tmgn curve) * 100
Delay Effectiveness
Assumes uniform probability
ng
of ANY delay defect size
Considers only faults with
ni
Fault Count
slacks less than max_tmgn
ai
The lower the average delta,
Tr
the higher the delay
effectiveness
ip
ch
TEST-T> report_faults -slack effectiveness
ro
------------------------------------------
Slack
delay effectiveness 69.94%
ic
9- 40
lM
na
Note: Delay Effectiveness is very different from Test Coverage
er
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-40
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack-Based ATPG Flow
read_netlist CORE.v -library
read_netlist DESIGN.v
run_build_model TOP
read_sdc DESIGN.sdc
add_pi_constraints 0 scan_en
ng
run_drc DESIGN.spf
ni
set_faults -model transition
ai
set_delay -launch system
Tr
# Slack-Based ATPG setup
read_timing DESIGN.slack
ip
set_delay –max_tmgn 3.5
set_delay –max_delta_per_fault 0.5
ch
run_atpg –auto
ro
# Report commands
ic
report_faults -slack delta
9- 41
lM
na
The read_timing command turns on Slack-Based ATPG functionality
er
Note: TetraMAX does not support Slack-Based ATPG with the Full-Sequential ATPG engine
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-41
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Slack-Based Test Does a Better Job
ng
ni
ai
Tr
ip
ch
ro
ic
Source: STMicroelectronics, Silicon Debug and Diagnosis Workshop, 2012 9- 42
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-42
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Improved Pattern Quality
ng
ni
ai
Tr
ip
ch
ro
ic
Source: Stefano Zanatta – Avago Technologies, Adam Cron – Synopsys, Achieving Ultra-Low DPPM, Synopsys Webinar, 2017 9- 43
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-43
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Transition Delay: Agenda
ng
Slack-Based Testing
ni
Slack Data
ai
Tr
Slack-Based ATPG
ip
ch
Persistent Fault Models
ro
ic
9- 44
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-44
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Persistent Fault Models
ng
Faults in other fault models are inactive
Supports running DRC in multiple test modes
ni
Existing Patterns are deleted (when going back to DRC)
ai
Tr
ip
Supports changing fault models (within TEST mode)
ch
Existing patterns preserved
Existing active and inactive faults preserved
ro
ic
9- 45
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-45
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Persistent Fault Model Flow
ng
Advantages of persistent fault models
Direct credit
ni
Fault grading existing patterns against other fault models
ai
Reduces pattern count
Tr
Reduces ATPG run time
ip
Simplifies File management
ch
Update fault status with credit
ro
update_faults -direct_credit
ic
9- 46
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-46
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Direct Credit
update_faults -direct_credit
STR on Z pin A B Z
ng
P1 0 X 0
P2 1 1 1
ni
ai
Tr
Stuck-At-0 on Z pin A B Z
P1 1 1 1
ip
ch
A pattern for Slow-to-Rise on the Z pin will also detect a
ro
Stuck-At-0
ic
9- 47
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-47
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Combined Coverage with Persistent Fault Models
ng
set_drc test_scan_at_speed.spf # before Stuck-At top off
# Setup your at-speed constraints run_fault_sim
ni
run_drc write_patterns pat stil –format ...
set_faults -persistent_fault_models drc -force
ai
set_faults -model stuck # Remove all at-speed constraints
Tr
add_faults -all set_drc test_scan_stuck.spf
set_faults -model transition run_drc
ip
add_faults -all report_faults -summary
set_delay -launch system run_atpg -auto
ch
run_atpg -auto write_patterns stuck_at.pat -format ...
ro
set_faults –model stuck exit
ic
9- 48
lM
na
Note: in the script that when persistent fault models are used, the faults lists for every fault model
used are populated “up front” in the script. Afterward, a given fault list is made “active” with the
er
set_faults command.
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-48
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objectives Summary
ng
Describe guidelines and flow considerations for
Transition ATPG
ni
Describe small delay defects
ai
Use PrimeTime to generate necessary files for
Tr
Slack-Based ATPG
ip
ch
Begin Lab 9: Transition Delay ATPG
ro
ic
9- 49
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-49
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Command Summary (Lecture, Lab)
report_patterns -all -type Obtain report of patterns and their type
set_atpg -chain_test Specifies bit sequence to load during chain test
write_patterns –format binary Write patterns in binary format
write_patterns –format wgl Write patterns in WGL format for translation to ATE
ng
write_patterns –format stil Write patterns in STIL format for translation to ATE
write_patterns -last 0 Writes the chain test, pattern 0
ni
write_patterns -sorted Writes patterns ordered by complexity
report_scan_cells –all Reports all scan cells
ai
report_scan_cells -shadow Reports only the shadow gates of scan cells
Tr
add_pi_constraints X <port> Apply an input mask to a port
add_cell_constraints <0|1|XX| Control value loaded and/or mask the value
ip
OX|0X|1X> –chain <name> <pos> unloaded from a scan cell
ch
add_po_masks <port> Apply an output mask to a port
add_capture_masks <instance> Mask values captured on a non-scan or scan cell
ro
add_slow_cells <instance> Mask transitions driven by a slow cell
add_slow_bidis <port | -all> Mask the bidirectional loopback path
ic
9- 50
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Transition Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 9-50
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Agenda
DAY
3
9 Transition Delay Testing
ng
ni
10 On-Chip Clocking (OCC)
ai
Tr
11 Path Delay Testing
ip
12 Diagnosis
ch
ro
13 Conclusion
ic
10- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-1
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objective
ng
Describe the need to use PLL for generating fast clocks
ni
List the various clocks used for ATPG with OCC
ai
Describe the flow for Transition Fault ATPG using OCC
Tr
ip
ch
ro
ic
10- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-2
TetraMAX Workshop
For Internal Microchip Training Purposes Only
At-Speed Clocking
ng
External clock sources (i.e. top-level clock ports)
ni
Internal clock sources (i.e. PLLs)
ai
During scan testing, either external or internal clock sources can be
Tr
used to test a design At-Speed
Ideally, the clock source used for scan testing should be the same as
ip
for functional operation
ch
ro
ic
10- 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-3
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Issues Testing At-Speed with External Clocks
ng
Multiple internal clock domains require multiple external CLK pads
In PAD limited designs CLK are collapsed, at-speed testing becomes
ni
unsustainable
ai
Expensive testers are required for at-speed ATPG
Tr
Using PLL clocks for at-speed ATPG is now a very common practice
ip
ch
ro
ic
10- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-4
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Requirements for Using Existing PLL Clocks
Switch between a slow external clock for shift and a fast (on-chip) clock
for At-Speed capture
Synchronization between the fast and slow clocks
ng
Allow ATPG to control how many fast clocks are passed on to the core
ni
on a per pattern basis
ai
Avoid any glitches
Tr
ip
Effective capture speed
ATE Period
ch
ATE clock
ro
ic
10- 5
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-5
TetraMAX Workshop
For Internal Microchip Training Purposes Only
On Chip Clock (OCC) Controller
Clock chain Capture performed
Controlled by TetraMAX using PLL clocks and
Clock bits
shift performed using
On chip clock generator
ATE clocks
ng
refclk1
refclk2 divider
pllclk2 OCC intclk2 DFF DFF
ni
logic
pllclk3
control intclk3
PLL DFF DFF
ai
Multiplier
Tr
External DFF DFF
Clocks
Scan chain2
Scan chain1
Each type of clock is declared
ip
to TetraMAX via an SPF or
with Quick STIL commands
ch
test_se External clocks
pllclk1
are asynchronous
ATE_clk
ro
test_se to internal clock
domains
ATE_clk
ic
10- 6
intclk1
lM
na
Reference Clocks — The frequency reference to the PLL. Free-running or the PLL may lose
synchronization. Reference clocks can not route directly to the clock inputs of FF’s
er
nt
PLL Clocks — The output of the PLL. A free-running source that also runs at a constant frequency
which may or may not be the same frequency as its’ respective reference clock
rI
Fo
ATE Clocks — Shifts the scan chain. ATE clocks are only used and routed to the respective OCC
controller, they can not route directly to clock inputs of FF’s
se
Internal Clocks — The OCC is responsible for gating and selecting between the PLL clocks and
U
ATE clocks to create the internal clocks. Internal Clocks are the output of the OCC
ed
External Clocks — Primary inputs that clock flip-flops directly or through combinational logic. Not
generated from PLLs and can not be used or declared as a Reference Clock
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-6
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Fundaments of OCC
ng
Full automation of ATPG and DFT insertion available
ni
ATPG will decide “per-pattern” which clocks should be pulsed
ai
Mix of OCC (internal) and external clocks is supported
Tr
No inter-domain testing between internal and external clocks
ip
Internal clocks are asynchronous to ATE, so relative timing is unpredictable
ch
ro
ic
10- 7
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-7
TetraMAX Workshop
For Internal Microchip Training Purposes Only
OCC IP Operation
ng
OCC Bypass mode (external ATE clocks used for both shift and capture)
ni
OCC mode – scan shift (external ATE clocks used)
ai
OCC mode – At-Speed capture (on-chip clocks used)
Tr
If TetraMAX uses an SPF from DFT Compiler, the SPF will include
support for both OCC mode and OCC Bypass mode in a single SPF file
ip
The active mode is selected by specify the active PatternExec for run_drc
ch
ro
ic
10- 8
lM
na
In the SPF, the PatternExec information will look something like this:
er
PatternBurst Internal_scan {
nt
Procedures Internal_scan;
rI
MacroDefs Internal_scan;
ClockStructures Internal_scan;
Fo
}
PatternBurst Internal_scan_occ_bypass {
se
Procedures Internal_scan_occ_bypass;
MacroDefs Internal_scan_occ_bypass;
U
}
ed
PatternExec Internal_scan {
PatternBurst Internal_scan;
ct
}
tri
PatternExec Internal_scan_occ_bypass {
PatternBurst Internal_scan_occ_bypass;
es
}
R
The PatternExec label references a specific PatternBurst label. The PatternBurst label references a
set of Procedures in the SPF that are specific to the targeted mode.
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-8
TetraMAX Workshop
For Internal Microchip Training Purposes Only
OCC Flows in ATPG
When OCC is used in TetraMAX, there are two options for declaring the
OCC information to TetraMAX:
SPF from DFT Compiler
ng
Quick STIL commands
ni
If scan OCC insertion is done by DFT Compiler or an existing OCC is
ai
inferred, the SPF from DFTC will contain everything that TetraMAX
needs to know about the OCC operation
Tr
If an SPF with OCC details is not available, then Quick STIL commands
ip
can be used to describe the OCC to TetraMAX
ch
ro
ic
10- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-9
TetraMAX Workshop
For Internal Microchip Training Purposes Only
DFT Compiler and TetraMAX OCC Flows
OCC Insertion Existing OCC 3rd Party Flow
DFTC + TMAX DFTC + TMAX TMAX ONLY
• Netlist • Netlist, • 3rd Party Netlist with OCC
• OCC Instantiated • DFTC Netlist with No SPF
• Clock chain instantiated
ng
ni
ai
• Netlist, OCC and clock chain • Netlist, OCC and clock chain • TetraMAX: QUICK STIL
• DFTC: OCC insertion + • DFTC: Stitching • Edits may be required for
Tr
Stitching • SPF Generated customizing procedures
• SPF Generated
ip
ch
• TetraMAX DRC • TetraMAX DRC • TetraMAX DRC
ro
• TetraMAX ATPG • TetraMAX ATPG • TetraMAX ATPG
ic
SPF Available SPF Not Available 10- 10
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-10
TetraMAX Workshop
For Internal Microchip Training Purposes Only
TetraMAX Flow: SPF Available
ng
run_build_model top
ni
set_delay –common_launch_capture_clock
ai
set_drc test_scan.spf
run_drc –patternexec Internal_scan
Tr
set_faults –model transition
ip
set_delay –launch system_clock
ch
add_faults –all
run_atpg –auto
ro
write_patterns pattern.stil –format STIL
ic
10- 11
lM
na
run_drc test_scan.spf –patternexec Internal_scan
er
The -patternexec is needed only incase if the SPF file is common for the PLL bypass and PLL
nt
active. If the SPF does not contain PatternExec information, then –patternexec is not
rI
needed.
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-11
TetraMAX Workshop
For Internal Microchip Training Purposes Only
TetraMAX Flow: SPF Not Available
ng
Internal clock
ni
ATE clock
Reference clock
ai
PLL clock
Tr
External clock
Declare the other parts of the scan architecture
ip
add_pi_constraints
ch
add_scan_enables
ro
add_scan_chains
ic
10- 12
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-12
TetraMAX Workshop
For Internal Microchip Training Purposes Only
OCC QUICK STIL Flow (1/2)
read_netlist …
run_build_model top
add_scan_chains …
ng
add_scan_enables 1 test_se
add_pi_constraints …
ni
# The number of PLL cycles must be declared first
ai
set_drc -num_pll_cycle 2
Tr
# Declare the ATE clock
ip
add_clocks 0 ate_clk2 -shift -refclock \
–timing {100 45 55 20}
ch
# Declare the Reference clock (if any)
add_clocks 0 ref_clk -refclock –shift \
ro
-timing {100 45 55 20}
ic
10- 13
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-13
TetraMAX Workshop
For Internal Microchip Training Purposes Only
OCC QUICK STIL Flow (2/2)
ng
add_clocks 0 "u_my_pll_ctrl_1/intclk" \
-intclock -pll_source U_pll/clka -cycle { \
ni
0 "u_my_pll_ctrl/snps_clk_chain_0/clk_ctrl_data[0]" 1 \
1 "u_my_pll_ctrl/snps_clk_chain_0/clk_ctrl_data[1]" 1 }
ai
Tr
set_delay -common_launch_capture_clocks
run_drc
ip
set_faults -model transition
set_delay -launch system
ch
run_atpg –auto
ro
write_patterns pll_pat.stil –format stil
ic
10- 14
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-14
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Black Box Requirement for DRC
ng
set_build –black_box {my_pll}
ni
If a model for the PLL exists (via a library cell or netlist), then declare
ai
the instance associated with the PLL as a TIEX (black box)
Tr
set_build –instance_modify TIEX {my_pll}
ip
ch
ro
ic
10- 15
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-15
TetraMAX Workshop
For Internal Microchip Training Purposes Only
DRC Violations
ng
Timing issues in the PLL controller cannot be checked by the DRC engine
ni
C34, C35, C36 and C39 can be downgraded in the presence of a user-
ai
defined controller containing asynchronous logic
Tr
May be required if the user’s controller is not properly understood by the
TetraMAX DRC symbolic simulation engine
ip
C39 violations require masking: add_cell_constraints OX
ch
NOTE: Full functional simulation is required to ensure user assumptions are
ro
verified
ic
10- 16
lM
na
C39 Violation: This violation occurs when a nonlogical clock propagates to any scan cell input.
Nonlogical clocks include reference clocks and controller clocks declared with the set_drc -
er
controller_clock command. TetraMAX ATPG will not simulate the effect of pulsing the
nt
nonlogical clocks on scan cells. Failure to satisfy this rule can result in patterns which fail in
rI
simulation. If a C39 violation cannot be prevented, you can downgrade it to a warning using the
set_rules command. In addition, you should use the command add_cell_constraints
Fo
XX to both load and unload all unknown values on the affected registers.
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-16
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Reporting Internal and PLL Clocks
Internal Clocks
report_clocks –intclocks
TEST-T> report_clocks -intclock
ng
ni
ai
Tr
PLL Clocks
report_clocks –pllclocks
ip
ch
TEST-T> report_clocks -pllclocks
ro
ic
10- 17
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-17
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Asynchronous Reference Clocks
ATE_CLK
100 ns
ng
REF_CLK1
ni
ai
REF_CLK2
Tr
ip
ATE and REF clocks often need different frequencies
ch
Depending on the relationship between the ATE clock and the REF
clock, some pattern formats don’t fully support the REF clock timing
ro
ic
10- 18
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-18
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Reference Clock and Pattern Formats
ng
Synchronous Multi Pulse: Period of Reference clock integer divisor of period of
ATE clock
ni
STIL, STIL99, and WGL format supported
ai
Asynchronous: No relation between the periods of Reference clock and ATE clock
Tr
STIL format only
ip
Writing Patterns with Unsupported Reference Clock type results in
ch
M669 message
Manual edits to the Verilog testbench are required in this case in order to supply
ro
the reference clock for simulation
ic
All signals besides reference clocks are written correctly
10- 19
lM
na
Example reference clock declarations:
er
# ATE clock
nt
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-19
TetraMAX Workshop
For Internal Microchip Training Purposes Only
ATE Cycles During Scan Capture
ng
TetraMAX does not check if the fast clocks actually arrive while the
ni
ScanEnable is low
ai
Define the minimum number of ATE clock cycles for which the
Tr
ScanEnable should remain low
set_atpg -min_ateclock_cycles <n>
ip
ch
By default, ScanEnable is held low the same number of ATE cycles as
the number of PLL clock cycles
ro
set_drc -num_pll_cycles <n>
ic
10- 20
lM
na
If an SPF is used, the –num_pll_cycles is specified in the SPF with the PLLCycles
statement:
er
nt
ClockStructures Internal_scan {
rI
PLLStructures "occ1" {
PLLCycles 4;
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-20
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Issue: Capture Window Too Small
Clock pulses from OCC controller have bled over into next load_unload
ng
shift capture shift
fast_clk
ni
slow_clk
test_se
ai
int_clk
Tr
Two ATE clock cycles
ip
was not enough time to
ch
generate the fast clock
pulses from the OCC
ro
Simulation of OCC scan patterns can catch this issue
ic
10- 21
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-21
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Solution: Increase the Number of ATE Cycles
Increase the number of
ATE clock cycles
during capture
ng
shift 4 capture cycles shift
fast_clk
ni
slow_clk
test_se
ai
f_clk_g
Tr
ip
ch
set_atpg -min_ateclock_cycles 4
ro
ic
10- 22
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-22
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Capture Cycles with OCC
ng
There can also be patterns where no internal clocks are pulsed during capture
ni
The –num_pll_cycles value is the maximum number of internal clock
ai
pulses supported by the OCC and is also defined in the SPF
Tr
Number of capture cycles for ATPG (specified by –capture_cycles)
must not exceed the maximum number of PLL clock cycles supported
ip
by the OCC
ch
set_drc –num_pll_cycles M (where N < M)
ro
ic
10- 23
lM
na
In the SPF, the number of PLL cycles, is defined as follows:
er
ClockStructures Internal_scan {
nt
PLLStructures "pll_controller" {
rI
PLLCycles 4;
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-23
TetraMAX Workshop
For Internal Microchip Training Purposes Only
PLL Clocks in Capture Cycle
ATPG uses conditions declared in SPF for each internal clock to control
the number of fast PLL clock pulses used during the capture cycle
Clock grouping is on by default and appropriate clock conditioning and
ng
masking is done if more than one clock is pulsed in the pattern
ni
To avoid pulsing an internal clock during ATPG
ai
add_cell_constraints (OCC w/ clock chain control)
Tr
ip
ch
ro
ic
10- 24
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-24
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Clock Grouping with OCC
Clock grouping with OCC behaves the same way as when only external
clocks are used
ng
With set_delay -common_launch_capture_clock
All the OCC clocks treated asynchronously
ni
Safe patterns generated: the same OCC clock will be used for both launch and
ai
capture
Tr
By default, multiple “common clocks” may be pulsed in a given ATPG
ip
pattern
ch
set_delay –allow_multiple_common_clocks
ro
ic
10- 25
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-25
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Multiple OCC Controller Usage During ATPG
ATPG uses the clock chain bits to control which OCC clocks are pulsed
in each pattern
ng
Pattern#4 0 0 1 1 0 0
Pattern#3 1 1 0 0 1 1
Pattern#2 0 0 0 0 1 1
ni
ai
Pattern#1 1 1 1 1 0 0
Clock chain
Tr
DFF
DFF
PLL
PLL control1
control1
pll1_clk
ip
DFF
DFF
PLL
PLL control2
ch
pll2_clk
PLL control3
pll3_clk
ro
DFF
ic
10- 26
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-26
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Report OCC Clocking
ng
Clocking only:
Pattern 5 (fast_sequential-parallel_clocking)
ni
// PLL internal clock pulse: capture_cycle=0, node=I_CLOCK_GEN/pclk_occ/U4 (153)
// PLL internal clock pulse: capture_cycle=0, node=I_CLOCK_GEN/sdr_occ/U4 (201)
ai
// PLL internal clock pulse: capture_cycle=0, node=I_CLOCK_GEN/sys_occ/U6 (288)
// PLL internal clock pulse: capture_cycle=1, node=I_CLOCK_GEN/pclk_occ/U4 (153)
Tr
// PLL internal clock pulse: capture_cycle=1, node=I_CLOCK_GEN/sdr_occ/U4 (201)
// PLL internal clock pulse: capture_cycle=1, node=I_CLOCK_GEN/sys_occ/U6 (288)
ip
In the above report, it shows that in pattern 5, three OCC clocks (pclk,
ch
sdr, and sys) were pulsed twice during scan capture (in cycle 0 and
cycle 1)
ro
ic
10- 27
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-27
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Verification of On-Chip Clocking
ng
ni
ai
Static Timing Analysis Constraints for On-Chip Clocking Support
Tr
https://solvnet.synopsys.com/retrieve/022490.html
ip
ch
ro
ic
10- 28
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-28
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Inter-Clock Domain Test with Synchronous OCC
DFT Compiler supports the insertion of an OCC block that can manage
1x, 2x, and 4x synchronous clocks
Outputs of DFT Compiler (both netlist and SPF) are ready for use in
ng
TetraMAX
ni
Use this switch in the TetraMAX script
ai
set_drc -fast_multifrequency_capture on
Tr
Insure inter-clock captures enabled
set_delay –nocommon_launch_capture_clock
ip
Mixtures of sync and async OCC controllers are handled safely by TetraMAX
ch
ro
set_drc –independent_sync_clocks
ic
10- 29
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-29
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Synchronous Multi-Frequency Clocks
ng
Clock synchronization explicitly stated in SPF ClockStructures block
ni
Latency statement in PLLStructures block
ai
Used by clock chain re-sequencing
Tr
ClockTiming block in ClockStructures top level
ip
Turns on synchronized internal clocks feature
ch
SynchronizedClocks block specifies which clocks are synchronized to which
other clocks
ro
Period and Waveform statements and MultiCyclePath block specify timing
ic
details
10- 30
lM
na
Example ClockStructures block with Synchronous OCC:
er
ClockStructures Internal_scan {
nt
PLLStructures "TOTO" {
Latency 0;
rI
PLLCycles 10;
Fo
Clocks {
"clkate" Reference;
"dut/PLLCLK0" PLL { OffState 0; }
se
}
}
ct
ClockTiming CTiming1 {
SynchronizedClocks group0 {
tri
'0ns' '5ns'; }
Clock CLKX5 { Location "TOTO/U5/Z"; Period '20ns'; Waveform
R
'0ns' '10ns'; }
MultiCyclePath 1 { From "TOTO/U5/Z"; To "TOTO/U2/Z"; }
}
}
}
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-30
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Internal Clocking Procedures (ICP)
ng
DRC not run on OCC Controller, only on fanout from Internal Clocks
ni
Clock synchronization implicitly assumed
ai
Additional syntax is in ClockStructures block
Tr
ip
InstructionRegister used instead of Clock Chain
ch
ClockConstraints block in ClockStructures top level
ro
ClockingProcedure blocks specify allowed clock combinations
ic
10- 31
lM
na
Supported by all ATPG engines except Full Sequential
Full Sequential ATPG generates bad patterns when used with Internal Clocking Procedures
er
Launch and Capture in adjacent frames for Transition Delay Fault detection
rI
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-31
TetraMAX Workshop
For Internal Microchip Training Purposes Only
SPF Example With ICP
ClockStructures Internal_scan { ...
ClockController "PLL_STRUCT_0" { ClockingProcedure extraU1 {
PLLCycles 2; "dutm/clk1"=PP;
Clocks {
"dutm/clk1" Internal { OffState 0; }
"dutm/clk2"=P0;
"dutm/clk2" Internal { OffState 0; } CLKIR=11;
"clkref" Reference; "clkext0"=P0;
ng
"clkext0" External; // Clocking control }
"clkext1" External; // External clock ClockingProcedure intraU0 {
} "dutm/clk1"=00;
ni
InstructionRegister CLKIR { "dutm/clk2"=PP;
"dutc1/FF_0_reg/Q";
ai
"dutc1/FF_1_reg/Q";
CLKIR=01;
} "clkext1"=PP;
Tr
} }
ClockConstraints constraints1 { ClockingProcedure ClockOff {
// Force external clocks off when they’re unspecified "dutm/clk1"=00;
ip
UnspecifiedClockValue Off; "dutm/clk2"=00;
ClockingProcedure intraU1 { CLKIR=00;
ch
"dutm/clk1"=PP;
"dutm/clk2"=00;
}
CLKIR=11; }
ro
"clkext0"=00; }
}
ic
...
10- 32
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-32
TetraMAX Workshop
For Internal Microchip Training Purposes Only
ICP Setup and Commands
ng
Use SDC timing exceptions to mask invalid transitions
ni
Report a summary
ai
report_clocks –constraints
Tr
Report information on all ICP’s
ip
report_clocks –constraints -all
ch
Report procedure-specific information
report_clocks –constraints –procedure <proc_name>
ro
ic
10- 33
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-33
TetraMAX Workshop
For Internal Microchip Training Purposes Only
ICP Reporting Examples
ng
PLL clocks off Procedure: ClockOff // PLL internal clock pulse: capture_cycle=1,
node=dutm/ctrl2/U19 (94)
U0to1:
ni
CLKIR=10010 TEST> report_patterns -all -clk_summary
dutm/ctrl1/U17/Z=10
ai
dutm/ctrl2/U19/Z=01 Pattern Clocking Constraints Summary Report
-------------------- -----------------------------------------------
Tr
#Used Clocking Procedures
U1to0: #U0to1 6
CLKIR=01010 #U1to0 5
ip
dutm/ctrl1/U17/Z=01 -----------------------------------------------
dutm/ctrl2/U19/Z=10
ch
--------------------
ClockOff:
CLKIR=00000
ro
dutm/ctrl1/U17/Z=00
dutm/ctrl2/U19/Z=00
ic
--------------------
10- 34
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-34
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Clocking Procedures Pattern Grouping
ATPG can be controlled to keep patterns that use the same clocking
procedure together
This allows the patterns to be “split” based on the clocking procedure
ng
Each pattern file contains patterns from only one clocking procedure
ni
A clocking procedure may have multiple pattern files
ai
To group patterns by ClockingProcedure use:
Tr
set_atpg –group_clock_constraints {first_pass middle_pass final_pass}
write_patterns –occ_load_split
ip
For best ATPG performance: {85 5 2}
ch
Results in multiple pattern files per clocking procedure
ro
For minimum number of pattern files: {100 0 0}
ic
But this increases ATPG runtime substantially
10- 35
lM
na
The –group_clock_constraints arguments are specified in terms of percentages of the
fault list:
er
The first_pass argument specifies the target percentage of the fault list in the first pass through
nt
each clocking procedure. The first pass results in long blocks of patterns with just one clocking
rI
procedure.
The middle_pass argument specifies the target percentage of the fault list in the subsequent
Fo
passes through each clocking procedure. These passes are repeated until the final_pass number
is reached. The middle passes result in shorter blocks of patterns with just one clocking procedure.
se
The final_pass argument specifies the target percentage of the fault list in the final pass in
which any clocking procedure might be used. In this pass, there is no guarantee that any two
U
-occ_load_split
ct
This option, which is used in the internal clocking procedures feature, splits patterns into a separate
tri
file for each clocking procedure. Note that a new pattern file is saved each time a clocking
procedure changes from one pattern to the next, which can result in a large number of pattern files.
es
Because of this, you should you should use the -occ_load_split option only in combination
with the set_atpg -group_clk_constraints command.
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-35
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objectives Summary
ng
List the various clocks used for ATPG with OCC
ni
Describe the flow for Transition Fault ATPG using
ai
OCC
Tr
ip
ch
Begin Lab 10: OCC for Transition Delay
ro
ic
10- 36
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-36
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Command Summary (Lecture, Lab)
run_drc –patternexec Run DRC check using a particular PatternExec
Internal_scan section of the SPF
set_atpg –min_ateclock_cycles 5 Number of ATE clock cycles during for capture
set_drc -num_pll_cycle M Number of OCC fast clock cycles
add_clocks … Use Quick STIL commands to declare the OCC
ng
related clocks when an SPF is not available
report_clocks –intclocks Report the internal (OCC) clocks
ni
report_clocks –pllclocks Report the PLL clocks
ai
set_atpg –capture_cycle N Set the maximum number of capture cycles used
during ATPG. The number (N) selected must be
Tr
less that or equal to the number of fast clock
cycles (M).
ip
ch
ro
ic
10- 37
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-37
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Appendix
ng
OCC Implementation Details
ni
ai
Tr
ip
ch
ro
ic
10- 38
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-38
TetraMAX Workshop
For Internal Microchip Training Purposes Only
OCC Controller Waveforms
Synchronization required
One pulse of ATE clock to switch in either direction
3 pulses of PLL clock to capture (to prevent metastability)
ng
Count = 0 (no pulse)
ni
3 synchronization Count = 1 (pulse if enabled)
cycles 5 Count = 2 (pulse if enabled)
Count = 3 (terminal)
ai
fast_clk
Tr
4 9
slow_clk
ip
3 10
scan_en
ch
1 11
clk 2 8
ro
scan_en falling deselects scan_en rising takes effect
slow_clk asynchronously 6 7 on next falling clock edges
ic
10- 39
lM
na
Details of the OCC operation:
er
At first (1), the scan enable (scan_en) is active, so the slow ATE clock will be enabled.
nt
The slow clock first synchronizes the fall of scan enable (3), then the fast clock (4).
Once the fast clock gets a hold of the scan enable, it passes it through a metastability shift register,
Fo
It gets synchronized by the high-speed clock (9) and by the ATE clock (10), and then the results are
shifted out while shifting in the next pattern (11).
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-39
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Avoid Unified ATE Clock
REF_clock
PLL 10ns
OCC controller
Functional
ng
REF_clock path
PLL 5 ns
ni
OCC controller
ATE
Hold time
ai
slow_clock
violation only
for scan capture
Tr
Avoid merging different clocks domains together
ip
Use separate ATE clock for each controller, if possible
ch
Use set_scan_configuration –internal multi in DFT Compiler to
control scan chain architecting when clocks do get merged
ro
If OCC is broken, a unified ATE clock makes at-speed testing very difficult when
ic
the ATE clock is used for scan capture in OCC bypass mode (complex masking
required) 10- 40
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-40
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Avoid Using Reference Clock as Shift Clock
REF_clock
PLL
OCC controller
ng
Using reference clock as shift clock:
ni
Will prevent using load_unload preambles and postambles to resolve timing
ai
issues
Tr
Requires design to be shifted at reference clock speed
ip
ch
ro
ic
10- 41
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-41
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Avoid Using Reference Clock for Capture or in test_setup
ATE_clock
REF_clock
PLL
OCC controller
ng
ni
Using reference clock as capture clock:
ai
Will require logic to be always pulsed (C39 violation)
Tr
Requires design to be shifted at reference clock speed
ip
Using the reference clock to run specific configuration during
ch
test_setup sequence:
Will force test_setup to run at reference clock speed and to have a pulse in
ro
every vector
ic
10- 42
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-42
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Clock Bits Must Hold State
D Q D Q occ_so
occ_si SI SI
ng
launch_enable
capture_enable
test_se
SE SE
ni
ai
Tr
Clock bits must hold state during capture to avoid losing the loaded
ip
state
ch
C30 and C31 Errors in TetraMAX if this condition is not satisfied
ro
ic
10- 43
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-43
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Very Slow De-assertion of Scan Enable
Shift Capture
ng
fast_clk
slow_clk
ni
ai
test_se
Tr
ip
Very slow fall time
ch
Only full timing accurate simulation can catch it
ro
ic
10- 44
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-44
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Solution: Add load_unload Postamble*
Procedures {
"load_unload" {
W "_default_WFT_";
Shift {
ng
V { “slow_clk"=P; “test_se"=1; "_so"=##; "_si"=##; “ref_clk”=P; }
}
ni
// Postamble (notice that Scan Outs are masked)
ai
V { “slow_clk"=0; “test_se"=0; “_so”=XX; ref_clk=P; }
Tr
}
ip
fast_clk
slow_clk
ch
ref_clk
test_se
ro
* Pulsing the reference clock must not disturb scan chain
ic
10- 45
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-45
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Very Slow Assertion of Scan Enable
Capture Shift
ng
fast_clk
slow_clk
ni
ai
test_se
Tr
ip
Very slow rise time
ch
Only full timing accurate simulation can catch it
ro
ic
10- 46
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-46
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Solution: Add load_unload preamble *
Procedures {
"load_unload" {
W "_default_WFT_";
V { “slow_clk"=0; “test_se"=0; “ref_clk”=P; } // Preamble
Shift {
ng
V {“slow_clk"=P; “test_se"=1; "_so"=##; "_si"=##; “ref_clk”=P;}
ni
}
}
ai
Tr
capture preamble shift
fast_clk
slow_clk
ip
ref_clk
ch
test_se
ro
* Pulsing the reference clock must not disturb scan chain
ic
10- 47
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-47
TetraMAX Workshop
For Internal Microchip Training Purposes Only
This page was intentionally left blank.
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
On-Chip Clocking Support ©2018 Synopsys, Inc. All Rights Reserved. 10-48
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Agenda
DAY
3
9 Transition Delay Testing
ng
ni
10 On-Chip Clocking (OCC)
ai
Tr
11 Path Delay Testing
ip
12 Diagnosis
ch
ro
13 Conclusion
ic
11- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-1
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objective
ng
Extract a set of critical paths from PrimeTime
ni
Describe the syntax of a delay path
ai
Run ATPG for the Path Delay fault model
Tr
Describe the Robust and Non-Robust faults classification
ip
Analyze a Path Delay fault
ch
ro
ic
11- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-2
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Automated Links for At-Speed Tests
ng
F Timing Exceptions
F
ni
F
F
ai
Test Constraints
Tr
ip
Automatic generation of critical paths and timing exceptions
ch
from PrimeTime to TetraMAX
ro
Automatic, complete timing constraints from ATPG
ic
11- 3
lM
na
Synopsys provides automated links to and from PrimeTime, the Industry leading sign-off timing
analysis tool.
er
nt
You can automatically generate both critical timing paths and timing exceptions from PrimeTime,
rI
Likewise, you can use TetraMAX to automatically generate complete timing constraints for static
timing analysis.
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-3
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path Delay Flow
Design Compiler®
.spf
Scan Netlist
ng
file
Gate Level
ni
ai
PrimeTime®
Tr
Critical
ip
SDC
Paths
file
ch
ro
Path Delay
TetraMAX
ic
Patterns
11- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-4
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Main write_delay_paths Options
ng
-max_paths Specifies the max number of paths to be written (Default = 1)
ni
-delay_type Use min to extract hold paths
ai
-slack Writes paths with slack less than the specified crit_time (Default = ∞)
-nworst Specifies the number of paths to each endpoint (Default = 1)
Tr
-clock Select paths in clock_name domain
-launch Select paths starting from clock_name domain
ip
-capture Selects paths ending at clock_name domain
ch
-group Selects paths from existing group_name
-pba Uses the exhaustive-effort level of path-based analysis to gather paths
ro
filename Name of file where paths are written
ic
write_delay_paths -slack 6 -max_paths 100 paths.txt
11- 5
lM
na
The write_delay_paths command is part of the pt2tmax.tcl utility script. This utility
script is part of the TetraMAX installation and can be found here:
er
nt
$SYNOPSYS/auxx/syn/tmax/pt2tmax.tcl
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-5
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path Delay Fault Models and ATPG Engines
ng
fault model
ni
By default, setup-time path delay uses the Fast-Sequential ATPG Engine
ai
Set an appropriate -capture_cycles value for Fast-Sequential path
Tr
delay
ip
Full-Sequential ATPG can also be used for path delay ATPG
ch
ro
ic
11- 6
lM
na
Control for using Fast-Sequential for setup-time path delay:
set_atpg –fast_path_delay | -nofast_path_delay
er
nt
Hold-time path delay can use Basic-Scan and/or Fast-Sequential ATPG engines.
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-6
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path Delay ATPG : Setup Check
ng
capture flop is too late
ni
Separate launch and capture pulses
ai
Setup Violation
Tr
ip
ch
ro
ic
11- 7
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-7
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path Delay ATPG : Hold Check
ng
of capture flop in same clock pulse
ni
Failure if the transition of data at D of
ai
capture flop is too early
Tr
Same launch and capture pulse for a
given clock
ip
Paths between different clock domains are
ch
rejected as ATPG Untestable
ro
Hold Violation
ic
11- 8
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-8
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Hold Time Path Delay Flow Details
Timing for Stuck-At ATPG is used (i.e., test does not need to be run
At-Speed)
Hold-time violations are both launched and captured by a single clock pulse
ng
Basic-Scan and Fast-Sequential engines are supported
ni
Stuck-At patterns detect many hold time violations
ai
Fault simulate hold time faults using Stuck-At patterns before running Hold-
Tr
Time ATPG
ip
ch
ro
ic
11- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-9
TetraMAX Workshop
For Internal Microchip Training Purposes Only
ATPG Script Examples
ng
read_netlist test.v read_netlist test.v
run_build_model –model top run_build_model –model top
add_pi_constraints 0 scan_en add_pi_constraints 0 scan_en
ni
read_sdc timing_exceptions.sdc set_drc test.spf
ai
set_drc test.spf run_drc
run_drc set_faults –model hold_time
Tr
set_faults –model path_delay add_delay_paths path.txt; // Written with –delay_type min
add_delay_paths path.txt add_faults –all
ip
add_faults -all set_patterns –external stuck_at_pats.bin
set_atpg –capture_cycles 4 run_simulation
ch
run_atpg –auto run_fault_sim; // Fault sim Stuck-At pats for hold_time
write_patterns path_delay_pats.stil –format stil -replace set_patterns -internal
ro
run_atpg –auto
write_patterns hold_time_pats.stil –format stil –replace
ic
11- 10
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-10
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path Delay Hold Time ATPG Script
ng
run_build_model –model top
add_pi_constraints 0 scan_en
ni
set_drc test.spf
run_drc
ai
set_faults –model hold_time
Tr
add_delay_paths path.txt ; // Written from PT with –delay_type min
add_faults –all
set_patterns –external stuck_at_pats.bin
ip
run_simulation
ch
run_fault_sim ; // Fault simulate Stuck-At patterns for hold_time
set_patterns -internal
ro
run_atpg –auto
write_patterns hold_time_pats.stil –format stil –replace
ic
11- 11
lM
na
Note : Since hold_time path delay ATPG is supported only by basic and fast-sequential engine there
is no requirement for switching off the full-sequential engine.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-11
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Managing Faults
ng
add_faults -all
set_delay -relative_edge
ni
Inject both a slow-to-rise and a slow-to-fall fault
ai
Need to set this option before add_delay_paths
Tr
Removing faults
remove_delay_paths
ip
Report faults
ch
report_delay_paths
-verbose option includes information regarding launch and capture clocks and
ro
nodes, transition direction of faults, fault status and the vector in which detection took
place (Post ATPG)
ic
11- 12
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-12
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path File
Path File
ASCII file
Contains the list of paths to be targeted for ATPG
ng
Source of Path File
ni
Use static timing analysis tool
ai
PrimeTime
Tr
Create manually (not the preferred method)
Paths
ip
Same paths as in STA
ch
ro
Critical paths (sensitive to delay)
ic
Paths from different locations of the chip
11- 13
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-13
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path Syntax
$path {
[ $name path_name ; ]
[ $cycle required_time ; ]
[ $slack slack_time ; ]
[ $launch clock_name ; ]
ng
[ $capture clock_name ; ]
$transition {
ni
pin_name1 ^ | v | = | ! ;
ai
pin_name2 ^ | v | = | ! ;
…
Tr
pin_nameN ^ | v | = | ! ;
}
ip
[ $condition {
pin_name1 0 | 1 | Z | 00 | 11 | ZZ | ^ | v ;
ch
pin_name2 0 | 1 | Z | 00 | 11 | ZZ | ^ | v ;
…
ro
pin_nameN 0 | 1 | Z | 00 | 11 | ZZ | ^ | v ; }
]
ic
} 11- 14
lM
na
$name - Assigns a name to the delay path
$cycle - Time between launch and capture clock edges
er
$slack - Available time margin between the $cycle time and calculated delay of the path
nt
$condition statement is not included automatically from PrimeTime, but it can be added manually.
U
V - falling transition
ed
^ - rising transition
= - transition same as previous node
ct
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-14
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Path Example
$path {
$name qdsp_aclk_2 ;
$cycle 40 ;
$slack 0.80 ;
ng
$launch TCK ; // (rise edge)
$capture TCK ; // (rise edge)
ni
$transition {
ai
QdbxIc/Qdsp4Core/AluIc2/U806/a v ; // (nor1)
Tr
QdbxIc/Qdsp4Core/AluIc2/U850/b ^ ; // (nd2)
QdbxIc/Qdsp4Core/AluIc2/U598/a v ; // (inv)
ip
QdbxIc/Qdsp4Core/AluIc2/U893/a v ; // (xor2)
QdbxIc/Qdsp4Core/AluIc2/AdderIc/sela ^ ; // (mux2)
ch
}
ro
$condition {
QdbxIc/Qdsp4Core/AluIc1/U702/b 1 ;
ic
} 11- 15
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-15
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Untestable Paths
ng
Other paths may be determined to be “Untestable” or “Undetectable”
ni
A combinational or sequential false path
ai
Paths blocked by ATPG constraints
Tr
Paths including redundant logic
Paths only valid in shift mode
ip
Report untestable or violated Paths
ch
Check P Rule violations and their description in On-Line Help
ro
report_faults –class AU
ic
11- 16
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-16
TetraMAX Workshop
For Internal Microchip Training Purposes Only
On Path Vs. Off Path Inputs
On Path Input
An input to a combinational gate along the circuit delay path through which a logic
transition will flow. On-path inputs are typically listed as nodes in the Path Delay
definition file
ng
Off Path Input
ni
An input to a combinational gate that must be sensitized to allow a transition to
flow along the circuit delay path
ai
Off path input should settle to non-controlling values (‘0’ for OR/NOR, ‘1’ for
Tr
AND/NAND) following application of the launch pulse (V2)
ip
D Q D Q
SI SI
ch
F1 F1
SE U0 U0 SE
ro
Off Path Input
ic
On Path Input
11- 17
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-17
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Hazards Can Impact Path Delay Tests
ng
Dynamic Hazard: Off-path value changes multiple times
ni
Hazards may invalidate a test pattern
ai
Increasing delay fault size
Tr
Fault Free
Fault Detected
ip
U0
Test Invalidated
ch
Fault Detected
ro
V2@ t1 t2
V2 @ t1 Output sample time t2
ic
11- 18
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-18
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Hazard-Free Path Delay Test Example
G2
C
D
1 D
A G1 G4
F
1 C 1/1 1/1 1
G3 E
ng
B
0/0 1
F
ni
E
0 1 2 3 4
All off path Tested Path: STR -> ADF
ai
inputs do AB = (00), (10) is a hazard free test for path ADF
not change
Tr
ip
Off-path inputs are stable and hazard-free throughout the test interval
ch
This is useful for diagnostics
ro
ic
11- 19
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-19
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Robust Path Delay Test
ng
the path exceeds the clock period, irrespective of other path delays
ni
Required Off-Path Input Values (AND gate)
ai
(01) (01)
On-path input
Tr
On-path
Delay Test Model
Off-path
rising falling
ip
0 in V1 Robust (DR) X1 S1
ch
1 in V2
ro
X1: initial state is “don’t care”; final state is 1
ic
S1: steady 1 state 11- 20
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-20
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Robust Path Delay Test Example
First Transition
G2
C
D
1/0/1
3
A G1 G4 D
F
C 1/0/1/0
1 1 E
G3
ng
B
1/1 1 F
ni
E
0 1 2 3 4 5
Tested Path: STF -> ACEF
ai
AB = (01), (11) is a robust test for path ACEF
Tr
F will not change state until the transition on E has occurred, any delay
to D can never mask a delay fault that may occur on the tested path
ip
If a test passes, then the path is not defective
ch
If the test fails, the path may or may not be defective – depending on
ro
delay of the off path input values
ic
11- 21
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-21
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Non-Robust Path Delay Tests
This allow the output to change before the on-path transition propagates
along the tested path
Guarantees the detection of a path-delay fault only when no other path
ng
delay fault is present on off paths
ni
ai
(01) (01) Required Off-Path Input Values (AND gate)
Tr
On-path On-path input
Off-path Delay Test Model
rising falling
ip
0 in V1
ch
1 in V2
Non-Robust (DS) X1 X1
ro
X1: initial state is “don’t care”; final state is 1
ic
11- 22
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-22
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Non-Robust Path Delay Test Example
Assume X takes 2 A
additional time G2
units beyond A to X D 1/0/1 X
switch 1
A G1 G4
F
C C
1 1
G3 D
ng
B
A STF fault for
gate G3, adding 1/1 1
E
an additional E
ni
time unit
ai
Tested Path: STR -> ACEF F
Tr
strobe
0 1 2 3 4
ip
AB = (11), (01) is a non-robust test for path ACEF
ch
The pattern would pass even though there is a STF of 1 time unit at G3
ro
If there is no defect at X, then it would fail
ic
11- 23
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-23
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Summary of Path Delay Fault Detections
ng
independent of delays on other paths and also independent of hazards
Detected Robustly
ni
Guarantees that the test will fail if there’s a sufficient delay on the target path
ai
independent of delays on other paths
Tr
Detected Non-Robustly
Guarantees that the test will fail if there’s a sufficient delay on the target path only if
ip
there are no delays on the off-paths
ch
ro
ic
11- 24
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-24
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Characterization Tests
ng
generation
ni
set_delay –diagnostic_propagation
ai
Default is –nodiagnostic_propagation
Tr
The pattern would fail only if the target path has a defect; it is not
affected by delay on any other path in the chip
ip
Coverage may drop due to more stringent ATPG constraints
ch
ro
ic
11- 25
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-25
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Fault Classification
ng
DS: Fault detected Robustly but not Hazard free test
ni
Regular Test (Default)
ai
DR: Fault detected and Robust test
Tr
DS: Fault detected and Non Robust test
ip
ch
ro
ic
11- 26
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-26
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Launch Cycle
ng
any launch type can be used
ni
Last Shift Launch
ai
Extra Shift Launch
Tr
System Clock Launch
However, to generate only system clock launch patterns with Full-
ip
Sequential Path Delay, constrain Scan Enable to its inactive state
ch
add_pi_constraints 0 scan_en
ro
ic
11- 27
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-27
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Simulating Hazards
ng
Check for glitch on the off path input
set_delay –simulate_hazards
ni
Classify a test as DR if there is no glitch possible
ai
Default Option
Tr
Do not check for glitch on the off-path input
set_delay –nosimulate_hazards
ip
May classify a Non Robust test as Robust
ch
ro
ic
11- 28
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-28
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Reconvergent Path
ng
To allow test generation to occur
set_delay -allow_reconverging_paths
ni
ai
Tr
ip
ch
ro
* STF on above path is AU if we don’t allow reconverging paths
ic
11- 29
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-29
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Multi-Cycle Paths
Some paths need more than single cycle for a valid capture
Multi-Cycle paths can also be tested with modifications to the timing in
the SPF file
ng
Paths that are not targeted for the specified frequency need to be
ni
masked
ai
Timing exceptions (SDC)
Tr
set_delay –mask_nontarget_paths
ip
ch
ro
ic
11- 30
lM
na
For DFTMAX designs in compression mode, don’t use set_delay –
mask_nontarget_paths as it may inhibit effective pattern generation due to the large number
er
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-30
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Multi-Cycle ATPG Flow
In a design with 1-cycle and 2-cycle paths, test the path delay faults in
two runs
1st run, targets 1-cycle faults
ng
Setup the clock to work at-speed (e.g. 10ns period)
Remove paths longer than one cycle
ni
remove_delay_paths -max_cycle 10
ai
Generate and save test vectors
Tr
2nd run, targets 2-cycles faults
ip
Remove timing exceptions for 2-cycle paths
ch
Setup the clock to work at a multi-cycle period (e.g. 20ns)
Remove paths less than two cycles
ro
remove_delay_paths -min_cycle 20
ic
Generate and save test vectors 11- 31
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-31
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Analyze Fault
Analyze UD or AU faults
analyze_faults <delay_path_name> -slow <r|f>
Can also be used for detected faults to see the pattern sequence
ng
Analysis steps
ni
Generate the values necessary to launch the transition at the head of the selected
ai
path
Tr
Generate the values necessary to capture the transition at the tail of the path
Generate the values necessary to propagate the transition through the non-
ip
launch and non-capture nodes in the path till it reaches the capture point
ch
Report success of each step unless it fails at some point
ro
ic
11- 32
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-32
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Analysis Report
ng
DFF 14 @ @ frame 3 (cycle 1, frame 0) successful ...
Test generation to OR 10 ( OFF-PATH input AND 9) successful ...
ni
Test generation to MUX 12 ( OFF-PATH input PI 2) successful ...
Test generation to AND 11 ( OFF-PATH input PI 1) unsuccessful ...
ai
Analyzing conflict data ...
Tr
3 conflicting requirements found :
1. PI 1 required @ 1
2. AND 9 required @ 0
ip
3. DFF 15 required @ 1
The gate_report data is now set to "seq_sim_data"
ch
Use the –verbose option of analyze_faults command for more details
ro
Use the –display option of analyze_faults command to see the
simulated values of the entire path in the GSV
ic
11- 33
lM
na
A frame is a time division within a clock cycle.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-33
TetraMAX Workshop
For Internal Microchip Training Purposes Only
GSV Debug of Delay Path Violations
analyze_faults PATH_1 -slow f -display
ng
ni
Open expansion diamonds on inputs of displayed on-path cells to
display the off-path cells
ai
Tr
See that at least one off-path cell is shown with a value opposite of the
required value
ip
There are typically paths between these conflicting requirement cells
ch
Gate IDs reported in “Analyzing conflict data ...” can be added to the
GSV with:
ro
Show Path, head=gateid, tail=gateid
ic
11- 34
lM
na
The GUI here shows a part of the Path for which the fault analysis is being done. The pin
data shown is the simulated values of the pattern, that is being used to detect the fault.
er
nt
The schematic show all the gates along the On-Path of the path. Off_path inputs are not
rI
Since it is a STR analysis, you can see that there is a rising transition on the first clock
cycle ( Launch) on the Q pin of the flop . ( Start Point of the path)
se
Analysis tips:
U
• Use –fault_simulation option. Provides the fault simulator’s opinion as well as the
tri
test generator’s.
• Check which type of path sensitization (if any) is reported as successful
es
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-34
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Unit Objectives Summary
ng
Describe the syntax of a delay path
Run ATPG for the Path Delay fault model
ni
ai
Describe the Robust and Non-Robust faults
classification
Tr
Analyze a Path Delay fault
ip
ch
Begin Lab 11: Path Delay ATPG
ro
ic
11- 35
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-35
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Command Summary (Lecture, Lab)
write_delay_paths Write critical delay paths in PrimeTime
set_faults –model path_delay Set the path delay fault model
set_faults –model hold_time Set the hold time fault model
set_atpg –fast_path_delay Use Fast-Sequential ATPG for path delay testing
ng
add_delay_paths <file> Read delay paths file generated in PrimeTime
remove_delay_paths Remove previously added delay paths
ni
report_delay_paths Report current delay paths
set_delay –relative_edge Add both str and stf faults for a single delay path
ai
set_delay –diagnosic_prop Restrict path delay ATPG to only robust tests
Tr
set_delay –simulate_hazards Simulate hazards to determine if test is robust
set_delay – Allow reconvergent off path values
ip
allow_reconverging_paths
ch
set_delay –robust_fill Fill non care bits with values to make test robust
set_delay –mask_nontarget_path Mask all scan cells besides the path endpoints
ro
ic
11- 36
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Path Delay Testing ©2018 Synopsys, Inc. All Rights Reserved. 11-36
TetraMAX Workshop
For Internal Microchip Training Purposes Only
Agenda
DAY
3
9 Transition Delay Testing
ng
ni
10 On-Chip Clocking (OCC)
ai
Tr
11 Path Delay Testing
ip
12 Diagnosis
ch
ro
13 Conclusion
ic
12- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
List the 2 main command used in TetraMAX diagnosis flows
ni
Describe the difference between pattern-based and cycle-
ai
based Fail Data File formats
Tr
Understand how to interpret the TetraMAX diagnosis results
ip
ch
ro
ic
12- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Volume diagnostics
Diagnose large numbers of parts
In cooperation with YMS, identify yield killers
ng
Accurate diagnostics
ni
Run a few parts with a large amount of failure data
ai
Intensive analysis done with specialized commands to ensure high confidence of
Tr
results
Typically done to locate a failure location in preparation for physical failure
ip
analysis (PFA)
ch
Help with debug of simulation failures
ro
ic
12- 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Large volumes of device data are analyzed to identify common causes
ni
of yield loss
ai
Detailed analysis / diagnosis can be performed on a representative
Tr
device to understand the failure mechanism
ip
Corrective action taken on design, library cell, process and / or reticle
ch
ro
ic
12- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Design YMS
Process
ng
Library Development Diagnosis
Development Results
ni
Mask
ai
Netlist
Gen Fab
TetraMAX
Tr
Library Diagnosis
ip
Failure
ch
TetraMAX Patterns Log
ATPG
ro
ATE
ic
12- 5
lM
na
Yield is affected by the physical design, library, mask generation or the fab process.
er
./sa_pat.stil …
./td_pat.stil
ng
Lot 1 Lot 2
ni
1 pad[1] 342 (exp=1, got=0) Failure logs files
ai
3 pad[4] 935 (exp=0, got=1)
…
Tr
ip
YDF
ch
Diagnose
Design
and save
Image
ro
TetraMAX fault candidates Yield Explorer
ic
12- 6
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
into a file (following a specified format) and diagnosis is run with the
ni
run_diagnosis command
ai
TetraMAX analyzes the failure information and reports the locations and
Tr
types of faults that could have caused the failure
ip
ch
ro
ic
12- 7
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
defect is in the resulting candidate fault list
ni
Precision: uses failing and passing patterns
ai
Diagnosis results have high precision if the resulting set of candidate faults is
small
Tr
High performance, scan-based fault simulation
ip
Supports Physical diagnosis with a PHDS database
ch
Ease-of-Use
ro
Text reporting, Tcl API, and graphical results
ic
12- 8
lM
na
Definitions
er
Physical Defect: A physical condition on a manufactured chip which causes it to not meet design
specifications.
nt
Fault Candidate: a fault which potentially explains the behavior of a physical defect on the device
Fo
under test.
Pattern: an ATPG sequence possibly consisting of shifting and capturing values into the scan chain.
Consists of many clock cycles.
se
Vector/Cycle: A cycle on ATE where stimulus is applied and/or the response is measured.
Failure: A mismatch on ATE where the DUT does not produce an expected result at a primary
U
Verilog Library
TetraMAX ATPG
• Compile Design
Scan Design • Run design rule check
Netlist • Run ATPG
ng
Test Protocol
(STIL format) Simulation Coverage
ni
ATE Vectors
Test Patterns Reports
Binary Image
ai
ATE Tester
Tr
• Tester failure data log
• Data log post process
Failure Data File
ip
TetraMAX ATPG
ch
• Run diagnosis
ro
Failure Analysis
ic
• Perform failure analysis
12- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Must use exactly the same TetraMAX environment that generated test
ni
patterns
ai
Original Verilog netlist
Tr
Original test protocol file (.spf)
Original libraries
ip
Tip: Write out an image file after DRC in the final run and use this image file for diagnosis to
ch
ensure the same environment
ro
ic
12- 10
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Specifies diagnosis options that will be persistent across multiple diagnosis runs
run_diagnosis
ni
Executes the diagnosis
ai
Tr
read_netlist -lib mylib.v
read_netlist mydesign.v
ip
run_build_model
ch
set_drc mydesign.spf
run_drc
ro
set_patterns -external ./patterns/mypat.bin
run_diagnosis diag.fail
ic
12- 11
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Read Image
ni
ai
Patterns Run Diagnosis Failure
file file
Tr
ip
Transcript
+
ch
Schematic
ro
ic
12- 12
lM
na
Note that the patterns are not part of the binary image file. They need to be read into TetraMAX
separately.
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ATPG (i.e. a foundry)
ni
Faster performance
ai
No need to re-run build and DRC steps
Tr
Instance names can be “garbled” to provide an extra layer of security
by hiding the design context
ip
# Read the image
ch
read_image design_img.gz
set_patterns -external patterns.bin
ro
run_diagnosis fail_log.txt –display
ic
12- 13
lM
na
Note: To create a “garbled” image file, the image is written with the following command:
er
read_netlist specnetlist.v
• Run Build (if an image wasn’t read)
se
run_build_model ...
• Perform design rule checking (if an image wasn’t read)
U
run_drc ...
ed
ng
Image creator can specify which TetraMAX commands the image
ni
receiver is allowed to execute
ai
Image file can only be read with the private password
Tr
After read_image of a secure image file, receiver is limited to only the
commands explicitly allowed
ip
e.g. report_primitives, GSV, etc. can be permanently disabled
ch
Note: Tcl API commands are disabled after a secure image file is read
ro
ic
12- 14
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
report_commands -secure
ni
Lists all allowed commands that can be applied to the image file to be written
ai
write_image <file_name> -password <string>
Tr
Writes an encrypted image which only allows execution of commands listed by
report_commands –secure
ip
ch
read_image <file_name> -password <string>
Reads a secure image unencrypted by the given password
ro
TetraMAX will allow only permitted commands to be run
ic
12- 15
lM
na
Instance names can be “garbled” to provide an extra layer of security by hiding the design context:
write_image -garble
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
set_commands -secure set_diagnosis
ni
set_commands -secure set_patterns
ai
write_image image_enc.gz -password top_secret \
-schematic_view –replace
Tr
# Reading secure image
ip
read_image image_enc.gz -password top_secret
ch
set_patterns -external pat.bin
ro
run_diagnosis fail.log
ic
12- 16
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Format used internally in TetraMAX
ni
Cycle-based failures, in terms of failing vectors
ai
Most ATE vendor testers can generate TetraMAX pattern-based failure
Tr
files automatically
Partnership with most major ATE vendors
ip
Avoids complexity in translating failure file
ch
Contact the ATE vendor for details on generating failure files that are formatted for
ro
TetraMAX
ic
12- 17
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
50 vout 55
Pattern 0 is first pattern - usually the chain test 50 abus 57
ni
2. Device output which mismatched 58 vout 57
ai
83 xstrb
Can be output pin name or chain name
Tr
3. Failed scan cell position # + expected values
ip
If Device output is a scan chain output, and the 94 vout 5 1
pattern performs a chain unload operation
ch
97 xstrb 0
ro
4. Optional expected data
ic
12- 18
lM
na
The vout and abus ports are Scan Outputs.
er
ng
C vout 2764
Indicates this failure log is cycle-based C abus 2940
ni
2. Device output which mismatched C vout 3048
ai
C xstrb 3785
3. Cycle number that failed
Tr
Indicates vector number that failed, with first # + expected values
vector being number 1
ip
C vout 4212 1
ch
C xstrb 4908 0
4. Optional expected data
ro
ic
12- 19
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
In some Diagnosis flows, custom scripts are used to convert failing tester
data to a TetraMAX failure log
These translation scripts can be prone to error
ng
If expected data exists in the Fail Data File, by default, TetraMAX will check
that the expected data is consistent with the data in the ATPG patterns
ni
If a cycle-based fail file is used, any difference in the number of cycles on
ai
the ATE must be accounted for
Tr
set_diagnosis <file> … -cycle_offset <d>
ip
If cycle numbers start at 0 on ATE, use “1” as the offset
If extra initialization cycles exist in vectors run on the tester, use a negative integer
ch
as the offset
ro
If the offset is unknown, a range of offsets can be tested
run_diagnosis –find_offset {<begin_range> <end_range>}
ic
12- 20
lM
na
The set_diagnosis [-check_expected_data | -nocheck_expected_data]
controls if expected data is checked. It’s on by default.
er
nt
Note: the –find_offset option requires that the failure log contain expected values and there
rI
ATE limitations may force a user to generate a truncated failure log file
Only use the first N patterns for diagnosis
run_diagnosis –truncate <N>
ng
Set the ATE fail memory limit (d = number of failures)
ni
set_diagnosis –failure_memory_limit <d>
ai
Set the ATE failing cycles limit (n = number of failing cycles)
Tr
set_diagnosis –failing_cycles_limit <n>
ip
Assume last failing pattern is incomplete and ignore it
ch
set_diagnosis –incomplete
12 Out1 23
ro
ATE memory limit 15 Out2 56
ic
15 Out2 78 truncate here
15 Out2 12- 21
lM 98
na
If last failure was captured for pattern P, generally, it’s safer to truncate to pattern P-1 because we
can’t be sure if all the failures for pattern P was captured.
er
nt
If there are many failures for the first failing pattern, we may not be able to diagnose that device
rI
with the given pattern order because we cannot be sure if we have full failure information for the
pattern.
Fo
Failing patterns from the middle cannot be eliminated – only truncated from the end.
se
U
ed
ct
tri
es
R
ng
run_diagnosis …
ni
Chain diagnosis
ai
Faults that affect chain shifting
run_diagnosis … –chain_failure
Tr
The proper diagnosis engine is automatically selected based on the
ip
status of the chain test
ch
Automatic selection controlled by:
set_diagnosis [-auto | -noauto]
ro
If the chain test pattern failed, then chain diagnosis is run
ic
12- 22
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Most physical defects behave as one or more Stuck-At faults when considering
ni
an individual failing vector
ai
Tr
ip
ch
ro
ic
12- 23
lM
na
Currently, there is no Diagnosis support for Full-Sequential or functional patterns.
er
Note: The diagnosis engine does not make any assumptions on the nature of the defect based on the
type of fault tested. This means, for example, that any failures collected while running transition
Fo
patterns could lead the diagnosis engine to find the Stuck-At fault type. Nevertheless, it is possible
to specify the logic diagnosis engine to search by preference for a defect of the delay type by using
se
ng
Stuck-at fault, delay fault, hold-time issue
ni
Uses all patterns to diagnose chain failure
ai
Includes patterns that capture values
Tr
Accuracy improves with data from more failing patterns
ip
Recommend at least 10
ch
Usage:
ro
set_diagnosis –auto
run_diagnosis <failure_file> –chain_failure
ic
12- 24
lM
na
Chain diagnosis assumes that the functional logic is defect free. If this assumption is not true, the
diagnosis results can be misleading.
er
The chain test can indicate the defect type. For example, if 0011 is used, a fast-to-rise defect might
nt
There should be no capture clock: a proper chain test is a pattern without clock capture cycle (or
pulse clock in TetraMAX terminology) after a measure PO.
se
A proper chain test is a pattern with at least all of the following transitions:
U
There can be more complex chain tests that the user can specify with set_atpg. By default, the
ct
chain test is generated as the 1st pattern. see the set_atpg command options.
tri
If chain test is not failing during the shift operation, the chain diagnosis will not help. Therefore the
es
ng
Scan cells downstream will drive invalid values to functional logic, but
ni
may capture valid values that can be observed
ai
Algorithm uses these
Tr
observations to
diagnose scan chain ?
ip
1 or 0 X
D D
physical defects Q Q
ch
SI SI
Stuck at 1/0
ro
Controllable but unobservable Uncontrollable(?) but observable
ic
12- 25
lM
na
If the first pattern is not chain test, a much lower accuracy algorithm that supports only stuck-at
chain defects will be used. It is strongly recommended that the first pattern be the chain test.
er
nt
Given the following chain order with groups of flops G1, G2 and G3, and a fault location as
follows:
Fo
When shifting in, flops G2 & G3 have unknown values. When shifting out, flop G1 and upstream
flops will have a fixed value, based on the stuck-at value of the fault. TetraMAX looks at the flops
U
If the functional logic fed by G3 outputs to G2, the G2 flops will have fixed values after capture.
ct
Therefore, we'll see G1 and G2 with fixed values. TetraMAX will say the fault is at the output of
tri
ng
Examine identified scan cell, and the scan cells before and after it,
along with the connecting nets
ni
fail.log scan chain diagnosis results: #failing_patterns=79
ai
-----------------------------------------------------------
defect type=fast-to-rise
Tr
match=100% chain=c0 position=178 master=CORE/c_rg0 (46)
match=100% chain=c0 position=179 master=CORE/c_rg2 (57)
match= 98% chain=c0 position=180 master=CORE/c_rg6 (54)
ip
defect type: type of defect
CORE/c_rg2 CORE/c_rg0
ch
match: how well simulated defect matches failure log file 179 178
chain: chain name D D
ro
Q Q
position: scan cell location in chain where position 0 is SI SI
ic
closest to the scan-out pin
master: scan cell instance name 12- 26
lM
na
No GSV for chain diagnosis.
er
ng
#failing_pat=2, #failures=2, #defects=1, #faults=1, CPU_time=0.00
Simulated : #failing_pat=2, #passing_pat=4 #failures=2
ni
------------------------------------------------------------------------
ai
Defect 1: stuck fault model, #faults=1, #failing_pat=2, #passing_pat=4,
#failures=2
Tr
------------------------------------------------------------------------
match=100.00%, #explained patterns: <failing=2, passing=4>
ip
sa1 DS i1/out (NOT)
sa0 -- i1/in (NOT) Simulation information
ch
sa1 -- f3/d (SDFF)
ro
------------------------------------------------------------------------
ic
12- 27
lM
na
Note: All information displayed in the report are accessible through
a Tcl API - useful for script automation and volume diagnostics
er
nt
#failing_patterns
rI
This indicates the total number of failing patterns in the failure file. A pattern is assumed to include
both a measure of all POs and an unload of the scan chain.
Fo
#failures
In the main header, shows the number of failures in the failure log file. In each defect's header, it
se
This indicates the number of different defects that appear to be causing the failures.
ed
#faults
Indicates the number of collapsed faults. In the main header, it indicates the total number of faults.
ct
In each defect's header, it shows the number of faults in that defect group.
tri
es
R
ng
------------------------------------------------------------------------
Defect 1: stuck fault model, #faults=1, #failing_pat=2, #passing_pat=4,
#failures=2
ni
------------------------------------------------------------------------
ai
match=100.00%, #explained patterns: <failing=2, passing=4>
Tr
sa1 DS i1/out (NOT)
sa0 -- i1/in (NOT) Failing and passing patterns
that are explained by the fault
sa1 -- f3/d (SDFF)
ip
------------------------------------------------------------------------
ch
Cell type The following faults are all equivalent
sa0 sa1 sa1 D
Fault pin pathname
ro
Fault types: sa0, sa1, str, stf, sa01, strf, bDOM, bOR, bAND, bUN
ic
Match score based on how well the fault matches the ATE failures
12- 28
lM
na
Fault types:
er
sa01 - Fault location behaves like a sa0 on some patterns, and a sa1 on others. This could be a
coupled open or a bridge type defect.
se
strf - Fault location can cause a delay on both rising and falling transitions (slow-to-rise-fall).
bAND or bOR - The defect location behaves as a wired-AND or wired-OR type bridge.
U
bDOM - The defect location behaves as the victim node of a dominant bridge.
ed
bUN - An unknown bridging type relationship exists. It indicates that there is some signal
correlation which does not behave as the well known bridging fault models.
ct
tri
es
R
ng
candidate
ni
By default, all failing patterns and subset of passing patterns are simulated to
ai
compute the match score
For a Simulated Pattern
Tr
Tester Results Simulation of a fault candidate
ip
F TFSF F T = tester
ch
S = simulator
x
F TFSP P F = fail
ro
P = pass
ic
P TPSF F 12- 29
lM
na
TFSF—tester fail, simulator fail
Number of measures that failed on the tester and the fault candidate was detected in the simulator at
er
ng
Higher match scores indicates higher confidence that the fault
ni
candidate’s location is the same as the defect’s
ai
Score components can be displayed with
Tr
run_diagnosis –verbose option
ip
match=25.00%, (TFSF=1/TFSP=3/TPSF=0), #perfect/partial match: <failing=1/1, passing=2>
sa1 NO i1/out
sa0 -- i1/I
ch
TFSF
ro
match % = X 100
TFSF + TFSP + TPSF
ic
12- 30
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Patterns that cannot be explained by any single stuck-at fault
are unexplained
ni
Physical defect detected Fault simulation of fault F1 Fault simulation of fault F2
ai
on ATE by pattern P1 (P1 explained by F1) (P1 unexplained by F2)
Tr
1 1 1
1 1
ip
1
F 0 F 0 F
0
F1
ch
1 1
1 F2
1 F 1 F 1
ro
1 1 1
ic
12- 31
lM
na
“F” indicates a failure (mismatch on the ATE, or fault simulation detection).
er
Fault F1 has identical behavior to the failure on the tester for pattern P1. Therefore, F1 explains
nt
pattern P1.
rI
But F2 had only one matching failure, so it did not match the behavior seen on the tester.
Fo
ng
ni
ai
Tr
ip
ch
ro
ic
12- 32
lM
na
The schematic here is in design view, not primitive view
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Increase confidence of defect location before beginning failure analysis
ni
ai
Tr
ip
ch
ro
ic
12- 33
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
run_diagnosis orig_fail.txt \
–write_fault_list flist.txt
read_faults flist.txt
set_atpg -decision random
ng
run_atpg –ndetect 10
write_patterns ndet.stil –format stil
ni
write_patterns ndet.bin –format binary
ai
ndet.stil ndet.bin
Tr
ip
new_fail.txt run_diagnosis new_fail.txt
ch
ro
Better Results
ic
12- 34
lM
na
This flow can be used to gain higher confidence in diagnosis results. The fault candidates in the
diagnosis results can be written out as fault list, read back into tmax for additional pattern
er
generation. The new pattern set can be re-run on the tester. The new failure log file can be re-
nt
N-detect ATPG is recommended for pattern re-generation. Can try different fault models, such as
transition and bridging.
Fo
se
U
ed
ct
tri
es
R
ng
Open in the middle of a long wire
ni
Diagnostics need layout information to
ai
accurately model these defects
Tr
Bridging behaviors with adjacent nets
Open behaviors in branches of high-fanout nets
ip
Yield analysis and PFA engineers also need
ch
physical location/layer of defect candidates
ro
ic
12- 35
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Physical data is stored on disk, not in
ni
memory
ai
No need to partition large designs
LEF/DEF PHDS
Tr
High-performance access for TetraMAX
physical diagnostics
ip
Dynamic extraction of adjacent nets and net
ch
branches
ro
Yield Explorer
ic
12- 36
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
set_physical_db -device [list "CHIPA" "1"]
LEF/DEF
# Specify the top level DEF file
set_physical_db -top_def_file chipA.def
ni
Read LEF/DEF & # Read LEF/DEF and create the PHDS database
ai
Create database write_physical_db -replace
Tr
Writing Physical Database...
PHDS LEF input directory : ./LEF
ip
DEF input directory : ./DEF
Top DEF file name : chipA.def
ch
PHDS output directory: /home/john/chipA/PHDS
Device name : CHIPA
ro
Device version : 1
Successfully created Physical Database.
ic
12- 37
lM
na
Note: PHDS may also be created in Yield Explorer
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
set_physical_db –port_number 9990
DAPListener # Start the job to access the database, the
ni
@9990 # DAPListener
open_physical_db
ai
PHDS
Tr
Starting Data Access Process...
ip
Hostname : server1234
Port Number : 9990
ch
Physical Database Directory: /home/john/proj/PHDS
Successfully started Data Access Process.
ro
ic
12- 38
lM
na
Note: a Data Access Server (DAS) may also be created in Yield Explorer
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
set_physical_db –hostname server1234
Patterns Read Patterns set_physical_db –port_number 9990
ni
set_physical_db –device [list “CHIPA” “1”]
set_physical_db –top_design TOP
ai
Connect PHDS
PHDS
Tr
# Run physical diagnosis and save results
Diagnose run_diagnosis datalog1
Failures
write_ydf TOP.1.ydf –replace
ip
run_diagnosis datalog2
ch
YDF write_ydf TOP.2.ydf –replace
...
ro
run_diagnosis datalog392
write_ydf TOP.392.ydf –replace
ic
12- 39
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Simulated : #failing_pat=30, #passing_pat=96, #failures=194
-----------------------------------------------
Defect 1: stuck-at fault model, #faults=1, #failing_pat=30, #passing_pat=96, #failures=241
ni
Observable points:
1693 1687 1696 1699 1672 1530 1529
ai
------------------------------------------------
Explained pattern list:
Tr
40 41 47 48 50 51 54 55 58 59 67 69 70 71 72 73 77 78 79 80 85 88
92 93 94 95 97 98 99 101
--------------------------------------------------
Physical Pin Data
ip
match=100.00%, #explained patterns: <failing=30, passing=96>
sa01 DS I_RISC_CORE/I_ALU/U14/ZN (inv0d1)
Cell Boundary
ch
Pin_data: X=747110 Y=652790, Layer: METAL (38)
Cell_boundary: L=746115 R=747345 B=650175 T=653865 Subnet ID
Subnet_id=4
ro
---------------------------------------------------------------- Performance Data
Total Wall Time = 22.97 sec PHDS Query Time = 22.13 sec
PHDS queries: subnets(added/total)=10/40 bridges(added/total)=28/58
ic
12- 40
lM
na
Pin_data:
• X is the horizontal coordinate of one of the vertices of the pin associated with the location of the fault
er
candidate.
nt
• Y is the vertical coordinate of one of the vertices of the pin associated with the location of the fault
candidate.
rI
Cell_boundary:
• L is the horizontal coordinate of the leftmost boundary of the cell identified with the fault candidate.
• R is the horizontal coordinate of the rightmost boundary of the cell identified with the fault candidate.
se
• B is the vertical coordinate of the bottommost boundary of the cell identified with the fault candidate.
• T is the vertical coordinate of the topmost boundary of the cell identified with the fault candidate.
U
ed
Also note that the performance data in the physical diagnosis report is slightly different than the standard
diagnosis report:
ct
The PHDS diagnosis report includes the wall time and the time it takes to query the PHDS database during
diagnosis.
tri
The second line in the report displays the number of extracted subnets and the number of bridge pairs queried
es
in the PHDS database compared to the total number of subnets and bridging pairs identified during the
previous diagnosis run. This data helps you identify any matching issues between the logical and physical
R
ng
Only considers physically possible combinations
ni
ai
Physical Topology Subnets Extracted
A
Tr
N.2 B
ip
E N.1
ch
C
ro
D
ic
12- 41
lM
na
The default flow, dynamic subnet extraction, is performed during diagnostics. Static subnet
extraction (i.e. extracting all subnets upfront) is only recommended when you run volume
er
diagnostics on a large number of failing parts. Otherwise, the additional runtime required for static
nt
ng
Different “tolerance” per layer
ni
Bridge pairs will be used in diagnostics to improve accuracy
ai
Tolerance
Tr
Neighbor
ip
Net
ch
Neighbor
ro
Net Corner-To-Corner Bridging
ic
Side-By-Side Bridging 12- 42
lM
na
Just like with subnets, bridging pairs are dynamically extracted from PHDS by default. A static
extraction flow is also available for volume diagnosis flows where it may give an overall diagnosis
er
runtime advantage.
nt
rI
ng
Describe the difference between pattern-based and
ni
cycle-based Fail Data File formats
ai
Understand how to interpret the TetraMAX
Tr
diagnosis results
ip
ch
Begin Lab 12: Diagnosis
ro
ic
12- 43
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
set_commands –secure <command> Declare the allowed commands in a
subsequently written secure image file
ni
report_commands -secure Report the secure commands
set_diagnosis –check_expected_data
ai
Checked expected data in the fail data file
set_diagnosis –incomplete_failures Indicates that the fail data is not complete
Tr
set_diagnosis –cycle_offset <n> Adjust cycle count in the fail data file
set_diagnosis -auto Automatically select the diagnosis engine
ip
run_diagnosis –display Display diagnosis results in the GSV
ch
run_diagnosis –truncate <n> Declare last pattern applied for diagnosis
run_diagnosis –chain_failure
ro
Run chain failure diagnosis engine
run_atpg –ndetect <n> Enable N-detect ATPG
ic
12- 44
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
DAY
3
9 Transition Delay Testing
ng
ni
10 On-Chip Clocking (OCC)
ai
Tr
11 Path Delay Testing
ip
12 Diagnosis
ch
ro
13 Conclusion
ic
13- 1
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Debug Test Coverage issues
ni
ai
Tr
ip
ch
ro
ic
13- 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Reduce the Test Pattern set using various methods including clock
grouping and DFTMAX compression
Write scan patterns for validation in simulation and/or passing on to
ng
ATE
ni
Simulate scan patterns using MAX testbench
ai
Modify the SPF for At-Speed testing
Tr
Read an SDC file to apply At-Speed Timing Exceptions
ip
Control Switching activity with Power-Aware ATPG
ch
ro
ic
13- 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Run diagnosis to determine the
ni
cause of a failure on the ATE
ai
Tr
ip
ch
ro
ic
13- 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
Recorded “Flash”
Training Modules
ro
ic
https://solvnet.synopsys.com/trainingcenter
13- 5
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
In addition to the
OLH, TetraMAX has
ro
HTML and PDF docs
available on SolvNet
ic
13- 6
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ATPG flow options include:
ni
Stuck-At
ai
Transition Delay
Tr
Path Delay
Bridging Faults
ip
Power-Aware
ch
On-Chip Clocking (OCC)
ro
DFTMAX Ultra Compression
TetraMAX II
ic
13- 7
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
ic
13- 8
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
ic
13- 9
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
ic
13- 10
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Downloading Lab Files From SolvNet
ni
ai
Tr
ip
ch
ro
ic
13- 11
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
From the SolvNet home page:
ic
https://solvnet.synopsys.com/ 13- 12
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
2017.09
2016.03
ni
ai
Tr
ip
ch
Click to download the .tar.gz file.
(You may be asked for your SolvNet password a second time)
ro
A README file will walk you through the installation steps
ic
13- 13
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ni
ai
Tr
ip
ch
ro
ic
lM
© 2018 Synopsys, Inc. All Rights Reserved 20181001
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Workshop Schedule and Registration
Download Labs
(SolvNet ID required)
ni
Drill down to areas of interest:
ai
SolvNet online support
Tr
https://solvnet.synopsys.com
Online technical information and access to
ip
support resources
Documentation & Media
ch
Ask an Expert:
Synopsys Support Center
ro
https://onlinecase.synopsys.com
ic
training.synopsys.com
CS - 2
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Immediate access to
the latest technical information
Product Update Training
Methodology Training
ng
Thousands of expert-authored
articles, Q&As, scripts and tool tips
ni
Open a Support Center Case
ai
Release information
Tr
Online documentation
License keys
ip
ch
Synopsys announcements (latest
ro
tool, event and product information)
ic
https://solvnet.synopsys.com CS - 3
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
1. Go to SolvNet page:
https://solvnet.synopsys.com/
2. Click on:
“Sign Up for an Account”
ng
3. Pick a username and password.
ni
4. You will need your “Site ID”
ai
For Information on how to find your
Site ID, select the “Synopsys Site ID”
Tr
link
ip
just a few minutes.
ch
ro
ic
https://solvnet.synopsys.com/ProcessRegistration CS - 4
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
Many tool specialist AEs with
>12 years industry experience
ni
Engineers located worldwide
ai
Great wealth of applied knowledge:
Service >2000 issues per month
Tr
ip
available via WebEx
ch
Contact us:
Open a support case
ro
http://www.synopsys.com/Support/GlobalSupportCenters
ic
CS - 5
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
Synopsys Professional Services (SPS) Consultants:
ai
Available for in-depth, on-site, dedicated, custom consulting
Tr
Contact your Sales Account Manager for more details
ip
ch
SNUG (Synopsys Users Group):
ro
https://www.synopsys.com/community/snug.html
ic
CS - 6
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Customer Training
https://www.synopsys.com/support/training.html
Register for a Class
ng
Download Labs
SolvNet
ni
https://solvnet.synopsys.com
ai
Tool Documentation and Support Articles
Tr
ip
Open a Support Case (Support Center)
ch
Other Technical Resources
Synopsys Users Group (SNUG)
ro
Application Consultants
ic
Synopsys Professional Services CS - 7
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R