Traditionally, boundary scan testing has been used to perform simple testing of the wiring interconnects between integrated circuits on a board assembly. During test, the integrated circuits on the board are placed in a non-functioning test mode, and their boundary scan paths are accessed to verify the wiring connections between all input and output pins of each integrated circuit on the board.
The ability to dynamically observe the data passing through integrated circuit boundaries in real time provides a method of monitoring the functional interactions between multiple integrated circuits on a board. Such a test can be used to reveal timing sensitive and/or intermittent failures that would otherwise not be detectable without the use of expensive testers and mechanical probing fixtures. Dynamic boundary observation facilitates system integration, environmental chamber testing, remote diagnostic testing, and built-in self testing. The ability to dynamically control the data passing through integrated circuit boundaries in real time provides a method of inserting test data at the input and/or output of one or more integrated circuits on a board. This capability allows a fault to be propagated into a functioning circuit to see if: (1) the circuit can tolerate the fault; and (2) the circuit can detect the occurrence of the fault. The ability to introduce a known fault into a circuit provides a method of verifying that back-up circuitry responds in time to maintain normal system operation in fault tolerant designs.
Because circuits are placed in a non-functioning test mode during prior methods of boundary scan testing, errors that may occur only while the board is in operation may not be observable. Hence, this type of static boundary testing is limited in the errors which it may detect. Further, in many applications it may be necessary to test the circuit without impeding normal operation. For example, if a circuit is being used in an aircraft control system, it may not be possible to disable the circuit in order to provide testing while the airplane is in flight. In these cases, static boundary testing is not possible.
Therefore, a need has arisen to provide an advanced boundary test architecture which can be used to dynamically observe and control data passing through the boundary of one or more integrated circuits while the integrated circuit is operating normally in a circuit.