Efficient Sequential Test Generation Based on ... - Semantic Scholar

2 downloads 0 Views 102KB Size Report
reachable by testing, the fault coverage can. Efficient ... achieve both high fault coverage and short test ... no distinction is made between these two global states ...
Special ITC Section

Efficient Sequential Test Generation Based on Logic Simulation Shuo Sheng

Michael S. Hsiao

Rutgers University

Virginia Tech

A simple and highly efficient logic-simulationbased test generator uses a genetic algorithm to achieve both high fault coverage and short test generation times. ALTHOUGH RESEARCH on automatic test-pattern generation (ATPG) has yielded effective solutions for combinational circuits, developing efficient methods for sequential circuits remains difficult. The difficulty results because state and time frame expansion has caused a virtual explosion of the relevant search space. The commonly used branch-and-bound technique1 is infeasible for large sequential circuits because of the exponentially growing numbers of backtracks. In recent years, researchers have focused on simulation-based techniques2-7 because of their scalability to large circuits. We divide this class of test generators into fault simulation based4,6,7 and logic simulation based.2,5 In the former, a test generator repeats fault simulation runs to gather information on targeted faults to guide the test generator’s search for test sequences. In the latter, logic simulation makes up the bulk of computation, with minimal calls to fault simulation. Logic-simulation-based test generators usually target a property of the fault-free circuit and try to derive a sequence that exercises this property to a large extent. In research by Saab and colleagues,2 the test generator tries to maximize

2

0740-7475/02/$17.00 © 2002 IEEE

the circuit activity (events in logic simulation), whereas in research by Pomeranz and Reddy5 the test generator aims to maximize the number of new states visited. Recently, researchers have combined fault-simulation and circuit properties6,7 in cases where static test-set compaction yields the embedded properties. For example, compaction can identify useful vectors that can be repeated to detect additional faults;6 moreover, spectral properties embedded in the circuit under test can be extracted to assist generation of test vectors.7 Generally, because logic simulation is significantly less complex than fault simulation, execution time can be far shorter. However, the fault coverage of logic-simulation-based test generators, such as Cris2 and Locstep,5 can be inferior for large circuits when compared with that of fault-simulation-based, state-of-the-art test generators such as Strategate,4 Proptest,6 and Spect.7 In this article, we present an efficient logicsimulation-based test generator that executes significantly more quickly than its fault-simulationbased counterparts. This test generator’s fault coverage compares favorably with that of the latest techniques for large sequential circuits.

Motivation and concept Hard faults generally require reaching hardto-reach states during testing. Therefore, Pomeranz and Reddy5 developed a test generator that aims to drive the fault-free circuit to as many new states as possible. However, because large sequential circuits have many states reachable by testing, the fault coverage can IEEE Design & Test of Computers

level off prematurely. This situation is often due to the indiscriminate addition of new states. Indiscriminate adding of new states is ineffective because some state variables belong to the data path and others belong to the control path, so maximizing the new states on the data path generally does not play as significant a role as maximizing those on the control path. This implies that we should not treat the entire state as a whole in optimization, because excessive noise from those unimportant states could misguide the test generator. Partitioning the state can help weed out the noise. Figure 1 shows how state partitioning can remove the noise and provide better guidance in the search space. Figure 1 shows a circuit with eight flip-flops. Let us partition global state S into partial states S1 and S2. We denote a distinct partial state as hexadecimal; for example, the number 5 represents partial state 0101 appearing on partition S1. We use the same notation for S2. For global state S, a couple (S1, S2) represents its value. For example, (5, A) represents global state 0101 1010. Assume the current test set has reached the following global states: (0, 0), (1, 1), (1, 2), (2, 3). The partial states visited on S1 and S2 are {0, 1, 2} and {0, 1, 2, 3}. Based on this state information, consider the following two scenarios. First, suppose two new candidate sequences drive the circuit from the current state to two new, different global states, (2, 1) and (3, 1). From the given starting state, we need select only one to append to the test set. If no distinction is made between these two global states, the test generator simply picks one randomly. However, state partitioning can differentiate the two states by pointing out that (3, 1) is more attractive because 3 brings a new state into partition S1, whereas both 2 and 1 have already been reached in the two separate partitions. Second, suppose the two different global states reached by the two candidate sequences are (3, 0) and (2, 4), and we need to pick only one to append to the test set. Both states are new global states; in addition, 3 is a new partial state on S1, and 4 is a new partial state on S2. By simply glancing at these two global states, it would be difficult to favor one over the other. However, imposing different weights on different state partitions lets us differentiate them. A September–October 2002

