Professional Documents
Culture Documents
Company
|
D&R China
|
dr-embedded.com
|
Wiki
|
Login
|
Subscribe to D&R SoC News Alert
SEARCH IP NEWS INDUSTRY ARTICLES BLOGS VIDEOS PODCAST EVENTS Search Industry Articles
Reduce ATPG Simulation Failure Debug Time by Understanding and Editing SPF
By Namrata Makwana (eInfochips, an Arrow company)
Abstract
also called MBIST/Scan insertion to get controllability 16,000 IP Cores from 450 Vendors
and observability of the design to make it easily
Enter Keywords....
testable after manufacturing i.e., post-silicon SOC
testing.
See eInfochips Latest Articles >>
NEW ARTICLES
Radiation Tolerance is not just for Rocket
Scientists: Mitigating Digital Logic Soft
Errors in the Terrestrial Environment
Weighing Chip-Design-Verification
https://www.design-reuse.com/articles/47949/reduce-atpg-simulation-failure-debug-time-by-understanding-and-editing-spf.html 1/7
11/30/22, 1:28 PM Reduce ATPG Simulation Failure Debug Time by Understanding and Editing SPF
If the pattern simulation failure occurs, we need to analyze the failure 1. System Verilog Macro: A Powerful
and need to do necessary changes in ATPG stage like spf modification Feature for Design Verification
Projects
to clean up the simulation failures.
2. Dynamic Memory Allocation and
Fragmentation in C and C++
What is SPF? 3. Design Rule Checks (DRC) - A
Practical View for 28nm Technology
SPF stands for STIL(Standard test interface language) protocol file generated 4. System Verilog Assertions Simplified
after the scan insertion stage, which consists of all the necessary and basic 5. UVM RAL Model: Usage and
Application
scan information.
In general words, SPF portrays the information of scan structure, scan chain, See the Top 20 >>
initial state value for all the signals for particular test mode and furthermore.
All the above-defined information in SPF is needed to guide the ATPG tool for E-mail This Article Printer-Friendly Page
DRC checks and pattern formatting.
Please check below SPF infrastructure segment for a more detailed structure
of SPF.
SPF Skeleton
Let’s begin with the different segments categorized in SPF, described below:
1. Signals
2. Signal groups
3. Scan structure
4. Timing
5. Procedures
6. MacroDefs
The SPF which is described in this article is based on stuck-at faults without
compression.
1.Signals
It is the first section of SPF containing definition of all the signals with their
type(In, Out, InOut etc)
2.Signal Grouping
In this section, the signals which were defined in the first part is classified
based in different group based on its type.
https://www.design-reuse.com/articles/47949/reduce-atpg-simulation-failure-debug-time-by-understanding-and-editing-spf.html 2/7
11/30/22, 1:28 PM Reduce ATPG Simulation Failure Debug Time by Understanding and Editing SPF
Below shown are some signal groupings:
3.Scan Structure
This section includes the scan chain information like scan chain name,
Scan_in, scan_out and scan_enable pin and also the clock used by that
particular chain.
4.Timing
Waveform table is defined for all the different procedures which are required
for different use :
Default_WFT
Multiclock_capture_WFT
Allclock_capture_WFT
Allclock_launch_WFT
Allclock_launch_capture_WFT
Note:
5.Procedure
Procedures are defined for the capture cycle of stuck-at and at-speed faults
like Multiclock_capture, allclock_capture, allclock_launch,
allclock_launch_capture procedures.
Based on which fault model you are using, the capture procedure will be
automatically selected.
Example of one capture procedure, and how its structure looks like:
"multiclock_capture" {
a. W "Multiclock_capture_WFT_";
b. C {
//All_output are X, as we does not know it’s initial value, it will be capture
later and automatically observed.
iv. F {
"Scan_enable" = 0;
“Scan_mode” = 1;
https://www.design-reuse.com/articles/47949/reduce-atpg-simulation-failure-debug-time-by-understanding-and-editing-spf.html 3/7
11/30/22, 1:28 PM Reduce ATPG Simulation Failure Debug Time by Understanding and Editing SPF
“clk_1” = P;
“clk_2” = P;
“rstn_L” = 1;
//F section contains the signals which needs to be changed after its initial
state value or constant value.
c. V {
i. "PI" = \11 #;
ii. "PO" = \5 #;
// Total PI and PO numbers with # is the placeholder for the values which is
going to be generated for all the signals.
6.MacroDefs
This division includes the test setup part through which we can initialize the
instruction and data bit registers at the TAP/top level.
Also, the test setup is required to provide the values to the signals before
the pattern generation starts for the scan mode to bring chip in its known
state like functional mode, test mode, MBIST mode, etc.
If the input vectors provided for simulation don't match with expected or
golden output leads to simulation failure.
To debug, first of all, take the absolute path of the failing register and
analyze the value of the mandatory signals like clock, reset, D, SI, SO, Q,
etc.
If any X value observed in the signal, then back-trace the particular signal
and do this until the source for X generation is observed.
1. Clock value X
2. Reset value X
3. Clock Frequency not correct
Clock value X
On further back tracing the scan_clk and RESET_L signals, below source
test_mode – X and scan_clk – 1 is observed.
https://www.design-reuse.com/articles/47949/reduce-atpg-simulation-failure-debug-time-by-understanding-and-editing-spf.html 4/7
11/30/22, 1:28 PM Reduce ATPG Simulation Failure Debug Time by Understanding and Editing SPF
Now the question arises in mind that How to resolve? Where to fix? How to
fix?
So, here are the answer explained below for the above question.
Also, to fix the issue without any force given at the simulation stage, we can
check the values of the particular signals in SPF used at the ATPG stage.
Here comes the SPF editing part to define the scan_clk and test_mode
values.
Earlier the values for scan_clk and test_mode is inaccurately defined in the
SPF as shown below:
In this, “All_in” values are defined based on the signals and its position.
Round mark are drawn on the issue part, and below is the description of
that.
Scenario 1:
“All_in” = 11 \r8 N;
//
C {
F {
Solution 1:
C {
F {
“scan_clk” = P;
Scenario 2:
https://www.design-reuse.com/articles/47949/reduce-atpg-simulation-failure-debug-time-by-understanding-and-editing-spf.html 5/7
11/30/22, 1:28 PM Reduce ATPG Simulation Failure Debug Time by Understanding and Editing SPF
In “load_unload” procedure – Clock should be pulsing for shift procedures.
C {
“All_in” = 11 \r8 N;
Shift {
V {
"Clock" = 11;
} }
Solution 2:
C {
Shift {
V {
}}
Scenario 3:
If the scan clock frequency is different than the required frequency, then
change the clock period in _WFT table, as shown below:
Change the period in ns for the up and down section of the respected scan
clock according to the required frequency.
SPF is also used to feed instructions and data bits to the UTDR (user defined
test data register bits) and for initialization/test setup purpose as well.
Conclusion
With the increase in technology node, Silicon industry testing has become
challenging.
To deal with the failures in SoC we need to invest significant amount of time
and effort.
Above article presents different methods to solve the SoC failures efficiently
by performing the modifications in the SPF file.
Author
Namrata Makwana
References
Contact eInfochips
https://www.design-reuse.com/articles/47949/reduce-atpg-simulation-failure-debug-time-by-understanding-and-editing-spf.html 6/7