FAN
FAN
FAN
ATPG Algorithm
Objective
TG time reduction
Reduced number of backtracks
Find out the non-existence of solution as soon as
possible
Branch and bound
1/8/2020 1
1/8/2020 2
FAN -- Fujiwara and
Shimono
(1983)
New concepts:
Stop Backtrace at head lines
Immediate assignment of uniquely-
determined signals using Forward and
Backward Implications
Unique sensitization
Multiple Backtrace
1/8/2020 3
FAN Algorithm
Strategies:
Strategy 1:
Stop the backtrace at a headline, and postpone the line
justification for the headline to later
1/8/2020 4
1/8/2020 5
Headlines
1/8/2020 6
1/8/2020 7
1/8/2020 8
Contrasting Decision Trees
1/8/2020 9
1/8/2020 10
FAN Algorithm
Strategies:
Strategy 2: Immediate Implication
In step of the algorithm determine as many signal values as
possible
Forward and Backward Implications
1/8/2020 12
1/8/2020 13
PODEM Fails to Determine Unique Signals
1/8/2020 16
1/8/2020 17
PODEM Makes Unwise
Signal Assignments
1/8/2020 18
Unique Sensitization of
FAN with No Search
1/8/2020 19
1/8/2020 20
1/8/2020 21
FAN Algorithm
Strategy 5:
Multiple backtracing (concurrent backtracing of more than
one path) is more efficient than backtracing along a single
path
1/8/2020 22
1/8/2020 23
Multiple Backtrace
FAN – breadth-first
passes –
1 time
PODEM –
depth-first
passes – 6 times
1/8/2020 24
Rules for Mutiple
Backtracing
Decisions are made at Fanout Stems
In case of conflict, signals are assigned randomly at the
stem and forward implication is carried out
Else, signal with maximum votes is assigned to the stem
In case of gates, if only one input is to be set, easiest to
control input is voted
Else all the inputs are voted
1/8/2020 25
1/8/2020 26
AND Gate Vote Propagation
[5, 3]
[0, 3]
[5, 3]
[0, 3]
[0, 3]
AND Gate
Easiest-to-control Input –
# 0’s = OUTPUT # 0’s
# 1’s = OUTPUT # 1’s
All other inputs --
# 0’s = 0
# 1’s = OUTPUT # 1’s
1/8/2020 27
Multiple Backtrace
Fanout Stem Voting
[5, 1]
[1, 1]
[18, 6] [3, 2]
[4, 1]
[5, 1]
Fanout Stem --
# 0’s = S Branch # 0’s,
# 1’s = S Branch # 1’s
1/8/2020 28
1/8/2020 29
1/8/2020 30
Note that this indicates that it is possible to satisfy the initial
objectives without requiring the off-path inputs y and z to be set.
1/8/2020 31
Note that in this case, it is necessary to define the side inputs to
establish the initial objectives.
Add y as an objective to satisfy in the breadth-first search.
1/8/2020 32
Fault: r sa1
1/8/2020 33
Fault : h sa1
1/8/2020 34