TEST FUNCTION SPECIFICATION IN SYNTHESIS

Similar documents
A New Optimal State Assignment Technique for Partial Scan Designs

Functional Test Generation for Delay Faults in Combinational Circuits

A New Algorithm to Create Prime Irredundant Boolean Expressions

N-Model Tests for VLSI Circuits

A technique for designing self-checking state machines with low power consumption

6 DESIGN FOR TESTABILITY I: FROM FULL SCAN TO PARTIAL SCAN

Heuristic Minimization of Boolean Relations Using Testing Techniques

Design of a Totally Self Checking Signature Analysis Checker for Finite State Machines

SYNTHESIS OF MAPPING LOGIC FOR GENERATI TRANSFORMED PSEUDO-RANDOM PATTERNS FOR

Evaluation of FPGA Resources for Built-In Self-Test of Programmable Logic Blocks

High-level Variable Selection for Partial-Scan Implementation

Application of Binary Decision Diagram in digital circuit analysis.

An Algorithm for Face-Constrained Encoding of Symbols Using Minimum Code Length

RTL Scan Design for Skewed-Load At-Speed Test under Power Constraints

Logic Synthesis of Multilevel Circuits with Concurrent Error Detection

State assignment techniques short review

A New Decomposition of Boolean Functions

On Using Machine Learning for Logic BIST

X(1) X. X(k) DFF PI1 FF PI2 PI3 PI1 FF PI2 PI3