Global state S FF1 FF2 FF3 FF4 FF5 FF6 FF7 FF8

Partitioned states S1 and S2 FF1 FF2 FF3 FF4

Current state table

Example 1

Example 2

S1:

0

FF5 FF6 FF7 FF8

S2:

0

1

1

1

2

2

3

2

1

3

1

3

0

2

4

Figure 1. State partition examples. State partitioning can provide additional discrimination between states.

partition deemed to have greater influence on the circuit gets a greater weight. If the weight assigned to S1 surpasses that of S2, the algorithm chooses (3, 1). Our test generator combines logic simulation and state partition. Our proposed procedures include the following: ■ ■ ■

Divide the state into a set of partitions both statically and dynamically. Apply a genetic algorithm (GA) to maximize new states reached in each partition. Incorporate reset signal masking to avoid revisiting previously reached states, and thus expand the searched state space.

Initially, we do the partitioning statically according to the controllability of each flip-flop. As the fault coverage begins to become saturated, we invoke dynamic partitioning to regroup the flip-flops according to the structural analysis of the remaining undetected faults. Ideally, we would have a test sequence that can fully exercise the control path, so we want to explicitly distinguish between control and data paths. However, this is difficult, especially when

3

Special ITC Section

Table 1. Test generation (100,000 vectors) without and with reset signal masking. No reset signal masking Circuit

No. of

Execution

detected faults

time (s)

No. of

With reset signal masking No. of

vectors states

No. of

Execution

No. of

No. of

detected faults

time (s)

vectors

states

s1423

843

10.5

1,990

1,814

s5378

2,985

51.8

5,950

5,950

s35932

33,397

43.8

1,240

464

s38417

1,970

204.8

1,050

1,050

div16

1,691

20.2

5,990

5,492

1,669

20.6

6,000

5,655

951

54.2

1,070

112

6,600

1,000.1

11,010

10,807

b22 11,330 8,933.5 38,670 38,175 * No reset masking was applied, because all PIs have similar reset power.

20,081

8,159.2

33,380

33,760

b15

we are working with a gate-level circuit description. Therefore, we take an alternative approach that orients the partition to best suit our objective of achieving high fault coverage. We first partition the state into subgroups based on each flipflop’s controllability (FF controllability). We group flip-flops with similar ranges of controllability values together. Then we use a GA-based engine to search for a sequence that maximizes partitioned-state reachability.8 Another technique, reset signal masking, guides the search to avoid revisiting previously visited states for each partition. As test generation progresses, the test generator dynamically alters state partitioning using the circuit’s structural information that corresponds to the remaining undetected faults, to further improve fault coverage.

Reset signal masking We introduced the reset signal masking technique to help state traversal.9 Because our goal is to reach as many useful states as possible, our search must not frequently return the circuit to an old or reset state. Therefore, we want to mask those primary inputs (PIs) to a value that will prevent the circuit from being reset or partially reset. We use parallel simulation to identify the circuit’s reset or partial-reset PIs and perform the masking as part of the GA process. To demonstrate the effectiveness of reset signal masking, we implemented a test generation procedure that maximizes global state activity. In this procedure, we use the GA to optimize and pick, from a cluster of candidate sequences, the best sequence that maximizes

4

1,044

15.7

2,850

2,822

No reset masking applied* 35,100

25.0

568

568

No reset masking applied*

the number of global states visited. The sequence length is 10. We append the selected best sequence to the test set. The test generator performs this procedure repeatedly until a total of 100,000 vectors are generated. For global states, we consider all flip-flop values in deciding if a new state appears in a state table. This is in contrast to partial states, which result from state partitioning. We tested the test generation procedure both with and without reset signal masking.1 We ran both experiments on a Pentium 4, 1.8GHz machine with 512 Mbytes of RAM and the Linux operating system. As the results in Table 1 show, in circuits s1423, s35932, b15, and b22, reset masking greatly improved the fault coverage—for example, in s1423, reset signal masking helped detect 201 more faults than without signal masking. For b15 and b22, this difference increased to about 5,649 and 8,751. In s35932, the fault coverage reached in just 25 seconds was almost as high as reported by far more complex sequential test generators such as Strategate and Proptest, which require hours of computation. For circuits s5378 and s38417, no reset masking was applied because no biased reset PI was available.

