Wiley
Wiley.com
Print this page Share

Digital Logic Testing and Simulation, 2nd Edition

ISBN: 978-0-471-43995-0
696 pages
July 2003
Digital Logic Testing and Simulation, 2nd Edition (0471439959) cover image
Your road map for meeting today's digital testing challenges

Today, digital logic devices are common in products that impact public safety, including applications in transportation and human implants. Accurate testing has become more critical to reliability, safety, and the bottom line. Yet, as digital systems become more ubiquitous and complex, the challenge of testing them has become more difficult. As one development group designing a RISC stated, "the work required to . . . test a chip of this size approached the amount of effort required to design it." A valued reference for nearly two decades, Digital Logic Testing and Simulation has been significantly revised and updated for designers and test engineers who must meet this challenge.

There is no single solution to the testing problem. Organized in an easy-to-follow, sequential format, this Second Edition familiarizes the reader with the many different strategies for testing and their applications, and assesses the strengths and weaknesses of the various approaches. The book reviews the building blocks of a successful testing strategy and guides the reader on choosing the best solution for a particular application. Digital Logic Testing and Simulation, Second Edition covers such key topics as:
* Binary Decision Diagrams (BDDs) and cycle-based simulation
* Tester architectures/Standard Test Interface Language (STIL)
* Practical algorithms written in a Hardware Design Language (HDL)
* Fault tolerance
* Behavioral Automatic Test Pattern Generation (ATPG)
* The development of the Test Design Expert (TDX), the many obstacles encountered and lessons learned in creating this novel testing approach


Up-to-date and comprehensive, Digital Logic Testing and Simulation is an important resource for anyone charged with pinpointing faulty products and assuring quality, safety, and profitability.
See More
Preface.

1 Introduction.

1.1 Introduction.

1.2 Quality.

1.3 The Test.

1.4 The Design Process.

1.5 Design Automation.

1.6 Estimating Yield.

1.7 Measuring Test Effectiveness.

1.8 The Economics of Test.

1.9 Case Studies.

1.9.1 The Effectiveness of Fault Simulation.

1.9.2 Evaluating Test Decisions.

1.10 Summary.

Problems.

References.

2 Simulation.

2.1 Introduction.

2.2 Background.

2.3 The Simulation Hierarchy.

2.4 The Logic Symbols.

2.5 Sequential Circuit Behavior.

2.6 The Compiled Simulator.

2.6.1 Ternary Simulation.

2.6.2 Sequential Circuit Simulation.

2.6.3 Timing Considerations.

2.6.4 Hazards.

2.6.5 Hazard Detection.

2.7 Event-Driven Simulation.

2.7.1 Zero-Delay Simulation.

2.7.2 Unit-Delay Simulation.

2.7.3 Nominal-Delay Simulation.

2.8 Multiple-Valued Simulation.

2.9 Implementing the Nominal-Delay Simulator.

2.9.1 The Scheduler.

2.9.2 The Descriptor Cell.

2.9.3 Evaluation Techniques.

2.9.4 Race Detection in Nominal-Delay Simulation.

2.9.5 Min–Max Timing.

2.10 Switch-Level Simulation.

2.11 Binary Decision Diagrams.

2.11.1 Introduction.

2.11.2 The Reduce Operation.

2.11.3 The Apply Operation.

2.12 Cycle Simulation.

2.13 Timing Verification.

2.13.1 Path Enumeration.

2.13.2 Block-Oriented Analysis.

2.14 Summary.

Problems.

References.

3 Fault Simulation.

3.1 Introduction.

3.2 Approaches to Testing.

3.3 Analysis of a Faulted Circuit.

3.3.1 Analysis at the Component Level.

3.3.2 Gate-Level Symbols.

3.3.3 Analysis at the Gate Level.

3.4 The Stuck-At Fault Model.

3.4.1 The AND Gate Fault Model.

3.4.2 The OR Gate Fault Model.

3.4.3 The Inverter Fault Model.

3.4.4 The Tri-State Fault Model.

3.4.5 Fault Equivalence and Dominance.

3.5 The Fault Simulator: An Overview.

3.6 Parallel Fault Processing.

3.6.1 Parallel Fault Simulation.

3.6.2 Performance Enhancements.

3.6.3 Parallel Pattern Single Fault Propagation.

3.7 Concurrent Fault Simulation.

3.7.1 An Example of Concurrent Simulation.

3.7.2 The Concurrent Fault Simulation Algorithm.

3.7.3 Concurrent Fault Simulation: Further Considerations.

3.8 Delay Fault Simulation.

3.9 Differential Fault Simulation.

3.10 Deductive Fault Simulation.

3.11 Statistical Fault Analysis.

3.12 Fault Simulation Performance.

3.13 Summary.

Problems.

References.

4 Automatic Test Pattern Generation.

4.1 Introduction.

4.2 The Sensitized Path.

4.2.1 The Sensitized Path: An Example.

4.2.2 Analysis of the Sensitized Path Method.

4.3 The D-Algorithm.

