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

84  BUILDING A SUCCESSFUL BOARD-TEST STRATEGY


    « Levels: Voltage and current values assigned to logic values in the pattern
      data. Levels may vary over the board, depending on the mix of device
       technologies.
    » Flow control: Program tools that specify loops, waits, jumps, and other
      sequence modifiers

    The simplest type of digital functional "tester" is an I/O port. It offers a
 limited number of I/O channels for a board containing a single logic family. The
 I/O port offers a low-cost solution for examining a few digital channels. However,
 it is slow and provides little control over timing or logic levels during test, severely
 limiting its capability to verify circuits at-speed or to-spec.
    Emulators exploit the fact that many digital boards feature bus-structured
 operation and resemble one another functionally. A somewhat general, hardware-
 intensive test can verify those common functions, reducing overall test-
 development effort. Emulation replaces a free-running part of the board's logic
 with a test pod. It then mimics the board's behavior in the target system, stopping
 at convenient points to examine registers and other hardware states. Figure 2-28
 shows a simplified block diagram of a typical emulation tester.
    Emulation is perhaps the least well-understood test technique. One problem
 is that many sources refer to it as in-circuit emulation, yet it has nothing to do with
 in-circuit testing. Calling it performance testing, as other sources do, better
 describes its operation.
    There are three basic types of emulation. Most familiar is microprocessor
 emulation, where a test pod attaches to the microprocessor leads or plugs into an
 empty microprocessor socket. On boards with more than one processor, the test
 must replace all of them, either serially or simultaneously. A successful test requires
 that the board's power and clock inputs, reset, data-ready, and nonmaskable inter-
 rupts function correctly.
    Memory emulation replaces RAM or ROM circuitry on the board under test,
 then executes a stored program through the existing microprocessor and sur-
 rounding logic, including clock, address and data buses, address decoder, and
 RAM. Because the microprocessor remains part of the circuit, this variation has
 advantages over microprocessor emulation for production test. Also, the tester does
 not require a separate pod for each microprocessor, only one for each memory
 architecture, reducing hardware acquisition and development costs.
    Bus-timing emulation does not actually require the presence of a micro-
 processor on the board at all. It treats the processor as a "black box" that simply
 communicates with the rest of the board logic over I/O lines. The bus can be on
 the board or at the edge connector. The technique executes MEMORY READ,
 MEMORY WRITE, INPUT, OUTPUT, FETCH, and INTERRUPT functions
 from the processor (wherever it is) to assess board performance.
    Bus emulators contain a basic I/O port, but include local memory behind the
 port for caching digital test patterns as well, giving considerably more control over
 speed and timing. Emulators offer three types of channels: address field, data field,
 and timing or control channels. Logic levels are fixed, and the system controls timing
   93   94   95   96   97   98   99   100   101   102   103