Professional Documents
Culture Documents
Tmax 2017.09 LG
Tmax 2017.09 LG
Tmax 2017.09 LG
ni
ai
Tr
ip
TetraMAX
ch
Workshop
ro
ic
Lab Guide
30-I-021-SLG-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
ni
ai
Tr
ip
ch
ro
Learning Objectives
ic
lM
During this lab, you will debug reading library and design
na
building problems.
er
Lab Duration
45 minutes
Getting Started
ng
If you need help…
ni
ai
Use the lecture material, man pages, TetraMAX On-Line Help, or the User
Guide.
Tr
BUILD-T> help –v read_netist
ip
DRC-T> man run_drc
ch
DRC-T> man s22
ro
TEST-T> man set_atpg
ic
Remember the history commands! lM
na
BUILD-T> history
BUILD-T> !!
er
nt
rI
You can also hit the TAB key while typing to complete command names.
U
ed
ct
tri
es
R
Background
The design used for ATPG during this entire workshop, ORCA, is depicted below.
The design has two main interfaces, a PCI interface and an SDRAM bus. The PCI
interface can operate at frequencies of 33 and 66 MHz. The SDRAM bus is capable
of addressing PC133 type memory.
ng
The processor core consists of a high-speed RISC machine. Under normal
ni
circumstances RISC_CORE operates at a frequency of 200 MHz. In power save
ai
mode the frequency drops down to 100 MHz. The remaining components of ORCA
always operate at a frequency of 100 MHz.
Tr
All asynchronous interfaces are isolated with two-port FIFOs.
ip
ch
100
ro
ORCA
ic
Instructions
PARSER
66/33 66/33
lM
100
na
200/100
PCI_RFIFO
er
133
SDRAM_RFIFO
BLENDER
SDRAM
SDRAM_IF
se
Bus
SDRAM_WFIFO
U
ed
It is not important to understand the full functionality of this design (in fact, this
ct
design is NOT fully functional!). This design is merely intended to give you an
understanding of the issues that can occur when performing ATPG on multi-clock
tri
designs.
es
The structural Verilog simulation descriptions for the technology library used by the
R
ORCA design are stored in a core.v file for the core cells (nand/nor/not/xor gates,
flip-flops, latches, etc.) and an io.v file for the I/O pads.
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
to refer to this section to verify your answers, or to obtain help with the execution of
ng
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Invoke TetraMAX
ai
1. Make sure your current working directory is lab2_build.
Tr
2. Start the TetraMAX GUI and observe the startup messages.
ip
unix% cd lab2_build
ch
unix% tmax &
ro
ic
Task 2. Read I/O and Core Library Files
1.
lM
To read in the I/O cell library, enter this command at the input line:
na
BUILD-T> read_netlist ../libs/io.v
er
.....................................................................................................
rI
Fo
...................................................................................................
es
BUILD-T> report_violations n2
Question 3. What construct seems to be the cause for all the warnings?
...................................................................................................
ng
...................................................................................................
ni
5. Generate a summary modules report and answer the following questions.
ai
BUILD-T> report_modules -summary
Tr
Question 5. How many modules were structural?
ip
ch
...................................................................................................
ro
Question 6. How many modules contained behavioral constructs?
ic
...................................................................................................
Question 7. lM
How many UDPs were combinational versus sequential?
na
...................................................................................................
er
BUILD-T> run_build_model
ed
...................................................................................................
es
...................................................................................................
BUILD-T> man b5
4. Perform the first suggestion in the What Next section and answer the
following questions.
ng
ni
Question 10. How many modules are undefined?
ai
...................................................................................................
Tr
Question 11. What command can be used to define a black box?
ip
...................................................................................................
ch
5. Define the black boxes for all the undefined modules.
ro
BUILD-T> set_build –black_box [list CLKMUL PLL]
ic
BUILD-T> set_build –black_box [list ram32x32 ram32x64
ram16x128] lM
na
er
BUILD-T> run_build_model
rI
Fo
Examine the run build transcript and answer the following questions.
How many primitives did TetraMAX use to model the
se
Question 12.
ORCA design functionality?
U
...................................................................................................
ed
...................................................................................................
tri
es
R
ng
...................................................................................................
ni
Question 15. What primitive is used only once?
ai
...................................................................................................
Tr
8. Enter TEST mode by running DRC with the SPF file, orca_final.spf.
ip
DRC-T> run_drc ../design_data/orca_final.spf
ch
Question 16. Did the B and N violations stop TetraMAX from proceeding
ro
to TEST mode?
ic
...................................................................................................
9.
lM
Use the following command to run automatic ATPG.
na
Note: The run_atpg –auto command will automatically
populate the fault list (add_faults –all) if there are no
er
existing faults
nt
rI
Question 17. What is the test coverage when using black box models for
the RAMS?
se
...................................................................................................
U
Question 18. Were there any warnings during ATPG related to possible
ed
library problems?
ct
...................................................................................................
tri
es
R
ng
2. Remove all the black box definitions.
ni
BUILD-T> set_build –reset_boxes
ai
Tr
3. Read in the ../libs/rams_sim.v file, which contains the simulation
models for the memory cells.
ip
BUILD-T> read_netlist ../libs/rams_sim.v
ch
What violation occurred?
ro
Question 19.
ic
...................................................................................................
4. lM
Read in the ../libs/rams.v file which contains the ATPG models for the
memory cells.
na
...................................................................................................
Fo
6. Re-apply the black box specification only on the CLKMUL and PLL blocks,
Build the ORCA design and answer the following questions.
ct
tri
BUILD-T> run_build_model
R
.....................................................................................................
7. Use the following command to generate a memory report and then answer
following question.
ng
...................................................................................................
ni
8. Regenerate the report with the -verbose option and answer the following
ai
question.
Tr
Question 23. Which type of ram is used the most?
ip
...................................................................................................
ch
9. Enter TEST mode:
ro
DRC-T> run_drc ../design_data/orca_final.spf
ic
10.
lM
Use the following commands to run fast sequential ATPG.
na
TEST-T> set_atpg –capture 4
er
Question 24. How does the test coverage with memory models compare to
the test coverage obtained with black box models?
Fo
...................................................................................................
se
U
Answers / Solutions
ng
No errors were reported.
ni
Question 2. What violations were reported? Which is most severe?
ai
N2 and N5. N2 is most severe since it indicates an illegal
Tr
construct in the model.
Question 3. What construct seems to be the cause for all the warnings?
ip
Most violations were caused by the double equal (“= =”)
ch
operator.
ro
(Operator "==" not supported).
ic
There were also warnings due to “always”, “specify”,
“initial”, “task”, and “event” not supported. They are all
behavioral constructs. lM
Question 4. Is this construct a behavioral or structural construct in
na
Verilog?
er
Behavioral.
nt
respectively.
ct
tri
es
R
ng
No, because until an ATPG model is built, you cannot enter
DRC mode. The Graphical Schematic Viewer (GSV) is not
ni
available during BUILD mode.
ai
Question 10. How many modules are undefined?
Tr
report_modules –undefined indicates there are 5
ip
Question 11. What command can be used to define a black box?
ch
set_build –black_box [list PLL CLKMUL]
ro
set_build –black_box [list ram32x32 ram32x64
ic
ram16x128]
Question 12. lM
How many primitives did TetraMAX use to model the
ORCA design functionality?
na
#primitives=30831
er
Question 16. Did the B and N violations stop TetraMAX from proceeding
ed
to TEST mode?
ct
Question 17. What is the test coverage when using black box models for
the RAMS?
es
Question 18. Were there any warnings during ATPG related to possible
library problems?
***********************************************************
ng
* NOTICE: The following DRC violations were previously *
ni
* encountered. The presence of these violations is an *
ai
* indicator that it is possible that the ATPG patterns *
* created during this process may fail in simulation. *
Tr
* *
ip
* Rules: N20 C13 *
***********************************************************
ch
ro
Task 4. Reading RAM Models.
ic
Question 19. What violation occurred?
lM
N2 violations are reported.
na
Question 20. What error occurred?
er
Question 24. How does the test coverage with memory models compare
tri
ng
ni
ai
Tr
ip
ch
ro
Learning Objectives
ic
lM
During this lab, you will create a Test Protocol for the
na
ORCA design using Quick STIL commands and analyze
typical DRC violations.
er
nt
commands
Debug S1 violations using the GSV and Analyze button
se
Lab Duration
30 minutes
Background
The Test Protocol is not yet available for the version of the ORCA design in this
lab. You will create a STIL format Test Protocol using Quick STIL commands. A
partial command file is provided. You will debug a common DRC violation to
determine what additional commands are needed.
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
to refer to this section to verify your answers, or to obtain help with the execution of
ng
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Invoke TetraMAX
ai
1. Make sure your current working directory is lab3_drc.
Tr
2. Start the TetraMAX GUI and observe the startup messages.
ip
ch
unix% cd lab3_drc
unix% tmax &
ro
ic
Task 2. Read Design and Enter DRC Mode lM
1. Read the design netlist for the ORCA design.
na
er
Question 1. Why did you not have to read in the core and I/O cell files
U
....................................................................................................
ct
A file has already been prepared that contains some of the scan specifications for the
es
ng
ni
2. Perform the scan design rule checks (there is no STIL Protocol File to specify
ai
yet.)
Tr
DRC-T> run_drc
ip
ch
Question 2. Did you enter TEST mode?
ro
.....................................................................................................
ic
Question 3. What violation(s) occurred?
lM
....................................................................................................
na
Task 4. Debug S1 Violations
er
1. Move the mouse so the cursor is directly over the first S1 violation in the
nt
DRC transcript.
rI
Click on your RMB (Right Mouse Button) and select Analyze Violation.
Fo
.....................................................................................................
se
.....................................................................................................
ct
tri
Note: In the GSV, the scan path is annotated with the “S” character when
viewing Shift pin data (shown as “SSS” in the GSV). This can
es
.....................................................................................................
DRC-T> add_ . . .
DRC-T> run_drc
ng
ni
Question 7. Do any of the scan chain trace correctly now?
ai
.....................................................................................................
Tr
3. Move the mouse so the cursor is directly over the first S1 violation in the
DRC transcript.
ip
ch
Click on your RMB (Right Mouse Button) and select Analyze Violation.
Question 8. Looking at the graphics in the GSV what appears to be the
ro
cause for the S1 violation now?
ic
.....................................................................................................
Question 9.
lM
Which specification seems to be missing from the spf.tcl file?
na
.....................................................................................................
er
DRC-T> add_ . . .
Fo
DRC-T> run_drc
se
Question 10. What is the only chain that traces correctly now?
.....................................................................................................
U
ed
5. Move the mouse so the cursor is directly over one of the remaining S1
violations in the DRC transcript.
ct
Click on your RMB (Right Mouse Button) and select Analyze Violation.
tri
Question 11. Looking at the graphics in the GSV what appears to be the
es
......................................................................................................
Question 12. Which specification seems to be missing from the spf.tcl file?
....................................................................................................
DRC-T> add_ . . .
DRC-T> run_drc
ng
ni
7. You should now be in TEST mode.
ai
8. Save the Test Protocol in STIL format.
Tr
TEST-T> write_drc my.spf -replace
ip
ch
9. Run ATPG to check your results.
ro
ic
TEST-T> run_atpg –auto
Question 13.
lM
What Test Coverage did you get?
na
....................................................................................................
er
10. Optional: Investigate and analyze the S and C violations reported during DRC
nt
checking.
rI
....................................................................................................
se
U
Answers / Solutions
ng
Because the .tmaxtclrc file includes this command:
ni
ai
read_net ../libs/libs_tmax.v.gz
Tr
Task 3. Run Design Rule Checks
ip
ch
Question 2. Did you enter TEST mode?
ro
No
ic
Error: Design . . .cannot exit DRC command mode. (M100)
lM
Question 3. What violation(s) occurred? These S1 violations:
na
er
ng
cause for the S1 violation (Hint: look at the values of any
primary inputs shown)?
ni
The scan enable pin has value “XXX” (which means
ai
unconstrained).
Tr
Question 6. Which specification seems to be missing from the spf.tcl
file?
ip
ch
DRC-T> add_scan_enables 1 scan_en
ro
Question 7. Do any of the scan chain trace correctly now?
ic
lM
No, you now have these S1 violations:
na
Error: Chain c0 blocked at DFF gate
I_ORCA_TOP/I_SDRAM_IF/\DQ_out_1_reg[13] (32366) after
er
I_ORCA_TOP/I_SDRAM_IF/\mega_shift_0_reg[26][14] (32279)
rI
I_ORCA_TOP/I_PCI_CORE/\mega_shift_reg[33][12] (29941)
after tracing 0 cells. (S1-4)
ed
I_ORCA_TOP/I_PCI_WRITE_FIFO/\this_addr_g_reg_reg[1]1
(32732) after tracing 0 cells. (S1-6)
R
ng
Question 10. What is the only chain that traces correctly now?
ni
Chain c0 successfully traced with 488 scan_cells.
ai
Error: Chain c1 blocked at DFF gate
Tr
I_ORCA_TOP/I_RESET_BLOCK/sdram_rst_ff_reg (32702) after
tracing 457 cells. (S1-1)
ip
Error: Chain c2 blocked at DFF gate
ch
I_ORCA_TOP/I_PCI_CORE/\d_out_i_bus_reg[0] (29457) after
tracing 0 cells. (S1-2)
ro
Error: Chain c3 blocked at DFF gate
ic
I_ORCA_TOP/I_PCI_CORE/\mega_shift_reg[33][12] (29941)
after tracing 0 cells. (S1-3)
Error: Chain c4 blocked at DFF gate lM
I_ORCA_TOP/I_PCI_CORE/\pad_out_buf_reg[13] (30390)
na
after tracing 0 cells. (S1-4)
er
ng
# -------------------------------------------------------
ni
# DRC Summary Report
# -------------------------------------------------------
ai
# Warning: Rule S19 (nonscan cell disturb) was violated 608
times.
Tr
Look at the run_drc output closely
ip
Begin nonscan rules checking...
RAM summary: #RAMS=10, #clock_unstable=0, #load_unstable=10…
ch
Nonscan cell summary:
#DFF=32 #DLAT=1 #RAM_outs=576 tla_usage_type=hot_clock_tla
ro
Nonscan behavior: #TLA=1 #LE=16 #TE=16 #RAM_outs=576
Nonscan rules checking completed, CPU time=0.00 sec.
ic
lM
# Warning: Rule S22 (multiply clocked scan chain) was violated
2 times.
Does design have lockup latches? If not, usually neg-edge from one clock
na
domain mixed with rising-edge from other clock domain without a lockup
latch. Need to be in primitive view in GSV to see the “clock pin bubble”.
er
nt
ORCA has so many because the RAMs are written on the neg-edge. The
U
RAM outputs are modeled as neg-edge flops…..ORCA has only 16 real neg-
edge flops. Again, look closely at the run_drc log. Read the C6 man page.
ed
This is a “clock-as-data” type of violation was part of the design intent for
R
ORCA.
This is the effect of the sdr_clk going to sd_CK, sd_CKn and the 16
sd_DQ pins. Again, this is part of the original design intent.
Lab 3-10 Running DRC
Synopsys TetraMAX Workshop
Because all the WE2 write clock pins on all the rams are tied-off to 0. These
“2” ports are used in the design as “read” ports.
ng
# Warning: Rule Z9 (bidi bus driver enable affected by scan
ni
cell) was violated 44 times.
ai
Bring up man page. TetraMAX handles this. The only way to avoid this is to
change the design so that in test_mode there is no active path from a scan
Tr
flip-flop to any bidi output enable pin.
ip
ch
ro
ic
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
ng
ni
ai
Tr
ip
ch
ro
Learning Objectives
ic
lM
During this lab, you will use any and all methods to obtain
the target stuck-at test coverage for the ORCA design.
na
er
Lab Duration
45 minutes
Background
Follow the flow depicted below to obtain at least 99% stuck-at test coverage for the
ORCA design. Experiment and develop an ATPG strategy on your own or use the
detailed instructions that follow.
ng
ni
Develop
ai
initial ATPG
strategy
Tr
ip
ch
Create sampled fault list
ro
ic
Experiment with ATPG
engines lM
na
er
Coverage High
Enough?
se
U
ed
fault list
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
to refer to this section to verify your answers, or to obtain help with the execution of
ng
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Develop Initial ATPG Strategy
ai
1. Make sure your current working directory is lab4_controlling_atpg.
Tr
2. Start the TetraMAX GUI and observe the startup messages.
ip
unix% cd lab4_controlling_atpg
ch
unix% tmax &
ro
3. Get into TEST mode, add faults, and create a sampled fault list.
ic
lM
BUILD-T> read_netlist ../design_data/orca_final.v
BUILD-T> run_build
na
DRC-T> run_drc ../design_data/orca_final.spf
er
....................................................................................................
se
....................................................................................................
R
TEST-T> reset_state
TEST-T> run_atpg -auto
....................................................................................................
ng
....................................................................................................
ni
Question 5. Since this design contains memories, what can you conclude
ai
about the calculation of the sequential depth and what should
the minimum capture depth be for Fast-Sequetial ATPG?
Tr
....................................................................................................
ip
....................................................................................................
ch
6. Try a limited Fast-Seq ATPG on the remaining undetected faults:
ro
ic
TEST-T> set_atpg –capture_cycles 4 –abort 100
TEST-T> run_atpg fast_sequential_only -auto
lM
na
Question 6. How much did Fast-Sequential ATPG increase the coverage?
er
.....................................................................................................
nt
....................................................................................................
....................................................................................................
se
TEST-T> report_summaries
ct
tri
Question 8. How did enabling the histogram summary affect the summary
report?
es
....................................................................................................
R
8. Improve the test coverage by giving Fast-Seq ATPG some more depth.
ng
....................................................................................................
ni
ai
Question 10. What is the benefit of using the maximum sequential depth
for Fast-Sequential ATPG?
Tr
....................................................................................................
ip
....................................................................................................
ch
9. Try the maximum Fast-Sequential depth:
ro
ic
TEST-T> set_atpg –capture 10
lM
TEST-T> run_atpg fast_sequential_only -auto
na
Question 11. What are the results after using the maximum Fast-Sequential
depth?
er
....................................................................................................
nt
accurately simulate faults based on Leading Edge (LE) Trailing Edge (TE)
relationships between sequential elements.
se
....................................................................................................
tri
11. Try using Full-Sequential ATPG (this will take a bit longer):
es
R
Question 13. What are the final results on the sampled fault list?
....................................................................................................
ng
1. Rerun the script on the complete fault list. A script has been provided for you.
ni
Note: There’s not enough time to run Full-Sequential ATPG on
ai
the full fault list, so compare results after Fast-Sequential.
Tr
unix% vi full_faults.tcl
ip
unix% tmax –tcl –shell full_faults.tcl
ch
Question 14. How do the results on the complete fault list compare to the
ro
sampled fault list?
ic
....................................................................................................
1. Run ATPG with TetraMAX II and compare the script and the results to the
er
previous run
nt
unix% vi run_tmax2.tcl
rI
....................................................................................................
ed
Question 16. How does the test coverage and pattern count compare?
ct
....................................................................................................
tri
Answers / Solutions
ng
ATPG will run much quicker and you can complete a
ni
greater number of experiments in a given amount of time.
ai
Question 2. What is the starting test coverage?
Tr
95.09% with 115 Basic-Scan Patterns.
ip
Question 3. What is the test coverage using -auto?
ch
95.02 % with 42 Basic-Scan Patterns.
ro
Question 4. What is the maximum sequential depth for this design?
ic
(use report_summaries sequential_depths)
lM
5 is the maximum reported detect depth.
The same information is also provided during run_drc:
na
-----------------------------------------------------
er
----------------------------------------------------
Question 5. Since this design contains memories, what can you conclude
se
ATPG?
ed
ng
into a scan flip-flop). If memory address faults are being
targeted, it could be even higher.
ni
Question 8. How did enabling the histogram summary affect the
ai
summary report?
Tr
The report now includes histogram information on the Fast-
Sequential patterns.
ip
#fast_sequential patterns 6
ch
# 2-cycle patterns 1
ro
# 3-cycle patterns 2
ic
# 4-cycle patterns 3
# 1-load patterns
lM 6
na
Question 9. What is the coverage now?
er
Question 10. What is the benefit of using the maximum sequential depth
rI
Question 11. What are the results after using the maximum Fast-
Sequential depth?
ct
tri
Question 13. What are the final results on the sampled fault list?
ng
Question 14. How do the results on the complete fault list compare to the
sampled fault list?
ni
99.19% with 248 Basic-Scan and 291 Fast-Sequential
ai
patterns.
Tr
Task 3. Compare to a TetraMAX II run
ip
Question 15. How does the TetraMAX II script (run_tmax2.tcl) compare
to the regular TetraMAX script (full_faults.tcl)?
ch
The TetraMAX II script doesn’t control any set_atpg
ro
settings other than -capture_cycles.
ic
Question 16. How does the test coverage and pattern count compare?
lM
After Fast-Sequential ATPG the coverage is higher and the
pattern count is lower with TetraMAX II.
na
99.27% with 289 Basic-Scan and 224 Fast-Sequential
er
patterns.
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
ng
ni
ai
Tr
ip
ch
ro
Learning Objectives
ic
lM
During this lab, you will generate a minimal set of stuck-at
na
patterns for the ORCA design.
er
Lab Duration
45 minutes
Background
Test coverage is usually the primary metric of ATPG, but the number of patterns
required to achieve that coverage can be equally important. In terms of the amount
of ATE time allowed, it may even be a more important performance indicator. In
this lab, you will use a variety of techniques to reduce the test pattern size required
ng
for the ORCA design without dramatically affecting the test coverage achieved.
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
to refer to this section to verify your answers, or to obtain help with the execution of
ng
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Invoke TetraMAX and Determine Baseline
ai
Pattern Count
Tr
1. Make sure your current working directory is lab5 _minimizing_atpg.
ip
2. Start the TetraMAX GUI and observe the startup messages.
ch
unix% cd lab5_minimizing_atpg
ro
unix% tmax &
ic
3. Read the design netlist for the ORCA design.
lM
BUILD-T> read_netlist ../design_data/orca_final.v
na
grouping.
R
....................................................................................................
ng
Enable verbose reporting to see more information during ATPG.
ni
ai
TEST-T> reset_state
TEST-T> set_atpg -verbose
Tr
TEST-T> set_atpg –merge high
ip
TEST-T> run_atpg
ch
Question 2. How do the test coverage and pattern count change?
ro
....................................................................................................
ic
Task 3. Dynamic Clock Grouping and -Auto lM
na
1. Enable dynamic clock grouping and re-run ATPG using both dynamic pattern
compaction and dynamic clock grouping:
er
DRC-T> run_drc
Fo
Question 3. What is the test coverage and pattern counts using clock
U
grouping?
ed
....................................................................................................
ct
TEST-T> reset_state
TEST-T> run_atpg -auto
R
Question 4. What is the test coverage and pattern counts merely using
run_atpg -auto?
....................................................................................................
ng
Task 4. Reducing Patterns using Minimum Detect
ni
1. We’re going to start with the “full faults” script from the previous lab (single
ai
core) and use the minimum detection limits specified below.
Tr
unix% vi task4.tcl
ip
. . .
ch
set_atpg –basic_min_det 10 \
–fast_min_det 5
ro
. . .
ic
unix% tmax –shell task4.tcl
Note:
lM
Recall that for runs with the full fault list, we are not
na
running Full-Sequential ATPG, in the interests of time.
Compare results after Fast-Sequential.
er
Question 5. How do the test coverage and pattern counts compare with
nt
....................................................................................................
Fo
1. Run a modified script from the previous lab to see how results compare when
U
....................................................................................................
R
ng
unix% tmax what_if.tcl
ni
ai
Question 7. How do the analyze_compressor runs compare in terms
of test coverage, patterns, and estimated area overhead?
Tr
....................................................................................................
ip
2. Optional: try some other configurations of analyze_compressors and see
ch
how much estimated compression you can achieve with sacrificing too much
test coverage.
ro
ic
TEST-T> analyze_compressors –num_chains <d> \
lM
-num_inputs <d> -num_scanouts <d> \
-xtolerance [ default | high]
na
unix% vi adaptive_scan.tcl
rI
Question 8. What is the main difference between this script and the one
Fo
....................................................................................................
se
Question 9. How many compressed scan chains are in the adaptive scan
mode? What is the longest chain length?
es
....................................................................................................
R
Question 10. Check the log when the STIL patterns are written. How many
test cycles are in the compression mode patterns?
....................................................................................................
5. Now run Tetramax using the internal_scan.tcl script. This generates patterns
for the reconfigured scan mode.
ng
unix% tmax -shell internal_scan.tcl
ni
unix% vi internal_scan.log
ai
Tr
Question 11. How many “regular” scan chains are in the reconfigured scan
mode? What is the longest chain length?
ip
....................................................................................................
ch
Question 12. Check the log when the STIL patterns are written. How many
ro
test cycles are in the internal scan mode patterns?
ic
....................................................................................................
6.
lM
Compare the ATPG results in compression mode vs. reconfigured scan mode.
na
Question 13. Compare the test cycles between compression mode and
reconfigured scan mode. What is the effective compression
er
ratio?
nt
....................................................................................................
rI
Question 14. How does test coverage and pattern count compare between
Fo
....................................................................................................
U
Answers / Solutions
ng
Question 1. What is the starting test coverage and pattern counts?
ni
98.60% 744 Basic-Scan, 288 Fast-Sequential patterns
Task 2. Dynamic Pattern Compaction
ai
Tr
Question 2. How do the test coverage and pattern count change?
ip
98.38% 394 Basic-Scan, 146 Fast-Sequential patterns
ch
Task 3. Dynamic Clock Grouping and -Auto
ro
Question 3. What is the test coverage and pattern counts using clock
grouping?
ic
lM
Significant reduction for Basic-Scan and since Dynamic
Clock grouping is a Basic-Scan option, no significant
change in Fast-Sequential patterns (slight increase).
na
98.35% 279 Basic-Scan, 149 Fast-Sequential patterns
er
Question 4. What is the test coverage and pattern counts merely using
nt
run_atpg -auto?
rI
–optimize_patterns?
ng
analyze_compressors -num_chains 30 \
-num_inputs 5 -num_scanouts 5
ni
ai
test coverage 90.75%
Tr
basic_scan patterns 354
Data reduction per pattern: 5.91X
ip
Cycle reduction per pattern: 5.91X
ch
Compressors area overhead per internal chain: 10.0
equivalent two-input NAND gates
ro
ic
analyze_compressors -num_chains 30 \
lM
-num_inputs 5 -num_scanouts 5 –xtolerance high
modes. This takes away a shared scanin input from the load
decompressor. To get an apples-to-apples comparison of the
U
analyze_compressors -num_chains 30 \
ct
ng
Question 8. What is the main difference between this script and the one
used in the previous tasks?
ni
It reads in the scan-compression netlist and uses the scan-
ai
compression STIL protocol file generated from DFT-
Tr
Compiler:
ip
read_netlist ./design_data/ORCA_COMP_scan.v
ch
run_drc ./design_data/scancompress.spf
ro
ic
Question 9. How many compressed scan chains are in the adaptive scan
lM
mode? What is the longest chain length?
Question 10. Check the log when the STIL patterns are written. How
many test cycles are in the compression mode patterns?
nt
rI
Question 11. How many “regular” scan chains are in the reconfigured
scan mode? What is the longest chain length?
se
Question 12. Check the log when the STIL patterns are written. How
many test cycles are in the internal scan mode patterns?
ed
cycles
tri
Question 13. Compare the test cycles between compression mode and
es
ng
Coverage and pattern count for scan compression is almost
the same as regular scan. However, the number of scan
ni
cells per chain is significantly less, so the overall test-time
ai
will be greatly reduced for scan compression with minimal
impact on coverage.
Tr
ip
ch
ro
ic
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
ng
ni
ai
Tr
ip
ch
ro
Learning Objectives
ic
lM
During this lab, you will successfully save ATPG patterns
na
and TetraMAX reports to be used later during ATPG
pattern simulation and to transfer patterns to an ATE.
er
nt
Lab Duration
45 minutes
Background
Your goal is to handoff the results of ATPG. In prior labs you achieved the target
test coverage and test pattern count for the ORCA design. In preparation for later
test pattern validation you will save the test patterns in a simulation- and tester-
ready format. You will also save reports useful for test pattern simulation
ng
debugging. This lab emulates generating the patterns in one TetraMAX session and
saving the final patterns in separate session.
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
to refer to this section to verify your answers, or to obtain help with the execution of
ng
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Save Patterns and Session Image after ATPG
ai
To save time a script, tmax_atpg.tcl, is provided which reads a saved ATPG
Tr
pattern set for the ORCA design.
ip
1. Make sure your current working directory is
lab6_pattern_validation.
ch
2. Edit the tmax_atpg.tcl file and add commands at the end of the script to:
ro
a. Quickly get back to TEST mode in a later session
ic
b. Save the test patterns in a format that can later be translated to any
c.
format lM
Ensure both files you save consume as little disk space as possible
na
3. Execute your atpg.tcl script.
er
unix% cd lab6_pattern_validation
nt
commands as indicated in the steps below. You can try these commands
U
one-by-one interactively (in the tmax GUI), or if you are more comfortable, you can
verify that your script works in shell mode (tmax –shell).
ed
1. Restore your TetraMAX session from before by reading the image file.
ct
Question 1. What TetraMAX mode are you now in (check the prompt in
shell mode or the TetraMAX GUI)?
....................................................................................................
Question 2. Are there any ATPG patterns associated with this session (use
report_patterns -summary)?
....................................................................................................
ng
TEST-T> set_patterns -external ORCA.pats.gz
ni
3. Generate an external pattern summary report and answer the following
ai
questions.
Tr
TEST-T> report_patterns -summary
ip
ch
Note: If you get a M130 message about “Unable to find pattern 0”,
use the option to report patterns that selects the external
ro
pattern set.
ic
Question 3. How many patterns were read in?
lM
....................................................................................................
na
Question 4. How many were Basic-Scan, Fast-Sequential and Full-
Sequential ATPG patterns?
er
....................................................................................................
nt
rI
....................................................................................................
4. Save a report that documents which capture clocks are used by each test
se
....................................................................................................
tri
es
5. Save another report that helps translate TetraMAX scan chain names and scan
cell position to actual design netlist scan flip-flop instance names. Redirect
R
Question 7. What is the name of the scan flip-flop in chain c4, position
317?
....................................................................................................
ng
Add the appropriate commands to the tmax_handoff.tcl script as indicated in
the steps below.
ni
ai
1. Write out patterns in a format that can be used for Verilog simulation. Write
the patterns to the “pattern” directory.
Tr
Question 8. What pattern format is used for Verilog simulation?
ip
ch
....................................................................................................
ro
Question 9. Do you need to write out separate pattern sets for parallel and
serial simulation of the patterns?
ic
lM
....................................................................................................
....................................................................................................
na
Note: Specify that the default simulation mode for all these
patterns will be parallel load scan chain operation.
U
Question 10. What two files are written to the pattern directory when
tri
....................................................................................................
R
ng
TEST-T> write_testbench ...
ni
ai
Task 4. Simulate Patterns in Parallel Mode
Tr
1. Change working directory to “pattern”.
ip
Source the file vcs_parallel. After simulation Verdi will be launched.
ch
unix% cd pattern
ro
unix% source vcs_parallel
ic
2. Look at the run_parallel.log file lM
Question 11. How many patterns were simulated?
na
....................................................................................................
er
Question 12.
rI
....................................................................................................
Fo
Question 13. How many serial shifts (i.e. “N-shifts”) were used for the
simulation?
se
....................................................................................................
U
....................................................................................................
ct
tri
es
R
3. From the top tab click on “View Signal List” to add the signals pane to the
Verdi GUI
ng
ni
ai
Tr
ip
ch
ro
ic
4.
lM
Make sure that “ORCA_test” is selected in the “Instance” pane. In the “Signal
List” pane (View -> Signal List), select the testbench signals of interest. You
na
should add “cur_pat”, “cur_StmtName[0:1599]”, and “nbfails”. Plus any other
signals of interest. When a signal(s) is selected, Right-Mouse-Click the signal
er
You can also add signals from the nWave pane (Signal Get Signals…).
Pattern Validation Lab 6-7
Synopsys TetraMAX Workshop
5. Now use the nWave “Get Signals…” to select signal of interest from the “dut”
level. You should add the following signals: pclk, sdr_clk, sys_clk, prst_n,
scan_en, test_mode, and any other signals you are interested in.
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
Select to only show input signals in the signal list
6. Once all of the signals of interest have been added to the nWave waveform
er
viewer, you can change the order of the signal in nWave by selecting the
signal and then using Middle-Button-Click to drag the signal to a new postion.
nt
You will also need to chang the radix of the cur_StmtName[0:1599] signal to
rI
ng
session can be restored later with FileRestore Session… .
Alternately, you can choose to save only signals displayed in the waveform
ni
viewer. From the nWave menu, select FileSave Signal… . Save the signals
ai
to a .rc file of you choice. The signals shown can be restored in a later session
Tr
with FileRestore Signal… (from the nWave menu).
ip
ch
1. Source the file vcs_serial. After simulation, Verdi will be launched.
ro
unix% source vcs_serial
ic
2. Look at the run_serial.log simulation log
Question 15.
lM
How many patterns were simulated?
na
....................................................................................................
er
....................................................................................................
rI
Fo
Question 17. How can you confirm that a serial simulation was performed?
....................................................................................................
se
....................................................................................................
ed
3. Follow the same steps from the previous task or restore the session/signals to
ct
Answers / Solutions
ng
You should now be in TEST mode after restoring a session
ni
image saved while you were previously in TEST mode.
ai
Question 2. Are there any ATPG patterns associated with this session
Tr
(use report_patterns -summary)?
ip
No patterns have been saved as part of the image.
ch
Question 3. How many patterns were read in?
ro
reported:
ic
End reading 150 patterns, CPU_time = 0.01 sec, Memory = 0MB
lM
Also, report_patterns –summary indicates that 150
patterns are in the external pattern set.
na
Question 4. How many were basic scan, fast seq and full seq ATPG
patterns?
er
during run_atpg.
U
are all pulsed during the capture cycle for test pattern
number one. The comma-separate list means TetraMAX
tri
Question 7. What is the name of the scan flip-flop in chain c4, position
317?
R
ng
Question 9. Do you need to write out separate pattern sets for parallel
and serial simulation of the patterns?
ni
No. Only a single pattern set needs to be written. Parallel vs.
ai
serial simulation can be determined when translating the
Tr
pattern to a Verilog testbench or during simulation runtime.
write_pattern pattern/pat.stil -external -format stil -replace
ip
write_testbench -input ./pattern/pat.stil \
-output ./pattern/pat_parallel_tb \
ch
-parameter {-parallel -replace -log pat_parallel_tb.log}
ro
Question 10. What two files are written to the pattern directory when
you ran the write_testbench command?
ic
lM
The instructions were to name the testbench pat_parallel_tb
when running write_testbench. Therefore, the two files that
will be created in the pattern directory are:
na
pat_parallel_tb.v (testbench) and
pat_parallel_tb.dat (datafile).
er
-output ./pattern/pat_serial_tb \
-parameter {-serial -replace -log pat_serial_tb.log \
rI
-sdf_file ../../design_data/orca_final.sdf}
Fo
150 patterns.
U
Yes.
tri
Question 13. How many serial shifts (i.e. “N-shifts”) were used for the
simulation?
R
375.
XTB: Simulation of 150 patterns completed with 0 errors (time: 37500.00
ns, cycles: 375)
ng
Question 15. How many patterns were simulated?
ni
11 patterns. In the simulation script. the
ai
+define+tmax_n_pattern_sim=10 run time option
Tr
was used to limit the number of patterns simulated. This
specified that that last pattern to be simulated is pattern 10.
Patterns are numbered from 0, so 11 total patterns are
ip
simulated. This is reflected in the simulation logfile
ch
XTB: Total number of patterns 150
ro
XTB: Setting compile-time option "tmax_n_pattern_sim" to 10.
XTB: User requesting simulating patterns 0 to 10
ic
XTB: Setting compile-time option "tmax_msg" to 1.
XTB: Starting serial simulation of 11 patterns lM
Question 16. Was the simulation successful?
na
Yes.
er
errors
rI
Question 17. How can you confirm that a serial simulation was
performed?
Fo
From the logfile you can see that serial simulation was
performed:
se
XTB: Begin serial scan load for pattern 0 (T=100.00 ns, V=2)
XTB: Begin serial scan load for pattern 5 (T=244600.00 ns, V=2447)
ed
XTB: Begin serial scan load for pattern 10 (T=489100.00 ns, V=4892)
ct
ng
ni
ai
Tr
ip
Learning Objectives
ch
ro
In this lab, you will invoke TetraMAX and use the Power-
ic
Aware ATPG feature.
lM
After completing this lab, you should be able to:
Reduce switching activity during scan shift
na
Limit switching activity during scan capture by setting a
er
switching budget
nt
Lab Duration:
20 minutes
R
Background
By default, ATPG will generate patterns that exercise as much of the design as
possible in order to reduce overall pattern count. Since ATPG can direct control
over the clocks that will pulse during ATPG, it’s likely that the switching activity
ng
during scan testing will be much greater than the expected functional (“mission
mode”) switching activity. The greater switching activity can draw more power than
ni
the design is able to provide. This is especially true when generating scan patterns
ai
that are intended to be run At-Speed.
Tr
Your goal is to use TetraMAX to evaluate the switching activity and then use
Power-Aware ATPG to limit the switching activity during scan capture and scan
ip
shift.
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
ng
to refer to this section to verify your answers, or to obtain help with the execution of
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Evaluate switching activity in TetraMAX
ai
Tr
1. Make sure your current working directory is lab8_power_aware.
ip
2. Start the TetraMAX GUI and run the power_aware.tcl script.
ch
unix% cd lab8_power_aware
ro
unix% tmax power_aware.tcl &
ic
3. Determine a switching activity budget.
Question 1. lM
What components of a design can TetraMAX use in order to
reduce switching activing during scan capture?
na
...................................................................................................
er
...................................................................................................
report_* ...
ed
...................................................................................................
es
...................................................................................................
add_faults -all
run_atpg -auto
ng
6. Note the number of pattens and the Test Coverage for the baseline run.
ni
7. Analyze the switching activity of the generated pattern
ai
Question 5. What command can be used to report a summary of the
Tr
ATPG pattern switching activity as a percentage?
ip
...................................................................................................
ch
8. Run the report.
ro
report_* ...
ic
Question 6.
lM
Which pattern has the highest peak switching activity and
what is the percent switching activity for that pattern?
na
...................................................................................................
er
In this task you will use Power-Aware ATPG to reduce the switching activity during
rI
...................................................................................................
U
1. Reset the current ATPG patterns and set a capture budget of 30%:
ed
reset_state
ct
set_atpg ...
tri
es
2. Re-run ATPG and report the switching activity for the new pattern set:
R
run_atpg -auto
report_power -percentage
Question 8. Was the peak capture swiching activity reduced from the
earlier baseline ATPG run?
...................................................................................................
ng
switching activity budget that was set?
ni
...................................................................................................
ai
3. Reset the current ATPG patterns and increase the power effort:
Tr
reset_state
ip
set_atpg -power_effort high
ch
run_atpg -auto
ro
report_power -percentage
ic
Question 10. Is the peak capture switching activity for this new ATPG run
lM
below the budget that was set?
na
...................................................................................................
er
4. Compare the number of patterns and the Test Coverage to the baseline
values you noted earlier:
nt
Question 11. Did the number of patterns and/or the Test Coverage change
rI
...................................................................................................
In this task you will use Power-Aware ATPG to reduce the switching activity during
scan shift.
ed
Question 12. What is the peak and average switching activity reported for
ct
scan shift?
tri
...................................................................................................
es
By default, ATPG will “fill” non care bits with random values by loaded random
R
values in those cells. Try to lower the switching activity during scan shift by instead
filling the non care bits with the same value as the next adjacent care bit
reset_state
set_atpg -power_effort high
run_atpg -auto
ng
report_power -percentage
ni
ai
Question 13. Did adjacent fill lower the peak and average switching
activity during scan shift? What are the values now?
Tr
...................................................................................................
ip
2. You can set a switching activity budget for scan shift as well. Set a switching
ch
activity budget of 40% and re-run ATPG.
ro
reset_state
ic
set_atpg -shift_power_budget 40
run_atpg -auto lM
report_power -percentage
na
er
...................................................................................................
rI
In many cases, the chain test patterns have the highest switching activity depending
Fo
on the load pattern sequence used for the chain test (default is repeating 0011). If the
chain test patterns exceed the power budget (which is not an issue for the design
used in this lab), then “quiet” chain test patterns can be generated. When quiet chain
se
test patterns are enabled, ATPG will create multiple chain test patterns where only
one of the scan channels is active in a given pattern.
U
3. Note the switching activity during shift for the first 10 scan patterns. The
ed
4. Reset the patterns and lower the switching activity during shift for the chain
test patterns by enabling quiet chain test patterns.
reset_state
set_atpg -quiet_chain_test
ng
run_atpg -auto
ni
report_power -last 10 -shift -per_pattern -percentage
ai
Tr
Question 15. The chain test patterns are now patterns 0 – 6 (pattern 0 pre-
loads all 0’s). Is the switching activity during scan shift lower
ip
with the quiet chain test patterns?
ch
...................................................................................................
ro
ic
You have completed the “Power-Aware ATPG”
lab of the TetraMAX Workshop.
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Answers / Solutions
ng
Question 1. What components of a design can TetraMAX use in order to
reduce switching activing during scan capture?
ni
Power-Aware ATPG uses the existing functional clock
ai
gating cells to limit switching activity during scan capture
Tr
Question 2. What command can be used after run_drc to report
ip
details of the design’s clocking to determine limits of
ch
switching activity reduction during Power-Aware ATPG?
ro
report_clocks -gating
ic
Question 3.
lM
Analyze the generated report. What is reported as the
Minimum Recommended Low-Power ATPG Budget?
na
Minimum Recommended Low-Power ATPG Budget: 22.97% (164)
er
report_power -percentage
ct
tri
Question 6. Which pattern has the highest peak switching activity and
es
ng
set_atpg -power_budget <n>
ni
ai
Question 8. Was the peak capture switching activity reduced from the
Tr
earlier baseline ATPG run?
ip
Yes. Average switching activity and peak switching activity
is reduced.
ch
Average Shift Switching 386.30 54.10%
Average Capture Switching 53.30 7.47%
ro
Peak Shift Switching 465 65.13% (pattern: 58 cycle: 117)
Peak Capture Switching 238 33.33% (pattern: 137)
ic
Question 9.
lM
Is the peak switching activity during capture at or below
the switching activity budget that was set?
na
No. The budget was set at 30%. The peak switching activity
er
Question 10. Is the peak capture switching activity for this new ATPG
run below the budget that was set?
Fo
Yes.
se
Question 11. Did the number of patterns and/or the Test Coverage change
after Power-Aware ATPG was enabled?
R
ng
Peak Shift Switching 475 66.53% (pattern: 4 cycle: 1)
ni
ai
Question 13. Did adjacent fill lower the peak and average switching
activity during scan shift? What are the values now?
Tr
Yes. The shift switching activity values are lower with
ip
adjacent fill enabled.
ch
Average Shift Switching 92.28 12.92%
Peak Shift Switching 355 49.72% (pattern: 1 cycle: 0)
ro
ic
Question 14. Was the shift power budget met?
lM
Yes. The peak shift switching activity is now below 40%.
na
Peak Shift Switching 241 33.75% (pattern: 48 cycle: 0)
er
Question 15. The chain test patterns are now patterns 0 – 6 (pattern 0 pre-
nt
ng
ni
ai
Tr
ip
Learning Objectives
ch
ro
In this lab, you will run TetraMAX to perform ATPG for
ic
the Transition fault model. Also, you will simulate the
lM
patterns in VCS to see the at-speed launch and capture
clocks.
na
After completing this lab, you should be able to:
Set the correct SPF and fault model needed for
er
Transition ATPG.
nt
Transition ATPG
List some extra constraints needed for Transition ATPG.
Fo
launch.
U
ATPG
Setup ATPG for Slack-Based Transition Delay testing
tri
es
Lab Duration:
45 minutes
R
Introduction
Objective
In this lab, the focus will be on Transition ATPG. You will not be targeting for high
ng
test coverage. You will generate a few patterns for both the “Last Shift” and
“System Clock” launch methods using external clock sources. The intention here is
ni
to see the at-speed clocks when the patterns are simulated in VCS.
ai
Then Slack-Based Transition Delay testing will be explored including the
Tr
generation of the slack data from PrimeTime.
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
ng
to refer to this section to verify your answers, or to obtain help with the execution of
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Invoke TetraMAX, read the design, and Run
ai
DRC checks
Tr
In this task, you will invoke TetraMAX and read the design and Run DRC.
ip
ch
1. Make sure your current working directory is lab9 _transition_delay.
2. Use the provided script to invoke TetraMAX and run through the
ro
run_build_model step.
ic
unix% cd lab9_transition_delay
unix% tmax tmax_transition_delay.tcl
lM
na
3. The timing exceptions generated in PrimeTime do not set the false path
er
...................................................................................................
Fo
...................................................................................................
ct
tri
DRC-T> read_sdc \
orca_scan_user_violation_exceptions.sdc
6. Run drc.
Question 3. How many nonscan flip flops are there in the design?
ng
...................................................................................................
ni
Question 4. How many scan chains are there and what is the maximum
ai
chain length?
Tr
...................................................................................................
ip
Question 5. Are there any capture violations?
ch
...................................................................................................
ro
Note: You should be in TEST mode, once you have given the
ic
“run_drc” command.
...................................................................................................
Fo
Question 7. What is the default launch type for At-Speed fault models?
...................................................................................................
se
Note: At any point in the flow you can use the command
U
2. Set the fault model to Transition and launch type to last shift launch.
ct
tri
...................................................................................................
Question 9. Is the fault list of Stuck-At and Transition Delay fault models
the same?
ng
...................................................................................................
ni
Transition Delay fault model by default does not add faults on
ai
Question 10.
what signals?
Tr
...................................................................................................
ip
...................................................................................................
ch
4. Constrain ATPG to generate only 10 patterns.
ro
TEST-T> set_atpg –pattern 10
ic
5. Run atpg lM
na
TEST-T> run_atpg –auto
er
...................................................................................................
rI
...................................................................................................
se
Use the command report_pattern to see what clocks have been used to
U
...................................................................................................
R
...................................................................................................
7. Increase the pattern limit to 25 and then generate the patterns.
ng
TEST-T> set_atpg –pattern 25
ni
TEST-T> run_atpg –auto
ai
Question 15. What type of patterns are generated now?
Tr
...................................................................................................
ip
Question 16. Are there multiple capture clocks in the new patterns
ch
generated?
ro
...................................................................................................
ic
TEST-T> report_pattern lM
–type –all
na
Question 17. Are there any inter-clock domain patterns generated ?
er
...................................................................................................
nt
To save the patterns and generate the testbenches for simulation, source a prepared
Fo
script.
2. To save time, a signal list is provide that can be restored in nWave. Select
FileRestore Signal… and select the “tran_signals.rc” file.
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
4. Take a look at the simulated waveforms to see the At-Speed clocks in both the
rI
2. Follow the same steps from the previous task again to view the waves
tri
In this Task, you will invoke PrimTime and generate the slack data to be used
during Slack-Based ATPG. The pt_slack.tcl script is already constrained to be
used for At-Speed ATPG.
ng
1. Return to the lab9_transition directory
ni
uxix% cd ..
ai
Tr
Question 18. What is the command to report slack data on each pin?
ip
……………………………………………………………
ch
2. Update the pt_slack.tcl script to redirect the output of the above
command to file orca_scan_comp_mode_occ_bypass.slack (let
ro
this be last command before exit)
ic
report_global_slack >
orca_scan_comp_mode_occ_bypass.slack lM
na
3. Run PrimeTime to generate the slack data.
er
4. Exit PrimeTime.
Fo
In this task, you will set up ATPG for Slack-Based Transition Delay testing.
1. Use the provided script to invoke TetraMAX and run through the run_drc
U
step.
ed
Question 19. Is there any change required in the Transition SPF file for
Slack-Based ATPG?
es
… ...............................................................................................
R
2. Define Transition fault model and setup for “system clock” launch
ng
3. Constrain ATPG to generate 20 patterns.
ni
TEST-T> set_atpg –patterns 20
ai
Tr
Question 20. If you run ATPG at this step will it perform Slack-Based
ATPG?
ip
...................................................................................................
ch
Question 21. What is the command to read the slack timing data ?
ro
...................................................................................................
ic
4. Read the slack timing data into TetraMAX
lM
TEST-T> read_....
na
er
...................................................................................................
Fo
Question 23. Can the faults with tmgn more than max_tmgn have a DS
ed
classification?
ct
… ...............................................................................................
tri
7. Run ATPG
es
-------------------------------------------------------------------------- .
ng
TEST-T> report_faults \
I_ORCA_TOP/I_PCI_TOP/I_PCI_CORE/U965/Z -slow r
ni
Question 25. What is the tmgn and delta for this fault?
ai
Tr
… ...............................................................................................
ip
TEST-T> report_faults –slack delta 1.0
ch
Question 26. How many faults have deltas between “3.00 and 4.00”?
ro
… ...............................................................................................
ic
2. Report on fault “report_fault lM
I_ORCA_TOP/I_CONTEXT_MEM/CONTEXT_RAM_0/A1[0] –slow
na
TEST-T> report_faults \
er
I_ORCA_TOP/I_CONTEXT_MEM/CONTEXT_RAM_0/A1[0] –slow r
nt
Question 27. What is the tmgn and delta for this fault?
rI
...................................................................................................
Fo
Question 28. Why does the fault not have a delta value?
se
.. .................................................................................................
U
TEST-T> report_faults \
I_ORCA_TOP/I_PARSER/pci_w_mux_select_reg_0_/D –slow f
ct
tri
es
Question 29. What is the tmgn and delta for this fault?
R
.. .................................................................................................
Question 30. Can you explain the reason for the tmgn value?
.. .................................................................................................
The pattern simulation will be exactly the same as for the standard Transition Fault
model. If time permits simulate the patterns.
ng
ni
TEST-T> source –e tmax_write_patterns.tcl
ai
2. Change working directory to “pattern”.
Tr
3. Source the file vcs_trans_parallel. After simulation, nWave will be
launched in order to view the waveforms.
ip
ch
unix% cd pattern
ro
unix% source vcs_trans_parallel
ic
4. Select/Restore waveform signals of interest in nWave as desired in the same
Answers / Solutions
ng
Question 1. What command should be used to constrain the tool to use a
ni
common launch and capture clock?
ai
set_delay –common_launch_capture_clock
Tr
Question 2. You will constrain reset and scan enable to what values?
ip
add_pi_constraints 1 prst_n
add_pi_constraints 0 scan_en
ch
Question 3. How many nonscan flip flops are there in the design?
ro
37
ic
Question 4. How many scan chains are there and what is the maximum
chain length? lM
na
96 Chains, Maximum cells 78
er
241576
es
No.
Question 10. Transition Delay fault model by default does not add faults
on what signals?
The transition fault model does not add faults on the clocks
ng
and the ScanEnable signals.
Question 11. What warning messages are you getting?
ni
M495: Warning: Merging and pattern limits enabled without basic-scan
ai
minimum detections per pattern.
Tr
Warning: 605 shifts of 9 patterns used X tolerance modes during simulation
interval. (M659)
ip
Warning: ATPG terminated due to meeting pattern count limit. (M234)
ch
Note: you may notice that 15 patterns were generated
instead of the requested 10. The extra patterns are “padding
ro
patterns” that are sometimes added when generating patterns
in compression mode. The padding patterns don’t pulse
ic
clocks during capture. Their purpose is to ensure that the
lM
previous pattern can be observed through the compressor
when unloaded.
na
Question 12. What types of patterns have been generated?
er
patterns. Again, the patterns that don’t pulse any clocks are
compression mode padding patterns (or chain test patterns).
se
Question 16. Are there multiple capture clocks in the new patterns
tri
generated?
es
all”.
Can’t tell from just reporting the patterns but there shouldn’t
be since “set_delay -common_launch_capture”
was specified earlier in the script. Multiple capture clocks
are pulsed in most patterns which could exercise inter-clock
ng
domain paths depending on how the clock domains interact.
However, TetraMAX will manage this by masking any
ni
inter-clock domain paths as part of disturb clock grouping.
ai
Task 6. Generate the Slack Data for Slack-Based ATPG
Tr
Question 18. What is the command to report slack data on each pin?
ip
report_global_slack
ch
Task 7. Run Slack-Based ATPG
ro
Question 19. Is there any change required in the Transition SPF file for
ic
Slack-Based ATPG?
lM
No, there is no change needed for the SPF file. The same
SPF file used for regular Transition Delay ATPG can be
na
used for Slack-Based ATPG.
Question 20. If you run ATPG at this step will it perform Slack-Based
er
based ATPG?
nt
Question 21. What is the command to read the slack timing data?
Fo
read_timing
read_timing orca_scan_comp_mode_occ_bypass.slack
se
Question 22. What is the default value of max_tmgn and Delta? How
U
the patterns.
tri
ng
No. If detected, those faults will be classified as TP.
Question 24. What is the absolute value of max_tmgn calculated by
ni
TetraMAX?
ai
TEST-T> run_atpg -auto
Tr
The max tmgn for small delay defect faults has been set to 6.0400
ip
ch
Question 25. What is the tmgn and delta for this fault?
ro
str TP I_ORCA_TOP/I_PCI_TOP/I_PCI_CORE/U965/Z 14.4900 0.5400
ic
Tmgn = 14.49 Delta = 0.54
lM
Note that the fault is TP because the tmgn value is higher
than max_tmgn.
na
Question 26. How many faults have deltas between “3.00 and 4.00”?
804
er
Question 27. What is the tmgn and delta for this fault?
nt
rI
Question 28. Why does the fault not have any delta value?
se
Question 30. Can you explain the reason for the tmgn value?
tri
es
PrimeTime.
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
Learning Objectives
ch
ro
In this lab, you will invoke TetraMAX to perform ATPG
ic
using PLL clocks. In capture mode the fast clocks from the
lM
PLL will be used to launch and capture the faults. Also,
you will simulate the patterns in VCS to see the at-speed
launch and capture clocks.
na
After completing this lab, you should be able to:
er
requirements.
ed
ct
tri
es
Lab Duration:
30 minutes
R
Background
In this lab, you will perform Transition ATPG on the given design with internal
generated clocks from a PLL using OCC. At-speed launch and capture clocks are
provided by the PLL, instead of the top level external clock sources.
ng
Your goal is to take the netlist and generate 30 patterns using system clock launch
ni
where the at-speed clocks come from PLL. After generating these patterns, simulate
ai
the patterns in VCS and view the at-speed launch and capture pulses.
Tr
DFT Compiler/DFTMAX can generate the SPF which has the necessary constructs
to run ATPG using PLL clocks with OCC. The main part of this lab uses the SPF
ip
from DFT Compiler.
ch
Optional Task: use the QuickSTIL commands in TetraMAX to generate the SPF
file. Once the SPF file is generated, you will edit the SPF to suit the controller
ro
requirements. Since this flow is using the QuickSTIL flow to generate the SPF, you
ic
cannot use the design in Scan Compression mode. Describing the Compressor
structures with QuickSTIL is not supported.
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
ng
to refer to this section to verify your answers, or to obtain help with the execution of
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Understand the Design Specifications
ai
Tr
In this task we will understand the design. Get to know the various clocks, port
constraint , scan chains etc which are needed to create the SPF file.
ip
ch
ORCA
ro
snps_clk_chain
ic
lM
na
er
nt
ate_pclk snps_pll_controller
rI
ate_sdrclk
I_CLOCK_GEN/sdr_occ/U4/Z
Fo
ate_sysclk
pll_reset I_CLOCK_GEN/pclk_occ/U4/Z
se
pll_bypass
U
TM_OCC I_CLOCK_GEN/sys_occ/U6/Z
ed
I_CLOCK_GEN/
I_CLOCK_GEN/sys_occ/U7/Z
sdr_clk I_PLL_PCI/CLK
ct
I_PLL_SD/CLK
pclk I_CLKMUL/CLK_1X
tri
sys_clk I_CLKMUL/CLK_2X
es
scan_en
R
TM_MODE
prst_n
test_mode
Reference Clocks:
sdr_clk
sys_clk
pclk
ng
PLL Clocks:
ni
I_CLOCK_GEN/I_PLL_PCI/CLK (16ns period)
ai
I_CLOCK_GEN/I_PLL_SD/CLK (8ns period)
Tr
I_CLOCK_GEN/I_CLKMUL/CLK_1X (10ns period)
ip
I_CLOCK_GEN/I_CLKMUL/CLK_2X (20ns period)
ch
Signal used by the OCC block:
ro
ate_pclk, ate_sdrclk, ate_sysclk : Slow ATE clock.
ic
pll_reset: Reset pin to reset the OCC.
lM
pll_bypass: Pin to put the pll in bypass mode.
na
scan_en: Scan enable pin of the design
TM_MODE: Test mode pin of the design
er
The Internal clocks from the OCC have the following connections with the PLL
Fo
Clock 1 :
U
set to 1
es
set to 1
Clock 2:
ng
Cycle 0 Condition I_CLOCK_GEN/snps_clk_chain_1/U_shftreg_0/ff_1/q_reg/Q
set to 1
ni
Cycle 1 Condition I_CLOCK_GEN/snps_clk_chain_1/U_shftreg_0/ff_0/q_reg/Q
ai
set to 1
Tr
ip
Clock 3:
ch
Internal Clock I_CLOCK_GEN/sys_occ/U6/Z
ro
PLL Source I_CLOCK_GEN/I_CLKMUL/CLK_1X (10ns period)
ic
lM
Cycle 0 Condition I_CLOCK_GEN/snps_clk_chain_2/U_shftreg_0/ff_1/q_reg/Q
set to 1
na
Cycle 1 Condition I_CLOCK_GEN/snps_clk_chain_2/U_shftreg_0/ff_0/q_reg/Q
set to 1
er
nt
rI
Clock 4:
Fo
set to 1
ed
Note: Only the signals needed for DRC are shown here.
Scan Chains :
1 pad[1] sd_DQ[1]
2 pad[2] sd_DQ[2]
ng
3 pad[3] sd_DQ[3]
4 pad[4] sd_DQ[4]
ni
5 pad[5] sd_DQ[5]
ai
6 pad[6] sd_DQ[6]
7 pad[7] sd_DQ[7]
Tr
8 pad[8] Sd_DQ[8]
ip
Task 2. Use existing SPF to setup ATPG for OCC
ch
1. Make sure your current working directory is lab10_occ.
ro
ic
unix% cd lab10_occ
2. lM
The existing SPF file provided is named orca_scan_occ.spf.
na
3. Inspect the SPF file in a text editor
Question 1. What section of the SPF contains information specific to the
er
OCC setup?
nt
……………………………………………………....... ............
rI
…………………………………………………………
se
4. Reference clocks
Question 3. Can reference clocks have a period different from the ATE
U
clocks?
ed
…………………………………………………….......
Can the patterns be written in all the formats if the ATE and
ct
Question 4.
Reference clocks are not same?
tri
………………………………………………………….
es
Question 5. What is the only supported format if the Reference and ATE
R
…………………………………………………………
5. PLL clocks
Question 6. Is the PLL clock a free running clock?
………………………………………………………… ...........
ng
………………………………………………………….
ni
ai
6. Internal Clocks
Tr
Question 8. Will the DRC fail if there is not a valid path from PLL clock
to internal clock during capture?
ip
...................................................................................................
ch
Task 3. OCC ATPG Settings
ro
In the task, you will edit a script that is given. You will look for the section “LAB
ic
STEP”, add the required commands to the script, and then run TetraMAX with the
modified script. lM
1. A TetraMAX script has already been prepared as a starting point. The script
na
name is tmax_occ.tcl
er
2. Use the provided script to invoke TetraMAX and run through the
run_build_model step.
nt
rI
5. Constrain ATPG to use the same clocks for launch and capture.
es
Question 9. What is the default number of ATE cycles for which scan
enable is low?
...................................................................................................
The default number of ATE cycles is sometimes not enough cycles for the
ng
OCC to provide the internal clocks to the core. The number of cycles required
is dependent on the OCC used. For the Synopsys OCC it’s determined by the
ni
relationship between the ATE clock period and the period of the slowest PLL
ai
clock source as well as the number of fast clocks supported by the OCC
(num_pll_cycles) according to the formula below.
Tr
ATE clock period + (5+num_pll_cycles) * PLL period (slowest)
ip
min_ate_clock_cycles = ------------------------------------------------------------------------------ + 1
ATE clock period
ch
ro
For this design, the number of ATE cycles should be set to 3.
ic
DRC-T> set_atpg -min_ateclock_cycles 3
Question 10.
lM
What happens if the number provided for
na
-min_ateclock_cycles is less than it should be?
er
...................................................................................................
nt
DRC-T> run_drc
Fo
Question 11. What additional DRC checks are done if the OCC is present
se
in the netlist?
U
……………………………………………………....... ............
ed
In this task, you will set up ATPG for the Transition fault model and then perform
tri
1. Run ATPG
R
Question 12. How can we know which PLL clock has been used for the
fault detection for a given pattern?
………………………………………………………………
Add a command to report the PLL clock(s) used in pattern 5 to your script.
ng
3. In the TetraMAX session, source the tmax_write_patterns.tcl script
ni
TEST-T> source –e tmax_write_patterns.tcl
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
unix% cd pattern
ni
unix% source vcs_occ_parallel
ai
Tr
3. To save time, a signal list is provide that can be restored in nWave. Select
FileRestore Signal… and select the “tran_signals.rc” file.
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
a. I_CLOCK_GEN/pclk_occ/U4/Z
b. I_CLOCK_GEN/sdr_occ/U4/Z
R
ng
ni
ai
Tr
ip
ch
5. Take a look at the simulated waveform to see the at-speed clocks pulse in each
pattern.
ro
ic
Note: The rest of the tasks/steps in this lab are all optional
lM
na
Task 6. Simulate Pattern in Serial Mode (Optional)
er
2. Follow the same steps from the previous task again to view the waves.
se
In this task your will run a TetraMAX script that is given. The script uses
QuickSTIL commands to define all the clocks of the OCC and generate the SPF file.
tri
The necessary pin constraints, scan paths and the clock information will be defined
es
2. Note the commands used to define the OCC related clcocks. Such as:
a. Reference clocks
b. ATE clocks
c. PLL clocks
ng
d. Internal clocks
Question 13. What command is used to declare the number of pll clock
ni
cycles that is supported by the OCC and needs to be declared
ai
prior to declaring an internal clock with Quick STIL?
Tr
...................................................................................................
ip
3. Run the provided TetraMAX script to generate an SPF for OCC.
ch
unix% tmax tmax_occ_quick_stil.tcl
ro
4. The DRC file is written out at the end of the script.
ic
lM
DRC-T> write_drc_file occ_quick_stil.spf -replace
na
5. Try running DRC checks
er
DRC-T> run_drc
nt
6. The DRC checks will fail. Edits need to be made to the SPF in order to pass
rI
the the DRC checks with an SPF generated with Quick STIL commands.
Fo
In this task you will edit the SPF file generated in the previous Task to suit the OCC
requirements.
ed
The SPF file generated from TetraMAX can be used in most cases as is. In cases
ct
where there are specific requirements for OCC, you need to edit the SPF and prior
to using it for DRC checks. The OCC implemented in this design requires a vector
tri
before the shift starts. All the ATE and the Reference clocks need to be pulsed in
es
this vector. Also, it is required that the OCC is reset before it can be used for ATPG.
To reset the OCC you will assert the OCC's reset pin in the test_setup macro
R
for one cycle with ATE and the Refclocks constrained to their off state.
2. Edit the load_unload procedure to put a vector before the shift procedure
which pulses the ATE and Reference clocks.
3. Edit the test_setup macro in Macrodef section to assert the
pll_reset ( PLL Reset) signal for one cycle with ATE, reset, and refclocks
constrained to their off state. Make sure the signal is returned to its inactive
ng
state before the end of test_setup.
4. Save the updated SPF file.
ni
Question 14. Do you need to alter the timing in the waveform tables
ai
(WFT) when using the OCC ?
Tr
……………………………………………………....... ............
ip
5. Now try running the drc checks.
ch
DRC-T> run_drc
ro
ic
6. The DRC checks should now pass. If not then double check your edits to the
SPF.
lM
Task 9. Use the modified SPF file to pass DRC checks
na
and generate patterns (Optional)
er
A script has been prepared to use the modified SPF generated by Quick STIL.
nt
2. The script will write out patterns with the same names that were used earlier
se
in the lab
U
3. Optional step: use the same procedure describe earlier to simlate the generated
patterns in VCS
ed
Workshop.
es
R
Answers / Solutions
ng
Question 1. What section of the SPF contains information specific to the
OCC setup?
ni
The ClockStructures section.
ai
Question 2. Is it always needed to pulse the ATE clocks during capture?
Tr
No, it is dependent on the OCC implementation. However,
ip
the Synopsys OCC implementation does require that the
ATE clock pulsed in the capture procedure.
ch
Question 3. Can reference clocks have a period different from the ATE
ro
clocks?
ic
Yes, reference clocks can have a period different from the
Question 4.
lM
ATE clock period. This is often the case.
Can the patterns be written in all the formats if the ATE and
Reference clocks are not same?
na
Question 5. What is the only supported format if the Reference and ATE
nt
Yes
se
Question 8. Will the DRC fail if there is not a valid path from PLL clock
to internal clock in the capture mode?
ct
tri
ng
the value of PLLCycles in the SPF (if an SPF-based flow is
used) or the value set by “set_drc -num_pll_cycles
ni
<n>” (if a Quick-STIL commands flow is used). In this
ai
case, the default value was overridden by the “set_atpg
Tr
–min_ateclock_cycles 3” command.
Question 10. What happens if the number provided for
ip
-min_ateclock_cycles is less than it should be?
ch
Patterns will likely fail during simulation (mismatches). The
core logic will not see the expected clock pulses from the
ro
OCC.
ic
Question 11. What additional DRC checks are done if the OCC is present
in the netlist?
lM
Violations like C34, C39. Violations C27 – C40 are related
na
to OCC.
er
Question 12. How can we know which PLL clock has been used for the
fault detection?
Fo
Question 13. What command is used to declare the number of PLL clock
ct
STIL?
es
ng
During capture the internal clocks are driven by the PLL.
ni
TetraMAX does not support defining PLL clock timing.
ai
There is no WFT which captures this timing.
Tr
The ATE and Reference clock pulse as per the
“multiclock_capture” procedure during capture. If you need
ip
to control its timing you can change the WFT which is used
ch
by this procedure.
ro
In designs which have both the Internal PLL clocks as well
ic
as External clock ports used for At-Speed test, it will be
required to change the WFTs used for At-Speed capture
lM
using the external clocks.
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
ng
ni
ai
Tr
ip
Learning Objectives
ch
ro
In this lab, you will run TetraMAX to perform ATPG
ic
targeting the Path Delay fault model. You will first use
lM
PrimeTime to generate the paths file and exceptions and
then perform ATPG on those faults. At the end, you will
simulate the patterns in VCS to see the at-speed launch and
na
capture clocks.
er
Lab Duration:
30 minutes
R
Background
In this lab, you will do Path Delay ATPG. You will use PrimeTime to generate the
Paths which will be read by TetraMAX.
ng
You will select paths from all the clock domains in the design and then target both
the rising and falling transitions on these paths.
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
ng
to refer to this section to verify your answers, or to obtain help with the execution of
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Generate Paths and Exceptions Files using
ai
PrimeTime
Tr
In this Task, you will invoke PrimTime and generate the paths on which Path Delay
ip
ATPG will be performed.
ch
1. Make sure your current working directory is lab11_path_delay.
ro
unix% cd lab11_path_delay
ic
2. lM
A PrimeTime script has already been prepared to generate the paths. The
script name is pt_delay_paths.tcl
na
This script is constrained for At-Speed ATPG and is setup to write out critical
paths, on which Path Delay ATPG will be run.
er
nt
………………………………………………………….
Fo
3. Run PrimeTime
se
Question 2. How many delay path files were created by the script?
ct
………………………………………………………….
tri
Question 3. How many delay paths were written per clock domain?
es
………………………………………………………….
R
In this task, you will invoke TetraMAX and read the design and Run DRC.
1. Use the provided script to invoke TetraMAX and run through the
run_build_model step.
ng
2. Read the SDC file orca_scan_user_violation_exceptions.sdc
generated in Task 1.
ni
ai
DRC-T> read_sdc \
orca_scan_user_violation_exceptions.sdc
Tr
3. Define Constraints
ip
Question 4. What ports need to be constrained during At-Speed ATPG?
ch
………………………………………………………….
ro
ic
DRC-T> add_pi_constraints 0 <Scan Enables>
DRC-T> add_pi_constraints
lM 1 <Resets>
na
Question 5. If the primary inputs and outputs cannot transition At-Speed,
then what should be done?
er
………………………………………………………….
nt
………………………………………………………….
4. Constraint the ATPG to use the same launch and capture clocks.
se
In this task, you will set up the ATPG for Path Delay fault model and then run
ATPG on the Paths which were generated in Task1.
ng
………………………………………………………..
ni
Question 8. If we want to generate patterns only with system clock
launch what shall be done?
ai
Tr
………………………………………………………..
Question 9. Is scan enable constrained? What command can you use to
ip
confirm that?
ch
………………………………………………………..
ro
2. Read the paths files generated in Task1.
ic
TEST-T> add_delay_paths ……………………
TEST-T> add_delay_paths …………………… lM
TEST-T> add_delay_paths ……………………
na
er
……………………………………………………………
rI
Question 11. Refer to TetraMAX Online Help and give the reason why
we get P22 violations?
Fo
……………………………………………………………
se
Question 12. Will the Paths with P22 violations be targeted for ATPG and
what will be their classification before and after ATPG?
U
……………………………………………………………
ed
3. Add faults
ct
……………………………………………………………
Question 14. What command should be used if you want to add faults for
both rising and falling transition?
……………………………………………………………
4. Run ATPG
ng
VCS (Optional)
ni
In this task, you will save the patterns and validate them by simulating in VCS.
ai
Tr
1. In the TetraMAX session, source the tmax_write_patterns.tcl script
ip
TEST-T> source –e tmax_write_patterns.tcl
ch
2. Change working directory to “pattern”.
ro
3. Source the file vcs_path_parallel. After simulation, nWave will be
launched in order to view the waveforms.
ic
unix% cd pattern lM
unix% source vcs_path_parallel
na
4. To save time, a signal list is provide that can be restored in nWave. Select
er
ng
1. Source the file vcs_path_serial. After simulation, nWave will be
launched in order to view the waveforms.
ni
unix% source vcs_path_serial
ai
Tr
2. Follow the same steps from the previous task again to view the waves.
3. Exit all the tools.
ip
ch
You have completed the “Path Delay ATPG” lab
ro
of the TetraMAX Workshop.
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
Answers / Solutions
ng
Question 1. What command in the pt_delay_path.tcl script is used
ni
to write the path delay critical paths?
ai
The write_delay_paths command
Tr
Question 2. How many delay path files were created by the script?
ip
Three files were generated. Each file targets delay paths
within a particular clock domain.
ch
Question 3. How many delay paths were written per clock domain?
ro
50 delay paths were written per clock domain.
ic
Task 2. Invoke TetraMAX Read design and Run DRC
Question 4.
lM
What ports need to be constrained during At-Speed ATPG?
na
Scan enable and the reset ports.
er
add_pi_constraints 0 scan_en
nt
add_pi_constraints 1 prst_n
rI
add_po_mask -all
tri
No, this command does not have any effect for Path Delay
ATPG.
ng
Delay and only system clock patterns are needed, then
constrain the scan enable to 0 in capture mode.
ni
ai
Question 9. Is scan enable constrained? What command you can use to
Tr
confirm that?
ip
Yes, you can use the command report_pi_constraints
ch
Question 10. Are there any warning messages?
ro
P8 and P22
Question 11. Refer to TetraMAX Online Help and give the reason why we
ic
get P22 violations?
lM
Delay paths that violate this rule are may have reconvergent
na
logic on the off-path values or they could be sequential false
paths (i.e. a transition along the specified path cannot be
launched, propagated, and captured).
er
Question 12. Will the Paths with P22 violation be targeted for ATPG and
nt
150
Question 14. What command should be used if you want to add faults for
ed
set_delay -relative_edges
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R
ng
ni
ai
Tr
ip
ch
ro
Learning Objectives
ic
lM
During this lab, you will run diagnosis on ATE failures to
na
determine the cause of the failure.
er
Lab Duration:
20 minutes
Background
Your goal is to determine the root cause of ATE pattern failures by running
TetraMAX diagnosis. You will use a previously saved image file and pattern set to
run the analysis.
ng
ni
Lab 12 Tasks
ai
Tr
ip
ch
ORCA
Image Read Image File
ro
File
ic
ORCA lM
Read Binary
Pattern Patterns
na
er
nt
Run Functional
Diagnosis
rI
Fo
Diagnosis
U
ed
ct
tri
es
R
Instructions
Answers / Solutions
There is an Answers / Solutions section at the back of each lab. You are encouraged
to refer to this section to verify your answers, or to obtain help with the execution of
ng
some steps. Solution files can be found in the .solutions directory.
ni
Task 1. Run Functional Diagnosis
ai
Ensure that the current working directory is lab12_diagnosis.
Tr
1. Invoke the TetraMAX GUI in TCL mode.
ip
ch
unix% cd lab12_diagnosis
unix% tmax &
ro
ic
2. Enter TEST mode for the ORCA design by reading a previously saved image
file.
lM
BUILD-T> read_image ../design_data/ORCA_scan_img.gz
na
er
unix% vi ate_func_datalog.txt
rI
.....................................................................................................
se
.......................................................................................................
ct
4. Read the binary pattern set that goes with the image file.
tri
../design_data/orca_standard_scan_pats.bin
R
Question 3. Why do the patterns need to be read separate from the image
file?
.....................................................................................................
.......................................................................................................
5. Run diagnosis.
ng
TEST-T> run_diagnosis ate_func_datalog.txt -verbose
ni
ai
Question 5. Was TetraMAX able to find the defect? What fault location
does TetraMAX report as the cause of failures?
Tr
....................................................................................................
ip
ch
....................................................................................................
ro
Question 6. What is the match score?
ic
....................................................................................................
lM
Task 2. Chain Test Diagnosis
na
er
unix% vi ate_chain_datalog.txt
Fo
data file?
ed
....................................................................................................
ct
....................................................................................................
ng
it doesn’t have a complete set of fail data?
ni
....................................................................................................
ai
4. Adjust the diagnosis settings.
Tr
Enter the command determined above:
ip
TEST-T> set_diagnosis ...
ch
Question 10. Was the chain test diagnosis successful this time?
ro
ic
....................................................................................................
Question 11. lM
What fault location was identified by diagnosis?
na
....................................................................................................
er
nt
TetraMAX Workshop.
Fo
se
U
ed
ct
tri
es
R
Answers / Solutions
ng
It’s pattern-based. The cycle-based format has “C” in the
ni
first column.
ai
Question 2. Is there expected data in the failure data file? Does
Tr
TetraMAX use the expected data?
ip
will check the pattern data to ensure that there were no
ch
pattern translation issues.
ro
Question 3. Why do the patterns need to be read separate from the image
file?
ic
The binary image file does not contain the patterns.
Question 4.
lM
How many patterns were read?
na
237.
er
Question 5. Was TetraMAX able to find the defect? What fault location
does TetraMAX report as the cause of failures?
nt
100%.
U
data file?
es
Yes, but only after extra analysis. Note the M633 message.
TEST-T> run_diagnosis ate_chain_datalog.txt
ng
Check expected data completed: 3440 out of 3440 failures were checked
Warning: Both values (0 and 1) were unloaded from the last scan cell in
ni
chain=5. (M633)
ai
ate_chain_datalog.txt scan chain diagnosis results: #failing_patterns=20
Tr
------------------------------------------------------------------------
ip
defect type=stuck-at-0
match=100.00% chain=5 position=257
ch
master=I_ORCA_TOP/I_PCI_WRITE_FIFO/empty_int_reg (sdcrn1)
CPU_time=0.05 #sim_patterns=10 #sim_failures=1757
ro
Warning: 217 passing patterns were ignored during chain diagnosis
ic
(pat1=20). (M633)
Question 9.
lM
------------------------------------------------------------------------
set_diagnosis –incomplete_failures
nt
Question 10. Was the chain test diagnosis successful this time?
U
ed
set_diagnosis –incomplete_failures
ct
Yes.
tri
es
R
ng
ate_chain_datalog.txt scan chain diagnosis results: #failing_patterns=19
------------------------------------------------------------------------
ni
defect type=stuck-at-0
ai
match=100.00% chain=5 position=257
Tr
master=I_ORCA_TOP/I_PCI_WRITE_FIFO/empty_int_reg (sdcrn1)
CPU_time=0.03 #sim_patterns=10 #sim_failures=1757
ip
------------------------------------------------------------------------
ch
ro
ic
lM
na
er
nt
rI
Fo
se
U
ed
ct
tri
es
R