State partitioning methods Although reset signal masking can yield excellent fault coverage results, the coverage we attained was still not as high as that obtained by state-of-the-art sequential test generators. By adding state partitioning to our test generation framework, we can detect still more IEEE Design & Test of Computers

faults, and our results match those achieved by other researchers for many circuits.4,6,7 Random partitioning As Figure 1 shows, we must address two problems to accomplish state partitioning: ■ ■

how to group flip-flops into different partitions, and how to assign weights to different partitions.

Table 2. Test generation (100,000 vectors) without and with random state partitioning. No partitioning Circuit

N −1

∑ {W

j

×U j

j =0

No. of

Execution

detected faults

time (s)

detected faults

time (s)

1,044

15.7

1,414

8,394.0

s5378

2,985

51.8

3,588

4,894.0

s35932

35,100

25.0

35,100

25.0

s38417

1,970

204.8

1,970

190.8

div16

1,669

20.6

1,808

3,005.0

b15

6,600

1,000.1

16,954

10,778.0

b22

20,081

8,159.2

23,437

20,481.0

}

where N is the total number of partitions (we set it to 5), and Wj is the weight assigned to partition Sj. Uj = 10 if the partial state on partition Sj is a new state in its partial table, Tj. Uj = 1/ns if the partial state on partition Sj is an old state for Tj, where ns is the number of times this partial state has been visited during logic simulation. This fitness function gives preference to both September–October 2002

Execution

s1423

We first attempt the simplest partitioning heuristic—random partitioning and random weights—to show how even simple partitioning can influence test generation results. In random partitioning, given N partitions, the state variables are randomly and evenly distributed into N groups, each group (except the last one) having the same number of flip-flops. We randomly assign integer weights from 1 to N to these N groups, denoted by partition Sj, j = 0, … , N – 1. During logic simulation, we store statistics of both global states and partition states into two separate tables: global state table Tglobal, which stores every distinct full state reached in logic simulation, and partitioned state tables T0, … , TN–1, which contain the projection of the full state onto each of the ith partitions. Therefore, each partition Sj manages a state table, Tj. After we determine the state partition and partition weights, we invoke the same test generation procedure as used earlier. But the fitness function in a GA is more complex because of the state partition. We compute it as the following formula: fitness =

Random partitioning

No. of

new and less-visited states appearing in strongly biased state partitions (with higher Wj values). We compute the fitness by simulating each candidate sequence in the GA population. Parallel logic simulation evaluates 32 candidate sequences simultaneously to reduce computational cost. No fault simulation is involved until the GA has selected the best candidate sequence to add to the test set. At that point, fault simulation drops the faults detected by this sequence. The sequence length is set to 10 for all simulations. Thus, the test set grows at a rate of 10 vectors for every GA optimization procedure. We ran the same test generation procedure for the partitioning method as we did with reset signal masking but with random-state-partitionbased fitness incorporated into the GA engine. Table 2 lists our results for two cases: without and with random-state partitioning. We applied reset signal masking in both cases. In this table, the results reported under the column “No partition” are identical to those shown in Table 1 under the column “With reset signal masking.” As Table 2 shows, random partitioning has significantly improved fault coverage for most circuits. For s1423, the number of detected faults reached 1,414, which is as high as results achieved with Strategate. For s5378, div16, b15, and b22, the improvement was also quite dramatic. The exceptions are s35932 and s38417. For the former, since the fault coverage achieved by reset signal masking was already very high, state partitioning yielded minimal benefit. For the latter, we believe that the s38417 circuit requires intelligent partitioning methods rather than random partitioning.

5

Special ITC Section

Table 3. Test generation (100,000 vectors) with FF-controllability-based partitioning.

Circuit

No state partitioning

Random partitioning

No. of

Execution

No. of

Execution

No. of

Execution

detected faults

time (s)

detected faults

time (s)

detected faults

time (s)

s1423

1,044

15.7

1,414

8,394.0

1,415

2,980.2

s5378

2,985

51.8

3,588

4,894.0

3,615

2,167.2

s35932

35,100

25.0

35,100

25.0

35,100

25.0

s38417

1,970

204.8

1,970

190.8

2,024

