Implementing Analog Testing Using IEEE 1149.1 and 1149.4

Life and death hang in the balance when we perform testing at our company. We develop tests for hybrids used by implantable cardiac management systems, so it is extremely important that the tests be comprehensive and thorough.

These hybrids contain microprocessors and mixed-signal (analog and digital) integrated circuits (ICs). The digital portions of our ICs are IEEE 1149.1-compliant and support standard instruction register boundary scan instructions such as BYPASS, EXTEST, and INTEST.

The analog portions of our ICs presented challenges about how to communicate internal test results via the on-IC boundary scan port. Figure 1 shows a block diagram of the hybrid containing a microprocessor and a mixed-signal device. Testing is accomplished using the methods described in IEEE 1149.1 and 1149.4.

Using the ASSET® InterTech VX4491 boundary scan controller provided a means for testing the IC’s die-to-die interconnect of digital pads and the digital core logic on both microprocessors and mixed-signal ICs. In this case, the mixed-signal IC contained a dual analog test bus similar to designs depicted in IEEE 1149.4.

The controller required a Serial Binary Stimulus Format (SBSF) file as an input. The SBSF is a binary vector file sent to the controller and executed. It is compiled from a Serial Vector Format (SVF) file. This is an ASCII text file that can be created using any of several methods, such as certain tools from the ASSET suite, by converting a digital simulation output file or generating the file with a text editor.

The tools available from ASSET InterTech include ScanObjects™ and ScanPort™, which are data link library files that provide various commands for interfacing and communicating with the controller. I have used both libraries. ScanPort is a subset of ScanObjects but does include some new functions.

You must review each of the command capabilities to determine which is suited for your needs. You cannot use both libraries in the same program because a software crash will occur.

Testing the digital portions of the ICs where the data and logic states are predictable can be accommodated easily using the ASSET tools. I developed a program that builds an SVF file and an SBSF vector file from a simple input of address and data with a selection of a READ or a WRITE.

The program creates vectors for writing to input/output (I/O) ports on a mixed-signal hybrid, referred to as the device-under-test (DUT). You must write to the DUT I/O to set registers that close analog switches on an internal analog test bus to perform analog testing. More complex vector files can be created to accomplish other tasks.

The developed scan file is sent to the controller, and the analog measurement is accomplished using an external digital multimeter connected to the analog test bus. The analog test bus, as described in IEEE 1149.4, allows analog virtual test points throughout the analog circuitry for applying stimulus and measuring response of individual analog blocks during testing of the DUT (Figure 1).

The challenge, however, was to develop a method to obtain data from an analog block of the mixed-signal device on the hybrid where the data response could not be predetermined (Figure 1). In this case, the mixed-signal device was returning measurement data from an internal analog-to-digital converter (ADC) where the digital data value could not be predicted.

A method was developed using a C++ dynamic link library to extrapolate the data from the test data out (TDO) within the controller. This method, when executed, took approximately one second. This method in a production test setting could not be used with a test program where we might need to accomplish several thousand I/O reads.

The Solution

As a result, I developed a new method. To understand how the new method works, let’s look at an SVF file.

Figure 2 shows the format required in a SVF file for a singular 50-bit binary digital scan. The test data in (TDI) data is presented in hexadecimal form. Each hexadecimal character provides four bits of binary data for the respective boundary scan cell in the boundary scan chain. Within the hexadecimal string are the control lines for READ and WRITE operations, address, data, and other DUT digital pins.

The MASK indicates which bits of the TDO received data should be compared to the TDO data provided in the TDO statement. In this case, all bits are to be compared. The file would be compiled into an SBSF file, sent to the controller, and executed. When requested, the controller returns a PASS or FAIL, indicating whether the vector response from the DUT compared correctly to the provided TDO data.

Figure 3 shows the method used to return the response quickly from the controller to extract an unknown data response such as would be received from a 16-bit ADC. Before sending and executing the SBSF file, send the following command provided in the ASSET command language to the VX4491 controller:

BSN:LOGMODE LOGFAILTDO

This command tells the VX4491 controller to store the vectors and the response from the DUT for all vectors that fail during execution.

The first and second vectors do not have an expected TDO and cannot cause a failure. They are setup vectors to toggle the READ/WRITE pin and capture the data from the I/O port.

The address points to a register that contains the nonpredictable data to be captured, such as from an ADC. The third vector is where the data is valid on the I/O bus and the TDO data is compared to the TDO data provided in the file.

The MASK indicates all bits are to be compared. As shown, the TDO data is all zeros. This is to ensure the vector will fail. Using the FAILDATA? command provided in ASSET’s command set allows the data from the failed vectors to be retrieved for analysis.

Now, by sending the FAILDATA? 1 command to the controller followed by a READ, the actual response from the DUT will be as follows:

FAILDATA 10, “380000A391580.”

With a string manipulation and hex conversion routine, the requested data returned from the address can be extrapolated. This procedure uses a simple write file that can be generated easily. A file can be created to accomplish continuous

reads, and the data can quickly be retrieved. Returning the data from a multiple read is accomplished by replacing the 1 in the FAILDATA? instruction with the number of reads within the file.

Conclusion

The test development team on this project was very pleased that we could extend the use of boundary scan testing techniques to obtain data from an analog block of the mixed-signal device where the data response could not be predetermined. This capability assisted greatly in developing a thorough test suite for our hybrid.

About the Author

Mark Maass is the senior principal hybrid test development engineer at Medtronic Micro-Rel. He has been involved in test since 1973 and directly involved with IC test development since 1979. Mr. Maass graduated with a B.S.E.E.T. from Colorado Technical College. Medtronic Micro-Rel, M/S 10, 2343 W. Tenth Place, Tempe, AZ 85281, (602) 929-5618.

 

Figure 2

SDR 50

TDI(380000001FD80);

MASK(FFFFFFFFFFFF);

TDO(3802A825935C0);


Copyright 1999 Nelson Publishing Inc.

February 1999

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!