Digital Systems Design with FPGAs and CPLDs

If the world were perfect, there would be no need to test. A perfect design would not contain functional errors, and a manufacturing process would not include defects that lead to faults. However, the world is not perfect, and with ever-advancing design complexities, the use of smaller device geometries and new materials, there has never been a greater need for testing.
Testing an electronic system, both the hardware and software, is essential to ensuring that the design meets the requirements of the end-user, meets quality requirements, adheres to standards, and is actually complete [1 3]. The three basic engineering actions are design, manufacture, and testing (Figure 9.1); the testing process is integral to design and manufacture and cannot be seen as a stand-alone process [4]. The design process is primarily concerned with creating a design in hardware or software that meets the required design specifications, and doing so as quickly and economically as possible. The manufacturing process is initially concerned with ensuring that the design can be manufactured, then with manufacturing it as quickly and economically as possible. The test process is concerned with ensuring initially that the design is error free (functionally correct) and secondly that it has been manufactured correctly, and again, as quickly and economically as possible. However, speed and cost in the design, manufacture, and test processes must not be at the expense of product quality.
Testing provides a means to ensure that the design:
meets the requirements of...