Lab Understanding ATPG Messaging
Lab Understanding ATPG Messaging
Lab
Understanding ATPG Messaging
This document contains information that is trade secret and proprietary to Mentor Graphics Corporation or its licensors
and is subject to license terms. No part of this document may be photocopied, reproduced, translated, distributed,
disclosed or provided to third parties without the prior written consent of Mentor Graphics.
This document is for information and instruction purposes. Mentor Graphics reserves the right to make
changes in specifications and other information contained in this publication without prior notice, and the
reader should, in all cases, consult Mentor Graphics to determine whether any changes have been
made.
The terms and conditions governing the sale and licensing of Mentor Graphics products are set forth in
written agreements between Mentor Graphics and its customers. No representation or other affirmation
of fact contained in this publication shall be deemed to be a warranty or give rise to any liability of Mentor
Graphics whatsoever.
MENTOR GRAPHICS MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS MATERIAL
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.
MENTOR GRAPHICS SHALL NOT BE LIABLE FOR ANY INCIDENTAL, INDIRECT, SPECIAL, OR
CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING BUT NOT LIMITED TO LOST PROFITS)
ARISING OUT OF OR RELATED TO THIS PUBLICATION OR THE INFORMATION CONTAINED IN IT,
EVEN IF MENTOR GRAPHICS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
U.S. GOVERNMENT LICENSE RIGHTS: The software and documentation were developed entirely at
private expense and are commercial computer software and commercial computer software
documentation within the meaning of the applicable acquisition regulations. Accordingly, pursuant to
FAR 48 CFR 12.212 and DFARS 48 CFR 227.7202, use, duplication and disclosure by or for the U.S.
Government or a U.S. Government subcontractor is subject solely to the terms and conditions set forth
in the license agreement provided with the software, except for provisions which are contrary to
applicable mandatory federal laws.
TRADEMARKS: The trademarks, logos and service marks ("Marks") used herein are the property of
Mentor Graphics Corporation or other parties. No one is permitted to use these Marks without the prior
written consent of Mentor Graphics or the owner of the Mark, as applicable. The use herein of a third-
party Mark is not an attempt to indicate Mentor Graphics as a source of a product, but is intended to
indicate a product from, or associated with, a particular third party. A current list of Mentor Graphics’
trademarks may be viewed at: www.mentor.com/trademarks.
End-User License Agreement: You can print a copy of the End-User License Agreement from:
www.mentor.com/eula.
If this is the first time you are launching this VM (Virtual Machine), you must
download and extract the lab data as described in the "Obtaining Lab Data
Caution
section below.
Whenever you are using the VM for lab exercises and are finished with your
session, please use the "Disconnect" feature of the Desktop Viewer before the
VM times out to preserve the data from one session to the next. Failure to do
so will remove the VM, and its contents.
If the VM was removed, you will be presented with a new VM requiring you
to follow the download and extract process. This allows you to "refresh" the
lab data so you can go through the labs again with a new database.
The environment uses bash and is ready to use for the labs with all needed
environment variables already setup.
If this is the first time you are starting a session for this VM, the atpg_data
directory will not be in the home directory and you will need to download and
extract it using the following instructions.
3. In the resultant window, select the Download button, enable the Save File
button, then select the OK button to download the file.
Move the file in the Downloads directory to the home directory. If you are using
the terminal (Applications>Favorites>Terminal) you can use the following
command:
mv ./Downloads/tessent_atpg_data_v2020.1_20200611.tgz .
4. In a terminal window, extract the files from the compressed tar file using the
command:
You should now have a directory named atpg_data in your $HOME directory.
That directory contains all the files you need to perform the exercises, in this
learning path.
Introduction
In this lab you will gain some experience with reading and analyzing ATPG
messaging, as well as determining the cause of undetected faults. You will also
obtain a quick estimate of test coverage.
All the exercises in this lab are performed from the command line using
Tessent Shell, which checks out a Tessent FastScan license to perform ATPG.
Objectives
Upon completing this lab, you should be able to:
Interpret the following reports and messages generated by the ATPG tools:
o Invocation messages/warnings
o DRC reports/messages
o ATPG reports
o Fault classifications
o Special messages
o Test coverage report
Setup Instructions
1. Log in to your workstation if you are not already logged in.
2. Change to the $ATPG_LABS/Lab4/Exercise1 directory.
shell> cd $ATPG_LABS/Lab4/Exercise1
Be sure to use the –replace switch with the log file or you could generate
an error message if that file already exists.
Note
You are inside of the tool and should have the SETUP prompt.
_______________________________________________________
_______________________________________________________
What is the issue with some of the pins in the undefined module?
_______________________________________________________
7. Specify the undefined module as black box. (Use the command listed in
the session transcript window as a warning.)
8. Show the usage help message for the add_black_boxes command and
explain what the -Auto switch does.
___________________________________________________________
___________________________________________________________
2. Study the various messages and warnings that display in the session
transcript window and answer the following questions. Remember to look
in the documentation if you need help answering the questions.
_________________________________________________________
You also can find FN1 rule violations by entering the following
command:
SETUP> report_flattener_rules FN1 -verbose
___________________________________________________________
The tool replaces the design cells in the netlist with DFT primitives. The
netlist is flattened and stored in an internal format.
3. Look at the results of the circuit learning analyses and identify the
following:
How many control signals were identified in all? ______________
This design has been scan inserted. In most cases, no matter what scan insertion
tool is used, the dofile and test procedure file is also generated. For this part of
the lab, you will manually create what would normally be the dofile.
Use the example above and the following table to add the rest of the scan
chain definitions.
Tessent Shell performs Design Rule Checks using the information in the test
procedure file.
Several messages are written to the session transcript window:
chain1______chain2______chain3______chain4______
What is an E5 violation?
____________________________________________________
What does the manual say about E5 violations with regards to regular
(uncompressed patterns) ATPG?
____________________________________________________
____________________________________________________
Observe the reported messages and status in the session transcript window
during test pattern generation and answer the following questions.
_________________________________________________________
6. Scroll up in the session transcript window until you come to the place
where the tool does an analysis on the design. This analysis is done right
after you enter the create_patterns command. You should see a
section called “Analyzing the design”. Adjust the window as needed so
that you can view the report. If you have trouble scrolling up to the
“Analyzing the design” report, open the logfile and view it there.
A record of the session is kept in the logfile, which you created at the
beginning when you launched Tessent Shell (logs/ex1.log). You always can
Note refer to the logfile whenever you want to glean information or troubleshoot a
problem in the session. For this reason, Mentor Graphics recommends that
you always create a logfile when you invoke Tessent Shell.
This report shows the results of analyzing the design and design rule
checking. Tessent Shell will modify parameters to improve coverage.
We will discuss the details of the DRC analysis and how it affects the
pattern generation in the Design Rule Check module.
The test pattern statistics display in the session transcript window. This
information provides data about faults in each class and across all classes.
Details of coverage, pattern count, and the number of simulations performed
during pattern generation are reported here.
8. Refer to the session transcript window and fill in the following tables.
FU (full)
UO (unobserved)
DS (det_sim)
DI (det_imp)
PU
(posdet_untestable)
PT (posdet_testable)
UU (unused)
TI (tied)
RE (redundant)
AU (atpg_untestable)
Regarding the AU faults, how are they further broken down? __UDN, BB,
WIRE, SEQ, Unclassified__________
_____________________________________________________________
The aborted faults are those that are still untested after the abort limit was
increased.
For more information on fault classes, see “Fault Modeling” and “Fault
Classes” in Chapter 2 of the Tessent Scan and ATPG User’s Manual.
Note
# Total Faults
Coverage/Effective
ness
test_coverage
fault_coverage
atpg_effectiveness
#test_patterns
#basic_patterns
#clock_sequential_patterns
# simulated_patterns
CPU_time (secs)
_____________________________________________________________
How many faults are UC+UO, and what fault sub-type is reported?
________________________
Looking at the results, what observation can you make regarding the sub-
category black_boxes? __________________________________________
_____________________________________________________________
Setup Instructions
1. Change to the $ATPG_LABS/Lab4/Exercise2 directory.
shell> cd $ATPG_LABS/Lab4/Exercise2
Information messages:
Reading Verilog netlist and cell library
Warning messages:
_________________________________________________________
_________________________________________________________
4. Add clocks.
____________________________________________________________
____________________________________________________________
Add the Scan Group, Test Procedure File, and Scan Circuitry
A dofile has been saved for you to add the scan groups and scan chains. The
exact same commands from the previous exercise have been saved into a file
called results/add_scanchains.do. Use this file instead of typing the commands as
you did in the previous exercise.
1. Set up the scan group and scan chains.
SETUP> dofile results/add_scanchains.do
_________________________________
What warning is generated about the effect of the scan chains and the
patterns that will be generated? _________________________________
___________________________________________________________
3. Ignore any DRCs and generate test patterns for stuck-at faults.
ANALYSIS> create_patterns
4. Note the number of untestable faults Unused (UU) Redundant (RE), and
Tied (TI) fault classes.
5. How many faults are classified as AU faults and what are the sub
classifications?
Sub-classifications of AU ______________________________________
Also note the undetected faults UC+UO. What sub-heading is listed under this
fault type?
________________________
6. What types of test patterns make up the complete set, and how many patterns
of each type are there?
Notice that there are still undetected faults affecting test coverage. You analyze
these and determine their cause. First, take a look at the various fault classes and
analyze them. What does fault grouping tell you about the undetected faults?
_________________________________________________________________
_________________________________________________________________
For more information on fault modeling and fault classes, see Chapter 2 of
the Tessent Scan and ATPG User’s Manual.
Note
This gives you all the information needed to further investigate individual
faults.
What does the resulting fault analysis tell you about the fault?
_________________________________________________________
_________________________________________________________
What does the resulting fault analysis tell you about the fault?
_________________________________________________________
_________________________________________________________
_________________________________________________________
Another useful way to analyze faults is through the Tessent Visualizer Flat
Schematic window. Analyze the fault /p5/pic1/U1511/A2 using this method.
1. Analyze the fault and display the debug window in Tessent Visualizer
-display
This performs the analysis we’ve seen previously and reports the results
to the transcript and opens the Flat Schematic window and displays the
instance where the AU fault resides, and the instance that is driving the
specific port.
From the Gate Report Settings dialogue box, select Fault Status and click
OK.
This will display the fault classifications for the displayed instances.
Notice that the faults are reported in the form of AU.BB-AU.BB. The first
set before the colon is the fault class for stuck-at-0 followed by the fault
class for stuck-at-1. So, for this example, the node at the Y output of the
NOR gate is AU.BB for stuck-at-0, and AU.BB for stuck-at-1. Notice that
the fault designation is BB.
Recall from the analyze_fault report in the transcript window, the fault is
said to be blocked at what instance? ________________________________
_____________________________________________________________
_____________________________________________________________
2. Click the LMB on the Y output of U1511. Notice that this displays the
picdram that you placed into a blackbox at the beginning of the lab.
This is what is causing the blockage.
Setup Instructions
1. Change to the $ATPG_LABS/Lab4/Exercise3 directory.
shell> cd $ATPG_LABS/Lab4/Exercise3
____________________________________________________________
____________________________________________________________
2. Add clocks.
A dofile has been saved for you to add the scan groups and scan chains. The
exact same commands from the previous exercise have been saved into a file
called add_scanchains.do. Use this file instead of typing the commands at the
SETUP prompt.
1. Set up the scan group with the following information:
SETUP> dofile results/add_scanchains.do
Fault sampling is a method for obtaining a quick estimate of pattern coverage for
large circuits. Fault sampling creates a smaller pattern set for simulation. Use the
set_fault_sampling command to specify a percentage (between 0 and 100) of
the total number of faults you want to process.
3. Examine the statistics report and complete the “Fault Sample 10%
column.
Total Faults
det_simulation (DS)
det_implication (DI)
Test Coverage
Fault Coverage
Total Patterns
6. Create patterns.
Review
___________________________________________________________
___________________________________________________________
__________________________________________________________
These labs were qualified using Tessent 2020.1 and ModelSim 2020.2, if
other Tessent versions were used, results contained in tables in these labs
Note may differ slightly from those shown in this Lab Answers section.
Exercise 1
Step 6
What is defined as the top of the design? cpu_top
Which modules are undefined? tbuf, picdram, nand02_tst
What is the issue with the nets? Undriven net in netlist module.
What is the issue with some of the pins in the undefined module?
Step 8
Does this give you the information you need? Yes
Step 2
What is an FN1 violation? This rule determines if a module net is floating
Step 3
How many control signals were identified in all? 4 control signals
How many clocks are there? 4 clocks
Step 4
As you did in Lab 2, open the Text Viewer, then view FN4.txt that was
created in the step above.
How many unused instance nets are there? 1484
Step 4
How many memory elements are there? 1484 memory elements
What is the length of each of the four scan chains?
Step 5
How many patterns were generated? 302 patterns were generated
Step 8
Table 4-2: Report Statistics
Report Statistics
FU (full) 142594
UO (unobserved) 70
DS (det_sim) 117742
DI (det_imp) 9884
PU 40
(posdet_untestable)
PT (posdet_testable) 7
UU (unused) 56
TI (tied) 91
RE (redundant) 12159
AU (atpg_untestable) 2545
test_coverage 97.97%
fault_coverage 89.52%
atpg_effectiveness 99.95%
#test_patterns 302
#basic_patterns 82
#clock_sequential_patterns 220
# simulated_patterns 302
Step 9
How many are faults are untestable? UT: 12306
How many faults are undetected? UD (UC+UO): 70
How many faults are UC+UO, and what fault sub-type is reported? 70
UC+UO [AAB (atpg_abort) 70 ( 0.05%)]
Looking at the results, what observation can you make regarding the sub-
category black_boxes? 870 faults are contributed by black boxes in the
design but ATPG could not find patterns for it
Exercise 2
Step 2
What warning messages do you see?
Warning: Undefined modules were found
Warning: 5 cases: Undriven net in netlist module
Warning: 1 case: Undefined module pin assumed to be inout
Warning: 3 cases: Undefined module pin assumed to be input
Step 4
Various messages and warnings display in the transcript. What warning
messages do you see?
Warning: Total number of loops broken = 7
Warning: Number of loops broken without duplication = 7
Warning: Rule FN1 violation occurs 6 times
Warning: Rule FN4 violation occurs 1484 times
Add the Scan Group, Test Procedure File, and Scan Circuitry
Step 2
Step 4
Unused (UU) : 56
Redundant (RE) : 12159
Tied (TI) : 91
Step 5
Number of AU faults: 2545
Sub-classifications of AU:
UDN (undriven) 574 (0.40%)
BB (black_boxes) 870 (0.61%)
WIRE (dominated_by_wire 196 (0.14%)
SEQ (sequential_depth) 42 (0.03%)
Unclassified 863 (0.61%)
How might black boxes affect test coverage?
Black-Boxes fault contribute to 0.61% of total untestable faults and
affect test-coverage significantly since they go undetected
Also note the undetected faults UC+UO. What sub-heading is listed under
this fault type?
UC+UO: [AAB (atpg_abort) - 70 ( 0.05%)]
Step 6
Basic patterns; No. of patterns: 82
Clock Sequential patterns; No. of patterns: 220
Step 3
Code (fault code) — AU (in this case) — what additional information about
the AU fault can you discern? It says AU.BB meaning it is an ATPG
untestable fault with sub-class black boxes.
Step 4
Why did you use -stuck 0? To specify that we need to analyze “stuck-0”
fault.
What does the resulting fault analysis tell you about the fault? The fault site
cannot propagate to any observation point
Where is the fault blocked? Fault is blocked at /p4/pic1/regs/picdram (182)
due to tieX behavior
Step 5
AU.BB in the fault list. Recall that BB stands for? Black-Boxes
What does the resulting fault analysis tell you about the fault?
Fault analysis for /p7/pic1/add_794/U8
Current fault classification = AU.BB (atpg_untestable).
Fault site cannot be set to 0 or 1 due to constrained logic and no tie
gate sources were identified.
Step 1
Recall from the analyze_fault report in the transcript window, the fault is
said to be blocked at what instance? Fault is blocked at
/p5/pic1/regs/picdram (153)
Exercise 3
Step 1
Various messages and warnings appear in the transcript. What warning
messages do you see?
Warning: 2 cases: Undriven net in netlist module
Warning: Net 'CO' in module 'picalu_DW01_sub_9_0' is not driven
Warning: Net 'CO' in module 'picalu_DW01_add_9_0' is not driven
Fault Statistics
Review
What command do you use to show fault classifications and coverage?
‘create_patterns’ or in cases ‘report_statistics’