1,128.1

div16

1,669

20.6

1,808

3,005.0

1,855

3,061.0

b15

6,600

1,000.1

16,954

10,778.0

18,314

8,907.8

b22

20,081

8,159.2

28,437

20,481.0

30,493

27,924.0

FF-controllability-based partitioning In a given sequential circuit, some state variables are less controllable than others. Less activity typically occurs in these flip-flops. For the circuit to traverse more useful states, it is often desirable to stimulate more activity on these less-active flip-flops. Therefore, the first intelligent partitioning method we employ is based on FF controllability. We perform a logic simulation of N random vectors (typically, N is set from 500 to 1,000) and record the number of times each FFi is set to 0 and 1, denoted by Ni0 and Ni1. The 0 controllability of FFi is calculated as CC0i = Ni0/N, and the 1 controllability is CC1i = Ni1/N. We define the absolute value of the difference of the controllability values and call it FFbias: FFbias(i) = |CC0i – CC1i| If FFbias(i) is close to 0, then FFi is easily controlled as both 0 and 1. A large FFbias(i) indicates that a strong bias exists for this flip-flop. We do not further differentiate it as a bias-to-0 or 1, because we are most concerned with reducing this bias in state traversal. To partition the state, we group each FFi into a subgroup Sj, according to its bias value. Five bias value ranges are considered: {ai, ai+1}, where ai = {0.0, 0.2, 0.4, 0.6, 0.8, 1.0}. If the bias value of FFi falls into any of these five ranges—for example, {aj, aj+1}—then FFi is grouped into subgroup Sj. The number of flip-flops in each subgroup Sj is the size of the partition. We also assign a weight Wj for each Sj, just as subgroups with larger bias values are assigned larger weights.

6

FF-control partitioning

Table 3 shows how FF-controllability-based partitioning, with reset signal masking, can yield more improvements over no partitioning and random partitioning. The results for no partitioning and random partitioning are the same as those in Table 2. You can see from Table 3 that for circuit s1423, one more fault was detected than with random partitioning, and the time was reduced by about 75%. For s5378, 27 more faults were detected and the time was nearly halved. We observed the same phenomenon for div16, s38417, b15, and b22. Particularly for div16, the number of detected faults (1,855) already surpassed those detected by Strategate (1,614) and Proptest (1,652). Structure-based partitioning Although FF-controllability-based partitioning with GAs and reset signal masking has achieved far higher fault coverage than previous methods, it has not yet matched the results reported by other complex sequential test generators. The reason is that the fault coverage becomes saturated when the partition cannot provide further guidance for those hard faults. This is because the FF-controllability-based partitioning primarily targets the harder-to-control flip-flops. For the remaining hard faults, we need to further refine the search space; we need fault-related information to adjust the partitioning when the fault coverage begins to level off. This leads to dynamic partitioning—a more intelligent and adaptive partitioning method— using the undetected faults’ structural information. IEEE Design & Test of Computers

In Pomeranz and Reddy’s work,10 a dynamically selected subcircuit (instead of the complete circuit) reduces the test generation cost. Chickermane and Patel, on the other hand, proposed a fault-oriented method for choosing flipflops for partial scan.11 Both methods attempt to associate the circuit’s structural information with the fault site. We followed similar steps to locate those flip-flops that have more influence on excitation and propagation of the remaining faults and group them together. We use the algorithm in Figure 2 to score each flip-flop according to its structural location related to the target faults: In the above algorithm, the influencing cone is the fan-in cone for signals on the fault’s propagation path. Typically, N and M are set to 100 and 5. Figure 3 shows an example. The fault site is marked X in the figure. According to the definition, FF1 and FF2 are in the fault’s fan-in cone; they will influence the fault’s excitation. FF3 and FF4 are in the fault’s influencing cone, so they control the fault’s propagation. Wexcite and Wprop are the weights that the algorithm gives to the flip-flop, depending on where it is located. These two values are set to either 5 or 10. If the fault has been activated, we weight propagation more than excitation; otherwise, we give more weight to excitation.

Experimental results Here we report the experiments we performed with our proposed logic-simulationbased test generator and the results we achieved on several benchmark and industry circuits. Test generation We implemented the dynamic partitioning (structure-based) algorithm and integrated it into our test generation procedure. We executed the program on several ISCAS 89 (International Symposium on Circuits and Systems) and ITC 99 (International Test Conference) benchmark circuits and two industry circuits, GPIO (GeneralPurpose Input-Output bus controller) and Paulin.12 Because state partitioning is the core of the algorithm, this test generator targets large sequential circuits having more than 50 flip-flops. However, we also report results for two circuits September–October 2002

