Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
www.synopsys.com
Copyright Notice and Proprietary Information
Copyright 2010 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and
proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a
license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of the
software and documentation may be reproduced, transmitted, or translated, in any form or by any means, electronic,
mechanical, manual, optical, or otherwise, without prior written permission of Synopsys, Inc., or as expressly provided by
the license agreement.
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 OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Trademarks (™)
AFGen, Apollo, Astro, Astro-Rail, Astro-Xtalk, Aurora, AvanWaves, Columbia,Columbia-CE, Cosmos, CosmosEnterprise,
CosmosLE, CosmosScope, CosmosSE, DC Expert, DC Professional, DC Ultra, Design Analyzer, Design Vision,
DesignerHDL, Direct Silicon Access, Discovery, Encore, Galaxy, HANEX, HDL Compiler, Hercules, Hierarchical
Optimization Technology, HSIMplus, HSPICE-Link, iN-Tandem, i-Virtual Stepper, Jupiter, Jupiter-DP, JupiterXT,
JupiterXT-ASIC, Liberty, Libra-Passport,Library Compiler, Magellan, Mars, Mars-Rail, Milkyway, ModelSource, Module
Compiler, Planet, Planet-PL, Polaris, Power Compiler, Raphael, Raphael-NES,Saturn, Scirocco, Scirocco-i, StarRC, Star-
SimXT, Taurus, TSUPREM-4, VCS Express, VCSi, VHDL Compiler, VirSim, and VMC are trademarks of Synopsys, Inc.
SystemC is a trademark of the Open SystemC Initiative and is used under license. ARM and AMBA are registered
trademarks of ARM Limited. Saber is a registered trademark of SabreMark Limited Partnership and is used under license.
All other product or company names may be trademarks of their respective owners.
Learning Objectives
In this lab, you will modify the default STIL file writen
from DFT Compiler to suit your Transition fault model
ATPG requirement.
After completing this lab, you should be able to:
• List the procedure and there WFT used during ATPG
• Adjust the clock timing for Last Shift launch Transition
ATPG
• Adjust the clock timing for System Clock launch
Transition ATPG
Lab Duration:
45 minutes
Introduction
Objective:
In this lab, you will take the default SPF file written out from DFT Compiler and
edit the same for Transition fault model ATPG.
File Locations
Directory Structure
Instructions
Your goal is to take the provided SPF file and then create a new SPF file that can be
used for both the last shift launch and system clock launch transition ATPG.
In this Task, you will open a default SPF file written out by DFT Compiler.
...................................................................................................
...................................................................................................
...................................................................................................
...................................................................................................
In this Task, you are going to modify the timing of the _default_WFT and
_multiclock_capture_WFT, which are used for last shift launch
Transition ATPG.
In the last shift mode, immediately after the last-shift you will have the
capture of the fault. The time difference between the active edge of ate_pclk
in the last shift and the active edge of ate_pclk in the capture procedure must
be equal to 16ns.
Question 5. What procedure and WFT is used for shifting?
...................................................................................................
Question 6. What procedure and WFT is used during capture for Last
Shift Launch Transition ATPG?
...................................................................................................
The period of _default_WFT_ is 100ns. To get the at-speed behavior you can
have the ate_pclk waveform as { 96 99} in _default_WFT_ and {12 15} in
_multiclock_capture_WFT_. This way the time difference between the two
edges of PCLK is 16ns
"ate_pclk" {P{ '0ns' D; '96ns' U; '99ns' D; } } Æ _default_WFT_
"ate_pclk" {P{ '0ns' D; '12ns' U; '15ns' D; } } Æ _multiclock_capture_WFT_
In a similar way calculate the timing for other clocks
Question 7. What will be the waveform for ate_sysclk in
_multiclock_capture_WFT_ if it is { 96 99 } in the
_default_WFT_?
...................................................................................................
...................................................................................................
Question 9. Since you have to do the pre-clock measure, what is the range
for the output strobe for multiclock_capture?
...................................................................................................
Question 10. Is there any need to change the default input delay of 0?
...................................................................................................
In this task, you will modify the clocks for the WFTs used in System Clock Launch
Transition ATPG.
Question 11. What procedure and WFT is used during the launch of the
fault in System Clock Launch Transition ATPG?
...................................................................................................
Question 12. What procedure and WFT is used during the capture of the
fault in System Clock Launch Transition ATPG?
...................................................................................................
Answers / Solutions
“multiclock_capture”
“allclock_capture”
“allclock_launch”
“allclock_launch_capture”
Question 4. How many Tester Cycles does the multiclock_capture
procedure takes?
Question 6. What procedure and WFT is used during capture for Last
Shift Launch Transition ATPG?
"ate_sdrclk"{P{'0ns'D;'96ns'U;'99ns'D;}}
Question 10. Is there any need to change the default input delay of 0?
NO
Question 12. What procedure and WFT is used during the capture of the
fault in System Clock Launch Transition ATPG?
Learning Objectives
Lab Duration:
45 minutes
Synopsys 30-I-022-SLG-004
Lab 2
Introduction
Objective:
In this lab, you will take care of the false paths and multi-cycle paths in the design.
As these paths are excluded for the STA, the faults on these paths should not be
given a detection credit.
You will use the pt2tmax.tcl utility to generate the SDC file which includes the user
exceptions as well as exceptions which are there for the paths violated.
File Locations
Directory Structure
Working Directories:
./lab1_stil_req
./lab2_timing_exp
./lab3_transition_atpg
./lab4_SDD_atpg
./lab5_pll_flow
./lab6_path_delay_atpg
Instructions
Your goal is to define the false path and multi-cycle paths in PrimeTime and to do a
timing analysis. If there are any violated paths then use the utility pt2tmax.tcl to
generate the exceptions for the violated paths. Once all the exceptions are applied
then generate the SDC file for TetraMAX ATPG.
False Paths :
set_false_path -from
I_ORCA_TOP/I_SDRAM_TOP/I_SDRAM_IF/DQ_in_1_reg_0_ \
-to
I_ORCA_TOP/I_SDRAM_TOP/I_SDRAM_READ_FIFO/reg_array_r
eg_1__16_
set_false_path -from
I_ORCA_TOP/I_PARSER/out_bus_reg_15_ \
-to
I_ORCA_TOP/I_SDRAM_TOP/I_SDRAM_WRITE_FIFO/SD_FIFO_CT
L/U1/empty_int_reg/D
set_false_path -from
I_ORCA_TOP/I_PARSER/r_pcmd_reg_0_/CP
set_false_path -through
I_ORCA_TOP/I_PARSER/out_bus_reg_7_/Q
set_false_path -to
I_ORCA_TOP/I_PARSER/pci_w_mux_select_reg_0_/D
Multi-cycle Paths :
set_multicycle_path 5 -from
I_ORCA_TOP/I_RISC_CORE/I_CONTROL/UseData_Imm_Or_RegB
_reg/CP \
-to
I_ORCA_TOP/I_RISC_CORE/I_DATA_PATH/Oprnd_B_reg_0_/D
set_multicycle_path 4 -from
I_ORCA_TOP/I_RISC_CORE/I_CONTROL/UseData_Imm_Or_RegB
_reg/CP \
-to
I_ORCA_TOP/I_RISC_CORE/I_DATA_PATH/Oprnd_B_reg_0_/D
-hold
In this task you have to edit the PrimeTime Script that is given. You need to look for
the “LAB STEP” section and udpate/add the commands in the script.
……………………………………………………………
Update the script with these constraints.
3. Update the script to source pt2tmax.tcl
Question 2. Where is the pt2tmax.tcl utility available?
……………………………………………………
Update the script
4. Copy the Multi-cycle and False path from top to the script
set_false_path …
set_multicycle_path …
…………………………………………………………
6. Add the command to write the updated SDC.
2. Timing Reports
Open the log file to answer the following questions
Question 4. Is there a timing violation with the user exceptions?
……………………………………………………….
Question 5. Is there a timing violation after the exceptions are updated?
………………………………………………………
3. There will be 2 SDC files generated at the end of the PrimeTime run. One
with the violations changed to exceptions and other only with the user
exceptions.
a. orca_scan_user_exception_update.sdc (User Exceptions
Only)
b. orca_scan_user_violation_exceptions.sdc (Both the user
and violation exceptions)
………………………………………………………
Answers / Solutions
$env(SYNOPSYS)/auxx/syn/tmax/pt2tmax.tcl
write_exceptions_from_violations –
delay_type min_max
Learning Objectives
Lab Duration:
50 minutes
Synopsys 30-I-022-SLG-004
Lab 3
Introduction
Objective
In this lab, you will perform Transition ATPG on a given design.
You will not be targeting for high test coverage. You will generate a few patterns
for both the “Last Shift” and “System Clock” launch methods. The intention here is
to see the at-speed clocks when the patterns are simulated in VCS.
In this lab you will be using the external ATE clocks for At-Speed launch/capture.
In lab5_pll_flow, you will use the internal PLL clocks for At-Speed launch/capture.
In this lab, the focus will be more on Transition ATPG and not on the DRC
violations. How to understand and debug the DRC violations is part of
TetraMAX-1.
File Locations
Directory Structure
Instructions
Your goal is to take the orca_scan.v netlist and generate 10 patterns for both “last
shift launch” and “system clock launch”. After generating these patterns, simulate
them in VCS and see the at-speed launch and capture pulse.
1. In this Task, you will invoke TetraMAX and read the library and the netlist
files.Invoke TetraMAX and read the library and the netlist file.
2. Since the model of CLKMUL , PLL_1 and PLL_2 are missing it is required
to black box them.
run_build_model ORCA
In this task, you will run drc using the SPF file created in lab1.
set_drc ../lab1_stil_req/
orca_comp_mode_occ_bypass_at_speed.spf
The timing exceptions generated in Primetime do not set the false path between the
clock domains.
...................................................................................................
set_delay ………………
...................................................................................................
set_drc -nodslave_remodel
-noreclassify_invalid_dslave
read_sdc …………………………………
5. Run drc.
run_drc
Question 3. How many nonscan flip flops are there in the design?
...................................................................................................
Question 4. How many scan chains are there and what is the maximum
chain length?
...................................................................................................
...................................................................................................
Note: You should be in TEST mode , once you have given the
“run_drc” command.
1. In this task, you will set up the ATPG for Transition fault model and then
generate 10 patterns of each kind of launch technique.Define Transition fault
model.
Question 6. What is the default fault model ?
...................................................................................................
...................................................................................................
Note: At any point in the flow you can use the command “report
setting” to see the default or the current settings of any
command.
2. Set the fault model to Transition and launch type to last shift launch.
add_faults –all
...................................................................................................
Lab 3-6 Transition ATPG and Pattern Simulation
Question 9. Is the fault list of stuck-at and transition fault models the
same?
...................................................................................................
Question 10. Transition fault model by default does not add faults on what
signals?
...................................................................................................
...................................................................................................
4. Constrain ATPG to generate only 10 patterns.
set_atpg –pattern 10
5. Run atpg
run_atpg –auto
...................................................................................................
...................................................................................................
Use the command report_pattern to see what clocks have been used to
capture the faults
...................................................................................................
Question 14. What flow will you take if you have to generate patterns
using a single clock?
...................................................................................................
...................................................................................................
7. Increase the pattern limit to 20 and then generate the patterns.
set_atpg –pattern 20
run_atpg –auto
...................................................................................................
Question 17. Are there multiple capture clocks in the new patterns
generated?
...................................................................................................
...................................................................................................
In this task, you will save the patterns generated and validate them by simulating in
VCS. You will be using the Unified STIL Flow (USF) to validate these patterns.
-----------------------------------------------------------------
3. On the Hierarchy Frame select the top module. This will load the signals in
the Variable frame. In the variable Frame Select the following signals with
control key pressed
a. cur_pat[31:0]
b. TM_MODE
c. TM_OCC
d. ate_pclk
e. ate_sdrclk
f. ate_sysclk
g. pll_bypass
h. scan_en
i. test_mode
j. Any other signal in which you are interested….
Keeping the mouse over one of the selected signal , take a right click and then “Add
To Waves Æ New Wave View”
Or after selecting the signals you can click on the “Waveform” at the left top.
Add to
4. You should be able to see the signals loaded in the waveform viewer. Now
you have to simulate the patterns. To simulate the patterns click on the
“Downward Arrow” on the tab.
In the waveform window. Click Here to
Start Simulations
5. At the end of the simulation the waveform window will get updated by itself.
Take a look at the simulated waveform to see the at-speed clocks in both the last
shift launch and system clock launch patterns.
1. Source the file vcs_tran_serial. After the compilation the DVE will invoke
with the simulation executable loaded.
2. Follow the steps 210-24 again
3. Exit all the tools
Answers / Solutions
“set_delay –common_launch_capture_clock”
Question 2. You will constrain scan enable to what value?
add_pi_constrain 0 scan_en
Question 3. How many nonscan flip flops are there in the design?
37
Question 4. How many scan chains are there and what is the maximum
chain length?
#uncollapsed_faults=130122
Question 9. Is the fault list of stuck-at and transition fault models the
same?
NO
Question 10. Transition fault model by default does not add faults on
what signals?
The transition fault model does not add faults on the clocks
and the scan_en signals.
Question 11. What warning messages are you getting?
Basic Scan patterns. Last shift launch uses the basic scan
ATPG to generate the patterns.
Question 13. Are there multiple capture clocks per pattern?
Constrain all the clocks to their off state, except the clock
that is to be used for capture.
Question 15. Are there any new patterns generated? Why?
Learning Objectives
Lab Duration:
60 minutes
Synopsys 30-I-022-SLG-004
Lab 4
Introduction
Objective
In this lab, you will do Small Delay Defect ATPG on given design.
You will use PrimeTime to generate the Slack Data File. The slack data will be used
by TetraMAX to target the faults on the paths with least slacks.
In this lab, the focus will be more on ATPG and not on the DRC violations. How to
understand and debug the DRC violation is part of TetraMAX – 1.
File Locations
Directory Structure
Instructions
Your goal is to take the orca_scan.v netlist and generate 10 patterns for each “last
shift launch” and “system clock launch”. After generating these patterns, simulate
the same in VCS and see the at-speed launch and capture pulse.
This lab will use the SPF file “orca_scan_trans.spf ” generated in Lab1 and
“orca_scan_user_violation_exceptions.sdc” generated in lab 2.
In this Task, you will invoke PrimTime and generate the slack data to be used
during ATPG.
……………………………………………………………
4. Update the script to redirect the output of the above command to file
orca_scan_comp_mode_occ_bypass_sdd.slack ( Let this be last command
before exit)
report_global_slack >
orca_scan_comp_mode_occ_bypass_sdd.slack
pt_shell –f pt_lab4_sdd_atpg.cmd
6. Exit PrimeTime.
In this Task, you will run TetraMAX, read the library, netlist files and give the
needed command to reach the TEST mode.
… ...............................................................................................
Note: You should be in TEST mode , once you have run the
“run_drc” command.
In this task, you will set up ATPG for Small Delay Defect faults and then run the
same. You will generate 10 patterns of each kind of launch technique.
set_atpg –pattern 10
...................................................................................................
...................................................................................................
...................................................................................................
set_delay –max_tmgn _ _ _
Question 6. Can the faults with tmgn more than max_tmgn have a DS
classification?
… ...............................................................................................
6. Run ATPG
run_atpg –auto
--------------------------------------------------------------------------.
set_atpg –pattern 20
set_delay –launch_cycle system_clock
run_atpg –auto
… ...............................................................................................
… ...............................................................................................
report_faults
I_ORCA_TOP/I_BLENDER_0/s4_op2_reg_25_/D -slow r
Question 10. What is the tmgn and delta for this fault?
.. .................................................................................................
Question 11. Why does the fault not have any delta value?
.. .................................................................................................
.. .................................................................................................
In this task, you will save the patterns generated and validate them by simulating in
VCS. You will be using the Unified STIL Flow (USF) to validate these patterns.
The pattern simulation will be exactly the same as for the standard Transition Fault
model. If time permits simulate the patterns.
2. Source the file vcs_sdd_parallel. After the compilation the DVE will invoke
with the simulation executable loaded.
3. From the top tab click on “Window Æ New Top Level Frame Æ Hierarchy +
Data + Console”
4. On the Hierarchy Frame select the top module. This will load the signals in
the Variable frame. In the variable Frame Select the following signals with
control key pressed
a. cur_pat[31:0]
b. TM_MODE
c. TM_OCC
d. ate_pclk
e. ate_sdrclk
f. ate_sysclk
g. pll_bypass
h. scan_en
i. test_mode
j. Any other signal in which you are interested ….
Keeping the mouse over one of the selected signal , take a right click and then “Add
To Waves Æ New Wave View”
Or after selecting the signals you can click on the “Waveform” at the left top.
Add to
5. You should be able to see the signals loaded in the waveform viewer. Now
you have to simulate the patterns. To simulate the patterns click on the
“Downward Arrow” on the tab. In the waveform window. Click Here to Start
Simulations
6. At the end of the simulation the waveform window will get updated by itself.
7. Take a look at the simulated waveform to see the at-speed clocks in both last
shift launch and system clock launch.
1. Source the file vcs_sdd_serial. After the compilation the DVE will invoke
with the simulation executable loaded.
2. Follow the steps 16-20 again
3. Exit all the tools
Answers / Solutions
report_global_slack
Task 2. Run TetraMAX and go to Test Mode
Question 2. Is there any change required in the Transition SPF file for
SDD ATPG?
No, there is no change needed for the SPF file. The same
SPF file can be used which was used for Transition ATPG.
Task 3. Run ATPG
Question 3. If you run ATPG at this step will it do a SDD based ATPG?
read_timing
Question 5. What is the default value of max_tmgn and Delta? How
does it affect the quality and number of patterns?
Question 6. Can the faults with tmgn more than max_tmgn have a DS
classification?
No
Question 7. What is the absolute value of max_tmgn calculated by
TetraMAX ?
run_atpg –auto
The max tmgn for small delay defect faults has been set to
6.04
Question 10. What is the tmgn and delta for this fault?
str NO
I_ORCA_TOP/I_BLENDER_0/s4_op2_reg_25_/D 0.01
Question 11. Why does the fault not have any delta value?
Transition ATPG
using PLL clocks
Learning Objectives
Lab Duration:
60 minutes
Synopsys 30-I-022-SLG-004
Lab 5
Introduction
Objective
In this lab, you will perform Transition ATPG on the given design with PLL and
OCC. At-speed launch and capture of the fault will happen on the fast clock from
the PLL, instead of the top level port as in Lab3.
File Locations
Directory Structure
Instructions
Your goal is to take the netlist and generate 30 patterns using system clock launch
where the fast clocks come from PLL. After generating these patterns, simulate the
same in VCS and see the at-speed launch and capture pulse.
This lab will use the QuickSTIL commands in TetraMAX to generate the SPF file.
Once the SPF file is generated, you will edit the same to suit the controller
requirements.
Note: DFT Compiler/DFTMAX can generate the SPF which has the necessary
constructs to run ATPG with PLL. This lab uses the flow where you need to
generate the SPF from TetraMAX.
Since this flow is using the QuickSTIL flow to generate the SPF, you cannot use the
design in Scan Compression mode. Extracting the compressor structures is not
supported.
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.
ORCA
snps_clk_chain
ate_pclk snps_pll_controller
ate_sdrclk
I_CLOCK_GEN/sdr_occ/U4/Z
ate_sysclk
pll_reset
I_CLOCK_GEN/pclk_occ/U4/Z
pll_bypass
TM_OCC I_CLOCK_GEN/sys_occ/U6/Z
I_CLOCK_GEN/
I_CLOCK_GEN/sys_occ/U7/Z
sdr_clk I_PLL_PCI/CLK
I_PLL_SD/CLK
pclk I_CLKMUL/CLK_1X
sys_clk I_CLKMUL/CLK_2X
scan_en
TM_MODE
prst_n
test_mode
ate_pclk, ate_sdrclk, ate_sysclk
Reference Clocks:
• sdr_clk
• sys_clk
• pclk
PLL Clocks:
• I_CLOCK_GEN/I_PLL_PCI/CLK
• I_CLOCK_GEN/I_PLL_SD/CLK
• I_CLOCK_GEN/I_CLKMUL/CLK_1X
• I_CLOCK_GEN/I_CLKMUL/CLK_2X
OCC BLOCK:
The Internal clocks from the OCC have the following connections with the
PLL clock and conditions in which the clock is allowed to pass to core.
Clock 1 :
Clock 2:
Clock 3:
Clock 4:
Note: Only signals which are needed for DRC are shown here.
Scan Chains :
1 pad[1] sd_DQ[1]
2 pad[2] sd_DQ[2]
3 pad[3] sd_DQ[3]
4 pad[4] sd_DQ[4]
5 pad[5] sd_DQ[5]
6 pad[6] sd_DQ[6]
7 pad[7] sd_DQ[7]
8 pad[8] Sd_DQ[8]
In this task you have to edit the TetraMAX script that is given. You need to look for
the “LAB STEP” and udpate/add the commands in the script
The script will read the library and the netlist files and run build model to go into
DRC-T mode. Once in DRC-T mode you will use QuickSTIL commands to define
all the clocks of the OCC and generate the SPF file. The necessary pin constraints,
scan paths and the clock information is provided in Task 1.
…………………………………………………………
Question 2. How should an ATE clock be defined if it is to be pulsed
during capture as well?
…………………………………………………………
2. Define the Reference clocks
Question 3. Can reference clocks have a period different from the ATE
clocks?
…………………………………………………….......
Question 4. What is the command to define a Reference clock with a
period other than that of ATE clock?
………………………………………………………….
Question 5. Can the patterns be written in all the formats if the ATE and
Reference clocks are not same?
………………………………………………………….
Question 6. What is the only supported format if the Reference and ATE
clocks have a asynchronous relation?
…………………………………………………………
Note: You need to define the reference clock as both the reference
and the shift clock for DRC to pass.
add_clocks -pll
• Yes
• No
………………………………………………………….
Question 8. What is the source of the PLL clock in TetraMAX ?
………………………………………………………….
4. Define the number of capture clock pulses and capture cycles allowed in the
capture mode.
Before defining the Internal clocks you need to define the number of PLL
capture cycles during capture. Depending on this, you will have to define the
condition for each PLL capture cycle to reach the core, when defining the
Internal Clocks. The OCC controller in this design is implemented to support
2 PLL clock pulses duringcapture.
set_drc -num_pll_cycle
Question 9. Will the DRC fail if there is not a valid path from PLL clock
to internal clock during capture?
...................................................................................................
add_scan_path
add_pi_constraints
add_scan_eanble
11. Constrain ATPG to use the same clocks for launch and capture.
set_delay ………………………………
This can be a two step process. First you generate the patterns with the default
number of ATE clock cycles. Once the patterns are simulated, you can verify
if the launch and capture pulses are coming with scan enable de-asserted. If
these pulses are late and come once the scan enable is asserted, you need to
increase the cycles for which scan enable is de-asserted. Seeing the simulation
waveforms you can calculate the number of ATE cycles.
For this design you need the number of ATE cycles equal to 3.
set_atpg -min_ateclock_cycles
What is the default number of ATE cycles for which scan enable is low ?
..............................................................................................................................
write_drc lab5_PLL_flow.spf
In this task you will edit the SPF file gnerated in Task3 to suit the OCC requirement.
The SPF file generated from TetraMAX can be used in most cases as is. In case if
there is any specific requirement for OCC you need to edit it and then use the same
for DRC checks. In this task, also you will edit the SPF file so as to pass the DRC.
The OCC implemented in this design, requires a vector before the shift starts. All
the ATE and the Reference clocks need to be pulsed in this vector. Also, it is
required that the OCC is reset before it can be used for ATPG. So, for this you will
assert the OCC's reset pin in the test_setup macro for one cycle with ATE and the
Refclocks constrained to their off state.
set_drc ……………
Question 10. Do you need to alter the timing in the waveform when using
the OCC ?
……………………………………………………....... ............
19. ORCA design requires the following command to prevent parallel pattern
simulation failure
set_drc -nodslave_remodel
-noreclassify_invalid_dslave
run_drc
Question 11. What additional DRC checks are done if the OCC is present
in the netlist?
……………………………………………………....... ............
Lab 5-12 Transition ATPG using PLL clocks
In this task, you will set up ATPG for the Transition fault model and then perform
ATPG to generate 30 patterns.
1. Run ATPG
run_atpg -auto
………………………………………………………………
In this task, you will save the patterns generated and validate them by simulating in
VCS. You will be using the Unified STIL Flow (USF) to validate these patterns.
2. Source the file vcs_pll_paralllel. After the compilation the DVE will invoke
with the simulation executable loaded.
3. From the top tab click on “Window Æ New Top Level Frame Æ Hierarchy +
Data + Console”
4. On the Hierarchy Frame select the top module. This will load the signals in
the Variable frame. In the variable Frame Select the following signals with
control key pressed
a. cur_pat[31:0] v_count[31:0]
b. TM_MODE TM_OCC
c. ate_pclk ate_sdrclk ate_sysclk
d. pll_bypass pll_reset
e. scan_en test_mode
f. I_CLOCK_GEN/pclk_occ/U4
g. I_CLOCK_GEN/sdr_occ/U4 Capture clocks
h. I_CLOCK_GEN/sys_occ/U7
Keeping the mouse over one of the selected signal , take a right click and then “Add
To Waves Æ New Wave View”
Or after selecting the signals you can click on the “Waveform” at the left top.
Add to Waves
5. You should be able to see the signals loaded in the waveform viewer. Now
you have to simulate the patterns. To simulate the patterns click on the
“Downward Arrow” on the tab. In the waveform window. Click Here to Start
Simulations
6. At the end of the simulation the waveform window will get updated by itself.
7. Take a look at the simulated waveform to see the at-speed clocks.
1. Source the file vcs_pll_serial. After the compilation the DVE will invoke with
the simulation executable loaded.
2. Follow the steps 27-31 again
3. Exit all the tools
Answers / Solutions
Question 3. Can reference clocks have a period different from the ATE
clocks?
Yes
Question 8. What is the source of the PLL clock in TetraMAX?
Question 9. Will the DRC fail if there is not a valid path from PLL clock
to internal clock in the capture mode?
Question 11. What additional DRC checks are done if the OCC is present
in the netlist?
Learning Objectives
Lab Duration:
60 minutes
Synopsys 30-I-022-SLG-004
Lab 6
Introduction
Objective
In this lab, you will do Path Delay ATPG. You will use PrimeTime to generate the
Paths which will be read by TetraMAX.
You will select paths from all the clock domains in the design and then target both
the rising and falling transitions on these paths.
File Locations
Directory Structure
Instructions
Your goal is to take the orca_scan.v netlist and generate patterns which target the
paths of the design. The paths will be extracted from PrimeTime using the pt2tmax
utility. This lab will use the SPF file “orca_scan_at_speed.spf ” generated in Lab1.
Follow the instructions in the tasks to accomplish this goal. Use the commands in
grey color box to proceed with the labs.
In this Task, you will invoke PrimTime and generate the paths on which ATPG will
be performed.
3. Write out the 20 paths from each clock domain using the same launch and
capture clock.
4. Exit.
In this task, you will invoke TetraMAX and read the design and Run DRC .
1. Invoke TetraMAX and read the library and the netlist file.
set_drc ../lab1_stil_req/orca_scan_at_speed.spf
read_sdc …………………………………
5. Define Constraints
Question 1. What ports are needed to be constrained during ATPG?
………………………………………………………….
………………………………………………………….
Question 3. What is the command in TetraMAX to constraint the PIs
and mask Pos?
………………………………………………………….
6. Constraint the ATPG to use the same launch and capture clocks.
set_delay -common_lauch_capture_clocks
set_drc -nodslave_remodel
-noreclassify_invalid_dslave
run_drc
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.
………………………………………………………..
Question 5. If we want to generate patterns only with system clock
launch what shall be done?
………………………………………………………..
Question 6. Is scan enable constrained? What command can you use to
confirm that?
………………………………………………………..
2. Read the paths files generated in Task1.
add_delay_paths ……………………
add_delay_paths ……………………
add_delay_paths ……………………
……………………………………………………………
Question 8. Refer to TetraMAX Online Help and give the reason why
we get P21 violations?
……………………………………………………………
Question 9. Will the Paths with P21 violations be targeted for ATPG and
what will be their classification before and after ATPG?
……………………………………………………………
3. Add faults
add_fault -all
……………………………………………………………
Question 11. What command should be used if you want to add faults for
both rising and falling transition?
……………………………………………………………
4. To avoid long runtime with full sequential ATPG engine, constrain the ATPG
to not use the full sequential engine
set_atpg –nofull_seq_atpg
5. Run ATPG
run_atpg –auto
In this task, you will save the patterns generated and validate them by simulating in
VCS. You will be using the Unified STIL Flow (USF) to validate these patterns.
-----------------------------------------------------------------
4. On the Hierarchy Frame select the top module. This will load the signals in
the Variable frame. In the variable Frame Select the following signals with
control key pressed
a. cur_pat[31:0]
b. TM_MODE
c. TM_OCC
d. ate_pclk
e. ate_sdrclk
f. ate_sysclk
g. pll_bypass
h. scan_en
i. test_mode
j. Any other signal in which you are interested….
Keeping the mouse over one of the selected signal , take a right click and then “Add
To Waves Æ New Wave View”
Or after selecting the signals you can click on the “Waveform” at the left top.
Add to Waves
5. You should be able to see the signals loaded in the waveform viewer. Now
you have to simulate the patterns. To simulate the patterns click on the
“Downward Arrow” on the tab.
In the waveform window. Click Here to
Start Simulations
6. At the end of the simulation the waveform window will get updated by itself.
7. Take a look at the simulated waveform to see the at-speed clocks in both the
launch on shift ( pattern 0 to 10 ) and system clock launch (11-20).
1. Source the file vcs_tran_serial. After the compilation the DVE will invoke
with the simulation executable loaded.
2. Follow the steps 23-27 again
3. Exit all the tools
Answers / Solutions
No, this command does not have any effect for Path Delay
atpg.
Question 5. If we want to generate patterns only with system clock launch
what shall be done?
Synopsys 30-I-022-SLG-004
Lab 6
Question 8. Refer to TetraMAX Online Help and give the reason why we
get P21 violations?
59
Question 11. What command should be used if you want to add faults for
both rising and falling transition?
set_delay -relative_edges