Professional Documents
Culture Documents
DFT DOCUMENT
- By Sumanth Nayak
i
Sykatiya Technologies PVT.LTD.
Contents
CHAPTER 1 .......................................................................................................................................3
ASIC DESIGN FLOW .......................................................................................................................3
1 What is ASIC? .............................................................................................................................. 3
1.2 ASIC vs FPGA .......................................................................................................................... 6
1.3 Advantages of ASIC over FPGA .............................................................................................. 7
1.4 What is DFT and Why DFT?? .................................................................................................. 7
1.5 Advantages and disadvantages of DFT ..................................................................................... 7
1.5.1 Advantages of DFT..................................................................................................................... 7
1.5.2 Disadvantages of DFT ............................................................................................................... 8
1.6 Difference between verification and Testing ............................................................................ 8
1.6.1 VLSI verification ....................................................................................................................... 8
1.6.2VLSI Testing .............................................................................................................................. 8
1.7.Types of testing ......................................................................................................................... 8
CHAPTER 2 .....................................................................................................................................10
2.1.Defect, fault, error, failure ....................................................................................................... 10
A failure is a deviation in the performance of a circuit from its specified behaviour. ..................... 10
2.2. Reasons for defect: ................................................................................................................. 10
2.3.Fabrication defects: ................................................................................................................. 11
2.4.Yield: ....................................................................................................................................... 13
2.5.1.Fault collapsing: ................................................................................................................... 14
2.5.2.Fault equivalence:................................................................................................................. 14
2.5.3.Fault Dominance: ................................................................................................................. 15
2.6.Minimized patterns: ................................................................................................................. 15
2.6.1.AND Gate: ............................................................................................................................ 15
2.6.3.NAND Gate: ......................................................................................................................... 17
2.6.4.NOR Gate: ............................................................................................................................ 17
2.7.Functional testing and Structural testing: ................................................................................ 18
Table 2.7. 1 Functional testing and Structural testing. .................................................................. 18
CHAPTER 3 .....................................................................................................................................19
3.1 Fault Excitation, Fault Propagation and Path Sensitization .................................................... 19
3.1.1 Fault Excitation ....................................................................................................................... 19
List of Figures
figure 1. 1 asic design flow .................................................................................................................. 3
Figure 2.3. 2 Doping concentration ................................................................................................... 11
Figure 2.3. 3 Non-uniform oxide layer .............................................................................................. 12
Figure 2.3. 4 Chemical contamination ............................................................................................... 13
Figure 2.3. 5 Oxide thickness defect.................................................................................................. 13
CHAPTER 1
ASIC DESIGN FLOW
1 What is ASIC?
An ASIC (application-specific integrated circuit) is a microchip designed for a special application,
such as a particular kind of transmission protocol or a hand-held computer.
MICRO ARCHITECTURE:
Now once the specifications are received the top level manager makes a micro
architecture of the design by considering the specifications. Suppose the design is to make a full
adder which consists of two half adders and standard cells, then the task is being divided and given
to lower level engineers. The top level manager communicates with the customer by finalizing the
design and the cost.
RTL DESIGN:
When the engineer gets all the specifications the design phase begins. The top level
manager divides the module and task is given to each lower level engineers. Now each lower level
engineers do their own RTL Design. This is the first stage in technology independent design. Now
once the RTL Design is being done, the succeeding phase is the Simulation.
SIMULATION:
Now once the RTL Design is being done the functionality need to be checked, so
simulation is being carried out here. There are two versions of RTL; Synthesizable and Non
synthesizable. It is advised to carry out synthesizable Verilog code. This is the last stage of
technology independent design.
SYNTHESIS:
Once simulation is being done, the test vectors verify the functionality of the
design. The synthesis is carried out in three stages namely translation, optimization and mapping.
Now from synthesis we get 2 files called Gate level Verilog list (vg file) and Synopsis Design
Constraints (SDC).The vg file is obtained by RTL coding of the implementation producing gates
and SDC deals with what is the input delay, clock period, clock uncertainty etc. Now once synthesis
is being done the succeeding phase is the Design for Testability (DFT).
DESIGN FOR TESTABILITY (DFT):
In DFT the engineer measures the controllability and measurability of the design.
It checks how far is the design achievable in terms of error rate.ATPG is Automated Test Pattern
Generator. Here .atpg,,sdc,.vg files are generated. Now this is the last phase of technology
dependent design. The semiconductor design process is categorized in to three stages namely Front
end design, back end design and fabrication. The various stages in SOC requirement of the back
end design is as follows.
BACK END DESIGN
DATA PREPARATION:
POWER PLANNING:
Suppose there are 25k components, there are some power requirements for all components,
and of a particular technology like for 180 nm the Vdd can be 1.8V. If there are 20000 components
are there in a chip only ring of Vdd is enough for the chip, but if there are 1 million components in
a chip one Vdd or one Vgs ring is not enough to trigger the component. To overcome this problem,
there are horizontal and vertical strips inserted according to the complexity. The component instead
of taking the power from Vdd and Vgs rings can take it from the stripes nearer to them. Hence,
every individual component should get the power constraints as required.
PLACE DESIGN:
The step here is the real placing of a design for a chip which is the best stage after power plan. A
Standard cell, macros or the modules from various vendors are placed onto the chip. This is called
hard placement. After this phase, an engineer again performs Time Design, which is called Pre-
CTS. Before Clock Tree Synthesis once again the user checks the timings and if the slack is
positive, the CTS or clock tree synthesis phase takes place.
An ASIC can no longer be altered after it gets out of the production line. That is why the designers
need to be totally sure of their design, especially when making large quantities of the same ASIC.
The programmable nature of an FPGA allows the manufacturers to correct mistakes and to even
send out patches or updates after the product has been bought. Manufacturers also take advantage
of this by creating their prototypes in an FPGA so that it can be thoroughly tested and revised in the
real world before actually sending out the design to the IC foundry for ASIC production.
ASICs have a great advantage in terms of recurring costs as very little material is wasted due to the
fixed number of transistors in the design. With an FPGA, a certain number of transistor elements
are always wasted as these packages are standard. This means that the cost of an FPGA is often
higher than that of a comparable ASIC. Although the recurring cost of an ASIC is quite low, its
non-recurring cost is relatively high and often reaching into the millions. Since it is non-recurring
though, its value per IC decreases with increased volume. If you analyze the cost of production in
relation to the volume, you would find that as you go lower in production numbers, using FPGA
actually becomes cheaper than using ASICs.
1.6.1 VLSI verification:VLSI Verification is done before manufacturing. Before even tape out.
It is done for verifying if the chip design is working as expected. In a more simple way we can say
that verification is done before the implementation of the design on actual hardware to make sure
the product works before you have created the product.
1.6.2VLSI Testing: VLSI Testing is done after manufacturing. After the chips are made, we will
look for any structural damages or mistakes in the chip. At this stage, we will check if the chip
passes the test. If it does not, we throw away the chip. If it passes, we can use(sell) the chip .To do
testing, we have to put some extra special logic into the chip before it is taped out. This is called
DFT.
1.7.Types of testing
Characterization testing
It is also called Design debug or verification testing.
Performed on a new design before it is sent to production
Verify whether the design is correct and the device will meet all specifications
Functional tests and comprehensive AC and DC measurements are made
A characterization test determines the exact limits of device operation values
DC Parameter tests
Measure steady-state electrical characteristics.
DC parametric test includes short test, open test, maximum current test, leakage test, drive
current test, and threshold level test, contact test, functional & layout related test, wafer test.
AC parametric tests
Measure transient electronic characteristics.
AC parametric tests include propagation delay test, setup and hold test, functional speed
test, refresh and pause time test, and rise and fall time test.
Production testing
Every fabricated chip is subjected to production tests
The test patterns may not cover all possible functions and data patterns but must have a high
fault coverage of modelled faults
The main driver is cost, since every device must be tested. Test time must be absolutely
minimized
Test whether some device-under-test parameters are met to the device specifications under
normal operating conditions
Burn-In testing
Ensure reliability of tested devices by testing
Detect the devices with potential failures
The devices with infant mortality failures may be screened out by a short-term burn-in test
by testing at elevated temperature and voltage.
System test
Testing of the product in the environment where it is operating to ensure that it works
correctly when interconnected with other components.
Prototype test
Testing to check for design faults during the system development phase. Diagnosis is
required.
Functional Tests:
They check for proper operation of a verified design by testing the internal chip nodes.
Functional tests cover a very high percentage of modeled (e.g., stuck type) faults in logic
circuits and their generation is the main topic of this tutorial. Often, functional vectors are
understood as verification vectors, which are used to verify whether the hardware actually
matches its specification.
CHAPTER 2
2.1.Defect, fault, error, failure
Defect:
A defect is the unintended difference between the implemented hardware and its intended
design. Defects occur either during manufacture or during the use of devices. The short between the
input and ground nodes.
Fault:
A representation of a defect at the abstracted function level. The faulty input line has the permanent
value 0 – stuckat 0.
Error:
A wrong output signal produced by a defective system. An error is caused by a Fault or a
design error. For input pattern (11), the output value is 1, although the correct output value is
0(NAND).
Failure:
3. Material and age defects: bulk defects (cracks, crystal imperfections), surface impurities,
dielectric breakdown, electro-migration, etc.
4. Packaging: contact degradation, seal leaks, etc.
5. Environmental influence: temperature related defects, high humidity, vibration, electrical
stress, crosstalk, radiation, etc.
2.3.Fabrication defects:
1.crystalline defect
2.The doping concentration is more or less compared to the required level, defect will be occurred.
p type impurities are doped
6.Metal to silicon short i.e, if the oxide thickness reduces then there will be direct contact
between gate and substrate. This defect may occur at this position.
2.4.Yield:
In simple terms yield in fabrication is nothing but how many good die's are produced per wafer.
yield is usually in terms of percentages as total no of good die's produced per total no of die's
expected.A chip with no manufacturing defect is called a good chip. Fraction (or percentage) of
good chips produced in a manufacturing process is called the yield. Yield is denoted by symbol Y.
so what is a good die: this is part of wafer slice with no defects and circuit printed on it is working
as per expectation. In some cases, die produced may not have any shorts or opens in the circuit and
the circuit is working properly but not at the specifications it is designed for. let’s say you have
designed your chip to work at 2GHz, but your chip after manufacturing is working at only 1.6GHz.
then we consider only those dies working at 2GHz as good die's.
2.4.1.DPPM:
2.5.1.Fault collapsing:
The basic idea behind fault collapsing is to reduce the number of faults that have to be
considered during the test generation process, in turn reducing the size of the test vector set. Fault
collapsing eliminates those faults that can be detected by tests generated for some other faults.
2.5.2.Fault equivalence:
Two faults of a Boolean circuit are called equivalent if they have exactly the same set of
tests and transform the circuit such that the two faulty circuits have identical output functions. [1]
Let take the example of a two input AND gate in Fig. 1. The stuck-at-0 faults on any input line of
this AND gate can lead to a zero output which is the same faulty result of the stuck-at-zero fault on
this gate output line, and these three faults have the same test vector (1,1), therefore, for a two input
AND gate, the two-input stuck-at-0 and one output stuck-at-0 faults are equivalent. Because of the
in distinguishability of equivalent faults, only one of them needs to be tested.
2.5.3.Fault Dominance:
If all tests of fault F1 detect another fault F2, then F2 is said to dominate F1 [1], and fault F2
can be deleted. Take the example of an AND gate, in Fig.5, to test F1, we should apply the test (0,
1). To test F2, we could apply any one of the following tests: (0,0), (0,1), (1,0), which include the
test (0,1) used to test fault F1, therefore, we can determine that F2 dominate F1 and F2 as a
dominating fault can be deleted. Normally, the gate output stuck-at fault dominates the gate input
stuck-at faults.
2.6.Minimized patterns:
2.6.1.AND Gate:
2.6.3.NAND Gate:
2.6.4.NOR Gate:
Structural Testing is done after implementation of the design on hardware to make sure the product
works AFTER you've created it. It is done to uncover any defects in a chip to make sure defective
chip is not shipped to the customer.
Functional Testing is done before implementation of design on actual hardware to make sure the
product works BEFORE you've created the product. It is done to check whether a chip is designed
to its functional specification.
We need to apply 225 test patterns to complete the test. If we apply 1000000 patterns per second
(Mega Hz Tester), then time required is 33 Seconds per chip. In a typical scenario about 1 million
chips are to be tested in a run, thereby taking about 33000000 Seconds or 550000 Hours or 22916
Days or 62 years. So, one can understand the complexity when a circuit has 100+ inputs. So, for a
typical circuit even Functional Testing cannot be performed due to extremely high testing time.
CHAPTER 3
This is necessary to ensure a behavioural difference between the good circuit and the fault
circuit.
For some fault, it is necessary to simultaneously propagate the fault effect over multipath to
test it.
Fault Excitation
Fault Propagation
Line Justification:- To achieve desire value assign primary inputs.
3.2 D-Algorithm
3.2.1 D-Algebra
Five value logic 1, 0, D, D’, X
D = 1/0
1 In fault free circuit 0In fault circuit
D’ = 0/1
0 In fault free circuit 1 In fault circuit
X means “not specified yet”
3.2.6 D-drive
Selects an element in D-frontier and attempts to propagate a D or D’ from gate input to gate
output.
figure 3. 5 D-Drive
3.2.8 Implication
Forward implication:-Partially (or fully) specified input values uniquely determines the
output values.
Backward implication:knowing the output values (and some input values) can uniquely
determine the un-specified values.
Examples
figure 3. 7 Implication
Line Justification
3.2.11 Backtrack
When conflict,backtrack to last decision point and change choice.
To avoid spending too much time on a fault, use backtrack limit.
Fault is aborted if backtrack limit reached.
figure 3. 10 Backtrack
STATEMENT 1:-
Fault detection in fan-out-free circuit. A test set that detects all single stuck-at faults on all
primary inputs of a fan-out-free circuit must detect all single stuck-at faults in that circuit.
Example:-
STATEMENT 2:-
A test set that detects all single stuck-at faults of the check-points(Primary inputs and Fan-outs)
of a combinational circuit detects all single stuck-at faults in that circuit.
Example:-
CHAPTER 4
Due to defects during manufacturing of integrated circuit, there is need to model the
possible faults that might occur during fabrication process, this is called fault modelling.
Many fault models have been proposed but, unfortunately, no single fault model accurately
reflects the behaviour of all possible defects that can occur. As a result, a combination of
different fault models is often used in the generation and evaluation of test vectors and
testing approaches developed for VLSI devices
The use of fault models has some advantages and also some disadvantages.
Advantages
Technology independent.
Works quite well in practice.
Disadvantages
May fail to identify certain process specific faults, for instance CMOS floating gates.
Detects static faults only.
o Stuck-open fault
o Stuck-short fault
Stuck-at fault model:Faults are fixed (0 or 1) value to a net. Stuck at-0 and Stuck at-1
o Single stuck-at fault model
o Multiple stuck at fault model
For a given fault model there will be k different types of faults that can occur at each potential fault
site (k = 2 for most fault models). A given circuit contains n possible fault sites, depending on the
fault model. Assuming that there can be only one fault in the circuit, then the total number of
possible single faults, referred toas the single-fault model or single-fault assumption, is given by:
Number of single faults = k×n
In reality of course, multiple faults may occur in the circuit. The total number ofpossible
combinations of multiple faults, referred to as the multiple-fault model,is given by:
Stuck-At Faults
The stuck-at fault is a logical fault model that has been used successfully for decades .A stuck-at
fault affects the state of logic signals on lines in a logic circuit, including primary inputs (PIs),
primary outputs (POs), internal gate inputs and outputs, fanout stems (sources), and fanout
branches. A stuck-at fault transforms the correct value on the faulty signal line to appear to be stuck
at a constant logic value, either a logic 0 or a logic 1, referred to as stuck-at-0 (SA0) or stuck-at-1
(SA1), respectively. Consider the example circuit shown in Figure 1.7, where the nine signal lines
representing potential fault sites are labeled alphabetically. There are 18 (2×9) possible faulty
circuits under the single-fault assumption. Table 1.1 gives the truth tables for the fault-free circuit
and the faulty circuits for all possible single stuck-at faults. It should be noted that, rather than a
direct short to a logic 0 or logic 1 value, the stuck-at fault is emulated by disconnection of the
source for the signal and connection to a constant logic 0 or 1 value. This can be seen in Table 1.1,
where SA0 on fanout branch lined behaves differently from SA0 on fanout branch line e, while the
single SA0 fault on the fanout source line b behaves as if both fanout branches line d and line e are
SA0.
Although it is physically possible for a line to be SA0 or SA1, many other defects within a circuit
can also be detected with test vectors developed to detect stuck-at faults. The idea of N-detect
single stuck-at fault test vectors was proposed to detect more defects not covered by the stuck-at
fault model. In an N-detect set of test vectors, each single stuck-at fault is detected by at least N
different test vectors; however, test vectors generated using the stuck-at fault model do not
necessarily guarantee the detection of all possible defects, so other fault models are needed.
Transistor Faults
At the switch level, a transistor can be stuck-open or stuck-short, also referred to as
stuck-off or stuck-on, respectively. The stuck-at fault model cannot accurately reflect the behavior
of stuck-open and stuck-short faults in CMOS logic circuits because of the multiple transistors used
to construct CMOS logic gates. To illustrate this point, consider the two-input CMOS NOR gate
shown in Figure. Suppose transistor N2 is stuck-open. When the input vector AB = 01 is applied,
output Z should be a logic 0, but the stuck-open fault causes Z to be isolated from ground
(VSS). Because transistors P2 and N1 are not conducting at this time, Z keeps its previous state,
either a logic 0 or 1. In order to detect this fault, an ordered sequenceof two test vectors AB =
00→01 is required. For the fault-free circuit, the input 00produces Z = 1 and 01 produces Z = 0
such that a falling transition at Z appears. But, for the faulty circuit, while the test vector 00
produces Z = 1, the subsequent test vector 01 will retain Z = 1 without a falling transition such that
the faulty circuit behaves like a level-sensitive latch. Thus, a stuck-open fault in a CMOS
combinational circuit requires a sequence of two vectors for detection rather than a single test
vector for a stuck-at fault.Stuck-short faults, on the other hand, will produce a conducting path
between VDD and VSS. For example, if transistor N2 is stuck-short, there will be a conducting path
between VDD and VSS for the test vector 00. This creates a voltage divider at the output node Z
where the logic level voltage will be a function of the resistances of the conducting transistors. This
voltage may or may not be interpreted as an incorrect logic level by the gate inputs driven by the
gate with the transistor fault;however, stuck-short transistor faults may be detected by monitoring
the powersupply current during steady state, referred to as IDDQ. This technique of monitoring the
steady-state power supply current to detect transistor stuck-short faults is referred to as IDDQ
testing.
Bridging Fault
A short between two elements is commonly referred to as a bridging fault. These elements can be
transistor terminals or connections between transistors and gates. The case of an element being
shorted to power (VDD) or ground (VSS) is equivalent to the stuck-at fault model; however, when
two signal wires are shorted together, bridging fault models are required. In the first bridging fault
model proposed, the logic value of the shorted nets was modelled as a logical AND or OR of the
logic values on the shorted wires. This model is referred to as the wired-AND/wired-OR bridging
fault model. The wired-AND bridging fault means the signal net formed by the two shorted lines
will take on a logic 0 if either shorted line is sourcing a logic 0, while the wired-OR bridging fault
means the signal net will take on a logic 1 if either of the two lines is sourcing a logic 1.
Path Delay
A circuit path that fails to transition in the required time period between the launch and
capture clocks is called path delay fault.
The delay defect in the circuit is assumed to cause the cumulative delay of a combinational
path to exceed some specified duration. The combinational path begins at a primary input or
a clocked flip-flop, contains a connected chain of gates, and ends at a primary output or a
clocked flip-flop. The specified time duration can be the duration of the clock period (or
phase), or the vector period. The propagation delay is the time that a signal event (transition)
takes to traverse the path. Both switching delays of devices and transport delays of
interconnects on the path contribute to the propagation delay.
The path delay fault model tests and characterizes critical timing paths in a design.
Pathdelay fault tests exercise the critical paths at-speed (the full operating speed of the chip)
todetect whether the path is too slow because of manufacturing defects or variations.
Path delay fault testing targets physical defects that might affect distributed regions of a
chip. Forexample, incorrect field oxide thicknesses could lead to slower signal propagation
times, whichcould cause transitions along a critical path to arrive too late.
In order to examine the timing operation of a circuit we should examine signal transitions. The
input signal consists of two vectors: Delay tests consist of vector-pairs.
• All input transitions occur at the same time in Figure 12.1. Thus, the duration of the transient
region at the input is zero. This, of course, is an idealized illustration though it closely represents
the real situation. The transient region at the output contains multiple transitions that are separated
in time. The position of each output transition depends upon the delay of some input to output
combinational path.
• The right edge of the output transition region (grey shaded area in Figure 12.1) is determined by
the last transition, or the delay of the longest combinational path activated by the current input
vector-pair. Considering all possible input vector-pairs, “the longest delay combinational path” of
the circuit is known as the critical path. There can be more critical paths than one if several paths
meet the maximum delay criterion. The delay of critical paths determines the smallest clock period
at which the circuit can function correctly.
• For a manufactured circuit to function correctly, the output transition region for any input vector-
pair must not expand beyond the clock period. Otherwise, the circuit is said to have a delay fault. A
delay fault means that the delay of one or more paths (not necessarily the critical path) exceeds the
clock period.
Transition Delay
A transition fault on a line makes the signal change on that line slow. The two possible faults are
slow-to-rise and slow-to-fall types. For detecting a slow-to-rise fault on a line, we take a test for a
stuck-at-0 fault on that line. This test will set the line to 1 in the fault-free circuit and propagate the
state of the line to a primaryoutput. Let us call this vector V2 and precede it with any vector V1 that
sets the line to 0. Now the vector-pair (V1, V2) is a test for the slow-to-rise transition fault on the
line. Note that V1 sets the line to 0 and V2 sets it to 1. V2 also creates an observation path to a
primary output. If the line is slow to rise then that effect will be observed as a 0 at the output
instead of the expected value of 1. The basicassumption in this test is that the faulty delay of the
signal rise has to be large, since the observation path may be, and often is, a short path. Besides, the
effects of hazards and glitches can interfere with the observation of the output value. As a result, the
tests for transition faults can detect localized (spot) delay defects of large (gross) delay amounts.
Because of sensitization of short paths these tests may fail to detect distributed defects
The transition delay fault model is used to generate test patterns to detect single-node slow-to-rise
and slow-to-fall faults. For this model, TetraMAX ATPG launches a logical transition upon
completion of a scan load operation and uses a capture clock procedure to observe the transition
results.
The transition-delay fault model is similar to the stuck-at fault model, except that it attempts to
detect slow-to-rise and slow-to-fall nodes, rather than stuck-at-0 and stuck at-1 nodes. A slow-to
rise fault at a defect means that a transition from 0 to 1 on the defect does not produce the correct
results at the maximum operating speed of the device. Similarly, a slow-to-fall fault means that a
transition from 1 to 0 on a node does not produce the correct results at the maximum operating
speed of the device.
To detect a slow-to-rise or slow-to-fall fault, the APTG process launches a transition with one clock
edge and then captures the effect of that transition with another clock edge. The amount of time
between the launch and capture edges should test the device for correct behavior at the maximum
operating speed.
IDDQ
Why Do IDDQ Testing?
IDDQ testing can detect certain types of circuit faults in CMOS circuits that are difficult or
impossible to detect by other methods. IDDQ testing, when used to supplement standard functional
or scan testing, provides an additional measure of quality assurance against defective devices.
IDDQ testing detects circuit faults by measuring the amount of current drawn by a CMOS device
in the quiescent state (a value commonly called “IddQ”). If the circuit has been designed correctly,
this amount of current is extremely small. A significant amount of current indicates the presence of
one or more defects in the device.
The IDDQ fault model assumes that a circuit defect will cause excessive current drain due to an
internal short circuit from a node to ground or to a power supply. For this model,TetraMAX ATPG
does not attempt to observe the logical results at the device outputs .Instead, it tries to toggle as
many nodes as possible into both states while avoiding conditions that violate quiescence, so that
defects can be detected by the excessive current drain that they cause.
IDDQ Testing Methodology
IDDQ testing is different from traditional circuit testing methods such as functional or stuck-at
testing. Instead of looking at the logical behavior of the device, IDDQ testing checks the integrity
of the nodes in the design. It does this by measuring the current drain of the whole chip at times
when the circuit is quiescent. Even a single defective node can easily cause a measurable amount of
excessive current drain. In order to place the circuit into a known state, the IDDQ test sequence
uses ATPG techniques to scan in data, but it does not scan out any data.
useful because they approximately quantify how hard it is to set and observe internal signals of a
circuit.
Goldstein invented an algorithm to determine the difficulty of controlling (called controllability)
and observing (called observability) signals in digital circuits. Thigpen and Goldstein implemented
a computer program to compute controllabilities and observabilities. Goldstein was the first to
propose a systematic, efficient algorithm to compute these measures, which is called SCOAP.
It is still widely used.
In the above example, if we have control the flops such that the combo cloud results in 1 at both the
inputs of AND gate, we say that the node X is controllable for 1. Similarly, if we can control any
input of AND gate for 0, we say that node X is controllable for 0.
4.4 Scan:
Scan design, the most widely used structured DFT methodology, attempts to improve testability of
a circuit by improving the controllability and observability of storage elements in a sequential
design. Typically, this is accomplished by converting the sequential design into a scan design with
three modes of operation: normalmode, shift mode, and capture mode.
Scan testing is a method to detect various manufacturing faults in the silicon. Although many types
of manufacturing faults may exist in the silicon, focus is mainly on the method to detect faults like-
shorts and opens.
Method
Make inputs/outputs of the flip-flops in the shift register controllable and observable
A multiplexer is added at the input of the flip-flop with one input of the multiplexer acting as the
functional input D, while other being Scan-In (SI). The selection between D and SI is governed by
the Scan Enable (SE) signal.
Advantages:
• Design automation
• High fault coverage; helpful in diagnosis
• Hierarchical – scan-testable modules are easily combined into large scan-testable systems
• Moderate area (~10%) and speed (~5%) overheads
Reason for Scan:
Sequential circuits have poor controllability and poor observability.Sequential Circuits
achieve the best fault coverage results when all nodes in design are controllable &
observable. Test generation for sequential circuits is difficult. To make all the flip-flops
directly controllable and observable, scan is used.
Scan design helps in identifying the design practices which affect the targeted fault coverage
in order to achieve design PPM.
As scan design provides access to internal storage elements, test generation complexity is
reduced.
Using this basic Scan Flip-Flop as the building block, all the flops are connected in form of a chain,
which effectively acts as a shift register. The first flop of the scan chain is connected to the scan-in
port and the last flop is connected to the scan-out port. The Fig.2 depicts one such scan chain where
clock signal is depicted in red, scan chain in blue and the functional path in black. Scan testing is
done in order to detect any manufacturing fault in the combinatorial logic block. In order to do so,
the ATPG tool try to excite each and every node within the combinatorial logic block by applying
input vectors at the flops of the scan chain.
an edge-triggered D storage element, and a D latch is a level-sensitive D storage element. The most
widely used scan cell replacement for the D storage element is the muxed-D scan cell. Figure 2.9a
shows an edge triggeredmuxed-D scan cell design. This scan cell is composed of a D flip-flop
and a multiplexer. The multiplexer uses a scan enable(SE) input to select between the data input
(DI) and the scan input (SI).
In normal/capture mode, SE is set to 0. The value present at the data input DI is captured into the
internal D flip-flop when a rising clock edge is applied. In shift mode, SE is set to 1. The SI is now
used to shift in new data to the D flip-flop while the content of the D flip-flop is being shifted out.
Sample operation waveforms are shown in Figure 2.9b.
Fig. 4.5.1 shows a level-sensitive/edge-triggered muxed-D scan cell design, which can be used to
replace a D latch in a scan design. This scan cell is composed of a multiplexer, a D latch, and a D
flip-flop. Again, the multiplexer uses a scan enable input SE to select between the data input DI and
the scan input SI. However, in this case, shift operation is conducted in an edge-triggered manner,
while normal operation and capture operation are conducted in a level-sensitivemanner.
Major advantages of using muxed-D scan cells are their compatibility to modern designs using
single-clock D flip-flops, and the comprehensive support provided by existing design automation
tools. The disadvantage is that each muxed-D scan cell adds a multiplexer delay to the functional
path.
Figure 4.5.2 Clocked-scan cell design and operation: (a) clocked-scan cell, and (b) sample waveforms.
As in the case of muxed-D scan cell design, a clocked-scan cell can also be made to support scan
replacement of a D latch. The major advantage of using a clocked scan cell is that it results in no
performance degradation on the data input. The major disadvantage, however, is that it requires
additional shift clock routing.
Fig b.
The major advantage of using an LSSD scan cell is that it allows us to insert scan into a latch-based
design. In addition, designs using LSSD are guaranteed to be race-free, which is not the case for
muxed-D scan and clocked-scan designs. The major disadvantage, however, is that the technique
requires routing for the additional clocks, which increases routing complexity.
4.6 Scan Chains
The modified sequential cells are chained together to form one or more large shift registers,
called scan chains or scan paths.
Scan operation :
Full-Scan Design
With a full-scan design technique, all sequential cells in the design are modified to perform a serial
shift function. Sequential elements that are not scanned are treated as black box cells(cells with
unknown function). Full scan divides a sequential design into combinational blocks as shownin Fig.
Ovals represent combinational logic; rectangles represent sequential logic.The full-scan diagram
shows the scan path through the design.
Partial-Scan Design
Basic idea is to select a subset of flip-flops for scan which has Lower overhead (area and
speed).
Select scan flip-flops to simplify sequential ATPG
Overhead is about 25% off than full scan
Allow optimization of area, timing, and testability simultaneously
With a partial-scan design technique, the scan chains contain some, but not all, of the sequential
cells in the design. A partial-scan technique offers a trade off between the maximum achievable
test coverage and the effect on design size and performance.
The default ATPG mode of TetraMAX ATPG, called Basic-Scan ATPG, performs combinational
ATPG. To get good test coverage in partial-scan designs, you need to use Fast-Sequential or
Full-Sequential ATPG. The sequential ATPG processes perform propagation of faults through
nonscan elements. For more information, see “ATPG Modes”.
Partial scan divides a complex sequential design into simpler sequential blocks as shown in Fig.3.
Ovals represent combinational logic; rectangles represent sequential logic. The partial-scan diagram
shows the scan path through the design after sequential ATPG has beenperformed.
Typically, a partial-scan design does not allow test coverage to be as high as for a similar fullscan
design. The level of test coverage for a partial-scan design depends on the location and number of
scan registers in that design, and the ATPG effort level selected for the Fast- Sequential or Full-
Sequential ATPG process.
path-sensitivity cone timepts to generate a test vector that detects a specific fault in the design.
After generating a vector, the tool fault-simulates the vector to determine the complete set of
faults detected by the vector. Test pattern generation continues until all faults either have been
detected or have been identified as undetectable by the process.
Because of the effects of memory and timing, ATPG is much more difficult for sequential circuits
than for combinational circuits. It is often not possible to generate high test coverage test vectors
for complex sequential designs, even when you use sequential ATPG. Sequential ATPG tools
use deterministic pattern generation algorithms based on extended applications of the path
sensitivity cone timepts.
CHAPTER 5
• Recommended Solution
During the shift operation, certain modifications must be made to each tri-state bus in order
to ensure that only one driver controls the bus.
The value of a floating bus is unpredictable, so we use pull-up, pull-down or bus keeper
Where to use a lock-up latch: As mentioned above, a lock-up latch is used where there is high probability
of hold failure in scan-shift modes. So, possible scenarios where lockup latches are to be inserted are:
Scan chains from different clock domains: In this case, since, the two domains do not interact
functionally, so both the clock skew and uncommon clock path will be large.
Flops within same domain, but at remote places: Flops within a scan chain which are at remote places are
likely to have more uncommon clock path.
In both the above mentioned cases, there is a great chance that the skew between the launch and capture
clocks will be high. There is both the probability of launch and capture clocks having greater latency. If the
capture clock has greater latency than launch clock, then the hold check will be as shown in timing diagram
in figure 3. If the skew difference is large, it will be a tough task to meet the hold timing without lockup
latches.
Figure 5.3.3: Timing diagram showing setup and hold checks for path crossing from domain 1 to domain 2
Positive or negative level latch?? It depends on the path you are inserting a lock-up latch. Since, lock-up
latches are inserted for hold timing; these are not needed where the path starts at a positive edge-
triggered flop and ends at a negative edge-triggered flop. It is to be noted that you will never find scan
paths originating at positive edge-triggered flop and ending at negative edge-triggered flop due to DFT
specific reasons. Similarly, these are not needed where path starts at a negative edge-triggered flop and
ends at a positive edge-triggered flop. For rest two kinds of flop-to-flop paths, lockup latches are required.
The polarity of the lockup latch needs to be such that it remains open during the inactive phase of the
clock. Hence,
For flops triggering on positive edge of the clock, you need to have latch transparent when clock is
low (negative level-sensitive lockup latch)
For flops triggering on negative edge of the clock, you need to have latch transparent when clock
is high (positive level-sensitive lockup latch)
Who inserts a lock-up latch: These days, tools exist that automatically add lockup latches where a scan
chain is crossing domains. However, for cases where a lockup latch is to be inserted in an intra-domain scan
chain (i.e. for flops having uncommon path), it has to be inserted during physical implementation itself as
physical information is not feasible during scan chain implementation
Which clock should be connected to lock-up latch: There are two possible ways in which we can connect
the clock pin of the lockup latch inserted. It can either have same clock as launching flop or capturing flop.
Connecting the clock pin of lockup latch to clock of capturing flop will not solve the problem as discussed
below.
Lock-up latch and capturing flop having the same clock (Will not solve the problem): In this case,
the setup and hold checks will be as shown in figure 5. As is apparent from the waveforms, the hold check
between domain1 flop and lockup latch is still the same as it was between domain 1 flop and domain 2 flop
before. So, this is not the correct way to insert lockup latch.
Figure 5.3..4: Lock-up latch clock pin connected to clock of capturing flop
Lock-up latch and launching flop having the same clock: As shown in figure 7, connecting the
lockup latch to launch flop’s clock causes the skew to reduce between the domain1 flop and lockup latch.
This hold check can be easily met as both skew and uncommon clock path is low. The hold check between
lockup latch and domain2 flop is already relaxed as it is half cycle check. So, we can say that the correct
way to insert a lockup latch is to insert it closer to launching flop and connect the launch domain clock to its
clock pin.
Figure 5.3.6: Lock-up latch clock pin connected to clock of launch flop
Why don’t we add buffers: If the clock skew is large at places, it will take a number of buffers to meet hold
requirement. In normal scenario, the number of buffers will become so large that it will become a concern
for power and area. Also, since skew/uncommon clock path is large, the variation due to OCV will be high.
So, it is recommended to have a bigger margin for hold while signing it off for timing. Lock-up latch
provides an area and power efficient solution for what a number of buffers together will not be able to
achieve.
5.3Memoryshadow logic
Why is shadow logic so problematic for ATPG tools to fault-grade properly? Let’s first define the
concepts of observability and controllability as they relate to ATPG testing.
• Observability: A node is observable if you can predict the response on it and propagate the fault
effect to the primary outputs where you can measure the response. A primary output is an output
that can be directly observed in the test environment.
• Controllability: A node is controllable if you can drive it to a specified logic value by setting the
primary inputs to specific values. A primary input is an input that can be directly controlled in the
test environment.
In Figure , we see that the input shadow logic of a memory cell is not observable since it cannot be
“captured by a scan chain or a primary output,” but rather by the memory cell only. Further, the
output shadow logic of a memory cell is not controllable since it cannot be “driven by a scan chain
or a primary input,” but instead by the memory outputs.
As SoC devices start to incorporate more memory components of deeper arrays and wider data
busses, the portion of the fault universe associated with shadow logic becomes greater. If the
Design-for-Test (DFT) engineer does not handle this, the fault coverage of such devices becomes
unacceptable.
Standard Approaches
Let’s first review some of the standard approaches that have become popular in managing the
shadow logic surrounding embedded memories.
Mux Bypass
With this strategy, a bypass mux is placed on the RAM output data, which allows the RAM’s
data-in bus to be tied directly to its data-out bus as shown in Figure 3-1. This technique is very
easy to implement in logic, does a fine job of allowing the ATPG tool to cover both the input and
output shadow logic, and requires no special handling by the ATPG tool or the tester program.
However, it introduces a large number of gates and requires a lot of additional routing resources.
It also introduces a not-insignificant static delay on the read data bus.
Note that the “scan_mode” signal is active during both the scan update and scan shift portions of
ATPG. In a design with no other test modes, this is identical to the TESTMODE primary input
of the device.
Figure 3-2 shows that during functional operation, the flip-flop after the data out of the RAM
will receive the contents of RAM unmodified. The scan signal is de-asserted and thus doesn’t
affect the OR gate. However, during scan mode, the logic ‘1’ is logically ORed with all of the
bits on the data-out bus, allowing for limited stuck-at testing of the output shadow logic.
Wrapper or Register Collar
A register collar is the most obvious way to add full controllability and observability to an
embedded RAM’s shadow logic. With this method, a set of non-functional flip-flops is added to
the design. On the input side of the RAM, these flops allow the ATPG tool to capture and shift
out the input shadow logic. On the output side, they allow the tool to control the driving of the
output shadow logic. These additional flops are shown in Figure 3-3 below.
DFTC can create and insert this wrapper automatically, assuming the proper DFTC options are
available, or it can be created manually. This additional circuitry allows the input shadow logic to
be observed, since a scan chain sinks the data out of this logic. It also allows the output shadow
logic to be controlled, since a scan chain sources this combinatorial logic. However, it is clear to
see in Figure 3-3 that this method adds a lot of overhead to the die and routing needs on the chip,
along with the static delays inherent in the bypass mux method.
Smart Wrapper
In this implementation, a single shadow flop is used to create both the observability of the input
shadow logic and the controllability of the output shadow logic. Using an XOR of the inputs to
the RAM reduces the width of the bypass circuitry to the size of the read data. This method
inserts some logic and some routing, although less than the full collar approach, and there is still
the delay penalty due to the mux on the read data path
References
Book “VLSI TEST PRINCIPLES AND ARCHITECTURES” by Laung-Terng Wang
Tessent Scan & ATPG User Manual by Mentor Graphics
Tessent® Shell User’s Manual
Tessent® Scan and ATPG User's Manual
DFTMAX user guide – SYNOPSYS
http://vlsiuniverse.blogspot.in/2013/06/lockup-latches-soul-mate-of-scan-based.html
https://anysilicon.com/lock-latch-implication-timing/
ATPG Methods that Improve Fault Coverage of SoC Devices by Michael Lewis and Leah
Clark
References