• No results found

Experiments with Synthesized Benchmarks

6.4 Experimental results

6.4.2 Experiments with Synthesized Benchmarks

The effectiveness of the proposed algorithms has been also evaluated on new synthe-sized networks. A tool able to generate random networks (constrained with some parameters that affect the topology shape) has been purposely devised. The tool has been used in an evaluation experiment, where around 20k networks have been generated. Networks include both unbalanced and balanced ScanMuxes, also larger than 2-to-1, and are manageable with the Aapproach. The characteristics of the generated networks are the following:

• number of ScanMuxes between 2 and 16;

• number of configuration bits between 2 and 19;

• longest path between 22 and 55,428 scan cells;

• cumulative path between 22 and 70,088 scan cells;

• maximum depth between 2 and 9 levels.

For each network, the total time of the test developed by depth-first and breadth-first approaches have been divided by the total time of the test generated by A(as for the column T /TA of Table 6.4). The normal distribution of the results of the depth-first approach has a mean of 1.08 and a standard deviation of 0.11, while the breadth-first has mean equal to 1.15 and standard deviation equal to 0.15. The maximum values are 1.99 for depth-first and 2.15 for breadth-first. The cumulative distribution functions (CDF) of the two algorithms are reported in Fig. 6.6. The figure shows that depth-first and breadth-first approaches have been able to find the optimal solution (ratio over Aequal to 1) in 23% and 17% of the cases, respectively, while in 90% of the cases the test sequence produced by the two algorithms is long 1.23 and 1.34 times with respect to Aor shorter.

In order to understand how good these results are with respect to the worst case, another set of experiments have been performed. The purpose of these experiments has been to find some networks that are critical (in terms of test sequence duration) for depth-first and breadth-first. We used an evolutionary-based approach, using the

1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 0

0.2 0.4 0.6 0.8 1

Ratio over A

Cumulativeprobability

Depth-first Breadth-first

Fig. 6.6 Normal cumulative distribution function (CDF) of the ratio between sub-optimal approaches (depth-first in black, breadth-first in gray) and Aon the randomly generated networks.

evolutionary engine µGP (MicroGP) [136]. The approach is based on a loop, in which every iteration consists of the following steps:

1. µGP generates a scan network topology, according to some constraints;

2. the topology is read by the tool implementing the test algorithms and the fitness value of the network is computed;

3. µGP reads the fitness value and associate it to the corresponding network.

µ GP maintains a population of networks and each time generates a new one by applying well-known genetic operators (based and mutation and crossover). After reading the fitness of the new generated network, µGP updates the population and other internal parameters. The loop is repeated until a stop condition is met (e.g., the fitness reaches a certain maximum value, or after reaching a fixed amount of wall-clock time or generated networks).

We have performed two evolutionary-based experiments. In the first one, the fitness value is the total time ratio between depth-first and A. In the second one, the ratio is between breadth-first and A. The experiments have been parallelized over 30 cores. After 45 days, 46,066 networks have been generated in the first experiment

0 50 100 150 200 250 300 350 400 450 1

1.5 2 2.5 3

Generation Era

RatiooverA

Depth-first Breadth-first

Fig. 6.7 Progression in time of the maximum fitness value for the evolutionary-based experi-ments.

and 46,823 networks in the second. The fitness in the depth-first experiment started from a maximum value of 1.89 after the first generation era (i.e., the first population of networks) and reached 2.53 after 315 eras. In the breadth-first experiment the maximum fitness started from 2 and reached 2.98 after 354 eras. The fitness evolution of the best network in the population is shown in Fig. 6.7.

Some interesting networks have been extracted from the population and their characteristics are reported in Table 6.5. The experimental results on the selected network are reported in Table 6.6. In the first network, depth-first resulted as efficient as A, while breadth-first has slightly worst performances. The opposite behavior can be observed for the second network, where breadth-first resulted to be highly efficient. Finally, the last two networks are the worst ones generated by the first and the second experiments, respectively.

It is important to highlight that evolutionary experiments do not guarantee that the global optimum is found, thus fitness values have not to be considered as worst-cases.

However, evolutionary experiments outperformed random network generation in terms of maximum fitness values.

Table 6.5 Characteristics of the selected networks

Network #SIBs #ScanMuxes #Config.

bits

Max depth

Longest path

Total scan cells

Network 1 – 4 6 3 8,142 8,884

Network 2 – 5 8 3 6,325 6,557

Network 3 – 6 8 3 24,580 24,851

Network 4 – 7 10 3 34,169 34,543

Table 6.6 Experimental results on the selected networks

Network Alg. #S #cv Tc[cc] Tt[cc] T [cc] T/TA

Network 1 A 4 3 909 49,500 50,409 –

DF 4 3 772 49,637 50,409 1.00

