Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Tutorial
NI Supported: Yes
Publish Date: Apr 6, 2007

National Instruments High-Speed Digital ATE and Stimulus Response Features

16 ratings | 4.44 out of 5
Read in | Print | PDF

Overview

When people think of digital test, they usually envision a simple application that either generates or acquires a pattern of 1’s and 0’s to communicate with or test a device under test (DUT). Changes in recent digital components, which include faster speeds, new logic families, and smaller packaging, require more data throughput on fewer pins. These changes require a digital tester to support more operations than just the two basic states: drive logic low and drive logic high. Advanced digital test equipment can perform operations that include driving flexible voltage levels, disabling circuitry, bidirectional communication, and analyzing the acquired data for accuracy. In addition, current digital electronics, from simple memory chips to complex communication systems, require a flexible, powerful digital test solution to reduce the cost and time of interfacing to a wide range of electronics. The National Instruments 6552 and 6551 digital waveform generator/analyzers provide a new, open solution for digital test with the addition of the following features:

· Per cycle, per channel tristate for bidirectional control
· Real-time hardware comparison of expected data with acquired response data

These features, in conjunction with flexible voltage selection, enable design and test engineers to use the NI 655x devices to create complete digital stimulus-response test systems for applications ranging from bit error rate testing (BERT) to high-speed bidirectional communication.

This paper describes how per cycle tristate and real-time hardware comparison are implemented in the NI 655x architecture. After discussing the implementation, this paper describes real-world digital test applications using example code in National Instruments’ graphical programming language, NI LabVIEW.

Digital ATE Features

Test engineers can choose from a number of different digital I/O instruments with a range of features for communication and test applications. The core feature of digital test equipment is the ability to perform hardware-timed generation and/or acquisition of a predefined digital test pattern, which is often stored in memory located on the device. Beyond these capabilities of driving a digital pattern of 1s and 0s, digital instruments often support waveforms that can include some or all of the logic states in Table 1.

Table 1. Digital Logic States Supported by some Digital Test Equipment
Logic State
Drive Data
Expected Response
Drive States
0
Logic Low
Don’t Care
1
Logic High
Don’t Care
Z
Disable
Don’t Care
Compare States
L
Disable
Logic Low
H
Disable
Logic High
X
Disable
Don’t Care

The six logic states control the voltage driver and, if supported, the compare engine of the digital tester as indicated in Table 1. The states specify what stimulus data the tester drives on a particular channel and the expected response from the DUT. When present in the digital test equipment, these states make it possible to perform bidirectional communication and on-the-fly comparison of acquired response data.

The NI 655x digital waveform generator/analyzer supports all six logic states shown in Table 1. The following sections explain the hardware implementation of these features and provide more detailed analysis of per cycle bidirectional control and real-time hardware compare.

Per-Cycle Bidirectional Control


The ability to control the direction of communication is a critical feature when selecting a digital test system for a DUT. The most basic digital I/O instruments have simple unidirectional control, meaning a channel either drives data onto a pin or acquires data. More sophisticated devices can be configured to drive stimulus data onto a pin or acquire data from that pin, but not during the same operation. The two basic logic states, 1 for drive logic high and 0 for drive logic low, can control all the generation operations for these devices. They do not support bidirectional capabilities within the same operation.. Typical applications for these devices include basic pattern I/O, handshaking, and digital data logging.

More complex digital testers allow bidirectional capabilities within the same digital operation, meaning the instrument can switch between generating and acquiring data on successive clock cycles. To support this bidirectional control, more than just the two basic logic states are required because a stimulus channel must also be able to disable the voltage driver. This third state is referred to as tristate, which is also commonly referred to as the high-Z or high-impedance state. Tristate provides the ability to control when a device is driving a channel to ensure that multiple devices do not simultaneously drive the channel, which can lead to incorrect data being received. Tristate is necessary for bidirectional applications such as I2C communication, IC testing, bit error rate testing (BERT), and general digital stimulus/response testing.

The NI 655x supports the tristate, also referred to as high-impedance and the “Z” state, on a per channel, per clock cycle basis. Figure 1 shows how a single tristate channel is implemented in the FPGA of the NI 655x digital waveform generator/analyzers. In the figure, the generation logic is illustrated in the top half of the digital tester and the acquisition circuitry is shown in the bottom half.

[+] Enlarge Image
Figure 1: Block Diagram of a Single NI 655X Digital Channel

