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 Mutation Random Population Initial (A) (B) (E) End Ngen < MAX_GENERATIONS Ngen = Ngen If (Ngen%2) == 0 Expand seq. (F) Age = Ngen (C) (D)
Population Encoding of the Individuals 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