# 1 Non-uniform Crossover in Genetic Algorithm Methods to Speed up the Generation of Test Patterns for Sequential Circuits Michael Dimopoulos - Panagiotis.

## Presentation on theme: "1 Non-uniform Crossover in Genetic Algorithm Methods to Speed up the Generation of Test Patterns for Sequential Circuits Michael Dimopoulos - Panagiotis."— Presentation transcript:

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 Digital Circuits Combinational Logic : inputsoutputs : Memory Sequential Circuit output = f (inputs,time)

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 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 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 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 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 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 Biased Crossover k-th vector 1st vector L V vector Detecting properties are preserved Detecting properties may be completely lost parents offsprings

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 Proposed Distribution(NonUni) Square probability distribution (normalized) for crossover selection

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 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 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 Uniform Sqr (GATPG) Crossover Probability Distribution GATPG vs Uniform

16 Experimental Results Comparison with other methods Comparison with other methods

17 Experimental Results (cont)

18 Experimental Results (cont) Sequence Lengths GATPGHITECRudnick

19 Hybrid Methods (b) circuit s400(a) circuit s386

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