4.3.1 The D-Algorithm: An Analysis.

4.3.2 The Primitive D-Cubes of Failure.

4.3.3 Propagation D-Cubes.

4.3.4 Justification and Implication.

4.3.5 The D-Intersection.

4.4 Testdetect.

4.5 The Subscripted D-Algorithm.

4.6 PODEM.

4.7 FAN.

4.8 Socrates.

4.9 The Critical Path.

4.10 Critical Path Tracing.

4.11 Boolean Differences.

4.12 Boolean Satisfiability.

4.13 Using BDDs for ATPG.

4.13.1 The BDD XOR Operation.

4.13.2 Faulting the BDD Graph.

4.14 Summary.

Problems.

References.

5 Sequential Logic Test.

5.1 Introduction.

5.2 Test Problems Caused by Sequential Logic.

5.2.1 The Effects of Memory.

5.2.2 Timing Considerations.

5.3 Sequential Test Methods.

5.3.1 Seshu’s Heuristics.

5.3.2 The Iterative Test Generator.

5.3.3 The 9-Value ITG.

5.3.4 The Critical Path.

5.3.5 Extended Backtrace.

5.3.6 Sequential Path Sensitization.

5.4 Sequential Logic Test Complexity.

5.4.1 Acyclic Sequential Circuits.

5.4.2 The Balanced Acyclic Circuit.

5.4.3 The General Sequential Circuit.

5.5 Experiments with Sequential Machines.

5.6 A Theoretical Limit on Sequential Testability.

5.7 Summary.

Problems.

References.

6 Automatic Test Equipment.

6.1 Introduction.

6.2 Basic Tester Architectures.

6.2.1 The Static Tester.

6.2.2 The Dynamic Tester.

6.3 The Standard Test Interface Language.

6.4 Using the Tester.

6.5 The Electron Beam Probe.

6.6 Manufacturing Test.

6.7 Developing a Board Test Strategy.

6.8 The In-Circuit Tester.

6.9 The PCB Tester.

6.9.1 Emulating the Tester.

6.9.2 The Reference Tester.

6.9.3 Diagnostic Tools.

6.10 The Test Plan.

6.11 Visual Inspection.

6.12 Test Cost.

6.13 Summary.

Problems.

References.

7 Developing a Test Strategy.

7.1 Introduction.

7.2 The Test Triad.

7.3 Overview of the Design and Test Process.

7.4 A Testbench.

7.4.1 The Circuit Description.

7.4.2 The Test Stimulus Description.

7.5 Fault Modeling.

7.5.1 Checkpoint Faults.

7.5.2 Delay Faults.

7.5.3 Redundant Faults.

7.5.4 Bridging Faults.

7.5.5 Manufacturing Faults.

7.6 Technology-Related Faults.

7.6.1 MOS.

7.6.2 CMOS.

7.6.3 Fault Coverage Results in Equivalent Circuits.

7.7 The Fault Simulator.

7.7.1 Random Patterns.

7.7.2 Seed Vectors.

7.7.3 Fault Sampling.

7.7.4 Fault-List Partitioning.

7.7.5 Distributed Fault Simulation.

7.7.6 Iterative Fault Simulation.

7.7.7 Incremental Fault Simulation.

7.7.8 Circuit Initialization.

7.7.9 Fault Coverage Profiles.

7.7.10 Fault Dictionaries.

7.7.11 Fault Dropping.

7.8 Behavioral Fault Modeling.

7.8.1 Behavioral MUX.

7.8.2 Algorithmic Test Development.

7.8.3 Behavioral Fault Simulation.

7.8.4 Toggle Coverage.

7.8.5 Code Coverage.

7.9 The Test Pattern Generator.

7.9.1 Trapped Faults.

7.9.2 SOFTG.

7.9.3 The Imply Operation.

7.9.4 Comprehension Versus Resolution.

7.9.5 Probable Detected Faults.

7.9.6 Test Pattern Compaction.

7.9.7 Test Counting.

7.10 Miscellaneous Considerations.

7.10.1 The ATPG/Fault Simulator Link.

7.10.2 ATPG User Controls.

7.10.3 Fault-List Management.

7.11 Summary.

Problems.

References.

8 Design-For-Testability.

8.1 Introduction.

8.2 Ad Hoc Design-for-Testability Rules.

8.2.1 Some Testability Problems.

8.2.2 Some Ad Hoc Solutions.

8.3 Controllability/Observability Analysis.

8.3.1 SCOAP.

8.3.2 Other Testability Measures.

8.3.3 Test Measure Effectiveness.

8.3.4 Using the Test Pattern Generator.

8.4 The Scan Path.

8.4.1 Overview.

8.4.2 Types of Scan-Flops.

8.4.3 Level-Sensitive Scan Design.

8.4.4 Scan Compliance.

8.4.5 Scan-Testing Circuits with Memory.

8.4.6 Implementing Scan Path.

8.5 The Partial Scan Path.

8.6 Scan Solutions for PCBs.

