Download presentation
Presentation is loading. Please wait.
Published byStacey Auston Modified over 10 years ago
1
1 Non-uniform Crossover in Genetic Algorithm Methods to Speed up the Generation of Test Patterns for Sequential Circuits Michael Dimopoulos - Panagiotis Linardis Department of Informatics Aristotle University of Thessaloniki Greece
2
2 Digital Circuits Combinational Logic : inputsoutputs : Memory Sequential Circuit output = f (inputs,time)
3
3 Test Generation Apply a sequence of inputs to a circuit. Observe the output response and compare the response with a precomputed or expected response. Any discrepancy is said to constitute an error, the cause of which is a physical fault. TEST GENERATION TESTING In the faulty circuit, a single line/wire is S-a-0 or S-a-1. STUCK-AT Fault Model
4
4 Test Problem Formulation FSM goodM=(I,O,S, δ, λ ) Problem Formulation FSM faultyM f =(I,O f,S f, δ f, λ f ) For a given list of stuck-at faults : F={f 1,f 2,…,f n } Find a sequence of input vectors V (Test Sequence) that detects the faults in F. outputs Combinational Logic inputs :::: Memory :::: ? outputs Combinational Logic inputs :::: Memory ::::
5
5 ATPG Methods Stuck-at Fault Model ATPG Methods for Sequential Circuits Deterministic Simulation-based (random) Automatic Test Pattern Generation (ATPG) Genetic Algorithms Optimum Test Set: NP-Complete problem.
6
6 A Simple GA for ATPG Test seq. Test seq. Crossover 0101 0100 1011 1110 1011 0110 0101 0101 0100 1011 1110 1011 0110 10 1 1 0101 0100 1011 1110 1011 0110 0101 0101 0100 1011 1110 1011 0110 10 1 1 Mutation 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 Random Population Initial (A) (B) (E) End Ngen < MAX_GENERATIONS Ngen = Ngen+1 1101 If (Ngen%2) == 0 Expand seq. (F) Age = Ngen (C) (D)
7
7 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 0101 0100 1011 1110 1011 0110 Population Encoding of the Individuals 010101001011111010110110010101001011111010110110 n-input vector Sequence of m vectors n x m bit string
8
8 Crossover: Effect on Sequ Circuits Crossover operation degrades to mutation k-th vector 1st vector L V vector Detecting properties are preserved Detecting properties may be completely lost parents offsprings Vectors after the k-th, strongly depend on those before the k-th
9
9 Biased Crossover k-th vector 1st vector L V vector Detecting properties are preserved Detecting properties may be completely lost parents offsprings
10
10 GA Test Generation Policy Slowly increase test sequ size Slowly increase test sequ size Gradually expand candidate test sequences Append one new vector every {three} generations Direct crossover to tail of test sequ Direct crossover to tail of test sequ Try to optimize newly appended vectors Use non Uniform selection probability with emphasis on tail
11
11 Proposed Distribution(NonUni) Square probability distribution (normalized) for crossover selection
12
12 GATPG Algorithm Create_random_population For each individual Evaluate_fsimulation(individual) Sort_population/* with descending fit. value */ ngen=0/* generation num. */ do { for (j=0, i=0; i<ncross; j +=2, i++)/**** crossover ****/ { cross_over(Individual[j], Individual[j+1], child1, child2) Evaluate_ fsimulation (child1) Evaluate_ fsimulation (child2) } for (i=0; i<nmut; i +=2)/**** mutation ****/ { mutation(Individual[0], child1) mutation(Individual[1], child2) Evaluate_ fsimulation (child1) Evaluate_ fsimulation (child2) } Sort_population If ( (ngen % 3) == 0 ) { Expand_sequence(EXPAND_STEP) Evaluate_fsim(Individual[0])/* check best */ } ngen++ } while (ngen<MAX_GENERATIONS)
13
13 Fitness Function fitness = if (ngen < 0.25*MAX_GENERATIONS) f1 else f2 where: f1 = 20. R1 + R2. R3 f2 = 20. R1 + R3 + R2. R4. R5 and R1 = fdetected R2 = (sequ_length – eff_length) / sequ_length R3 = factivated / (fremaining+1) R4 = (faults propagated to FFs) / (num_FF. factive. seq_length) R5 = (faults propagated to outputs) / (num_ouputs. factive. sequ_length)
14
14 POPULATION = 32 MAX_GENERATIONS = 300 PCROSSOVER = 0.6 PMUTATION = 0.2 EXPAND_STEP = 1 POPULATION = 32 MAX_GENERATIONS = 300 PCROSSOVER = 0.6 PMUTATION = 0.2 EXPAND_STEP = 1 Experimental Results ISCAS89 Benchmark Circuits GATPG parameters:
15
15 Uniform Sqr (GATPG) Crossover Probability Distribution GATPG vs Uniform
16
16 Experimental Results Comparison with other methods Comparison with other methods
17
17 Experimental Results (cont)
18
18 Experimental Results (cont) Sequence Lengths GATPGHITECRudnick
19
19 Hybrid Methods (b) circuit s400(a) circuit s386
20
20 Conclusion Non uniform (biased) probability distribution for cut-point selection in crossover operator Non uniform (biased) probability distribution for cut-point selection in crossover operator Crossover operation degrades to mutation Crossover operation degrades to mutation GA for ATPG of Sequential Circuits: GATPG: Slowly increase test sequ size Slowly increase test sequ size Direct crossover to tail of test sequ Direct crossover to tail of test sequ
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.