Designing with FPGAs and CPLDs

| Tests for | physical defects |
| It is used | in the field |
Redundant logic is used most often in systems that need to operate continuously without failure. Military systems and banking systems are two examples of systems that should not stop while in use. In these types of systems, logic will be duplicated. There will be a device following the redundant hardware that compares the outputs of the redundant hardware. Often, these systems will have three redundant blocks so that if one block fails, two blocks are still working, and the one bad block can be ignored. The comparison hardware is called voting logic because it compares signals from the three redundant blocks and decides that the majority of signals that agree have the correct value.
Most hardware is not designed to continue to operate with a physical failure, so redundant logic is not common. However, if you do use redundant logic in your design, you want to make sure that all of the redundant logic is working correctly. The idea is that redundant logic finds manufacturing faults that occur after the chip is in the field. The next section discusses how to functionally test redundant logic.
| Tests for | functional problems |
| It is used | during debugging |
Testing redundant logic is a separate issue. Figure 5.27 shows a circuit that has redundant logic. However, because the circuit is not testable, the effect is not as useful as...