ATPG Methodology
Rev 2.4
Author: Prasad
Document History
Revision History Changes
15/4/05
1. Shift Mode
In the shift mode, all sequential elements are connected in such a way that they
operate as one or more shift registers. The shift chain is used to control the circuit
and observe the result.
2. Capture Mode
In the capture mode, the values stored in the sequential elements during shift are
propagated from the source via the functional logic to the sink. Each pad or
sequential element in the SCAN chain is able to operate as source as well as sink.
Our methodology flow is related to SAF (Stuck at Fault ) and TF ( Transition Fault )
defects.
Here we follow a stand alone group/block approach for the functional design, the
same we follow for the Scan design. The SCAN Design in each group is treated
separately and has stand alone scan chains for every Group. The final scan chain
connections, and the porting the group level scan_in/scan_out to the Chip level i/os are
done manually early in the RTL.
The number of scan chains is limited by the number of scan-ins and scan-outs that
can be accommodated on the chip. Also by considering requirements and limitations
of the chip testers , the scan chain length is fixed to around 5000. The scan in and
scan out are shared between the functional pins.
It is important for module designers to take the DFT into considerations since managing
DFT issues during logic design is a refined methodology with many benefits. The DFT
guidelines and rules must be understood and applied by design engineers thoroughly.
Each Group or the Block will be synthesized , scan stitched, clock-gated to reduce the
power and integrated to the chip Top. And also the DFT gating will be done in the PADs
to work in the proper direction in the SCAN mode.
TetraMAX is the automatic test pattern generation (ATPG) tool used in our DFT
methodology flow, to generate SAF ( Stuck at Fault ) pattern, TF(Transition fault)
Patterns and RS ( Ram sequential ) patterns.
As the blocks get stabilizes , start with the Chip level ATPG with the netlist from the
back-end ( place-and-route ). Start with SAF Patterns, using the default engine that is
the Basic-Scan, then migrate to most complex algorithms (fast Sequential , Full
Sequential ) with in the ATPG tool to improve the Test Coverage number.
Before Generating the Full SAF scan patterns , better to write out the Chain test
pattern in the verilog Format to do the Back annotated Timing simulation. First start
with the FAST corner and then to SLOW corner. The above process will make sure
the scan shift chain structure is OK.
Before the Tapeout Simulate around 10 to 100 parallel patterns (with 10 to 15 shifts) in
FAST corner first and then in SLOW corner and also make sure that the STA is OK in the
Scan mode, especially in the Fast corner.
Then generate TF patterns to check the transition faults by using system mode approach.
In the system clock mode, initiates launching logic value using a normal system
clock. It exercises target transition faults and then captures the new logic values with
a subsequent system clock.
All these SAF and TF vectors will be sending to the ATE ( Automatic Test
equipment ) and will be tested on the silicon. Some times we need to debug the
Potentially Faulty node in the silicon which will cause the Mismatches at the
tester .The Fail Log from the Tester ( ATE ) will vary with Tester to Tester. Hence the
basic information from the Tester needs to be translated to Failure Data File Format,
which can be given to the ATPG Tool to get the potentially faulty node information.
SCAN Design in each block is treated separately and has stand alone scan chains for
every block. The final scan chain connections, and the porting the group level
scan_in/scan_out to the Chip level i/os are done manually in RTL. The scan methodology
is full scan and scan flip-flop types is multiplexed flip-flop. But few blocks like tap
controller and boundary scan registers are excluded from SCAN, since separate functional
test are used to target faults on those blocks.
The following diagram gives an example of the group level classification, for the latest
project, falcon.
Chip_Top
C1 C2 C3 C4 C5 C6 C7
C1, C2, C4, C5, C8, C9, C11, C12 are per quad basis and hence have 2 instances at top level
C12 has 2 dfus and hence 4 instances at top level
C3, C6, C7, C10, C14 are global blocks and hence 1 instance each at top level
Timimg Simulation
using w/ w/o SDF
TetraMAX is the automatic test pattern generation (ATPG) tool used in our DFT
methodology flow, to generate SAF ( Stuck at Fault ) pattern, TF(transition fault)
Patterns and RS ( Ram sequential ) patterns, by making use of the three different
ATPG algorithms like Basic-Scan, Fast-Sequential, and Full-Sequential ( Details are
there at Chapter 8 )
1. Pre-process the Netlist from the synthesis tool to trace all the scan chains correctly. For
example, some of the analog pins like vcxo_clk may not be connected in the netlist.
So we need to connect them in the appropriate place.
2. Make sure that the ATPG Lib model matches with the Verilog Lib model.
3. Macros like RAMs, ROMs, PLL, and RFs should be modeled such a way that, it
must not create any issues like reduction in test coverage and simulation mismatches
while gate level verification.
SRAMs in the SMS ( Star memory system from Virag) were equipped
with internal scan muxes (Asynchronous write-through modes), thus were
modeled as empty feed-through with assign statements. We must use the
ATPG model written out by the VIRAG lib compiler during ATPG Tool.
Others (RF) were modeled as black boxes or empty boxes and used with
bypass collars that were active only during scan in the bist wrapper
logic. Hence we can model RF as empty boxes to do the ATPG in the
safe side.
SMS fuse boxes, ROMs and Other Analog Blocks were modeled as black
boxes.
The port level pin vcxo_clk comes to the PLL block, feed-through as
pll_vcxo_clk and driving many scan elements in the design. Hence PLL
was modeled as empty boxes with chip level crystal clock vcxo_clk
feed-throughs with assign statements.
Following are the some points to be noted during the first phase of ATPG run
1. Set the pin constrains to make all the scan clocks and asynchronous Resets
controllable from port level ( clock mux selection , reset mux selection , PLL
bypass etc )
2. Set the Port level pin with appropriate value to make SMS SRAMs asynchronous
feed thorough
3. Set the pin constrains to make the boundary scan logic transparent at all the pins.
This can be achieved by resetting the JTAG controller by forcing active value to
JTAG_TRST_L.
7. Make sure that there are NO bus contentions during any of the test procedure
(load_unload or setup) in the STIL. If so drive Z during that time, and rerun the
ATPG.
8. Make sure that all the latches in the design are transparent while SHIFTING.
9. Make sure that Number of scan cells traced by to the ATPG tool in each chain
correlates with the synthesis tool scan length.
10. Make sure that NO shadow registers are identified by the ATPG Tool.
11. Make sure that Lockup Latches are present where ever there is scan clock mixing.
12. More over, read carefully the all warnings generated by ATPG tools and find
out the explanation for the same.
It is important for module designers to take the DFT into considerations since managing
DFT issues during logic design is a refined methodology with many benefits. The DFT
guidelines and rules must be understood and applied by design engineers thoroughly.
Scan chain length and design scanability dominate the ATPG run time and the length
of test vector as well as the production test time. To make a test time as short as
possible, two main points are extremely helpful. One is to have a full scan design and
second is to implement as many scan chains as possible.
Of course, the number of scan chains is limited by the number of scan in and scan out
that we can be accommodated on the chip. The scan in and scan out can be shared
between the functional pins. Also consider requirements and limitations of your chip
testers on deciding the max-scan length and number of chains. In previous project, the
scan chain length is around 5000 and 34 chains.
After identifying the total number of scan chains, we need to allocate chains to each
group.
1. SCAN_ENABLE
In the shift mode, all sequential elements are connected in such a way
that they operate as one or more shift registers. The shift chain is used
to control the circuit and observe the result.
The port level SCAN_ENABLE pin is gated with SCAN_MODE to generate the
internal scan_enable signal which is fed to all the Scan flops in the design. Hence we
can share the same pin in functional mode.
SCAN_MODE is the static signal which is tied to HIGH during SCAN. This signal is mainly used for
fixing DFT violations.
The following guidelines apply to the selection of existing ports to be used for any
test purpose.
1. A port that already feeds the input of a flip-flop in a scan chain is the best
port to redefine as a scan chain input.
2. A port that already comes directly from the output of a flip-flop in a scan
chain is the best port to redefine as a scan chain output.
5. An input port that feeds directly into the input of a flip-flop in a scan chain
can be redefined as a shared port.
6. An output port that comes directly from the output of a flip-flop in a scan
chain can be redefined as a bidirectional port and used in input mode while
TEST is asserted.
8. An input port that has a small amount of fan-out before entering a flip-flop
is a good choice to be redefined for use as a test-related input while TEST is
asserted.
9. Special High speed timing critical ports should be avoided when we choose
the test ports.
After getting number of scan chains for the whole chip, we need to allocate to each
block/Group. The test input and test output ports need to be added at the RTL level
itself, depends on the number of chains in each Group ( ex C1 , C2 ,C3 etc).
The output enables of the identified test ports to be gated with SCAN_MODE ( if
BIDI or TRISTATE ) and need to be ported to the appropriate groups test ports.
Force scan chain outputs that use bidirectional or three-state ports into an output
mode while shifting scan chains in ATPG test mode, using the top-level control pin
scan_enable or scan_mode.
It is better to force all bidirectional ports which are not used as scan out port, to input
mode while shifting scan chains in ATPG test mode, using a top-level port as control
scan enable. If we are not doing so, we should ensure that the ATE should drive Z
while shifting the scan chains.
Force scan chain outputs that use bidirectional or three-state ports into an
Output mode while shifting scan chains in ATPG test mode, using a top-level port
(usually SCAN_ENABLE)
Since RAMs and ROMs are tested via BIST (achieving very high fault coverage),
they do not need to be tested and fault graded by ATPG tools. But even when RAM is
made fully testable (via BIST logic), a significant reduction in test coverage of the
surrounding logic may result (shadow logic).
SMS - SRAM were equipped with internal scan muxes (Asynchronous write-through
modes), thus Data In is directly feed through to the Data out. This can be achieved by
asserting the port level signal called AWT of SRAM. By doing so the RAM shadow
logic can be covered using ATPG. But during RAM sequential ATPG we do not need
to bypass the memory. ATPG tool will pulse the ram control signals through the
preceding scan cells by shifting through the Scan cells. Hence the AWT of the SRAM
is gated in the following way.
ATPG (SCAN_MODE = 1)
BASIC ATPG RAM SEQ ATPG
(SEQ_ATPG = 1) (SEQ_ATPG = 0)
AWT signals to all the SMS-SRAMs will AWT signals to all the SMS-SRAMs will be De-
be asserted , there by Data Input will asserted , there by RAM will work normally.
feed through to the Data Output.
For the ATPG Tool RAM will be like a ATPG Tool will Toggle the RAM address
WIRE, and hence the Shadow logic of and Control signals by shifting the Data
the SRAMs can be covered. through the Scan chains. And Capture the
Data from the Data Output port of the
SRAMs.
RFs (register Files) were bypassed externally using the scan control signal
SCAN_MODE or SCAN_ENABLE. Minimum extra flops are added to get
observability on the shadow logic between the RAM control/address generation
Registers and the RAM input Pins.
While in ATPG test mode, ensure that clocks and asynchronous set or reset signals
come from primary inputs. Bypass internally generated clocks or asynchronous set or
reset signals using test control signal SCAN_MODE. Basically constrain the clock
path such a way that, Clean Port level clock reaches the Clock pi of all the SCAN
elements. The clock gating used to save the power should be controlled using
SCAN_ENABLE, such that pure clean port level clock will reach the clock pin of the
scan elements at least during SCAN SHIFT.
Use the SCAN_MODE control signal to multiplex the power-on reset signal so that it
comes from an existing reset input or some other primary input during SCAN. And
also use the SCAN_MODE control signal to block the power-on reset source so that it
has no effect during test.
The DFT at module level includes scan insertion and test design rule check. The
guidelines include two main domains: general scan-based test design rules and some
special considerations for chip test integration.
We will use the first cut synthesis netlist to start the ATPG run. We will run ATPG at
block level and check the DRC warning and review the Test coverage (block level TC
should be 99+ ) to make the DRC error/warning debug easier .
A shadow register is not in the scan chain, but is loaded when its master register in the
scan chain is loaded, by the same clock or by a separate clock. A shadow register is
considered a control point but not an observe point. During the DRC analysis,
TetraMAX searches for non scan cells that can be considered shadow registers. ATPG
tool will try to cover the Shadow register through other scan cells.
If the master scan cell and the shadow register are in different clock domain, there is a
possibility of capturing a wrong data. So it is better NOT to use this approach. So we
need to tell the tool to NOT to identify shadow register in the design and try to cover
them by this approach (set drc -NO Shadows ). Hence Tool will try to cover this
registers with normal ATPG methods.
A transparent latch is a latch in which the enable line can be asserted so that data
passes through it without activating any of the designs defined clocks. During the
rule checking process, TetraMAX automatically determines the location of all latches
in the design and checks to see whether the latches can be made transparent. For
ATPG, you must be able to disconnect the latch control from any clock ports.
When latches are transparent, it is easier for TetraMAX to detect faults around those
latches. When latches are not transparent, you might need to use a Full-Sequential
ATPG run to get good fault coverage around those latches.
We need to make sure that all the Latches in the design should be transparent during
ATPG. If not, we need to add some extra test logic to make them Transparent.
Now a ways Most of the Libraries support DFT friendly Clock gating cells. We must use
SCAN_ENABLE as the gating signal while ATPG..
Naksha Technologies Inc. Confidential 14 ATPG Flow
Gated clock = Latched (SCAN_ENABLE | Functional Enable) & clock
During the SHIFT scan_enable will be 1b1 and clean clock will fed to the CLK pin of
the scan cells, and During CAPTURE ATPG tool will assert the Functional Enable node
( by shifting the Appropriate bits through scan cells during previous scan-load ) to feed
clean clock to the scan cells. So By doing so shadow logic of the Functional Enable
generation logic will also get tested or covered.
Use a single clock tree to clock all flip-flops in the same scan chain. If the design
contains multiple clock trees, insert resynchronization latches (lockup latches) in the
scan data path between scan cell flip-flops that use different clock sources.
Treat each clock tree as a separate clock source in designs that have a single clock
input port but multiple clock tree distributions. Under these conditions, treat each
clock tree as a separate clock source. Insert resynchronization latches between scan
cells where the clock source switches from one clock tree to another.
If possible, clock all flip-flops on the same scan chain on the same clock edge. If this
is not possible, then group together all flip-flops that are clocked on the trailing clock
edge and place them at the front of the scan chain (closest to the scan chain input) and
group together all flip-flops that are clocked on the leading clock edge and place them
closest to the scan chain output.
There are NO strict Requirements of the Tree Balancing because of the Following Reason
1. Clock will be balanced in the functional Mode, and the same will apply to the SCAN.
2. LOCKUP Latch at the Clock-Crossing will take care issues during SHIFT .
3. We constrain the ATPG Tool such a way that Multiple clock domain CAPTURE Patterns
are NOT generated.
1. Make sure that the scan Re-ordering not messed between Two different clock
domains scan cells and between same domain scan cells with different Edges
in each chain.
2. Make sure that the Lockup latches are present at edge mixing and clock
mixing.
4. Make sure there are NO un resolved components in the design ( Special layout
cells like Antenna and power pads should me modeled properly )
1. Stuck
The best known fault class is the stuck-at fault class. The fault model covers
functional defects generated by shorts or opens in the device interconnect.
2. Transition
The transition delay fault model enhances the stuck-at fault model by introducing a time
assessment. It is possible to launch the transition by a change in one or more sources
(registers or pads).
DT: detected
DR: detected robustly
DS: detected by simulation
DI: detected by implication
PT: possibly detected
AP: ATPG untestable-possibly detected
NP: not analyzed-possibly detected
UD: undetectable
UU: undetectable unused
UT: undetectable tied
UB: undetectable blocked
UR: undetectable redundant
AU: ATPG untestable
Naksha Technologies Inc. Confidential 17 ATPG Flow
AN: ATPG untestable-not detected
ND: not detected
NC: not controlled
NO: not observed
Test coverage gives the most meaningful measure of test pattern quality and is the
default coverage reported in the fault summary report. Test coverage is
Defined as the percentage of detected faults out of detectable faults, as follows:
Note : we must collapse all equivalent faults before calculating TC to get an accurate number
To improve performance, most ATPG tools identify all equivalent faults and use only
a single member of each fault equivalence class. For example, a stuck-at-0 fault on
the input pin of a BUF gate is equivalent to the stuck-at-0_fault on the output pin of
the same gate. The collapsed fault list would contain only one of those faults which is
termed the "primary" fault. For a given set of equivalent faults, the choice of which
one is the primary fault is controlled by the equivalency analysis and is not
predictable. So it is better to Report for the TC after collapsing the equivalent Faults.
The AU and ND categories are the main cause of the reduction in the Test coverage.
The AU (ATPG untestable) category of faults contains faults that are not necessarily
intrinsically untestable, but are untestable using ATPG methods. These faults cannot
be proven to be undetectable and might be testable using other methods (for example,
functional tests). The AU category has one class, AN (ATPG untestable, not detected).
In AU, the first category is a fault cannot be controlled or observed because setting up
the required patterns would violate a PI or ATPG constraint. Second one is the Faults
associated with non scan sequential devices (latches and flip-flops) are not testable
with simple ATPG methods.
The ND (not detected) category is a fault was not completed or was aborted.
Incomplete or aborted analyses could be caused by the default ATPG iteration limits
or by designs that are too complex for the ATPG algorithm to solve. The ND category
has two classes. First one NC (not controlled) class contains faults that the ATPG
algorithm could not control to achieve both a logic 0 and a logic 1 state. Nodes that
are always at an X state are classified as NC because ATPG cannot achieve either a
logic 0 or a logic 1. Second one is the NO (not observed) class contains faults that
could be controlled, but could not be propagated into a scan chain cell or to a design
output for observation. Usually a design begins with most faults in the NC class. As
the ATPG algorithm progresses, the faults are moved to the NO class and then to a DS
1. Use of the complex algorithms like fast sequential Atpg engine (set atpg
-capture_cycles n) and full sequential Atpg Engine (set atpg -full_seq_atpg).
We need to try with the default engine that is the Basic-Scan first, and then check the
results. If test coverage is not high enough, we can then try Fast-Sequential to detect
the remaining faults (read back only the AU and ND faults from previous run ) and
check the results again. If the results are still not good enough, you can then try Full-
Sequential. We should always do the Atpg run in this order since the fast sequential
and the full sequential runs are too complex and time consuming and also vector
count will increase drastically.
Note : we can use full sequential engine only for Stuck at fault ( SAF) ATPG.
The Basic SAF patterns are created with the simple ATPG method with a single Capture
cycle Basic-Scan ATPG Engine operates as a full-scan, combinational-only ATPG tool. In
other words, to get high test coverage, all the sequential elements need to be scan
elements.
The Basic SAF sequence is start with SETUP where all the clocks will be OFF and all the
necessary PI constrains will be forced and SCAN_ENABLE will be LOW and ALL the
BIDI will be forced to Z.
Next step is to assert SCAN_ENABLE and load the scan chains. The Timing of single
SHIFT cycle is as follows
@ 40 ns SO compared
@ 0 ns SI 50 ns 80 ns 100 ns
forced
We need to repeat the shift cycle as many number of scan cells in the longest chain.
Capture in the Basic SAF will be done with a single tester cycle.
@ 40 ns PO compared
@ 0 ns PI 50 ns 80 ns 100 ns
forced
Scan_clock
Scan enable
Still Complex ATPG engine is the Full-Sequential ATPG, like Fast-Sequential ATPG,
supports multiple capture cycles (set atpg -full_seq_atpg that is capture cycle more
than 10 ) between scan load and unload, thus increasing test coverage in partial-scan
designs. However, clock and reset signals to the nonscan elements do not need to be
controllable at the primary inputs and there is no specific limit on the number of
capture cycles used between scan loads and unload
Sequence starts with the Basic-Scan algorithm first to detect most of the faults,
followed by the more computationally intensive algorithms (Fast-Sequential and Full-
Sequential) to detect the remaining faults.
1. Last shift
In the last_shift mode, TetraMAX initiates launching a logic value in the last scan
load cycle when the scan_enable is active (in scan shift mode). It exercises target
transition faults and then captures new logic values in a system clock cycle when
the scan enable is inactive (in capture mode).
2. System Clock
In the system_clock mode, initiates launching a logic value using a normal system
clock. It exercises target transition faults and then captures the new logic values
with a subsequent system clock.
We followed the system_mode approach since it is very difficult to meet the timing of
the scan_enable in this multi million design chip. For System clock mode, we may
need postamble cycle after load_unload. This is due to the fact that the 2 consecutive
cycles after load_unload will run at-speed. And, we can put an extra cycle after
load_unload for the scan enable to settle down to the inactive state.
0 ns 7 ns 14 ns
WaveformTable "_14ns_WFT_" {
Period '14ns';
Naksha Technologies Inc. Confidential 24 ATPG Flow
Waveforms {
"_default_In_Timing_" { 0 { '0ns' D; } }
"_default_In_Timing_" { 1 { '0ns' U; } }
"_default_In_Timing_" { Z { '0ns' Z; } }
"_default_In_Timing_" { N { '0ns' N; } }
"_default_Clk0_Timing_" { P { '0ns' D; '7ns' U; '14ns' D;}}
"_default_Out_Timing_" { X { '0ns' X; } }
"_default_Out_Timing_" { H { '0ns' X; '6ns' H; } }
"_default_Out_Timing_" { T { '0ns' X; '6ns' T; } }
"_default_Out_Timing_" { L { '0ns' X; '6ns' L; } }
}
2. Use the At speed waveform for All Capture clocks with a single cycle capture
definition in the STIL file.
"capture_EXT_CLK" {
W "_7ns_WFT_";
F { "HIC_RD_L"=1; "SCAN_MODE"=1;"SEQ_ATPG"=1;}
V { "_pi"=\r333 # ; "_po"=\r322 #;"EXT_CLK"=P;}
}
We need to do some modification in the SAF ATPG scripts to make at speed ATPG
scripts.
1. Because the narrow window from the cycle boundary to the capture event is
often too small for the IO paths, all faults on the pad input logic need to be
masked for at-speed transition delay testing.
2. The high load on the output pads, due to the tester environment, also requires
the masking of any fault in the pad output logic for at-speed transition delay
testing as well.
3. First of all, for at-speed SCAN testing, the design should be designed without
any multicycle paths, this means all timing paths fit into one clock cycle.
ATPG tools assume that all paths are single cycle. If Multi cycle paths are
already present in the design, try to remove the faults related to that block.
4. Try to give dummy cycle when ever scan enable switches ( after load_unload
and after the capture )
7. Use system_clock mode for generating the TF patterns and also Use the same
clock for launch and Capture.
8. Allows pattern generation using any single clock, including patterns where no
clock is used.
set drc -Clock Any
10. Save the Pattern also in BIN format along with the WGL, in case if we want to
use for diagnosis.
First start simulating the chain vector in FAST corner and followed by SLOW
corner.
Save patterns in the TetraMAX proprietary binary format for later reuse.
Other output formats may not contain all the information that TetraMAX
needs to write to another format later on or to diagnose the TF vectors
Make sure that STA is OK in SCAN mode ( mainly on FAST corner Hold
violations, but also in the SLOW corner )
The Basic and important information is the Failure Data File, which need to be fed to the
ATPG Tool (TetraMax) to identify the potential faulty nodes.
Cell_pos is the cell position for the failing scan cell assuming the failure
occurred during a scan shift cycle. This is equal to the number of tester shift
cycles that have occurred since the start of the current scan out process.
Expected_data/measured_data are optional comments.
The Fail Log from the Tester will vary with Tester to Tester. Hence the basic information
from the Tester need to be translated to Failure Data File Format, which can be given
to the ATPG Tool to get the Potentially faulty nodes.
Following gives some of examples of the Fail Log from the Tester.
1. Type 1
atpg_0_min
LOW FAIL = .
HIGH FAIL = /
SX:NO COMPARE = -
Type2
Datalog report
12/09/2004 14:48:31
Lot:
Operator: nakshafl
Part Type:
Environment:
Site Number:
Device#: 1
<ATPG_TF2_NOM>
PINS
Cycle Relative R
257701 257700 0 X
-> (P) H
257702 257701 0 X
-> (P) L
257703 257702 0 X
-> (P) L
257704 257703 0 H
-> (F) L
257705 257704 0 L
-> (P) L
Normally the Basic Information from the Tester will be the Failed Cycle number ,
failed Pin name , Expected and /measured Value and the Vector name. We need to
understand the scan vector sequence to really debug the Pattern and the scan cell.
1. Setup
"test_setup" {
W "_default_WFT_";
V { "HIC_RD_L"=1; }
2. Load/Unload
load_unload {
V { "SCAN_ENABLE" = 0; }
V { SCAN_ENABLE=1 "AFE_TXDATA[6]" = Z ; . }
Shift {
V { "SCAN_ENABLE" = 0; }
Dummy cycle where scan_enable kept Inactive for one cycle ( optional )
Assert Scan_enable (dummy preamble cycles for load/unload ) and off clocks
3. Capture
capture can be three separate tester cycles, one for force_pi, one for measure_po, and
one for pulse clock
Also the capture can happen in a single tester cycle
"capture_EXT_CLK" {
W "_7ns_WFT_";
F { "EXT_CLK_SEL"=1; }
But when ever we do transition ATPG, capture SHOULD be defined as a single cycle.
ATPG Tool will use the same Timing for LAUNCH and consecutive cycle will act as
CAPTURE.
"capture_EXT_CLK" {
W "_7ns_WFT_";
F { "EXT_CLK_SEL"=1; "EXT_VCLK_SEL"=1; }
Formula for getting Scan cell ID number OR the Scan cell position is
There is an In-house script to generate automated tetramax script and also to do the
debug . The Pointer to the script is
/home/ASIC_Release/$PROJECT/atpg_lib/atpg_fa.pl
<atpg_dir> Dir where ATPG patterns are created or placed for the tester.
Naksha Technologies Inc. Confidential 33 ATPG Flow
<wgl_dir> Dir where WGL files are kept for the tester, if different from atpg_dir.
<def_dir> Dir where DEF files are kept for the chip, if non standard.
-c For the patterns, which also contain the chain test.(like Jaguar).
1. For scan out failures, take extra care in identifying the cell position; can be
affected by:
- Preamble/Postamble cycles
- setup can carry more number of cycles
- Non-clocking capture cycles can exist
- ATPG pattern numbering starts with 0
2. Restore the environment to EXACTLY what it was when TEST mode was
entered and "run drc" executed. If anything in the environment changes, it
might cause invalid results
1. Insert the scan chain at module level and connect them on the
chip level. Do an entire plan for all scan in and scan out signals.
10. For multi-driver nets, ensure that only one driver is enabled
during the shifting of scan chains.
11. Force all bidirectional ports to input mode while shifting scan
chains, using a top-level port as control.
13. Use a single clock tree to clock all flip-flops in the same scan
chain.
14. Treat each clock tree as a separate clock source in designs that
have a single clock input port but multiple clock tree
distributions.
15. Use the same clock edge for all flip-flops in the same scan chain.