Integrated circuits are ubiquitous in society and can be found in a wide array of electronic products. Regardless of the type of electronic product, most consumers have come to expect greater functionality when each successive generation of electronic products are made available because successive generations of integrated circuits offer greater functionality such as faster memory or microprocessor speed. Moreover, successive generations of integrated circuits that are capable of offering greater functionality are often available relatively quickly. For example, Moore's law, which is based on empirical observations, predicts that the speed of these integrated circuits doubles every eighteen months. As a result, integrated circuits with faster microprocessors and memory are often available for use in the latest electronic products every eighteen months.
Although successive generations of integrated circuits with greater functionality and features may be available every eighteen months, this does not mean that they can then be quickly incorporated into the latest electronic products. In fact, one major hurdle in bringing electronic products to market is ensuring that the integrated circuits and software running thereon, with their increased features and functionality, perform as desired. Generally speaking, ensuring that the integrated circuits will perform their intended functions when incorporated into an electronic product is called “debugging” the electronic product.
Many integrated circuits to be tested include internal logic to provide visibility to the internal workings of the integrated circuit to an external host computer. Unfortunately, such testing-related logic on the integrated circuit takes up valuable space and consumes power.