A typical test of a bidirectional device, such as a memory chip, begins by loading the stimulus data, or test pattern, into the digital tester’s onboard memory. Next, the stimulus data is decoded to determine if the channel’s voltage driver should be enabled, and if so, what data to drive. In the NI 655x devices, the comparators in the acquisition circuitry are directly connected to the output of the digital tester’s voltage driver. This means that the stimulus data from both the digital tester itself and the DUT can be acquired by the NI 655x. The comparators cannot tell whether the DUT or the digital tester (or both) is driving data onto the channel; you must tristate the digital tester’s voltage driver during a read operation to prevent data from being driven onto the channel from both the DUT and the digital tester’s voltage driver.

Once a signal is acquired, the data interpretation circuitry determines if the acquired signal is a logic low or logic high, and it stores that result in the acquisition onboard memory. The acquired response data is finally written to the PC where it can be analyzed and logged. The next section expands this block diagram further by introducing a feature of the NI 655x device that provides on-the-fly comparison of this acquired response data.

Real-Time Hardware Comparison


Another important capability of digital test instruments is the ability to verify that a DUT returns the correct response data under different use cases and stimulus data. To accomplish this goal, there are two primary methods for comparing acquired response data with expected data. The first method is to capture the actual response data and use software to interpret the results. The application program needs only the two basic logic states to configure the tester’s stimulus data. A second method is to preload the hardware with both stimulus and expected response data to make real-time comparisons as data is acquired. Traditionally, this second method was only available on higher-priced digital testers, but powerful, lower-cost FPGA technology is making this functionality more readily available to a broader customer base, enabling real-time hardware comparison through the three compare states shown in Table 1. Whenever a waveform contains a compare state, then the acquired response data is compared to the expected response.

Figure 2 shows the complete block diagram of a NI 655X channel with the hardware compare circuitry as well as the previously discussed per cycle tristate feature.

[+] Enlarge Image
Figure 2: Block Diagram of NI 655X Digital Channel with Hardware Comparison Circuitry

Data comparison logic in the FPGA connects the generation and acquisition circuitry. The data decoder receives data from onboard memory and enables/disables the driver based on the logic state of each sample. The decoder transfers the expected response to a FIFO memory, which feeds the expected data to the data comparison logic whenever the acquisition of response data begins. If an error is detected during the comparison, then information on the fault is stored separately from the acquired data so that both can be retrieved by the application software for further analysis.

The FPGA stores the following information for each fault detected:
  • Sample number of the fault
  • Channel that was at fault
  • Total number of errors

Common Digital Test Applications

This section explores how to implement the Digital ATE Features described in the previous section in common digital test applications, such as functional tests and characterization.

Functional Tests

One of the most important tests for many industries is the functional testing of components, such as custom ASICs and off-the shelf A/D converters. A common bidirectional device that requires extensive functional testing is a memory chip. Figure 3 illustrates a typical SRAM integrated circuit (IC) with its pinout.



Figure 3: SRAM IC Pinout

A typical memory IC, as shown previously, has three address lines, eight data lines, a write enable (WE) line, and a read enable (OE) line. Table 2 shows a marching zeros test pattern that can be used to test this SRAM chip.
Table 2. Marching Zeros Test Patterns for a Memory IC
Sample
Test Data
Actual Response
W/R
AddrData
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
10  000  01111111
10  001  10111111
10  010  11011111
10  011  11101111
10  100  11110111
10  101  11111011
10  110  11111101
10  111  11111110
01  000  LHHHHHHH
01  001  HLHHHHHH
01  010  HHLHHHHH
01  011  HHHLHHHH
01  100  HHHHLHHH
01  101  HHHHHLHH
01  110  HHHHHHLH
01  111  HHHHHHHL
01111111
10111111
11011111
11111111
11111111
11111011
11111101
11111110
01111111
10111111
11011111
11111111
11111111
11111011
11111101
11111110

When WE (write enable) is high, the IC receives data from an external device, such as a digital tester, and writes the data to the location specified by the address lines. If OE (read enable) is high, the IC retrieves data from the location specified by the address lines and drives that data onto the data lines. The final step in verifying the operation of such a memory device is to analyze the output by comparing it with the expected response.

The next two sections discuss how to implement a functional test using both a software solution and hardware comparison solution in LabVIEW with the NI 655x digital waveform generator/analyzer.


Software Comparison Method

During a software comparison application, the tester generates the stimulus data, captures the actual response data, and then performs analysis of the response data after it is stored in the host PC memory. The actual response data analysis is performed entirely in software and not in real-time. The following steps describe software comparison in more detail.

1. The original test data, as shown in , is entered by a user or read from a file. The test data contains both stimulus and response data.

