EE6309 Week#7 DFT
EE6309 Week#7 DFT
http://sites.google.com/view/tonykim
[email protected]
Design for Testability (DFT)
• Basics
• Design-for-Testability (DFT) Techniques
– Ad Hoc DFT
– Structural Methods
• Scan, Partial Scan, BIST, Boundary Scan, Syndrome-Testable
Design, and C-Testable Design
• Built-In Self-Test (BIST) Techniques
– Signature Analysis
– Pseudorandom Pattern Generator (PRPG)
– Built-In Logic Block Observer (BILBO)
• Summary
2
Design for Testability (DFT)
• A fault is testable if there exists a well-specified procedure
to expose it, which is implementable with a reasonable cost
using current technologies. A circuit is testable with respect
to a fault set when each and every fault in this set is
testable.
• Design for testability (DFT) refers to those design
techniques that make test generation and test application
cost-effective .
• Electronic systems contain three types of components: (a)
digital logic, (b) memory blocks, and (c) analog or mixed-
signal circuits.
• In this chapter, we discuss DFT techniques for digital logic
3
Important Factors of Testability
• Controllability: Measure the ease of controlling a
line.
• Observability: Measure the ease of observing a line
at a PO
• In general, DFT deals with ways for improving
controllability and observability
4
Cost Associated with DFT
• Pins
• Area/Yield
• Performance
• Design Time
5
Ad Hoc DFT Guidelines
• Partition large circuits into smaller subcircuits to
reduce test generation cost (using MUXed and/or
scan chains)
6
Ad Hoc DFT Guidelines
• Insert test points to enhance controllability &
observability
– Test points: control points & observation points
7
Ad Hoc DFT Guidelines
• Design circuits to be easily initializable
• Provide logic to break global feedback paths
• Partition large counter into smaller ones
• Avoid the use of redundant logic
• Keep analog and digital circuits physically apart
• Avoid the use of asynchronous logic
• Consider tester requirements (pin limitation, etc)
• Etc
8
Problems in Ad Hoc DFT
• Large number of I/O pins
– Add MUX’s to reduce number of I/O pins
– Serially shifts control point values
• Long testing time
9
Scan Design Approaches
• They are effective for circuit partitioning
• They provide controllability and observability of
internal state variables for testing
• They turn the sequential test problem into a
combinational one
• Four major approaches
– Shift-register modification
– Scan path
– Level-sensitive scan design (LSSD)
– Random access
• Circuit is designed using pre-specified design rules.
10
Scan Design Approaches
• Consider a representation of sequential circuits
12
Scan Test Generation & Design Rules
• Test pattern generation
– Use combinational ATPG to obtain tests for all testable
faults in the combinational logic
– Add shift register tests and convert ATPG tests into scan
sequences for use in manufacturing test
• Scan design rules
– Use only clocked D-type of flip-flops for all state
variables
– At least one PI pin must be available for test; more pins,
if available, can be used
– All clocks must be controlled from PIs
– Clocks must not feed data inputs of flip-flops
13
Correcting a Rule Violation
• All clocks must be controlled from PIs
14
Correcting a Rule Violation
• Adding a scan FF and a mux allows a feedback loop
to be opened for testing
15
Correcting a Rule Violation
• The AND gates keep the bus drivers from being
activated by the normal logic during testing
16
Scan Test Procedure
• Step 1: Switch to the shift-register mode and check
the SR operation by shifting in an alternating
sequence of 1s and 0s, e.g., 00110 (functional test)
• Step 2: Initialize the SR---load the first pattern
• Step 3: Return to the normal mode and apply the
test pattern
• Step 4: Switch to the SR mode and shift out the
final state while setting the starting state for the
next test. Go to Step 3
17
Combining Test Vectors
18
Combining Test Vectors
19
Testing Scan Register
• Scan register must be tested prior to application of
scan test sequences
• A shift sequence 00110011 . . . of length nsff+4 in
scan mode (TC=0) produces 00, 01, 11 and 10
transitions in all flip-flops and observes the result
at SCAN-OUT output
• Example: 2,000 scan flip-flops, 500 comb. vectors,
total scan test length ~ 106 clocks
• Multiple scan registers reduce test length
20
Multiple Scan Registers
• Scan flip-flops can be distributed among any
number of shift registers, each having a separate
SCAN-IN and SCAN-OUT pin
• Test sequence length is determined by the longest
scan shift register
• Just one test control (TC) pin is essential
21
Hierarchical Scan
• Scan flip-flops are chained within subnetworks
before chaining subnetworks
• Advantages:
– Automatic scan insertion in netlist
– Circuit hierarchy preserved – helps in debugging and
design changes
• Disadvantage: Non-optimum chip layout
22
Optimum Scan Layout
23
Automated Scan Design
24
An Example of DFT Compiler Flow
25
Shift Registers
26
Random Access Scan
• Uses addressable latches
• Provides random access to FFs via multiplexing—
address selection
27
Random Access Scan
• Random access scan cell
• Advantages
– Fast; minimal impact on normal path
– Fast for testing—random access
– Ability to ‘watch’ a node in normal operation mode
• Disadvantages
– Hardware cost is large; more pins added
28
Random Access Architecture
30
Scan-Hold FFs (SHFFs)
• HOLD=0→Q & Q’ are fixed
31
Scan Enters the Nanometer Era
• Trend in flip flop count with design size
32
Problems with Full Scan
• Area overhead
– Due to larger flip-flops
– Due to extra routing
• Possible performance degradation
– Extra gate delay due to the multiplexer
– Extra capacitive loading delay due to scan wiring at the
flip-flop output
• Long test application time
• Not applicable to all designs (e.g. asynchronous
designs, designs violating scan design rules)
• High power dissipation during testing
33
Issues for Multiple-Clock Design
• Clock skew might occur between different domains
• To minimize skew during scan shift, scan chains
should be ordered.
• All FFs in same clock domain are grouped together
– minimizing locations where clock skew can occur
• To completely avoid skew where the scan/clock
domains cross, a lockup latch can be inserted.
34
General Issues of Scan Design
• Scan chain ordering
– To prevent skew during shift
– To minimize routing overhead
– Use placement info to determine a good ordering
• Balancing scan chains
– To minimize total test time
– Total scan cycles = (Scan patterns +1)*(Length of longest
scan chains)
– # of scan chains is normally limited by the package (pins
available to borrow or dedicate for scan) as well as the
tester (channels available with memory depth that can
handle scan vectors).
35
Partial Scan
• Basic idea
– Select a subset of flip-flops for scan
– Lower overhead (area and speed)
– Relaxed design rules
• Cycle-breaking technique
– Cheng & Agrawal, IEEE Trans. on Computers, 1990
– Select scan flip-flops to simplify sequential ATPG
• Timing-driven partial scan
– Jou & Cheng, ICCAD, Nov. 1991
– Allow optimization of area, timing and testability
simultaneously
36
Practice: Scan Chain Reordering
1. The nodes on the grid shown in the following figure are flip-
flops that are to be switched to form a scan path. Show
how they can be connected for minimal interconnect length.
37
Practice: Scan Test
1. Convert the circuit by adding scan to the three flip-flops. Create a
complete scan test for the indicated faults (, , ). Show the sequence
of test vectors that are applied to this circuit in order to detect the
faults, and show the sequence required to scan out and observe the
results.
=Q0’•Q1•Q2’
=Q1•In
=Q0•Q1’•Q2’•In
=Q0’ •Q1’•Q2•In
38
Syndrome-Testable Design
• Definition
– The syndrome of a Boolean function is , where
k is the number of 1s (minterms) in f and n is the number
of independent input variables
– A typical syndrome testing set-up
– 0 S(f) 1
– A circuit is syndrome testable iff fault , S(f) S(f)
– Syndromes of logic gates
39
Syndrome Computation
• Consider a circuit having 2 blocks, f and g, with
unshared inputs
• Example
– Calculate the syndrome of the following circuit
40
Syndrome-Testable Design
• Consider the function f = xz + yz’. The circuit is
syndrome untestable
– Sf = 1/2
– If the circuit has a fault z/0, then the corresponding
syndrome of the faulty circuit is Sf’ = 1/2
– Thus the circuit is syndrome untestable
• A realization C of a function f is said to be
syndrome-testable if no single stuck-at fault causes
the circuit to have the same syndrome as the fault-
free circuit
• Syndrome is a property of function, not of
implementation
41
Syndrome-Testable Design
• Definition
– A logic function is unate in a variable xi if it can be
represented as an SOP or POS expression in which the
variable xi appears either only in an uncomplemented
form or only in a complemented form
• For example:
• Theorem
– A 2-level irredundant circuit realizing a unate function in
all its variables is syndrome testable
42
Syndrome-Testable Design
• Theorem
– Any 2-level irredundant circuit can be made syndrome-
testable by adding control inputs to the AND gates
• For example:
• Drawbacks
– Only for combinational logic
– Exhaustive; modification doubles test set size
43
Practice: Syndrome Calculation
1. Calculate the syndrome of the following circuit using the syndromes of
logic gates.
44
DFT: Summary
• Design-for-testability techniques
– Ad-hoc techniques
– Scan
– Random access scan
– Syndrome-testable
• Scan is a popular DFT technique in modern IC
design
• DFT can increase the controllability and
observability of the circuit under test
45
EE 6309: Topic #6
Built-in-Self-Test (BIST)
http://sites.google.com/view/tonykim
[email protected]
Introduction to Built-In Self-Test
• Built-in self-test (BIST):
– The capability of a circuit to test itself
• Advantages of BIST
– Test patterns generated on-chip → controllability
increased
– (Compressed) response evaluated on-chip →
observability increased
– Test can be on-line (concurrent) or off-line
– Test can run at circuit speed → more realistic; shorter test
time; easier delay testing
– External test equipment greatly simplified, or even totally
eliminated
– Easily adopting to engineering changes
47
Introduction to Built-In Self-Test
• On-line BIST
– Concurrent (EDAC, NMR, totally self-checking checkers,
etc.):
• Coding or modular redundancy techniques (fault tolerance)
48
Introduction to Built-In Self-Test
• Off-line BIST
– A typical BIST architecture
• Test generation
– Prestored TPG, e.g., ROM or shift register
– Exhaustive TPG, e.g., binary counter
– Pseudo-exhaustive TPG, e.g., constant-weight counter,
combined LFSR and SR
– Pseudo-random pattern generator, e.g., LFSR
49
Introduction to Built-In Self-Test
• Response analysis
– Check-sum
– Ones counting
– Transition counting
– Parity checking
– Syndrome analysis
– Etc.
• Linear feedback shift register (LFSR) can be both the
test generator and response analyzer
• We need a gold unit to generate the good signature
or a simulator
50
Signature Analysis
• A compression technique based on the concept of
cyclic redundancy checking (CRC) and realized in
hardware using linear feedback shift registers
• Definition
– A function f(x1,x2,…,xn) is said to be linear if it can be
expressed in the form
f = a0 + a1x1 + a2x2 + ... + anxn
where ai {0, 1} i = 0, 1,...,n
• There are 2n+1 linear functions of n variables
• Linear operations: modulo addition, module scalar
multiplication, & delay
• Nonlinear operations: AND, OR, NAND, NOR, etc.
51
Linear Feedback Shift Register
• Definition
– A linear feedback shift register is a shift register with
feedback paths which consist only of unit delays and XOR
operators
• Let M=fault-free circuit response, B=faulty circuit
response, and E=error syndrome (Hamming), where
E=M + B→thus M=B + E and B=M + E
– We need a circuit to take B as input and compact it but
still be able to tell if M!=B
• LFSR is considered as a popular approach for test
response compaction
52
Structures of LFSR
• Two types of generic standard LFSRs
External Feedback
Internal Feedback
54
LFSR for Signature Analysis
• Assume that the initial state of the LFSR is Di=0,
i=0,…,r-1, then the LFSR effectively divides any m(X)
by c(X), i.e.,
55
LFSR Example
• The following LFSR divides any m(X) by
c(X)=X5+X4+X2+1
56
Signature Analysis
• Let m(X) be the input polynomial of degree k-1, q(X)
the quotient, and s(X) the signature (remainder).
• Then
– m(X)=q(X)c(X)+s(X)
• The error syndrome can be represented as a
polynomial e(X)
– E.g., let m(X)=X4+X3+1(11001), and an erroneous input
b(X)=X3+X+1(01011), then the error syndrome is 11001
01011=10010, and is represented by e(X)=X4+X
• In general, an erroneous input polynomial can be
represented by
– B(X)=m(X)e(X)
57
Signature Analysis
• Theorem1: Input streams m(X) and b(X) have the same
signature if e(X) is a multiple of c(X)
– Proof: an error is not detected when m(X) and b(X) have the same
signature, i.e., b(x)=q’(X)c(X)+s(X). Since m(X)=q(X)c(X)+s(X), we
obtain
e(X)=m(X)+b(X)=c(X)(q’(X)-q(X))
59
Response Compaction
• Usually, we think of data compression as a process
that preserves data integrity. This is why we give
more attention here to data compaction, which may
result in some losses
• There are several compaction testing techniques
– Parity testing
– One counting
– Transition counting
– Syndrome calculation
– Signature analysis
60
Parity Testing
• This is the simplest of all techniques but also the
most lossy
• The parity of responses to the test patterns is
calculated as
– , where L is the length of the test and ri is the
response for the ith test pattern
• The response of the circuit under test (CUT) to
pattern i and the partial product Pi-1 is illustrated as
below
61
One Counting
• The number of 1’s in the response stream is
calculated and compared to the number of 1’s in
the fault-free responses
• Consider the circuit shown below
63
Pseudorandom Pattern Generator
• Logic BIST uses mostly pseudorandom (PR) tests.
They are usually much longer than deterministic
tests, but are definitely less costly to generate.
• PR tests are generated using a LFSR or cellular
automata.
• By means of a simple circuit called an autonomous
linear feedback shift register (ALFSR).
• Definition: an ALFSR is a LFSR with no external
inputs.
• Faults that are hard to detect with PR tests are
called random pattern resistant faults.
64
Pseudorandom Pattern Generator
• Example: the following ALFSR generates the pseudorandom
sequence shown in the table below
66
Practice: LFSR
1. Derive the signature of the 4-bit input string of 1110 using the LFSR
shown below. Show the content of the flip-flops over the shifting cycles.
2. Verify the answer in Q.1 using polynomial division with the
characteristic polynomial of the LFSR.
0111 R1 R2 R3
67
Practice: Signature Analysis
1. Suppose that a modular LFSR whose characteristic
polynomial is 1+X+X4 is used as a signature analyzer for the
circuit and the test shown below.
a) Calculate the signature of the good circuit.
b) Let line a have an SA0. Calculate the signature if the test sequence is
1,2,3,...,15.
68
BIST: Summary
• Built-in self-test methodology is more and more
important for deep submicron designs
• Two key components of BIST
– Test pattern generator
• E.g., LFSR
– Response evaluator
• E.g., BILBO
69