• Tidak ada hasil yang ditemukan

Balanced X-Filling (B-Fill) Algorithm

An Efficient X-filling algorithm for Minimizing Peak Switching Activity

4.2 Balanced X-Filling (B-Fill) Algorithm

Problem Definition: Given a sequence of test cubes T C1. . . T Ck each of length m, replace each don’t care in test cubes by either 0 or 1 such that max{Hd(T C1, T C2), Hd(T C2, T C3). . . Hd(T Ck−1, T Ck)} is minimized, where Hd(T Ci, T Ci+1)is the Hamming distance between test cubesT Ci, T Ci+1after replac- ing don’t cares by either 0 or 1.

4.2.1 Motivation

By definition, the X-bits (don’t care bits) in the test cubes generated by ATPG tool can be filled with 0 or 1, without affecting fault coverage. Table 4.1 shows the average percentage of X-bits (over all the test cubes) for each benchmark circuit. It can be seen that as circuit size increases, the average number of X-bits also increases, motivating the need for an effective and efficient X-filling algorithm to reduce the peak capture power

consumption during scan test. Our aim is to perform X-filling to convert test cubes to test vectors in such a way that peak input toggles is minimized. The existing well known X-filling techniques random-fill (R-fill), zero-fill (0-fill), one-fill (1-fill), and M inimum T ransition-fill (MT-fill) (Sankaralingam et al., 2000), which are explained in the following subsection, are not optimized for minimizing peak input toggles. This motivated us to design an efficient algorithm which is customized for peak input toggle minimization without compromising in average number of toggles. Additionally there are serveral other X-filling techniques proposed in the literature such as (Wu et al., 2011; Miyase et al., 2011; Li et al., 2010; Balatsouka et al., 2010; Wu et al., 2009;

Kundu and Chattopadhyay, 2009; Tzeng and Huang, 2009; Li et al., 2008; Wen et al., 2007; Remersaro et al., 2006) which are not feasible with CSP-Scan, hence not very effective and therefore not compared against techniques proposed in this thesis.

4.2.2 Existing X-Filling Techniques

A list of existing techniques to X-filling for power reduction are as follows:

1. R-fill : This technique replaces all don’t cares by zero or one randomly. As a result of randomness in filling, with high probability this technique will also not give the optimum value. As shown in Fig. 4.1, after applying this type of filling of X-bits in the test cubes, peak input toggle count is4.

2. 0-fill : This technique replaces all don’t cares by zero, as shown in Fig. 4.1. As a result of applying this type of filling of X-bits in the test cubes, peak input toggle count is4.

3. 1-fill : This technique replaces all don’t cares by one, as shown in Fig. 4.1. As a result of applying this type of filling of X-bits in the test cubes, peak input toggle count is4.

4. MT-fill : This technique attempts to reduce adjacent toggles between vectors. As a result, it minimizes the total number of input toggles, as shown in Fig. 4.1. Note that, as a result of applying this type of filling of X-bits in the test cubes, peak input toggle count is5, which is more than optimum value which is2.

39

1 X 0 1 X 0 1 X 0 X X X 1 X 0 1 1 1 TC1TC2 TC3

(a) Input

1 0 0 1 0 0 1 0 0

1 0 0 1 1 1 TC1TC2 TC3

0 0 0

(b) 0-Fill

1 1 0 1 1 0 1 1 0

1 1 0 1 1 1 TC1TC2 TC3

1 1 1

(c) 1-Fill

1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 TC1TC2 TC3

(d) R-Fill

1 1 0 1 1 0 1 1 0 0 0 0 1 1 0 1 1 1 TC1TC2 TC3

(e) MT-Fill

1 1 0 1 1 0 1 0 0 0 0 0 1 0 0 1 1 1 TC1TC2 TC3

(f) B-Fill

Figure 4.1: Motivation for Balanced-X-Filling (B-Fill)

4.2.3 Algorithm Details

The proposed algorithm for X-filling is shown in Algorithm 6. Before getting into the details of this algorithm, let us explain a few things. We define the modif ied Hamming distance(mHd)function between test cubesT Ci, T Cj as fol- lows:

mHd(T Ci, T Cj)= Number of positions in which(T Ci, T Cj)= 01 or 10.

Note that while computing this function, we ignore the positions where don’t cares appear either in T Ci orT Cj. These don’t cares are filled at a later step based on the X-filling strategy shown in Table 4.2.

Table 4.2: Lookup table for X-filling

Input Output

V(i−1) V(i) V(i+ 1) V(i) %of cases

0 X 0 0 100

1 X 1 1 100

0 X X 0 100

1 X X 1 100

X X 0 0 100

X X 1 1 100

X X X X 100

0 X 1 V(i−1) 50

0 X 1 V(i+ 1) 50

1 X 0 V(i−1) 50

1 X 0 V(i+ 1) 50

Whenever T Ci and T Cj are free from don’t cares, then this function is equivalent to the Hamming distance function. Having understood this, a brief explanation of Algorithm 6 is given as follows:

1. For loop between lines 1 to 13 in algorithm scans the test vectors from two to n-1 in sequential manner and perform the following actions

• LetT Ci be the current test cube under consideration for this for loop. Let T Cj,idenotesjthbit inithtest cube.

• If(T Cj,i−1, T Cj,i, T Cj,i+1) = (0, X,0)or (0, X, X) then replace T Cj,i by zero.

• If(T Cj,i−1, T Cj,i, T Cj,i+1) = (1, X,1)or (1, X, X) then replace T Cj,i by one.

At the end of execution of this for loop, if we look at any row it contains one of XX..X0, XX..X1 as a prefix or one of X0, X1 as a suffix or one of 0X1, 1X0 as a substring.

2. At the end of the lines 14 to 18, any row contains one of 0X1, 1X0 as a substring.

3. For loop between lines 28 to 42 scans the test vectors from two to n-1 in se- quential manner and fill the don’t cares in T Ci such that difference between mHd(T Ci−1, T Ci)andmHd(T Ci, T Ci+1)is minimized, whereT Ciis the cur- rent test cube under consideration for this for loop.

Running time of this algorithm is O(mn) wherem is number of bits in test cube andnis number of test cubes.

In this section, we have explained the balanced X-filling algorithm, that aims at minimizing peak input toggles by filling the X-bits in an efficient manner. Next, we show the importance of initial test vector order, that maximizes the savings produced by this balanced X-filling algorithm in minimizing peak test power.

Dokumen terkait