Issue No. 05 - September/October (2004 vol. 21)
ISSN: 0740-7475
pp: 448-449
Scott Davidson , Sun Microsystems
Digital Logic Testing and Simulation, , 2nd edition, by Alexander Miczo (Wiley-Interscience, 2003, ISBN 0-471-43995-9, 696 pp., $115). Books on testing attract several audiences. Students require a wide overview, including extensive theoretical material, so their knowledge will remain relevant when applied in an engineering job. Test engineers require background on the principles of ATE, knowledge of expected defects, and an overview of DFT so they understand the parts being thrown at them. DFT engineers and designers seek information on DFT methods to help them choose the best for their designs. Finally, those implementing DFT tools need both a practical and theoretical knowledge of DFT methodology. All of these audiences would benefit from exposure to all areas of test, but it's important to understand the major focus of a book. Digital Logic Testing and Simulation, 2nd edition, by Alexander Miczo (Wiley-Interscience, 2003, ISBN 0-471-43995-9, 696 pp.,$115) seems targeted to the last audience mentioned. It is very strong on test generation and fault simulation algorithms, and much weaker on ATE. Miczo was a major player in ExperTest, a startup attempting to develop a behavioral-level automatic test-pattern generator. This book's greatest strength is its detailed description of the practical issues in constructing test generation and other DFT tools. If you're new to this area, you can save yourself a lot of time and aggravation by paying attention to the issues and problems outlined in this book—they are the hurdles you'll encounter in real designs. An excellent summary at the end of each chapter tells readers which techniques are really of interest.
The book's greatest weakness is that it is the second edition of a book first published in 1986. Although the author has added a lot of new material, he hasn't removed enough. For instance, there remains a focus on area overhead, which isn't nearly as important in today's deep-submicron, pad-limited environment as it was in 1986. I think there is a danger of confusing the reader on which issues are important today as opposed to 18 years ago.
After a motivational chapter on the importance of test, the book begins and ends with non-test-related material—simulation and design verification. The simulation chapter offers a brief but useful summary of logic design, races, hazards, and other material in the design realm required for testing. The design verification section of the final chapter, which confusingly also includes a section on behavioral automatic test generation, is a good, concise overview of current methods.
Following the simulation chapter, there are three chapters on fault simulation and combinational and sequential ATPG. The combinational ATPG chapter is strong, giving the major algorithms. The sequential ATPG chapter, however, ends its survey just before the explosion in sequential ATPG work around 1990—so it doesn't describe algorithms used in commercially available, sequential automatic test pattern generators marketed in the 1990s.
The next chapter, on ATE, includes sections on both IC and board test. Although there is a section on IEEE 1450, the Standard Test Interface Language (STIL), much of the rest of the chapter is out of date. For example, the author assumes that boards include small large-scale integration (LSI) devices and can be fault simulated, when, in fact, boards today have microprocessors and million-gate ASICs that are too complex for today's tools to handle.
The "Developing a Test Strategy" chapter covers fault models, defect types, and ways of using fault simulators and ATPG to develop a test. Much of it seems to assume no DFT. The section on delay faults mentions only path delay faults, not the far more commonly used transition fault. This discussion could have used an update—for instance, the author states that it's possible to link automatic test pattern generators and fault simulators, which was true in 1986. Today they are always linked.
Next, there are two chapters on DFT. The first chapter recapitulates the history of test, describing ad hoc testability techniques and controllability and observability measures before discussing scan. The author also describes boundary scan, conflating IC and board test. He mentions partial scan as if it were a going concern. The next chapter covers BIST, but only the foundation work on self-testing using multiple-input signature register (MISR) and parallel scan chains (Stumps). The reader would never know from reading this book that commercial BIST tools have been in the market for quite some time.
Memory test has its own chapter, one that is more up-to-date than most, with good descriptions of the memory defects of concern, memory test algorithms, and repairable memories. Although it's necessarily incomplete because of space limitations, this chapter gives a good overview of the area. The IDDQ chapter, unfortunately, is badly out-of-date; it gives IDDQ design rules and vector selection methods dating from the time when leakage currents were actually very low. There is no mention of the newly invented methods that deal with the high leakages in today's deep-submicron designs, such as delta IDDQ, current ratios, or statistical postprocessing techniques.
In the middle of the final chapter on design verification is a long section on behavioral ATPG. Miczo describes the ExperTest ATPG, Test Design Xpert (TDX), in some detail. Perhaps a better overview of TDX might have been useful. But what more than outweighs this negative are the detailed descriptions of the practical problems the company encountered, and their solutions, which many other texts lack. Anyone wishing to work on this problem, which remains unsolved, should study these sections closely.
There are a few subjects missing from this book. There is no mention at all of mixed-signal test or the testing of high-speed I/Os. The book also doesn't give nearly enough weight to using DFT for product bring-up, an item of very high payback.
Conclusion
If you are implementing an automatic test pattern generator, or want to know why they work the way they do, this is the book for you. A lot of hard-won practical knowledge is included here. However, the reader should check the references to see which techniques are recent and which come from the distant past (18 years ago, in this case). This is not to say that a historical view is bad; perhaps this book can keep someone from reinventing an old test technique, which would be a good thing indeed.