//Step 1: Select target fault set Choose target fault set F from activated but undetected fault set, or previously excited but undetected fault set, or random sampling of undetected fault set. //Step 2: Conduct structural analysis for each fault fi in target fault set F for each FFj in the state if FFj is in the fan-in cone of fi then FF_score(j) + = Wexcite; if FFj is in the influencing cone of fi FF_score(j) + = Wprop; //Step 3: Sort flip flops Sort flip-flops according to their FF_score value //Step 4: Partition flip-flips Pick first N flip-flops with biggest FF_score, and divide them equally into M partitions.

Figure 2. Algorithm to score flip-flops according to structural location.

FF1 FF2

FF3

Gate 1

X

Gate 2

Gate 3

Primary output

FF4

Figure 3. Example of fault-oriented structural analysis.

with fewer than 50 flip-flops—s400 and s641—to illustrate the effectiveness on smaller circuits. In Table 4 (next page), we report the test generation results for these circuits by the following test generators: ■

■ ■



Locstep,5 a logic-simulation-based test generator that targets maximizing global states visited (no state partitioning); Hitec,1 a deterministic test generator; Strategate,4 a GA- and fault-simulation-based test generator (using a Hewlett-Packard 9000 J200 machine with 256 Mbytes of memory); and Proptest,6 a compaction-, fault-simulationbased test generator (using a Pentium II 400MHz workstation).

7

Special ITC Section

Table 4. Test generation results from existing test generators.* Locstep5 No. of

Circuit

Strategate4

No. of

detected

No. of

Execution

detected

faults

vectors

faults

vectors

time (s)

faults

s641 1,274

9,616

Proptest6

No. of

Detected

s400

s1423

Hitec1,12 No. of

382

No. of No. of Execution vectors

time (s)

382

4,309

2,424

404

216

404

166

776

177

1,414

3,943

4,572

detected No. of Execution faults

vectors time (s)

382

617

92

404

182

30

1,416

1,387

277

s5378

3,059

7,545

3,238

941

3,639

11,571

136,080

3,643

706

898

s35932

34,812

2,408

34,902

240

35,100

257

39,240

35,101

255

676

2,006

30,802

1,835,861

1,665

189

1,814

3,476

29,160

1,852

243

b15

17,921

83,465

1,515,498

18,257

58,244

b22

30,788

22,059

196,513

30,678

50,723

s38417 div16

GPIO

2,865

1,396

57

2,833

5,292

11,078

Paulin

67,909

752

147,002

69,150

4,499

101,071

* Blank entries indicate that the data was not available; no execution times were available for Lockstep.

Table 5 lists our experimental results. We applied reset signal masking in all cases, which generated 100,000 vectors. In the rightmost column under “Dynamic partition,” we show the test generation results with dynamic state partitioning applied. In the three other cases, we list results obtained with no partitioning, random partitioning, and FF-controllability-based static partitioning. For each circuit, we list the number of detected faults and test generation time from each method. Comparing our results from Table 5 to those in Table 4 shows that our dynamic-partition-based test generator has achieved fault coverage comparable to Strategate, as well as to Proptest on hard-to-test circuits, generally with a shorter execution time. For example, for circuit s1423, Strategate detected 1,414 faults in 4,572 seconds, Proptest detected 1,416 faults in 277 seconds, and ours detected 1,415 in 147 seconds. Results were most dramatic with circuit b15. For b15, Strategate detected 17,921 faults with 83,465 vectors in 1,515,498 seconds, and Proptest detected 18,257 faults in 58,244 seconds. Our dynamic partitioning technique detected the most faults—18,276—in only 4,555 seconds. For circuit s35932, the execution time was far shorter than all the others. For div16 and s38417, our approach also achieved the highest fault coverage. Likewise, the performance was also far bet-

8

