The process of designing chips starts with the construction of a computer model based on the design specification. The computer model is used to derive both masks and test programs used in the manufacturing process. Some people not intimately familiar with the process are dismayed to learn that the testing process, and indeed the test environment, almost never replicate the way the chip will be used in the final product. Here’s why this is not a problem.

Consider the logical truism that if A=B and B=C, then A=C. We don’t have to verify directly that A=C if we know that A=B and B=C. Now, if A is the design specification, B is the computer model, and C is the physical chip, then simulation and verification are the processes used to ensure that A=B, whereas test is the process of ensuring that B=C. But can you really show that the model is equivalent to the specification? The question comes down to trust. Sure, you can get a computer to vouch for it, but do you or do you not believe that the computer model is accurate? In practice, you really have no choice; there’s no other way to accomplish the task at hand. On top of that, the idea of trusting the model has a pretty well established track record for success. Because it would be prohibitively expensive for a manufacturing test to use the final product as a test vehicle, virtually every chip currently manufactured uses this practice. Companies such as Credence and Teradyne constitute an entire industry segment devoted to building test equipment for integrated circuits.

At the other end of the process, design verification has in recent years become a specialty unto itself. The infamous Pentium bug, widely reported in the popular press as a failure of test, was actually a failure of verification. In years past, simulation was the only way to verify that A=B, but designs have become far too complex for simulation alone to be adequate for the task. By most estimates, verification takes longer than design. Formal verification software, used to check that changes made to the design have not changed its functionality, has become a standard component of any design tool suite.