Table 3. Conversion of Test Vector to Stimulus Data
Test data 0011ZZHLHL
Stimulus data 0011ZZZZZZ

2. The pure stimulus data is extracted from the test data as shown in . 1’s and 0’s in the test data specify stimulus data; all other characters indicate that no data is generated, so the voltage drivers must be disabled by being placed into the tristate.

3. The stimulus data is generated onto the channel by the digital tester, and the response data is acquired. Both the generation and acquisition operations occur in parallel.

4. Once the generation and acquisition is complete, the application program performs the comparison on a per bit basis in software. shows an example of the acquired response data. The final pass/fail decision is only effected by the response data that was acquired when an ‘H’ or ‘L’ was present in the original test data.

Table 4. Comparison of Test Vector to Actual Response Data
Test data 0011ZZHLHL
Acquired response data 0011111010
Result
Pass

Software comparison requires that all data be transferred to the host computer for post-processing, making it suitable for slower speed applications. If more data is acquired than can fit on the tester’s onboard memory, then transferring all the data to the host computer may exceed computer bandwidth limitations. For this situation and other cases that require faster comparison rates, real-time hardware comparison must be used.

National Instruments LabVIEW, a graphical programming language, is used below to illustrate the functions needed in a digital software comparison application for the NI 655x device. The next several images illustrate how to create the separate generation and acquisition operations and then how to combine them into a synchronized functional test application.

To begin with, Figure 4 shows how to create the generation portion of the LabVIEW program. They key functions include configuring the tester, loading the test pattern, and starting the generation.

[+] Enlarge Image
Figure 4. LabVIEW High-Speed Digital Generation Program

Before the test data is loaded into the onboard generation memory, the original digital test data, shown in Figure 5, is parsed into the stimulus data and expected response data. After the data is parsed, the stimulus data is downloaded to the NI 6552 for generation.

Figure 5. LabVIEW Digital Tables

[+] Enlarge Image

Creating the acquisition section of the program is very similar. Figure 6 shows the acquisition program required for the function test application.

[+] Enlarge Image
Figure 6. LabVIEW high-speed digital acquisition program

The NI 6552 supports the simultaneous operation of both of these programs; however, simply combining them is not an effective test. Simply running our acquisition program and generation program simultaneously will not result in the acquired data correctly aligning with the expected response data. Since these programs run in nondeterministic software, you cannot rely on the timing of the programs to remain consistent. In addition, propagation delays through the DUT and any cables to the DUT must be taken into account. The time required for the data to move from the digital tester, through the cable and DUT, and back to the tester is known as round trip delay and is shown in Figure 7.

[+] Enlarge Image
Figure 7. Using External Connections to Account for Round-Trip Delay.

The best way to account for round-trip and software delays is to export a signal with an edge that corresponds to the start of the test. For the NI 655x, the Data Active event provides this functionality and can be routed externally to trigger the start of acquisition, as shown in Figure 8. Notice that you must ensure that the signal is routed such that it has the same round trip delay as the data.

[+] Enlarge Image
Figure 8. Using the Data Active event to Trigger the Acquisition from Generation

You can also use the Data Active event to control the relative delay between the response data and the active edge of the Sample clock. For example, you can export the Data Active event on PFI 1 and route it to PFI 2, which can be configured as the acquisition Start trigger source, as shown in Figure 8. You can export the generation Sample clock to DDC CLK OUT and set the acquisition Sample clock to STROBE.

Figure 9 shows a LabVIEW program that configures and externally routes the Data Active event and the Sample clock. The functions marked with an arrow perform the additional configuration required.

[+] Enlarge Image
Figure 9. Using the Data Active event and Exported Sample Clock to Synchronize Generation and Acquisition

The acquisition operation must be started before the generation, as shown in Figure 10, to ensure that the acquisition is armed and ready to receive the Start trigger before generation begins. The final optional step is the analysis of the acquired data, which you can use to make a simple pass/fail decision. Rather than go into the software analysis of the acquired response data in more detail, the following section looks at how to use the real-time hardware compare feature to do this analysis more efficiently then can be done in software.

[+] Enlarge Image
Figure 10. Ensure the Acquisition Is Ready for a Start Trigger Before the Generation Begins


Real-Time Hardware Comparison Method

Leveraging the onboard FPGA to perform the comparison of the acquired response data to the expected data drastically increases the speed and reliability of a stimulus-response application. To develop a program to compare the response data in hardware, only a few small modifications to the previously described LabVIEW software comparison program are required.

1. Enable the hardware comparison block on the NI 655x using an niHSDIO property node during the configuration stage of both the generation and acquisition sessions, as shown in Figure 11.

