Wednesday, June 20, 2018
Home/Current Issue >  Industry Articles >  Test and Measurement > 

Embedded Instruments for JTAG Testing
Free Buzz tool facilitates easy connectivity checking. To check if a connection is present the driver is selected from the list on the left and drag and dropped in the left Buzz field. Likewise the sense pin is selected and placed in the right Buzz field. When the Buzz test is executed a sound indicates whether a connection was found or not. The result is also indicated graphically by the color of the field between the drive and sense pin. Other measurements in the Buzz tool allow for checking the activity of a pin (Watch window at the top), or measure the response on input pins when driving various driver pins (Measure window in lower part).

Traditional test and measurement equipment relies on connecting external probes — not readily possible given the state-of-the-art of today's shrinking electronics. Since probing is so often difficult if not impossible, other methods must be used.

This dilemma is best illustrated by the proliferation of BGAs where the pins cannot even be seen, let alone probed. Other applications like software debugging with external in-circuit emulators are hampered not only by shrinking physical dimensions, but also by the increasing system speeds.

Since the mid-1980s an increasing number of specific functions have been embedded in PC board assemblies to provide an elegant solution to this challenge — to provide access to dense and complex PCB assemblies for testing, device programming, debugging and monitoring. The embedded functions can range from simple logic to complete modules with instruction sets, and are accessed through the JTAG interface defined in the IEEE Std. 1149.1.

This interface uses serial data input and output, all connected in series, thus creating a daisy chain. The control signals of the JTAG interface of the devices are connected in parallel. Embedded instruments include:

  • Boundary-scan registers according to IEEE Std. 1149.1, .4, .6.
  • BIST logic.
  • Programming Logic.
  • Microprocessor (µP) Emulation and Debug Logic.
  • IP blocks for testing or (flash) programming.
  • DACs (Digital to Analog Converters), ADCs (Analog to Digital Converters).
  • Sensors.

Control Logic
Boundary-scan registers provide the logic to control and observe device pins independent of the core of the device. These registers facilitate structural testing of boards providing a known fault coverage and immediate diagnosis down to pin level. For digital device pins the required type of logic for boundary-scan registers is defined in IEEE Std. 1149.1 ("dot 1"). IEEE Std. 1149.4 ("dot 4"), which is in addition to dot 1, describes the logic needed for analog device pins (analog pins in mixed signal devices). High-speed digital pins for capacitor-coupled connections require some additional logic (pulse generator at the driver and an edge detector at the sensor) as is defined in another addition to dot 1, IEEE Std. 1149.6 ("dot 6"). The boundary-scan registers perform such operations as:

  • Connectivity Checks.
  • Structural Interconnect Test.
  • Functional Cluster Test.
  • Memory Interconnect Test.
  • Enabling Flash Memory Programming.

For the majority of printed circuit boards the capabilities provided by the boundary-scan registers defined in Dot 1, 4 and 6 are sufficient to completely test the connections on those boards for manufacturing defects that include opens, shorts, and bridges. Special high-speed connections, such as high-speed serializer/deserializer channels, may require at-speed testing to detect the potential high frequency fault types specific for such types of connections. Testing of these special high-speed connections is performed by built-in self test logic (BIST) in the devices controlling these connections.
The JTAG interface TAP (Test Access Port) provides a high speed serial interface on a chip/board/system to access embedded logic (instruments). The interface contains two serial data signals: Test Data In (TDI) and Test Data Out (TDO). The TDO output of one device is connected to the TDI input of another device to form a daisy chain. TDI of the first device in the chain and TDO of the last device in the chain are connected to an external instrument providing the serial data input and reading the serial data output. The control signals of the interface are connected to all devices containing the JTAG interface. The two signals Test ClocK (TCK) and Test Mode Select (TMS) are mandatory control signals. A third control signal (not shown in diagram) called Test logic ReSeT (TRST) is optional.

BIST elements include a test engine comprised of a pattern generator, result compression, data collection and precision timing. After starting a BIST operation the test is performed autonomously by the logic of the BIST elements. Upon completion, the results can simply be read from the register(s) in those elements. DACs and ADCs on a printed circuit board can further be used in addition to those test facilities to measure or control analog voltages and as such can be seen as embedded instruments. Combined with sensors placed on the board, any type of analog value, such as temperatures, can be measured using the JTAG interface.

Today's programmable devices, FPGAs, PLDs and some other special devices can be programmed through the JTAG interface. Because of the built-in programming logic, these devices can be programmed on-board (in-system programming) without the need for special device programmers. Similarly, the special emulation and debug logic embedded in today's CPUs facilitates software debugging without the need for complex external in-circuit emulators.

Both the in-system programming capability and the embedded emulation and debug logic can be used to enhance testing and flash memory programming of the board when needed. If a processor lacks a boundary-scan register, for example, its embedded emulation and debug capabilities can be used for test and programming purposes instead.
Python-based scripting tool JTAG Functional Test (JFT) can be used to control any instrument that can be accessed through the JTAG interface. The screenshot shows an emulative test application with JFT in which the emulation and debug logic of a microprocessor (ARM11 core) are used to test the connections to a DDR2 memory.

By using the in-system programming capability of programmable devices, special IP blocks with dedicated data generation and acquisition logic, frequency counters, pulse generators, etc., can be temporarily loaded into these devices to enhance testing and flash programming of the board. Once testing has been completed, an IP block is easily replaced with the actual code for the functional operation of the system.

Software Enabled Modules
To exploit the capabilities of the embedded modules, software is needed that provides full control over the capabilities of these instruments. Hardware debug tools and microprocessor software debug tools are available as standalone software tools. Test and programming tools can be used stand-alone, or can be integrated with traditional testers like ICTs and, or with functional testers for pre-screening and device programming. Test and programming tools can automatically generate the applications based on the board's net list and device libraries and thus save a lot of time in developing those applications.

The standalone, or integrated tools mentioned before are application-specific tools, each dedicated to performing certain tasks. In contrast, more generic programming or scripting tools provide complete freedom for the user to create user-specific solutions, such as functional testing, and using off-board test and measurement equipment if needed.

Programming or scripting tools can be used to handle any type of application including the application specific tasks provided by the stand-alone tools, but unlike those tools, the applications are created manually and thus involve more manual labor.

Here, a decision needs to be made concerning the trade-off between investing in equipment and control software or in man-hours. JTAG Technologies offers an extensive range of tools to exploit the embedded instruments on printed circuit boards. The range of tools comprises stand-alone and integrated tools with advanced automatic generation and diagnostics, with high performance execution, as well as scripting tools. The scripting tools are based on the powerful Python language and can handle any register that can be accessed through the JTAG interface.

For those already using JTAG Programming, but who are new to other applications of embedded instruments, it's possible to start to explore and benefit from the test capabilities of the embedded instruments already on PC boards. A free tool is available from JTAG Technologies — the Buzz tool — for checking connectivity.

Contact: JTAG Technologies, 1006 Butterworth Ct., Stevensville, MD 21666 877-367-5824 fax: 410-604-2108 Web:

search login