8.6.1 The NAND Tree.

8.6.2 The 1149.1 Boundary Scan.

8.7 Summary.

Problems.

References.

9 Built-In Self-Test.

9.1 Introduction.

9.2 Benefits of BIST.

9.3 The Basic Self-Test Paradigm.

9.3.1 A Mathematical Basis for Self-Test.

9.3.2 Implementing the LFSR.

9.3.3 The Multiple Input Signature Register (MISR).

9.3.4 The BILBO.

9.4 Random Pattern Effectiveness.

9.4.1 Determining Coverage.

9.4.2 Circuit Partitioning.

9.4.3 Weighted Random Patterns.

9.4.4 Aliasing.

9.4.5 Some BIST Results.

9.5 Self-Test Applications.

9.5.1 Microprocessor-Based Signature Analysis.

9.5.2 Self-Test Using MISR/Parallel SRSG (STUMPS).

9.5.3 STUMPS in the ES/9000 System.

9.5.4 STUMPS in the S/390 Microprocessor.

9.5.5 The Macrolan Chip.

9.5.6 Partial BIST.

9.6 Remote Test.

9.6.1 The Test Controller.

9.6.2 The Desktop Management Interface.

9.7 Black-Box Testing.

9.7.1 The Ordering Relation.

9.7.2 The Microprocessor Matrix.

9.7.3 Graph Methods.

9.8 Fault Tolerance.

9.8.1 Performance Monitoring.

9.8.2 Self-Checking Circuits.

9.8.3 Burst Error Correction.

9.8.4 Triple Modular Redundancy.

9.8.5 Software Implemented Fault Tolerance.

9.9 Summary.

Problems.

References.

10 Memory Test.

10.1 Introduction.

10.2 Semiconductor Memory Organization.

10.3 Memory Test Patterns.

10.4 Memory Faults.

10.5 Memory Self-Test.

10.5.1 A GALPAT Implementation.

10.5.2 The 9N and 13N Algorithms.

10.5.3 Self-Test for BIST.

10.5.4 Parallel Test for Memories.

10.5.5 Weak Read–Write.

10.6 Repairable Memories.

10.7 Error Correcting Codes.

10.7.1 Vector Spaces.

10.7.2 The Hamming Codes.

10.7.3 ECC Implementation.

10.7.4 Reliability Improvements.

10.7.5 Iterated Codes.

10.8 Summary.

Problems.

References.

11 IDDQ.

11.1 Introduction.

11.2 Background.

11.3 Selecting Vectors.

11.3.1 Toggle Count.

11.3.2 The Quietest Method.

11.4 Choosing a Threshold.

11.5 Measuring Current.

11.6 IDDQ Versus Burn-In.

1.7 Problems with Large Circuits.

11.8 Summary.

Problems.

References.

12 Behavioral Test and Verification.

12.1 Introduction.

12.2 Design Verification: An Overview.

12.3 Simulation.

12.3.1 Performance Enhancements.

12.3.2 HDL Extensions and C++.

12.3.3 Co-design and Co-verification.

12.4 Measuring Simulation Thoroughness.

12.4.1 Coverage Evaluation.

12.4.2 Design Error Modeling.

12.5 Random Stimulus Generation.

12.6 The Behavioral ATPG.

12.6.1 Overview.

12.6.2 The RTL Circuit Image.

12.6.3 The Library of Parameterized Modules.

12.6.4 Some Basic Behavioral Processing Algorithms.

12.7 The Sequential Circuit Test Search System (SCIRTSS).

12.7.1 A State Traversal Problem.

12.7.2 The Petri Net.

12.8 The Test Design Expert.

12.8.1 An Overview of TDX.

12.8.2 DEPOT.

12.8.3 The Fault Simulator.

12.8.4 Building Goal Trees.

12.8.5 Sequential Conflicts in Goal Trees.

12.8.6 Goal Processing for a Microprocessor.

12.8.7 Bidirectional Goal Search.

12.8.8 Constraint Propagation.

12.8.9 Pitfalls When Building Goal Trees.

12.8.10 MaxGoal Versus MinGoal.

12.8.11 Functional Walk.

12.8.12 Learn Mode.

12.8.13 DFT in TDX.

12.9 Design Verification.

12.9.1 Formal Verification.

12.9.2 Theorem Proving.

12.9.3 Equivalence Checking.

12.9.4 Model Checking.

12.9.5 Symbolic Simulation.

12.10Summary.

Problems.

References.

Index.

See More
ALEXANDER MICZO, PhD, has lectured extensively, both domestically and abroad, and is an adjunct professor at Santa Clara University.
See More
"...well-written and covers broad subjects related to the test of digital circuits. It will be useful for students and engineers involved in design and testing." (IEEE Circuits & Devices Magazine, July/August 2005)

“This is an excellent introduction to testing digital circuits...valuable to IC design and product engineers, and stands as an excellent academic reference for electrical engineering students.” (Chip Scale Review, March 2004)

See More

Related Titles

Back to Top