Lab Troubleshooting Low Coverage
Lab Troubleshooting Low Coverage
Lab
Troubleshooting Low Coverage
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 learn how to troubleshoot areas of low test coverage.
Objectives
Upon completing this lab, you should be able to:
Identify blocks of low test coverage
Determine untestable fault classifications
Determine the cause of ATPG Untestable (AU) faults
Use Tessent Visualizer to debug faults
Use report_test_stimulus to display the test set stimulus
Setup Instructions
1. Log in to your workstation if you are not already logged in.
2. Change to the $ATPG_LABS/Lab10/Exercise1 directory.
shell> cd $ATPG_LABS/Lab10/Exercise1
Notice that the script starts Tessent Shell. All chains and clocks are defined
and the tool remains in SETUP mode.
Design: design/gate_scan_8.v
Dofile: setup_tessent_shell_broken.do
4. After the faults are loaded, report statistics before you create patterns.
ANALYSIS> report_statistics
The total number of AU faults, broken down into black boxes and
unclassified is: BB___________ SEQ _______ Unclassified __________
From the Columns and Filter Editors button , expand the Fault
Statistics, select “Test Coverage”, “Fault Coverage” and any specific
fault that you need to add, like the DS and UO faults – Click OK
Double click on “bigchip” and then find and double click “p1”. Notice
that the module “fpu1” has a test coverage less than 82%. This is a good
place to start the investigation.
You have identified that /p1/fpu1 is reporting low test coverage. The
following steps show you one way of determining a solution to low test
coverage.
What parallel pattern number successfully controls the fault site? ______
What are some of the testing issues that can make a fault
Atpg_Untestable?____________________________________________
When debugging coverage and DRC issues, it is usually best to view the
Flat Schematic which shows the ATPG primitives in the schematic.
Notice that most of the pins have F-F on their inputs and outputs, except for
F-AU on the A1 pin. The F classification denotes that it could be a fault site,
but it is not in the current fault list. In other words, the fault site has not been
added for testing.
4. Recall from fault analysis that the fault was controllable by setting the
fault site to 0 using parallel_pattern 0. Set the gate report to display results
of parallel pattern 0.
a. Select Settings > Gate Report, This action loads the Gate Report
Settings dialog box.
b. Check the Parallel Pattern option and enter 0 (zero) and click OK.
The ATPG tool uses a zero delay simulator, so as soon as the clock pulses,
all outputs update. Notice that the value on the A1 input is 0XX. These three
values represent the state before the leading edge, the state after the leading
edge, and the state after the trailing edge of the clock. Parallel pattern 0 sets
the fault site to the controlling value (0) before the leading edge of the clock.
Since that was successful, you are not concerned with the other two clock
frames, and they are reported as Xs (or don’t cares).
7. Determine if the DFF is part of the primitive model for a Scan Flip Flop.
Select the DFF and <cntl>R. This issues the command report_gates
for the DFF.
Is this a part of a scan cell? _______________________
What is it’s cell ID and which chain is it connected to?
________________
We now know that A1 is controllable, since it is directly connected to a
scan cell.
find that this fault site can be controlled and observed separately, but
cannot be detected when combining both conditions.
1. Delete the current pattern set from memory and clear the parallel pattern
buffer.
ANALYSIS> reset_state
2. Using the IDs of the gates driving the NAND gate, set A1 to 0 and A0 to
1. A1 needs to be 0 to test for stuck-at-1 fault. A0 needs to be 1 to
propagate the fault to an observation point.
1. Create a fault list for just U2694/A1 stuck at one. Select the A1 Pin and
RMB. Notice that the last line of the menu has the “Copy hierarchical name”.
Click on that line so the path is in your paste buffer.
2. Create a file that contains the fault list for just A1. Remember, you can
“paste” the pathname.
ANALYSIS> write_faults debugA1_stuck.flist \
/p1/fpu1/U2694/A1 -stuck 1 –replace
4. Now run design rules checks and read the fault list debugA1.flist
a. Check design rules
SETUP> check_design_rules
b. Read the fault list. Note, that when we wrote the fault list, A1 was
classified as an AU fault. When we read the fault list, it will be
reclassified as a UC. For this case, this is desired. If you wish to
keep the existing classifications (For example, your fault list as DS
classifications) you can use the -retain switch.
6. As you did earlier in the lab, analyze the fault using the -display switch.
Note: You can have the system report the pin pathname by using
report_faults.
7. Add the parallel pattern to the display if it is not already there. (Note: use
the history command to show the previously executed commands.)
Review the transcript. Was the fault able to be observed at the Y pin of the
NAND gate? ___________
9. Now, trace forward from U2694/Y to an endpoint. This will expose the
combinational instances up to a sequential element.
10. Determine if the fault can be propagated to the input of the TLA by
observing the output of U843 (GateID=12531).
11. Now, is the fault observable at the output of the TLA? Use the same
analysis using the GATEID for the TLA.
Do you think the fault can propagate through this latch? ___________
Why? ___________________________________________________
The tool “learns” that the gate is a TLA (transparent latch) during DRC.
Values can propagate through a TLA only when the enable is active – in this
Note case, when CLK = 1.
12. Now, trace the CLK pin of the TLA backwards to an endpoint. Also, go
back to U2694/A1 and trace it backward to an endpoint. Notice that the
same scan cell that drives U2694/A1 is also in the path of the TLA clock.
So if U2694/A1 = 0 the TLA Clock will also =0. The only way to detect
this fault is to change the design
Many times, low test coverage can be caused by DRC violations, so next you
examine the DRC violations.
____________________________________________________
_____________________________________________________________
2. Look for the problem with the module that needs to be defined as a black
box (Search for instance CLA_0).
Notice that the script starts Tessent Shell. All chains and clocks are defined
and the tool remains in SETUP mode.
Design: design/gate_scan_8_fixed.v
Dofile: solutions/setup_tessent_shell_fixed.do
7. Display statistics for the /p1/fpu1 instance either in the transcript or in the
Instance Browser view of the Tessent Visualizer.
How do the new results compare to those from the first run?
____________________________________________________________
9. Investigate DRC violations and fill in the last column in Table 10-1.
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 1
Based on the warning messages, which module(s) should be defined as black
boxes? CLA_0
Step 6
The total number of AU faults, broken down into black boxes and
unclassified is: BB: 65; SEQ: 4; Unclassified: 87;
The total number of UC + UO faults are 997
The total test coverage for the design is 87.25%
The total fault coverage for the design is 80.31%
Step 10
Is the fault controllable? Yes
Is the fault observable? No
What parallel pattern number successfully controls the fault site? 0
What is the pattern type for the controlling pattern? clock_sequential
What are some of the testing issues that can make a fault Atpg_Untestable?
Fault site cannot be propagated to any observation point (path detection
problems) or due to constraints or limitations placed on ATPG tool.
Step 7
Is this a part of a scan cell? Yes
What is it’s cell ID and which chain is it connected to? 162 and chain 6
Step 2
What do you observe in the transcript window? Controllability
justification was not successful - fault status = atpg_untestable
Step 8
Was the fault able to be observed at the Y pin of the NAND gate? Yes
Step 10
Was this successful? Yes
Step 11
Was the fault observable? No
What is the TLA name? Transparent Latch (fract_denorm_reg)
What is the enable (CLK) value? (0XX)
Do you think the fault can propagate through this latch? No
Step 1
Table: DRC Violation Comparison [Left for student]
Step 2
Is the TLA fract_denorm_reg[9], you identified as an issue earlier, in the
report? Yes
Step 2
What might you do to fix the problem? Since CLA is commented to be
defined as a black box, defining it would be a possible fix to the problem.
Step 2
Do you need to define a black box? No
Step 7
The total test coverage for the fpu1 instance is 98.44%
How do the new results compare to those from the first run? Approximately
12% increment in the new results
Step 8
What did you find? Analyzing /p1/fpu1/U2694/A1 stuck-at 1 finds:
Detected by simulation (DS) no longer AU