Page 100 - Building A Succesful Board-Test Strategy
P. 100

86  BUILDING A SUCCESSFUL BOARD-TEST STRATEGY

 ventional PC contains most of the necessary hardware. An expansion board and
 proper software may suffice to create a "test system,"
     Program development may also be less expensive and less time-consuming
 than development for a more-elaborate functional test. A microprocessor-
 emulation test resembles a self-test for the corresponding system. Test engineers
 tan avoid creating a software behavioral model of a complex IC, choosing instead
 to emulate it with a hardware pod.
     Emulation tests boards in their "natural" state. That is, it does not apply every
 conceivable input combination, restricting the input set to those states that the
 target product will experience.
     Emulation can also find obscure faults by "performance analysis." It can
 identify software problems by tracking how long the program executes in each area
 of memory, in some cases, software contains vestigial routines that do not execute
 at all. Recent revisions may have supplanted these routines, yet no one has deleted
 them. They take up memory space, and their mere presence complicates debugging
 and troubleshooting the software to no purpose. In other cases, a routine should
 execute but does not.
     1 "or example, an unused routine may provide a wait state between two events.
 Unless the system usually or always fails without that delay, the fact that the soft-
 ware lies idle goes unnoticed. If the emulation test knows to look for program exe-
 cution in that section of memory and it never gets there, the test will fail. This
 technique will also notice if the software remains too long in a section of memory
 or not long enough (such as an n-cycle loop that executes only once).
     Emulation permits finding certain failures that are difficult or impossible to
 detect in any other way. One such example is single-bit-stack creep. A computer
 system stuffs information into a data stack in bytes or other bit-groups for later
 retrieval. If noise or some other errant signal adds or deletes one or more bits, all
 subsequent stack data will violate the specified boundaries, and retrieved data will
 be garbled. The ability to stop the system to examine hardware registers (such as
 stacks) will uncover this particularly pernicious problem. As digital-device voltages
 continue to fall, this kind of fail-safe testing becomes more important.
     Disadvantages of this technique include the need for individual emulation
 modules tor each target microprocessor, RAM configuration, or I/O bus. Module
 availability presents few impediments other than cost if the target configuration is
 common, such as an ISA or USB PC bus or a Pentium-class microprocessor.
 Testing custom systems and new designs, however, may have to wait for the pod's
 completion.
     Program generation is nearly always a manual process and requires a
 programmer with intimate knowledge of circuit behavior. Therefore, test devel-
 opment tends to miss unusual failure mechanisms, because the person most famil-
 iar with a board's design is not the person most likely to anticipate an oddball
 result.
    Emulation requires that the target system be microprocessor-based. Creating
 guided-probe diagnostics is both expensive and time-consuming, especially for
 memory and bus-timing variations where the microprocessor is not completely
   95   96   97   98   99   100   101   102   103   104   105