Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Logic testing and design for testability
Fujiwara H., MIT Press, Cambridge, MA, 1986. Type: Book (9789780262060967)
Date Reviewed: Mar 1 1988

This text provides an excellent introduction to the problems of testing logic circuits. Written so as to be self-contained, it is usable both as a self-study guide for professionals and as a textbook for undergraduate and beginning graduate classes. As discussed below, I am very pleased by the book. Indeed, the book’s only flaw is the lack of depth in its treatment of several topics, most particularly its statistical approaches; and this flaw is just the consequence of the author’s evident intent to make the book readable by all.

The text is divided into the two parts to which the title alludes: logic testing, which is treated in the first 130 pages, and design for testability, which is the subject of the following 140 pages. Chapter 1 offers a review of logic design, fault modeling, and testing problems. Chapter 2 discusses test generation, mostly for combinational circuits (only one-fifth of the chapter is devoted to test generation for sequential circuits). All of the expected topics are addressed: Boolean difference, path sensitization, the D-algorithm, and decision trees, to name a few. Chapter 3 tackles fault simulation, that is, methods for the computation of fault propagation through circuits. Since there are really no particularly good methods for solving this problem (other than by propagating long fault lists from one node to the next in some orderly manner), the chapter is somewhat less interesting than others in the text; however the author carefully points out the essential intractability of the problem and discusses specialized hardware designed to alleviate some of the computational problems. Chapter 4 is a pleasant surprise indeed. Entitled The Complexity of Testing, it introduces the reader to the rudiments of complexity theory and goes on to show that the two fundamental problems in testing, namely fault detection and test generation, are both NP-hard, that is, almost certainly intractable. The author goes on to examine the complexity of other more elementary tasks or of testing problems restricted to very simple circuits (such as linear functions). Altogether, this chapter is the jewel in the book; it is high time for engineers everywhere to learn about this most important of all contributions made by computer scientists, that is, the complexity analysis of problems. The author does a good job of presenting some basic results (the classes P and NP and Cook’s theorem) and the consequences for testing. My only complaint is that the author did not place this chapter immediately after the introduction so as to be able to draw on it in each and every succeeding chapter; as it is, the reader is left to draw the proper inferences concerning the specific problems discussed earlier, in Chapters 2 and 3, as well as those introduced later, in Chapters 6 through 9.

The second part of the text again starts with an introductory chapter. Chapter 5 discusses testability, observability and controllability, measures of cost, problems introduced by memory, and one-shot designs versus structured design methodology. Unfortunately, no complexity analysis is offered. Chapter 6 addresses the cost of test application, describing methods proposed for minimizing the number of test patterns required for combinational circuits. The use of XOR gates and of dual-mode logic is treated well, and the minimally testable design procedure of Saluja and Reddy is described in some detail. This and the next chapter suffer somewhat from addressing extreme viewpoints (and viewpoints limited to combinational circuits); minimizing the cost of test application can be carried to the extreme of dual-mode design, in which only two test patterns will be needed. And in Chapter 7, which discusses the cost of test generation, only methods that completely eliminate the need for test generation (by designing universally testable circuits) are considered. Neither approach is really practical, as the author points out. For the student, these two chapters only provide useful boundaries; for the practitioner, they are of doubtful usefulness altogether, especially as we are only left with 60 or so pages in which to discuss practical approaches. Chapter 8 finally considers sequential circuits and the special difficulties they present with respect to controllability and observability; shift-register designs (also known as scan designs) are discussed in fair detail. The final chapter addresses built-in testing, including signature analysis and scan analysis.

Overall, the book is well written, is easy to read, and uses good examples. However, except for the introduction of complexity theory, most of the treatment remains at an introductory level and the choice of topics is clearly guided by the observable volume of publications on and applications of given techniques rather than by the author’s discrimination. One could wish for more input from the author; even in an introductory text, there is a place for value judgments. These criticisms notwithstanding, Fujiwara’s book offers, in my opinion, the finest introduction to logic testing currently on the market. MIT Press did a good job of production. The typesetting, although basic, is pleasing; typos are few; and the book has a pleasant feel to it.

Reviewer:  B. M. E. Moret Review #: CR111020
Bookmark and Share
 
Testability (B.6.2 ... )
 
 
Microprogrammed Logic Arrays (B.1.1 ... )
 
 
Sequential Circuits (B.6.1 ... )
 
 
Test Generation (B.1.3 ... )
 
 
VLSI (Very Large Scale Integration) (B.7.1 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Testability": Date
Logic testing and design for testability
Fujiwara H., Massachusetts Institute of Technology, Cambridge, MA, 1985. Type: Book (9789780262060967)
Jul 1 1986

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy