Testing of Embedded System: Version 2 EE IIT, Kharagpur 1
Testing of Embedded System: Version 2 EE IIT, Kharagpur 1
8
Testing of Embedded
System
Version 2 EE IIT, Kharagpur 1
Lesson
42
On-line Testing of
Embedded Systems
Version 2 EE IIT, Kharagpur 2
Instructional Objectives
After going through this lesson the student would be able to
1. Introduction
EMBEDDED SYSTEMS are computers incorporated in consumer products or other devices
to perform application-specific functions. The product user is usually not even aware of the
existence of these systems. From toys to medical devices, from ovens to automobiles, the range
of products incorporating microprocessor-based, software controlled systems has expanded
rapidly since the introduction of the microprocessor in 1971. The lure of embedded systems is
clear: They promise previously impossible functions that enhance the performance of people or
machines. As these systems gain sophistication, manufacturers are using them in increasingly
critical applications— products that can result in injury, economic loss, or unacceptable
inconvenience when they do not perform as required.
Embedded systems can contain a variety of computing devices, such as microcontrollers,
application-specific integrated circuits, and digital signal processors. A key requirement is that
these computing devices continuously respond to external events in real time. Makers of
embedded systems take many measures to ensure safety and reliability throughout the lifetime of
products incorporating the systems. Here, we consider techniques for identifying faults during
normal operation of the product—that is, online-testing techniques. We evaluate them on the
basis of error coverage, error latency, space redundancy, and time redundancy.
4. Non-concurrent testing
This form of testing is either event-triggered (sporadic) or time-triggered (periodic) and is
characterized by low space and time redundancy. Event triggered testing is initiated by key
events or state changes such as start-up or shutdown, and its goal is to detect permanent faults.
Detecting and repairing permanent faults as soon as possible is usually advisable. Event-
triggered tests resemble manufacturing tests. Any such test can be applied online, as long as the
required testing resources are available. Typically, the hardware is partitioned into components,
each exercised by specific tests. RAMs, for instance, are tested with manufacturing tests such as
March tests [3].
Time-triggered testing occurs at predetermined times in the operation of the system. It detects
permanent faults, often using the same types of tests applied by event-triggered testing. The
periodic approach is especially useful in systems that run for extended periods during which no
significant events occur to trigger testing. Periodic testing is also essential for detecting
intermittent faults. Such faults typically behave as permanent faults for short periods. Since they
usually represent conditions that must be corrected, diagnostic resolution is important. Periodic
testing can identify latent design or manufacturing flaws that appear only under certain
environmental conditions. Time-triggered tests are frequently partitioned and interleaved so that
only part of the test is applied during each test period.
5. Concurrent testing
Non-concurrent testing cannot detect transient or intermittent faults whose effects disappear
quickly. Concurrent testing, on the other hand, continuously checks for errors due to such faults.
However, concurrent testing is not particularly useful for diagnosing the source of errors, so test
designers often combine it with diagnostic software. They may also combine concurrent and
non-concurrent testing to detect or diagnose complex faults of all types.
A common method of providing hardware support for concurrent testing, especially for
detecting control errors, is a watchdog timer [4]. This is a counter that the system resets
repeatedly to indicate that the system is functioning properly. The watchdog concept assumes
that the system is fault-free—or at least alive—if it can reset the timer at appropriate intervals.
The ability to perform this simple task implies that control flow is correctly traversing timer-reset
points. One can monitor system sequencing very precisely by guarding the watchdog- reset
operations with software-based acceptance tests that check signatures computed while control
6. Built-in self-test
For critical or highly available systems, a comprehensive online-testing approach that covers
all expected permanent, intermittent, and transient faults is essential. In recent years, BIST has
emerged as an important method of testing manufacturing faults, and researchers increasingly
promote it for online testing as well.
BIST is a design-for-testability technique that places test functions physically on chip with
the CUT, as illustrated in Figure 42.1. In normal operating mode, the CUT receives its inputs
from other modules and performs the function for which it was de-signed. In test mode, a test
pattern generator circuit applies a sequence of test patterns to the CUT, and a response monitor
evaluates the test responses. In the most common type of BIST, the response monitor compacts
the test responses to form fault signatures. It compares the fault signatures with reference
signatures generated or stored on chip, and an error signal indicates any discrepancies detected.
We assume this type of BIST in the following discussion.
In developing a BIST methodology for embedded systems, we must consider four primary
parameters related to those listed earlier for online-testing techniques:
• fault coverage—the fraction of faults of interest that the test patterns produced by the test
generator can expose and the response monitor can detect. Most monitors produce a fault-
free signature for some faulty response sequences, an undesirable property called
aliasing.
• test set size—the number of test patterns produced by the test generator. Test set size is
closely linked to fault coverage; generally, large test sets imply high fault coverage.
However, for online testing, test set size must be small to reduce fault and error latency.
• hardware overhead—the extra hardware needed for BIST. In most embedded systems,
high hardware overhead is not acceptable.
Inputs
Outputs
Multi-
Test plexer
pattern Circuit under test
sequence (CUT) Error
Response
Test monitor
generator
Control
7. References
1) M.R. Lyu, ed., Software Fault Tolerance, John Wiley & Sons, New York, 1995.
2) K.K. Saluja, R. Sharma, and C.R. Kime, “A Concurrent Testing Technique for Digital
Circuits,” IEEE Trans. Computer-Aided Design, Vol. 7, No. 12, Dec. 1988, pp. 1250-
1259.
3) M. Nicolaidis, “Theory of Transparent BIST for RAMs,” IEEE Trans. Computers, Vol.
45, No. 10, Oct. 1996, pp. 1141-1156.
System
BUS
ADC
DAC
Electro Hydraulic
TDI Actuator System
TMS (Simulation in
TCK On Chip Test Controller
TDO Lab-View in a PC)
(JTAG Interface)
VH
VL
VG
AB1 AB2
DC/DC
Converter
Battery &
Power supply to the cores Charger
Data and Control paths
IEEE 1149.4/1149.1 Boundary Scan Bus
Analog Buses (1149.4) AB1 and AB2
Fig. 42.2 Block Diagram of the SOC Representing On-Line Test Capability