Figure 11. Property Nodes Make it Easy to Enable Hardware Comparison

2. Once hardware comparison is enabled, the six logic states in the waveform dictate the NI 655x operation, which eliminates the need for any parsing and analysis functions. Refer to Table 1 for more information about the six logic states.

3. For applications requiring more complex fault analysis, a fetch function can acquire the faulty data and any samples surrounding that error. For every sample that is in error, you can retrieve the following information:
  • Sample number containing an error
  • Bits within each sample that were in error
  • Expected response from the DUT

Using another property node with the HardwareCompare.SampleErrorBacklog property, you can retrieve the total number of errors directly from the NI 655x FPGA. Figure 12 shows the section of a hardware compare example where the sample error backlog property is used to fetch the acquired response data that contained an error along with the five samples that were acquired before and after the sample in error. By capturing this information, you can perform more detailed fault analysis.

[+] Enlarge Image
Figure 12. Use the sample error backlog to fetch the data around each error

All the data comparison is performed in hardware on a per-sample basis, which significantly reduces the time spent analyzing the data in software. Using this hardware comparison method, the NI 655x can be easily programmed for high-performance functional tests and other stimulus-response applications.

For this complete hardware compare example, refer to the “High-Speed Digital Real-time Hardware Compare” example located online in the National Instruments Developer Zone (ni.com/zone).

Characterization

The functional test example discussed previously can be expanded to also perform characterization of a DUT. For example, to characterize the maximum clock rate of a DUT, the application must be modified to sweep across a range of Sample clock rates, starting with a low frequency. The characterization test returns a pass/fail decision using the methods discussed for the functional tests; however, if the test passes, the Sample clock rate is increased and the test is rerun. These steps are repeated until the DUT fails. The highest frequency that passes can be interpreted as the DUT’s maximum operating frequency.

To implement this type of characterization, add a loop to the program so that the desired test parameter can be adjusted and then the test repeated. NI-HSDIO does not require each setting of the digital tester to be reconfigured during every loop iteration, so reconfiguration time between tests is minimized. Figure 13 shows an example this code modification.

[+] Enlarge Image
Figure 13. Characterization Is Performed by Adding a Loop and Modifying a Parameter
See Also:
High-Speed Digital Real-time Hardware Compare

Scalability

As digital electronics become more advanced, their components can have anywhere from a few pins for serial devices to well over a hundred pins for complicated ICs. To test these devices, a digital test system must scale its channel count. Using NI-TClk (Trigger Clock) synchronization technology, multiple NI 655x modules can be synchronized easily at the subnanosecond level in a single system to test high-channel count devices. For example, if a system requires 40 channels, the following program illustrates the additional functions required to synchronize multiple devices.

[+] Enlarge Image
Figure 14. Efficiently Configure Multiple Devices using a For Loop and Array of Instrument Names

Each module must still be configured and controlled by its own set of functions; however, adding a simple For loop drastically reduces the required programming. Figure 14 shows a generation program expanded to multiple modules using a For loop and array of instrument names. Once all the devices are configured inside the loop, only three additional VIs are required for NI-TClk synchronization, shown in Figure 15.


Figure 15. Three NI-TClk functions that enable subnanosecond synchronization

You can also use NI-TClk to write programs where multiple modules respond to external triggers with the same synchronization. For more information about NI-TClk technology, refer to the National Instruments T-Clock Technology for Timing and Synchronization of Modular Instruments white paper by visiting ni.com/info and entering the info code rdtctf.

When synchronizing multiple modules with NI-TClk to perform a hardware comparison, if a fault is detected on one NI 655x device, only that device stores information about the fault. The other NI 655x devices in the system continue as if that sample passed. Since each device only registers its own errors, you need not worry about an error being counted multiple times; however, you may need to post-process information from all the modules to build a comprehensive list if a sampler error rate is desired.

Conclusion


With the addition of per cycle bidirectional control and real-time hardware comparison, the NI 655x digital waveform generator/analyzers offer a more comprehensive solution to digital test applications then any other PC-based device. New solutions possible range from the functional testing of memory chips to quick characterization applications to BERT (bit error rate testing). The scalability of the PXI platform and the flexibility of software continue to improve the flexibility and power of digital test instruments.
See Also:
National Instruments T-Clock Technology for Timing and Synchronization

Related Links:
National Instruments High-Speed Digital I/O
NI 655x Digital Stimulus/Response Instruments
16 ratings | 4.44 out of 5
Read in | Print | PDF

Reader Comments | Submit a comment »

 

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).