Boundary scan testing is a way of testing that the inputs and outputs of components on a board, or sub-systems on a chip, are connected correctly.
Figure 2.1 shows a board with two chips, A and B, each with three inputs (numbered 1 to 3) and three outputs (numbered 4 to 6).
These chips are interconnected as shown in Figure 2.2. Output pins 5 and 6 of chip A are connected to the input pins 1 and 3 of chip B respectively. Output pins 4 and 6 of chip B are connected to input pins 1 and 2 of chip A respectively. The other pins are not connected.
The objective of boundary scanning is to determine that the inputs and outputs which should be connected, are connected, and that those which should not be connected are not connected.
Boundary scan adds a simple logic cell (a scan cell) to each input and output, which can record the current state of that input or output as shown in Figure 2.3.
Normally the cell has no impact on the input or output. However the cells may be directed to capture the current state of the input or output. For inputs, the signal about to leave the chip is captured in the cell. For outputs, the signal about to enter the chip is captured in the cell.
The cells may also be directed to update their associated input or output. For inputs the stored value is injected onto the external connection. For outputs the stored value is injected into the chip.
Note | |
---|---|
There is a single signal controlling all the cells. So they will all capture or update their associated value at the same time. |
The final component of boundary scan is to connect all the scan cells together in a chain, so that each cell can transfer its value to the adjacent cell. This is shown in Figure 2.4.
The connected cells form a large shift register, with one bit for each input and output. The cells may be directed to shift their value to the adjacent cell. A sequence of shifts allows all the cells to be changed and all their values to be read out.
In the example shown, the cells form a 12-bit shift register, as shown in Figure 2.5.
A sequence of capture, followed by twelve shifts and then update allows the current state of each input to be recorded externally, a new set of values to be set and then injected onto the connections. In this way each input can be tested to check that when it is changed, its connected output changes.