ter than Hitec’s and Locstep’s for all circuits. For the two industrial circuits, GPIO and Paulin, our methods showed significant performance improvement in execution time over Hitec and Strategate, although the fault coverage yielded was about the same in GPIO and slightly higher in Paulin. The results were similar for the two smaller circuits, s400 and s641. Table 5 also shows that a dynamic-partitionbased approach can speed up the test generation time against the static-partition-based approach. For example, for s1423, although both approaches detected 1,415 faults, the dynamic approach reduced the time from 2,890 seconds in the FF-controllability-based approach to 147 seconds. The GPIO circuit is a typical example, showing how dynamic partitioning outperforms the static-partitioning and no-partitioning methods. The number of detected faults climbed to 2,843 with dynamic partitioning, whereas the no-partitioning and random-partitioning methods remained below 1,000, and FF-controllabilitybased partitioning remained below 2,000. Circuit b15 is a different case, in which the dynamic-partitioning approach performed worse than static partitioning. The reason was that our dynamic partitioning algorithm is a heuristic and might not always provide the correct searching direction. IEEE Design & Test of Computers

Table 5. Our test generation results using the state partition technique. No partitioning No. of Circuit s400 s641 s1423

Random partitioning No. of

FF-controlled partitioning

Dynamic partitioning

No. of

No. of

detected

Execution

detected

Execution

detected

Execution

detected

Execution

faults

time (s)

faults

time (s)

faults

time (s)

faults

time (s)

382

8.75

382

8.30

380

10.70

382

9.00

404

6.60

404

13.80

404

6.68

404

6.83

1,044

15.70

1,414

8,394.00

1,415

2,980.20

1,415

147.00

s5378

2,985

51.80

3,588

4,894.00

3,615

2,167.20

3,636

212.00

s35932

35,100

25.00

35,100

25.00

35,100

25.00

35,100

24.00

s38417

1,970

204.80

1,970

190.80

2,024

1,128.10

2,228

2,149.00

div16

1,669

20.60

1,808

3,005.00

1,855

3,061.00

1,873

771.00

b15

6,600

1,000.10

16,954

10,778.00

18,314

8,907.80

18,276

4,555.00

b22

20,081

8,159.20

28,437

20,481.00

30,493

27,924.00

30,684

16,914.00

GPIO

635

5,681.00

405

2.92

1,858

999.70

2,843

174.30

Paulin

69,020

385.00

68,967

362.00

69,173

253.00

69,173

192.30

For large circuits like div16, b15, and b22, our test generation times were longer because of the fault simulation of the 100,000 generated vectors. In fact, 90% of the test generation was spent on fault-simulating the test set. Test-set compaction The number of test sets generated by our approach in Table 5 was high (an upper limit of 100,000 vectors were generated for each circuit). Generally, this class of test generators yields longer test sets than deterministic or compaction-based methods. However, with a postcompaction step, we can reduce the test sets significantly. We applied a static test-set compaction procedure to the test sets generated by our method; Table 6 shows the results. The “Original test length” column reports the actual test-set length corresponding to the fault coverage achieved in Table 5. The “Compacted test length” column reports the test-set length after compaction. For instance, for s5378, the original test set of 12,144 vectors was compacted to only 1,123 vectors, to achieve the same fault coverage. Likewise, in circuit s35932, the initial test-set length by our technique was 568. After compaction, only 208 vectors are needed to achieve the same coverage. This sequence of 208 vectors is shorter than the test sets obtained by either Strategate or Proptest. The results show that the disadvantage of an initially longer test September–October 2002

Table 6. Test compaction results. Circuit

Original test length

Compacted test length

(no. of vectors)

(no. of vectors)

s1423

16,110

1,334

s5378

12,144

1,123

s35932

568

208

s38417

8,100

5,415

div16

37,951

10,278

b15

79,060

17,251

b22

99,080

31,065

GPIO

15,999

8,142

Paulin

2,230

404

sequence in our technique can easily be remedied by efficient compaction procedures.

WE HAVE PRESENTED an efficient, yet simple,

sequential test generator that uses logic simulation. Through state partitioning, we can further discriminate candidate states and thus effectively guide the search engine to detect hard faults. Future work in this area includes developing more delicate dynamic algorithms for state partitioning. Various partial-scan algorithms in DFT can be migrated to this domain. Such algorithms are generally considered FFprioritizing schemes, which are naturally suitable for partitioning. ■

9

Special ITC Section

Acknowledgments

Based Test Generation for Combinational Circuits

This research was supported in part by the National Science Foundation under grant CCR0196470, a grant from the New Jersey Commission on Science and Technology, and a grant from Fujitsu Labs of America.