BF 6 6 24,716 74,827 99,543 1.97

Network 2 A 5 4 6,796 38,650 45,446 –

DF 4 5 12,717 56,413 69,130 1.52

BF 5 5 6,838 38,811 45,649 1.004

Network 3 A 9 8 24,968 246,299 271,267 –

DF 10 9 196,237 491,192 687,429 2.53

BF 10 12 269,832 491,192 761,024 2.81

Network 4 A 5 4 34,586 205,458 240,044 –

DF 5 4 101,916 340,616 442,532 1.84

BF 7 8 237,434 476,999 714,433 2.98

6.5 Chapter Summary

The chapter presented several methods for the functional test of reconfigurable modules of a scan network.

The proposed methodology represents the network topology and configurations as graphs. An optimal test sequence in terms of total test time is generated by applying the Asearch algorithm on the configuration graph, with a suitable heuristic to reduce the search space without compromising the final results. Sub-optimal approaches traverse the topology graph and are based on depth-first and breadth-first algorithms. Such approaches scale well on large networks, when the optimal approach is not applicable, while still producing a test set whose duration compares well with the optimal one.

Diagnosis

Once a RSN has been found faulty, it may be important to identify the faulty elements.

The objective of the work presented in this chapter is to extend the testing approach to diagnosis, i.e., providing a solution for the generation of a sequence of stimuli allowing to identify the faulty element in a faulty RSN. This work uses the same fault model adopted in Chapter 6, with some extensions to TDR faults.

While several methods have been proposed to identify the faults possibly affecting a scan chain, such as [137, 138, 134, 139, 140, 141, 142, 143], to the best of my knowledge this is the first attempt to attack the issue of diagnosis in a RSN. The main difference with respect to regular scan-chain diagnosis is that RSNs also include configurable modules: hence, from one side we need to deal with different possible paths, from the other we need to take faults affecting reconfigurable modules into account.

The approach proposed in this work is based on the usage of a fault dictionary, where the behavior of the network when each of the faults belonging to a given set of possible faults arises is stored. By comparing the observed faulty behavior with those in the dictionary, one can identify the fault which may be responsible for the observed behavior. Since only scan output signals (e.g., TDO) can be observed, the different faulty behaviors only differ for the values appearing on these signals.

Based on the analysis of the effects of permanent faults affecting the different elements in a network (TDRs, SIBs, ScanMuxes), one can determine the diagnostic properties of an existing test sequence. If the achieved diagnostic capabilities are not

enough, one could try to generate further stimuli able to achieve improved diagnostic capabilities. The proposed techniques allow the generation of test stimuli able to distinguish between any possible pair of faults in a network (if existing). The main contribution of the work presented in this chapter lies in describing a method to generate some distinguishing input stimuli for any pair of single permanent faults.

Moreover, rules for the identification of classes of undistinguishable faults are provided. By definition, all faults in the same class always behave in exactly the same manner, no matter which input stimuli is applied to the network.

Experimental results gathered on a set of benchmark networks show the feasibility of the approach, and provide figures allowing to quantitatively estimate the length of the stimuli for the diagnosis of an IEEE 1687 network.

Depending on the application scenarios (and in particular on when the instruments are accessed), the diagnostic approach presented here can be used either at the end of manufacturing, or in the field (or in both cases).

The rest of this chapter is organized as follows: Section 7.1 introduces the basic vocabulary and notions about diagnosis, and briefly summarizes the functional fault model. Section 7.2 describes the proposed approach, which is first based on a diagnostic analysis (Section 7.2.1) followed by the test patterns generation (Section 7.2.2). Some experimental results an benchmark RSNs are presented in Section 7.3. Finally, Section 7.4 draws some conclusions.

The concepts and the results presented in this chapter have been also published in [15, 144, 90].

7.1 Terminology and Fault Model

The concepts related to configurations, vectors, and test time have been presented Section 6.1. In this section, the basic terminology is extended to diagnosis.

A given session Si is composed of two phases: a configuration phase Cnfi, in which configuration vectors are applied, and a test phase Tsti, in which test vectors are applied. A session Siis able to excite a set of faults SFSi.

The active path (or session path) is the path connected between the scan input and scan output pins, while the faulty path is the path that would be selected if a

certain reconfigurable module Miin the active path was in the opposite state to the expected one. Details are given in Section 6.1.2, where faulty paths due to the faulty ScanMux in Fig. 5.6 are shown in Table 6.1.

Given two reconfigurable modules Miand Mj, they are defined to be independent whether a path between the scan input and scan output ports can be found, to which only one of the two modules belongs.

In the following, the concepts of fault dictionary and fault classes are introduced.

Moreover, the functional fault model already introduced for reconfigurable modules (cf. Section 6.1.2) is summarized and extended to TDRs.