One should not abandon duties born of one's nature, even if one sees defects in them. Indeed, all endeavors are veiled by some evil, as fire is by smoke.
—Bhagavad Gita, Chapter 18, verse 48In this chapter, we will discuss some of the basic concepts of design for testability (DFT). First, we will introduce the idea of structural testing and how it is different from functional testing. Then, we will explain fault model and its significance in testing. We will discuss single stuck-at fault model in detail. We will highlight the role of structural testing and the single stuck-at fault model in simplifying testing and making it cost-effective. We will also elucidate the problems of controlling and observing signals in a sequential circuit that are encountered during structural testing.
FUNCTIONAL TESTING VERSUS STRUCTURAL TESTING
Let us assume that we need to test a fabricated circuit that implements a Boolean function with N inputs. We can apply all possible 2N input combinations and check whether the outputs match the corresponding entries in the truth table. This is known as functional testing. However, when N is large (such as 50 or 100), the number of possible input combinations becomes dramatically large, and exhaustive functional testing of a circuit becomes infeasible. Therefore, we employ an alternative testing strategy known as structural testing for testing a fabricated circuit [1].
In structural testing, we test the components or hardware that implements a logic function rather than testing the input–output functionality of the implementation [1]. We can choose components at various abstraction levels such as transistors, switches, logic gates, standard cells, and macros (adders, multipliers, and arithmetic logical units (ALUs)). Nevertheless, we perform structural testing often at the level of logic gates. This testing is known as structural testing since it considers the topology and interconnections of logic gates in the implementation. The paradigm of structural testing is widely employed because it reduces the number of test patterns required for good test quality [2].
If we perform functional testing, we need to apply 216=65536 input combinations and compare the obtained circuit response with the correct response.
Review the options below to login to check your access.
Log in with your Cambridge Higher Education account to check access.
If you believe you should have access to this content, please contact your institutional librarian or consult our FAQ page for further information about accessing our content.