Using Dynamically Selected Subcircuits,” Proc. Int’l Conf. Computer Design (ICCD 99), IEEE CS Press, Los Alamitos, Calif., 1999, pp. 412-417. 11. V. Chickermane and J.H. Patel, “A Fault Oriented Partial Scan Design Approach,” Proc. Int’l. Conf. Computer-Aided Design (ICCAD 91), IEEE CS

References 1. T.M. Niermann and J.H. Patel, “HITEC: A Test

Press, Los Alamitos, Calif., 1991, pp. 400-403. 12. I. Ghosh and M. Fujita, “Automatic Test Pattern

Generation Package for Sequential Circuits,”

Generation for Functional Register-Transfer Level

Proc. European Design Automation Conf. (EURO-

Circuits Using Assignment Decision Diagrams,”

DAC 91), IEEE CS Press, Los Alamitos, Calif.,

IEEE Trans. Computer-Aided Design of Integrated

1991, pp. 214-218.

Circuits and Systems, vol. 20, no. 3, Mar. 2001.

2. D.G. Saab, Y.G. Saab, and J.A. Abraham, “CRIS: A Test Cultivation Program for Sequential VLSI Circuits,” Proc. Int’l Conf. Computer-Aided Design (ICCAD 92), IEEE CS Press, Los Alamitos, Calif., 1992, pp. 216-219. 3. E.M. Rudnick et al., “Application of Simple Genetic Algorithms to Sequential Circuit Test Generation,” Proc. European Design and Test Conf. (ED&TC 94), IEEE CS Press, Los Alamitos, Calif., 1994, pp. 40-45. 4. M.S. Hsiao, E.M. Rudnick, and J.H. Patel, “Sequential Circuit Test Generation Using Dynamic State Traversal,” Proc. European Design and

Shuo Sheng is a PhD student in the Department of Electrical and Computer Engineering at Rutgers University, Piscataway, New Jersey. His research interests include ATPG and formal verification. Sheng has a BS in automatic control from Huazhong University of Science & Technology, Wuhan, China, and an MS in electrical engineering from Tsinghua University, Beijing. He is a student member of the IEEE.

Test Conf. (ED&TC 96), IEEE CS Press, Los Alamitos, Calif., 1996, pp. 22-28. 5. I. Pomeranz and S.M. Reddy, “LOCSTEP: A Logic-Simulation-Based Test Generation Procedure,” IEEE Trans. CAD of Integrated Circuits and Systems, vol. 16, no. 5, May 1997, pp. 544-554. 6. R. Guo, I. Pomeranz, and S.M. Reddy, “A Fault Simulation Based Test Pattern Generator for Synchronous Sequential Circuits,” Proc. VLSI Test Symp. (VTS 99), IEEE CS Press, Los Alamitos, Calif., 1999, pp. 260-267. 7. A. Giani et al., “Efficient Spectral Techniques for Sequential ATPG,” Proc. IEEE Design Automation and Test in Europe Conf. (DATE 01), IEEE CS

Michael S. Hsiao is an associate professor in the Bradley Department of Electrical and Computer Engineering at Virginia Tech, Blacksburg, Virginia. His research interests include VLSI and SoC testing, design verification, diagnosis, and low-power design. Hsiao has a BS in computer engineering and an MS and PhD in electrical engineering, all from the University of Illinois at Urbana-Champaign. He is a member of the IEEE and the ACM.

Press, Los Alamitos, Calif., 2001, pp. 204-208. 8. D.E. Goldberg, Genetic Algorithms in Search, Optimization, and Machine Learning, AddisonWesley, Reading, Mass., 1989. 9. S. Sheng, K. Takayama, and M.S. Hsiao, “Effec-

Direct questions and comments about this article to Shuo Sheng, Dept. of Electrical and Computer Engineering, Rutgers University, Piscataway, NJ 08854; [email protected].

tive Safety Property Checking Using SimulationBased Sequential ATPG”, Proc. Design

For further information on this or any other comput-

Automation Conf. (DAC 02), ACM Press, New

ing topic, visit our Digital Library at http://comput-

York, 2002, pp. 813-818.

er.org/publications/dlib.

10. I. Pomeranz and S.M. Reddy, “Fault Simulation

10

IEEE Design & Test of Computers

Suggest Documents