[ Circuit Under Test 1

Design of Framework for Logic Synthesis Engine

Static Compaction Techniques to Control Scan Vector Power Dissipation

Test Set Compaction Algorithms for Combinational Circuits

Formal Verification using Probabilistic Techniques

File Formats. Appendix A. A.1 Benchmarks. A.2 ESPRESSO Format

Built-In Self-Test for Programmable I/O Buffers in FPGAs and SoCs

FlowMap: An Optimal Technology Mapping Algorithm for Delay Optimization in Lookup-Table Based FPGA Designs

Very Large Scale Integration (VLSI)

REDI: An Efficient Fault Oriented Procedure to Identify Redundant Faults in Combinational Logic Circuits *

Saving Power by Mapping Finite-State Machines into Embedded Memory Blocks in FPGAs

A Boolean Paradigm in Multi-Valued Logic Synthesis

An Algorithm for the Construction of Decision Diagram by Eliminating, Merging and Rearranging the Input Cube Set

WITH integrated circuits, especially system-on-chip

Efficient Computation of Canonical Form for Boolean Matching in Large Libraries

Redundant States in Sequential Circuits

Functional extension of structural logic optimization techniques

SEPP: a New Compact Three-Level Logic Form

AN EFFICIENT DESIGN OF VLSI ARCHITECTURE FOR FAULT DETECTION USING ORTHOGONAL LATIN SQUARES (OLS) CODES

An Efficient Test Relaxation Technique for Synchronous Sequential Circuits

Minimization of Multiple-Valued Functions in Post Algebra

7 DESIGN FOR TESTABILITY II: FROM HIGH LEVEL PERSPECTIVE

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Flexible Two-Level Boolean Minimizer BOOM-II and Its Applications

Efficient Test Compaction for Combinational Circuits Based on Fault Detection Count-Directed Clustering

Sequential Circuit Testing 3

VLSI Testing. Fault Simulation. Virendra Singh. Indian Institute of Science Bangalore

On Broad-Side Delay Test

Field Programmable Gate Arrays

1488 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 16, NO. 12, DECEMBER 1997

12. Use of Test Generation Algorithms and Emulation

Low Cost Convolutional Code Based Concurrent Error Detection in FSMs

Reducing Power Dissipation During Test Using Scan Chain Disable

A Fault Model for VHDL Descriptions at the Register Transfer Level *

A Universal Test Pattern Generator for DDR SDRAM *

Nanometer technologies enable higher-frequency designs

ALTERING A PSEUDO-RANDOM BIT SEQUENCE FOR SCAN-BASED BIST

CHAPTER 1 INTRODUCTION

On Test Generation by Input Cube Avoidance

Signed Binary Addition Circuitry with Inherent Even Parity Outputs

Beyond the Combinatorial Limit in Depth Minimization for LUT-Based FPGA Designs

SOFTWARE FOR THE MINIMIZATION OF THE COMBINATIONAL LOGIC FUNCTIONS

CONTEST : A CONCURRENT TEST GENERATOR FOR SEQUENTIAL CIRCUITS

Advanced Digital Logic Design EECS 303

Michel Heydemann Alain Plaignaud Daniel Dure. EUROPEAN SILICON STRUCTURES Grande Rue SEVRES - FRANCE tel : (33-1)

Testing Digital Systems I

Software for The Minimization of The Combinational Logic Functions

Eliminating False Loops Caused by Sharing in Control Path

Scan Chain Operation for Stuck at Test

On the Relation between SAT and BDDs for Equivalence Checking

How Much Logic Should Go in an FPGA Logic Block?

At-Speed Scan Test with Low Switching Activity

Comparison of Decision Diagrams for Multiple-Output Logic Functions

THIS paper describes a new algorithm for performance

Delay Estimation for Technology Independent Synthesis

ARITHMETIC operations based on residue number systems

Department of Electrical and Computer Engineering University of Wisconsin Madison. Fall Midterm Examination CLOSED BOOK

ECE 595Z Digital Systems Design Automation

Advanced VLSI Design Prof. Virendra K. Singh Department of Electrical Engineering Indian Institute of Technology Bombay

A matching of maximum cardinality is called a maximum matching. ANn s/2

* 1: Semiconductor Division, FUJITSU Limited, Kawasaki Japan

THE TRANSITIVE REDUCTION OF A DIRECTED GRAPH*

Efficiently Utilizing ATE Vector Repeat for Compression by Scan Vector Decomposition

Fault-Tolerant Computing

Testing Embedded Cores Using Partial Isolation Rings

DUE to the high computational complexity and real-time

International Journal of Digital Application & Contemporary research Website: (Volume 1, Issue 7, February 2013)

Testability Analysis and Improvement from VHDL Behavioral Specifications

COE 561 Digital System Design & Synthesis Introduction

PROOFS Fault Simulation Algorithm

An Efficient Method for Multiple Fault Diagnosis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

Bit-Fixing in Pseudorandom Sequences for Scan BIST

Reduced Delay BCD Adder

At-Speed On-Chip Diagnosis of Board-Level Interconnect Faults

A Parametric Design of a Built-in Self-Test FIFO Embedded Memory

Fast Controllers for Data Dominated Applications

Combinational Test Generation for Acyclic Sequential Circuits using a Balanced ATPG Model*

VERY large scale integration (VLSI) design for power

Faults. Abstract. 1. Introduction. * Nur A. Touba is now with the Department of Electrical and Computer Engineering, University of Texas, Austin, TX

Software Implementation of Break-Up Algorithm for Logic Minimization

Transcription:

TEST FUNCTION SPECIFICATION IN SYNTHESIS Vishwani D. Agrawal and Kwang-Ting Cbeng AT&T Bell Laboratories Murray Hill, New Jersey 07974 ABSTRACT - We present a new synthesis for testability method in which a test function is incorporated into the state diagram of the finite state machine (FSM). The test function is specified as a FSM with the same number of state variables as the given object machine. The state graph of the test machine is so defined that each state is uniquely set and observed by an input sequence no longer than Fogknl, where n is the number of states and the integer & is a design parameter. The state transition graph of the test machine is superimposed on the state graph of the object function such that a minimal number of new transitions are added. State assignment, logic minimization and technology mapping are then carried out for the combined graph. By design, the embedded test machine is fully testable. Also, since the test machine can control all memory elements, the circuit is effectively tested by a combinational circuit test generator. Scan register is shown to be a special case in this methodology. 1. INTRODUCTION There are two ways of designing circuits for testability. In one method, the designer follows certain ad hoc rules of testability. Since these rules are based on experience, one can hope that the final product will be testable although no guarantee is given. In the second method, after the design is completed, the circuit structure is augmented for testability. This added hardware tunes the circuit for a guaranteed test generation by some given method. For example, in scan design, the added hardware guarantees the use of a combinational circuit test generator. In some cases, however, adding hardware to an already designed circuit is considered undesirable. This may be particularly Que when the design 4as undergone optimization. The current state of the art in synthesis for logic and timing optimization appears to be more advanced than that in synthesis for testability [l]. In this paper, we propose a new method of synthesis for testability. Instead of adding test hardware after synthesis, we add the test function before synthesis. Our test function guarantees test generation by a specific method and the test hardware undergoes the same type of optimization as the functional hardware. The concepts presented in this paper are quite general. However, the specific examples of the test function assume the use of a combinational circuit test generator. The present application is related to the synthesis of finite state machines (FSM). 2. TESTING OF FINITE STATE MACHINES Testing of rite state machines was addressed by Hennie [2] who devised checking experiments. In a checking experiment, an input sequence is applied to the machine such that the output uniquely distinguishes the machine from all other machines having the same number of inputs and outputs, and same or fewer states. Hennie s procedure of constructing an input sequence for checking experiment is only practical when a distinguishing sequence exists. For a n-state machine, its distinguishing sequence (DS) will produce n different outputs depending upon the initial state. Kohavi and Lavallee [3] identified the existence of a distinguishing sequence of bounded length as the requirement for diagnosability. Their design for testability added an extra output to make the DS shorter. Fujiwara et a1 [4] further defied an eusily testable n-state machine as one having synchronizing and transfer sequences of length log2n. A synchronizing sequence is defined as an input sequence whose application is guaranteed to leave the FSM in a certain fmal state regardless of its initial state. A trantfer sequence is an input sequence that changes the state from a given initial state to a given final state. For most practical FSMs, the procedures just mentioned tend to produce long sequences. Though useful in simulationbased design verification, such tests are not commonly used in production testing. The testing problem, thus, relates to finding a set of tests for modeled (usually, stuck type) faults. A commonly used design for testability is the scan method that converts the FSM testing problem to that of combinational logic testing [5]. In the scan method, as well as in many other methods, the circuit is modified after the design is completed. With tool-based synthesis, the advantage of logic optimization may be lost in such post-design modification. 3. A TESTABLE ARCHITECTURE Figure 1 shows a high-level view of our proposed architecture [6]. It is recognized that the FSM M1, which is to be synthesized, may not be testable. We will call M1 the object machine. Testability, in the present context, refers to the ability to generate tests. The machine is realized with memory elements and combinational logic. For the given object machine, we specify a test machine, M2. The test machine has the same number of memory elements as the object machine. The physical memory elements, shown as flip-flops in Fig. 1, are shared between the two machines. In an actual implementation of this concept, the logic, inputs and outputs of these machines may also be either partially or fully shared. The test machine performs only two functions: (1) it can be set to all of its states by @ 1990 IEEE 0738-1 00X1901000610235 $1.OO 27th ACMllEEE Design Automation Conference@ 235

s FLIP-FLOPS Fig. 1 A testable design for finite state machines. short predetermined sequences, and (2) its state can be observed at the output by applying a short input sequence. As discussed in the next section, these functions can easily be specified through a state diagram. The fist step in synthesis is to merge the state diagrams of M1 and M2. This is done so that a minimum number of transitions are added to M1. If M1 is fully or almost fully specified, such a merging may not be possible. In that case a test input can be added to the machine. Adding one input doubles the number of possible edges. The combined state diagram is then used for state assignment, logic minimization, etc., to implement the function. The implemented FSM is now capable of performing both object and test functions. For testing, first the test function is executed to verify that all state variables (flip-flops) can be set and observed. The execution of this function will detect most faults in the flip-flops and some faults in the combinational logic that are common to both machines. For the remaining faults, we use a combinational circuit test generator to determine the required inputs and states. Also, a fault may be detected either at a primary output or at a state variable. These combinational tests are applied to the machine in much the same way as in a scan circuit. In place of scan-in and scan-out, the predetermined sequences of M2 are used. As may be noticed, scan is a special case of our architecture where M2 is a shift register and the test mode input is the extra input added for merging the two state diagrams. Such presynthesis implementation of the test logic will allow the use of the functional logic for the test function where possible. In general, for a given object function, a shift register may not be the best choice. 4. A DESIGN FOR THE TEST MACHINE 1 1 Suppose the object machine has n states. Then the test machine must use m = logzn state variables. We, therefore, specify the function of the test machine with N = 2" states, denoted as T1. T2,..., TN. We require that, starting in any arbitrary state, the machine be brought to any given state by an input sequence of length log,n, where k is a design parameter. Also, such an input sequence should produce an unique output sequence depending only upon the initial state. It may be necessary to select k such that logtn is an integer. We select k distinctly different inputs, pl. p2,.. *, pk. and divide the N states of the test machine into k equal groups. G1. G2,..., Gk. The state transitions are specified as follows: (1) Each state has k outgoing edges labeled pl, p2, etc., such that the edge labeled pi terminates on a state belonging to the group Gi. Between any pair of states, only one edge is permitted in either direction. Thus, there can be at most two edges provided they are in opposite directions. Self-loops are permitted in the state diagram. (2) Each state has exactly k incident edges. Clearly, all edges incident on state Tj will be labeled pi if Tj belongs to group Gi. These conditions, while necessary, may not be sufficient [7]. The following procedure. however, will always result in a complete specification of the test machine. A Method for Specifying State Tramitions of Test Machine. We will illustrate the procedure with an example of 16 states, T1 through T16. Four inputs (k = 4). pl, p2. p3, and p4, are used. As shown in Fig. 2, states are arranged in two rows. Each row contains all states. The top row indicates the presenf state and the bottom row contains the nexf states. A transition is represented by a directed edge from a state in the top row to some state in the bottom row. The edge label (not shown in Fig. 2 for clarity) shows the input and output. This diagram contains the same information as a conventional state diagram. In our case, however, any number of transitions can be represented by stacking up copies of the diagram. Figure 2a shows all edges with label pl. We draw edges from the fust k states in the top row to the first state in the bottom row. Next, the states numbered from k + 1 to 2k are connected to the second state in the bottom row. By the time this process is carried out for all states in the top row, all transitions to the first k states of the bottom row have been specified. These k states form the group G1 that is the target group for the inputpl. A similar procedure is carried out for the transitions of p2 and other inputs. The target states for p2 are the states numbered k+ 1 to 2k in the bottom row. These form the group G2. In Fig. 2b, p2 transitions are shown by dashed lines to distinguish from the pl transitions. By the time this procedure is completed for all inputs up to pk. all target groups have been covered and the state diagram is complete. The result for the 16-state example with k = 4 is shown in Fig. 2c. Arrows and edge labels in this diagram have been suppressed for clarity. With the state diagram specified above, an input sequence of length log,n will take the machine to a specific state. For k inputs used in the state diagram, there are N such sequences, each carrying the machine to one distinct state. We can now specify the outputs for the test machine. Each of the k edges incident on a state must have different output labels. Suppose, we select k distinctly different output patterns and assign them to the edges of the test machine, such that (1) all edges originating at a state have identical output labels, and (2) all edges incident on the same state have different output labels. It can be verified that if the machine is in some initial state and any input sequence of length log,n is applied, then there are N possible output sequences, each associated with a different initial state. Thus, the observed output sequence will uniquely identify the initial state. In general, however, more than k output patterns can be used as long as they satisfy certain constrains. We give an example below. 236

V V o T1 T2 T3 T4 TS T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 - T1 T2 T3 T4 TS T6 T7 T8 T9 T10 T11 T12 T13 T14 T1S T16 +G1 (a) State transfers for input pl. T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 T14 T1S T16 - T1 T2 T3 T4 TS T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 +Gl + G2 ----t (b) State transfers for inputs pl and p2 (dashed). T1 T2 T3 T4 T5 T6 T7 'l-8 T9 T10 T11 T12 T13 T14 T15 T16 T1 T2 T3 T4 TS T6 T7 T8 T9 T10 T11 T12 T13 T14 T15 T16 +Gl< +G2- +G3< +G4- (c) All state transfers. Fig. 2 State transitions for test machine, N = 16, k = 4. Notice that the value of k can be anywhere between 2 and N. However, the maximum value is bounded by the total number of possible input vectors. A larger value of k will require shorter sequences for setting and observing states. On the other hand, it will require a larger number of edges to be specified in the state diagram of the machine. With the addition of these edges to the object machine, the resulting design may need more hardware. Thus, a smaller value of k should be preferred. In the following example, we use k = 2. Figure 3 shows an example of a four-state test machine. Since we have chosen k = 2. a series of two transitions will illustrate the complete operation. States T1 and T2 form the group G1. T3 and T4 belong to group G2. The two input patterns are pl and p2. Suppose we use outputs ql through q8 that satisfy the following constraints: ql # q2 (1) q3 # q4 (2) q5 f q6 (3) q7 f q8 (4) It can be verified from Fig. 3 that no two initial states will produce the same output sequence when a sequence of two input pattems is applied. For example, if we apply the sequence p2p2 to reach the state T4. An initial state T1 will cause q5q7 output while the initial state T2 will cause the output to be q6q7. Since q5 # q6, these two output sequences will be different. Notice that all four inequalities (1) through (4) can be simultaneously satisfied by choosing ql = q3 = q5 = q7. q2 = q4 = q6 = q8 and ql # q2. However, the greater flexibility allowed by eight patterns is desirable when the test machine is superimposed on the object machine. STATE AFI'ER STATE AFTER SECOND INPUT- 'f1 T2 T3 T4.. Fig. 3 Sequences for a 4-state test machine. The operation of this machine is given in Table 1. The state T1 has the synchronizing sequence p lp 1. An application of this input sequence sets the machine in the state T1 237

irrespective of the initial state. All four synchronizing sequences are also distinguishing sequences as the output response uniquely identifies the initial state. This is because of the output constmints (1) through (4). Table 1 - Sequences for four-state test machine. Output seq. for initial state Input seq. Final state T1 T2 T3 T4 I 00/0001 The state diagram of the four-state test machine is given in Fig. 4. All states, inputs and outputs are shown symbolically. Their specific binary codes are only determined after this machine has been merged with the object machine. Interestingly, for specific encoding only, this machine can be implemented as a shift register. For other encodings. it may produce different structures. Ollllll (P%@ 10/1110 Fig. 5 Object machine with embedded test machine. Fig. 4 Four-state test machine. In all examples given in this paper, we manually merged the state diagrams of the test machine and object machine. Graph embedding is a complex problem whose solution requires heuristics. For a good implementation, we seek a solution that adds the smallest number of edges to the object machine. If the two machines must have conflicting labels on the same edge, an input line is added. Finding good algorithms is a problem for further research. 5. A SIMPLE EXAMPLE To illustrate our method, we consider a four-state machine. The function of our object machine is shown in Fig. 5 by solid edges. The states are SI, S2, S3, and S4. We manually merged the four-state test machine of Fig. 4 with the object machine using the criterion that we should add a minimum number of edges to the object machine. If we assign T1 to S2, T2 to S4, T3 to SI, and T4 to S3, and set pl = 00, p2 = 01. ql = 0010. etc., we need to add only two edges as shown in Fig. 5 by dashed lines. Labels corresponding to the test machine are identified in bold-face. The composite machine of Fig. 5 was synthesized using a state assignment program, MUSTANG [8], logic minimization programs, ESPRESSO [9] and MIS [lo]. and a standard cell library mapping program, DAGON [Ill. The state assignment used was SI = 00, S2 = 10, S3 = 01 and S4 = 11. The synthesized circuit is shown in Fig. 6. It uses 29 gates and two flip-flops. The standard cell design was sized at 93 grids. Operation of the test machine was tested by an input sequence, 00, 01, 01, 00. 01, 01. This sequence sets each flipflop to 0 and 1, and observes their states at the primary outputs. The gate-level coverage of single stuck faults by this sequence was 55%. The combinational part of the circuit was isolated and test for the remaining faults were generated by a combinational circuit test generator. The test generator produced 9 vectors specifying inputs Il, I2 and state variables V1. V2. Each test was preceded by two input vectors to set the state. These two vectors also distinguished the states of the previous test to the output. Thus, a set of 35 vectors detected all faults. For comparison, the object machine was also synthesized without the dashed edges in Fig. 5. The result is shown in Fig. 7. This circuit contains 33 gates and two flip-flops. An additional CLEAR input and four gates for synchronous initialization are included. The standard cell design occupied 97 grids. Now, the tests must be generated either manually or by a sequential circuit test generator. Both methods require excessive effort. A conversion to scan design, on the other hand, takes at least 10 extra grids and additional inputs and outputs although the CLEAR signal and the four associated gates can be 238

I1 I I I I I I I I-- r h Fig. 6 A circuit synthesized from the state diagram of Fig. 5. eliminated. The test generation is then similar to the testable design just described. 6. FSM BENCHMARK EXAMPLES In Table 2, we summarize the design of six FSMs from the logic synthesis benchmark set [ 121. The synthesis procedure was similar to that described in the previous section. In all cases. one input signal was added to make the test function embedding possible. Testability overhead, computed from the transistor count, ranges from 5% to 22%. On an average, we observe lower overheads for larger circuits. The observed lower overhead is not surprising since in the case of large circuits the synthesis may be able to reuse parts of the object function logic for the test function. In both cases. that is for M1 implemented alone and for Ml+M2, the tests were generated on a SUN4/260 workstation using sequential circuit test generator [13]. Tests for Ml+M2 consist of two parts. In the first part, to test the operation of M2, each flip flop is successively set to 1 and 0 and its states are observed. These vectors are directly obtained from the test machine transitions in state diagram. The vectors are then run through a fault simulation of the entire circuit. For example, the 12 vectors for testing flip-flops of bbura covered 24.2% faults in the entire circuit. For the remaining faults, combinational tests were generated in 1.4 seconds on SUN4/260. When these tests were converted into sequences and the 12 M2 vectors were added, the total vector count for this circuit became 156. Most circuits, in Ml+M2 implementation, required one or two orders of magnitude less time for test generation as is typical of combinational circuits. Another trend is clear from Table 2. The achieved fault coverage for M1 starts dropping as the circuits become larger. This is typical of sequential circuits. Similar to scan design, Ml+M2 require more test vectors. Fig. 7 FSM of Fig. 5 realized without testability additions. In some cases, as for the sand circuit, the Ml+M2 design tumed out to be a scan register. The particular test function we have used can be implemented as one or more scan registers and we should synthesize it that way if it is most economical. We may, therefore, not require more hardware than the scan design. In one example (i.e., bbara circuit), however, we found the overhead (22%) to be higher than scan. This could be due to the specific heuristics used in state assignment and in logic minimization. We are investigating other heuristics. 7. CONCLUSION In general, the specification of a typical finite state machine may contain unspecified (don t care) transitions and inputs. Such incompleteness adds flexibility commonly used for optimization in synthesis. Our method of designing testable machines also makes use of this flexibility. Of course, the final size will depend on how well the synthesis algorithms perform. However, the design should not be worse than the one in which testability hardware is added after synthesis. Our method which, like scan, also relies on a combinational circuit test generator is a generalization of scan. The actual design of the test machine may or may not be a scan register depending upon the object machine specification. In some cases, as shown by our example, extra inputs and outputs may not be necessary. We would like to point out two possible directions for research. First, the concept of testable architecture, presented in Fig. 1, is quite general. We have illustrated one specific design of the test machine. Other possibilities should be explored. For example, M2 can be designed as a built-in self-test machine. Second, merging of the two state diagrams to produce an efficient final design is a challenging problem. 239

Circuit dk16 M1 Table 2 - Testable Circuit size (griddtransistors) M1+ Over- M2 head 193f270 225/328 22% 293~398 3291452 14% 4731662 512/722 9% 573/818 622/892 9% 895/1290 937/1356 5% 1062/1506 1195/1636 9% Tests for M1 Fault CPU Test COV. sec. len. 100.0% 46 133 99.6% 13 64 98.1% 672 270 98.7% 4570 276 98.1% 1652 329 96.4% 1848 316 Tests for Ml+M2 M2 tests Ml+M2 tests Test Fault Fault CPU Test len. cov. cov. sec. len. 12 24.2% 10090 1.4 156 9 31.5% 10090 2.0 132 12 22.2% 100% 4.7 316 15 25.4% 100% 9.9 445 15 29.1% 100% 13.2 510 15 10.2% 100% 23.3 735 REFERENCES A. J. de Geus. Logic Synthesis Speeds ASIC Design, IEEE Spectrum, Vol. 26, pp. 27-31, August 1989. F. C. Hennie, Fault Detecting Experiments for Sequential Circuits, Proc. 5th Annual Symp. on Switching Theory and Logical Design, Princeton University, pp. 95-110, November 1964. Z. Kohavi and P. Lavallee, Design of Sequential Machines with Fault-Detection Capabilities, IEEE Trans. Electronic Computers, Vol. EC-16, pp. 473484, August 1967. H. Fujiwara, Y. Nagao, T Sasao, and K. Kinoshita, Easily Testable Sequential Machines with Extra Inputs, IEEE Trans. Comput., Vol. C-24, pp. 821-826. August 1975. V. D. Agrawal, S. K. lain, and D. M. Singer, Automation in Design for Testability, Proc. Custom Integrated Circuits Conf., Rochester, NY, pp. 159-163. May 1984. V. D. Agrawal and K. -T. Cheng, An Architecture for Synthesis of Testable Finite State Machines, Proc. European Design Automation Conference, Glasgow, U.K., March 1990. A. I. Nichols, Minimal Shift-Register Realizations of Sequential Machines. IEEE Trans. Electronic Comput., Vol. EC-14, pp. 688-700, October 1965. S. Devadas, H. -K. T. Ma, A. R. Newton, and A. Sangiovanni-Vincentelli, MUSTANG: State Assignment of Finite State Machines Targeting Multi-Level Logic Implementations, IEEE Trans. CAD, Vol. CAD-7, pp. 1290-1300, December 1988. R. K. Brayton, G. D. Hachtel, C. McMullen, and A. Sangiovanni-Vincentelli, hgic Minimization Algorithm for VLSI Synthesis, Kluwer Academic Publishers, Boston, MA, 1984. R. K. Brayton, R. Rudell. A. Sangiovanni-Vincentelli, and A. Wang, MIS: A Multiple Level Logic Optimization System, IEEE Trans. CAD, Vol. CAD-6, pp. 1062-1081, November 1987. K. Keutzer. DAGON: Technology Binding and Local Optimization by DAG Matching. Proc. 24th Design Automation Conf., pp. 341-347, June 1987. R. Lisanke, Finite-State Machine Benchmark Set, MCNC hgic Synthesis Workshop, September 1987. W. -T. Cheng and T. I. Chakraborty, Gentest, An Automatic Test-Generation System for Sequential Circuits, Computer. Vol. 22, pp. 4349, April 1989. 240