With the increase in circuit complexity, research in testability and fault-tolerance of circuits has received renewed interest. This is documented by the two-volume survey of which the paper under review is the fifth chapter.
This paper focuses on the application of coding techniques to render circuits fault-tolerant, self-checking, and even fail-safe. The major sections and their contents are
(1) Introduction: A general summary.
(2) Error detecting codes and their applications: A brief review of some types of error detecting codes, evaluation of multiple-error detectability for two types of codes, and examples using parity prediction.
(3) Self-checking circuits: A formal definition of fault-security, self-testing, and self-checking, and examples of self-checking checkers.
(4) Fault-tolerance in combinational circuits: Adders with parity check matrix and fault masking by retry in fault-monotonic circuits.
(5) Fault-tolerance in sequential circuits: State realization of sequential machines and majority decoding of states, fault-tolerant counters, and excitations of J-K flip-flops.
(6) Fault-tolerant asynchronous sequential circuits: State assignment and race avoidance, state separation, and fault-tolerant design.
(7) Fail-safe sequential circuits: Delay and flip-flop models.
Before I started reading this paper--or rather the complete book to which it belongs--I expected to find an up-to-date and well-structured presentation of both the theoretical and practical aspects of this area; moreover, I expected to find clear indications of what the major open problems are. Given these expectations, the paper was disappointing at the first reading. It does not present a clearly structured theory. The notation and the mathematics are not as elegant as I would like them to be. Many of the definitions and results are somewhat ad hoc. There are hardly any true proofs, only a very large number of examples. Open problems are rarely mentioned. However, despite these shortcomings the paper serves an important purpose and deserves careful study. It is a very useful and up-to-date introduction to the area, which could serve well as the basis for part of a course or be given to students as introductory reading material. In fact, the detailed examples mentioned before, and a set of well-selected problems, turn out to be very helpful.