personal computer low-cost alternatives to …
TRANSCRIPT
PERSONAL COMPUTER LOW-COST ALTERNATIVES
TO AUTOMATED TEST EQUIPMENT
by
JOHN C. YOST III, B.S.Comp.E.
A THESIS
IN
ELECTRICAL ENGINEERING
Submitted to the Graduate Faculty of Texas Tech University in
Partial Fulfillment of the Requirements for
the Degree of
MASTER OF SCIENCE
IN
ELECTRICAL ENGINEERING
Approved
August, 2002
TABLE OF CONTENTS
ABSTRACT iv
TABLES V
FIGURES vi
CHAPTER
I. INTRODUCTION 1
PC Test Study 1
II. TESTING AND ALTERNATIVES 3
Integrated Circuit Testing 3
Test Cost 4
ATE Alternatives 6
PC Tester 7
III. ANALYSIS 9
/Design 9
PC Tester Setup 11
Program Operation 13
Control Program 14
Connection Block Program 20
Input Program 22
Output Program 25
Operation 34
IV. RESULTS 37
Hardware Capabilities 37
Versatility 40
DUT Interface 41
Target Device Families 43
V. CONCLUSION 44
Further Development 45
BIBLIOGRAPHY 49
ABSTRACT
A thesis exploring the use of PCs as an alternative test vehicle to expensive ATE and
bench testing equipment. An example system is developed for comparing versatility, interface,
and hardware capabilities. Results showed PC is most apphcable to testing SSI, MSI, and LSI
circuit famihes. Future work is also explored for enhancing PC capabilities.
w
TABLES
1: ATE cost example 5
2: Gain and measurement precision 11
3: Specification comparison to ATE 37
4: Specification comparison to bench equipment 38
5: DAQ card comparison 39
6: PC Tester advantages and disadvantages 44
7: Current and future PC tester capabilities 48
FIGURES
1: NI-6024E block diagram 8
2: Lab VIEW program example 12
3: Lab VIEW program interface example 12
4: Control program interface 14
5: Analog input program control 15
6: Sequence one 15
7: Analog I /O initiali2ation 17
8: Analog I / O test control 18
9: Sequence one, analog input refresh and wait 18
10: Coimection board program interface 19
11: Coimection block program control 20
12: Array initialiyarion and selection routines 20
13: Pin indicator controls 21
14: Single indicator control for pin one 21
15: Analog input program interface 22
16: Analog input refiresh and wait routine 23
17: Analog input display window controls sequence 24
18: Window control conversion to control array 24
19: Pan window up routine for window control 25
20: Analog output program interface 26
21: Program interface displaying sawtooth waveform controls 27
22: Control visibihty assignments 28
23: Control visibility assigmnents 29
24: Single tone waveform sequence 29
25: Edit waveform progerties program interface 30
26: Dial initialization and display adjustment routines 31
27: DC waveform generation routine 32
28: Muititone generation routines 32
VI
29: Save waveform sequence 33
30: Supply and meter connections to amplifier example 35
31: Voltage sequence for binary input offset voltage test example 41
32: Switching matrix connection example 42
vu
CHAPTER I
INTRODUCTION
Circuit testing is an integral part of semiconductor product engineering. Testing is
responsible for collecting data, for maintaining good yield in production, for characterizing end
products, and most importantiy, it is responsible for eliminating faulty products. Testing is
done before a design reaches production, after first silicon, during production, after
production, after packaging, and finally after it is installed in the end product Test equipment
is responsible for providing the resources to perform all of these tests, both in production and
outside of production. The cost of this equipment is quickly becoming a paramount
contributor the overall cost of production.
The increasing cost of test equipment in semiconductor product manufacturing is
forcing many integrated circuit (JC) manufacturers to investigate cheaper alternatives. Testing
is quickly becoming a major cost of IC manufacturing due to the high-dollar automated test
equipment (ATE) used in the process. These testers often cost several million dollars with an
average life span of only a few years. At several cents per second, utilizing the tester's time
becomes crucial to maintaining good profit Cleariy a cheaper alternative to ATE is needed.
The capabilities of personal computers (PCs) suggest they have the potential to
provide adequate test diversity at low costs. Other alternatives such as specialized ATE, either
provide littie improvement in cost or are tailored to a specific test or product A PC, even
after being modified for testing, cost less than one tenth of a percent the cost of a typical ATE.
Therefore, a study was performed in order to determine if PCs cotild provide a viable
alternative to commercial ATE.
PC Test Stody
The objective of this research is to determine the capabilities of a PC as a circuit testing
device. The approach is to simulate an ATE on a PC using software in conjunction with
measurement hardware. This combination adapts the PC to perform general ATE type tests.
There are many options available when choosing the software and hardware for the design.
Choices were made that would provide characteristics similar to an ATE.
The software of the design is written in Laboratory Virmal Instrumentation
Engineering Workbench (LabVTEW), a graphical progranmiing language based on data flow
programming. The program is responsible for controlling and managing operations of the
hardware in addition to providing the operator with a robust interface. The hardware
incorporated into the PC is a data acquisition card (DAQ). This card is responsible for making
electrical measurements and generating the electrical stimuli required for administering the
tests.
Chapter II provides a background to IC testing, the type of tests typically performed,
the role of ATE, and an introduction to the PC tester design. Chapter III details the design,
implementation, and assessment of the PC tester. The results of the evaluation are presented
in Chapter IV and conclusions drawn firom these results are offered in Chapter V.
CHAPTER II
TESTING AND ALTERNATIVES
Integrated Circuit Testing
Circuit testing is an integral part of semiconductor product engineering. In an industry
where yield is contingent upon optimization, in-process and post-process testing is critical
Tests are performed during the fabrication process, after fabrication, and after packaging.
These tests are typically referred to as parametric probe, multiprobe, and final test, respectively.
At each step the objective is to "find the bad chips quickly, get them off the tester, and save
expensive tester time" [7]. The test must not only catch the faulty chip but also provide
information for vmcovering the fault mechanisms responsible for the defect However, this is
difficult since test coverage is compensated in order to reduce test time and increase
throughput When a chip fails a test, it is immediately discarded or inked. Inking marks the
chip to indicate that it should be ignored or removed later. The data that is collected is fed
back to the manu&cturing process control in an attempt to reduce abrupt process deviations
and eliminate defect sources.
Parametric probe test involves testing the wafer during processing before it leaves the
production line. Typically this test is performed after the first layer of metal is deposited and
etched thus providing coimections to the circuit devices. Some typical tests performed by the
parametric probe are gate oxide integrity, resistance, and interconnect continuity. These are
referred to as direct current (DC) tests.
Multiprobe, otherwise called wafer test or wafer probe, is typically performed after the
wafer has been processed and before it is separated into individvial die. The first test may be a
simple and fast functionality test Functional tests are performed by stimulating the device
rmder test (DUT) and comparing the output against an expected response. Functional tests
are sometimes referred to as alternating current (AC) tests. The stimulus used in an AC test is
often referred to as a vector. Other tests which may be performed are DC, stmcturaf, or
additional parametric tests. Stmctural tests are aimed at identifying stmctural failures such as
short-circuits or open-circuits.
Final test is performed after the die has been packaged. This test is critical for finding
faults which may have been introduced in the packaging process or faults which might not
have been caught by parametric probe or multiprobe. These tests may be performed at
elevated temperatures to catch circuits that would normally fail under thermal fatigue. The
tests are similar to the functionality tests performed dirring multiprobe. Often, final test is the
first test performed at the circuit's intended clock rate. This is primarily due to the previous
tester's lack of capacity to perform tests at such high ftequencies. In some cases an additional
test, called bum-in, is performed after final test. The objective of bum-in is to catch packaged
circuits that have a high probability of failing due to infant mortality.
Test Cost
Vendors such as Teradyne, Schlumberger, and Advantest produce automated test
equipment (ATE) to perform both functional and parametric tests. These testers are typically
very expensive and make up a significant percentage of production cost. There are several
factors that fiiel the growing cost of these machines. For every new generation of devices,
new testers must be developed. New process technologies become available approximately
every 18 months, therefore new testers must also be available within the same time ftame.
This is due primarily to the growing speed and comiplexity of new designs implemented with
the new technology vehicles. Decreasing feature sizes resxilts in greater fvmctionality. More
functionality results in more complicated circuits requiring more external pins to support the
internal system. Testers must be able to accommodate the new pins and package layout. Steve
Carlson in an EE Times article states "for complex, high-speed SoC devices, testers cost
between $2,000 and $9,000 per pin" [8].
In addition to growing sizes, circuits are also growing in complexity. Application
Specific Integrated Circuit (ASIC) design has grown in popularity due to its ability to provide
the customer with a customized integrated circuit in a very short time-to-market The testers
used in the production of ASIC products must be capable of fiJly exercising the circuit despite
the diversity of ASIC capabihties. Systems On a Chip (SoC) are also gaining popularity due to
their ability to implement many diverse operations on a single chip. One example could be cell
phones. Currentiy a cell phone may contain several ICs. However, an entire cell phone could
be implemented on a single die encompassing the processor, memory, and digital signal
processor (DSP). This requires that the tester be capable of performing not only processor
functionality tests, but also memory pattern tests and mixed signal DSP tests as well. Carlson
notes "the cost of testing complex system-on-chip designs will soon surpass the cost of
manufacturing them" [8]. Adding to the cost are the automated device handlers that deliver
the wafers or packaged die to the testers and the costiy routine calibration and maintenance to
maintain the tester's accuracy.
As an example of tester economics, a typical device in the year 2000 would have 1,024
pins and a clock speed between 0.5 to 1.0 GHz. A typical tester cost for this product would
have a bottom line charge of $1.2 million dollars in addition to an approximate charge of
$3,000 per pin. This brings the purchase price to $4,272 million dollars, as shown in Table 1.
Over the average running time of five years, the depreciation would be $0,854 million, the
maintenance would be $0,085 million, and the operating costs would amount to approximately
$0.5 million dollars. This leaves the tester costing $1.439 ttiiUion per year or 4.5 cents per
second [2]. This makes tester time crucial and down-time even more crucial.
Table 1: ATE cost example.
Purchase Price Fixed Cost $ 1.2 Million Per-Pin $ 3,000
(based on 1024 pin) Total .;; • $ 4.272 Million
Five-vear Linear Denreciarion Tner ve.ar) Depreciation $ 0.84 Million Maintenance $ 0.085 Million Operation $ 0.5 Million Total $ 1.439 MilHon
The cost of testing is quickly approaching the cost of production as devices evolve
ftom new technologies following Moore's Law. Moore's Law, proposed by Gordon Moore in
1965, predicted that the density of transistors per square inch in an integrated circuit would
double every 12 months. Carison proposes, "whUe the automatic test equipment industry
keeps an impressive and steady aimual productivity improvement of 15 to 25 percent, this is
not good enough to keep Moore's Law at bay" [8]. Carison proceeds in his article to name
four methods of reducing the cost of testing: test less, test more effidentiy, explore different
test strategies, and lower the cost of testers by investigating alternatives. The first three focus
on reducing testing costs by performing more efficient tests and optimizing tester time. The
last option has the potential of significantiy reducing testing cost without compensating test
time.
ATE Alternatives
There are many alternatives to ATE. However, there are usually drawbacks to each.
Most alternatives lack key characteristics of an ATE. ATE must be capable of performing
those tests mentioned previously, yet in order for it to do so, it must have great test versatility.
Some alternatives only perform DC tests and others only AC tests as a means of reducing the
complexity and hence the cost of the tester. This leads to specialized testers that are targeted
to a specific product or test Other alternatives do not even resemble an ATE in functionaEty.
Test benches are not used in production but in characterizing and testing the packaged circuits
outside of the production line. The test bench is usually comprised of several pieces of
precision sources and measiirement equipment used to perform similar tests as an ATE. The
drawback to the test bench is the lack of automation and a lack of repeatability. In addition, a
complete test bench with test diversity comparable to an ATE would require several pieces of
equipment possibly costing several hundreds of thousands of dollars.
Another alternative is virtual testing. Virtual testing involves modeling a circuit design
intended for silicon and stimulating the model with virtual test vectors. Virtual testing allows
test designers to simulate the tests to be performed on the product before the product is even
put into production. Nat Reeves of Level One Communications states "test engineers can
fiiUy debug test vectors before first silicon, minimizing the need for ATE during debug and
substantially improving an ICs time-to-market" [7]. The obvious drawback to virtual testing is
the lack of real test results exhibiting chaotic process flaws. Chad Fasca and Dylan McGrath
comment, "while test simulation software is expected to reduce test time, it will not eliminate
the need for real test" [4].
Virtual testing is performed on a PC using specialized software for simulating large
integrated circuits. If, however, a PC could be used to implement the fimctions of a
commercial A'FE, virtual testing and actual testing could be performed seamlessly on the same
machine. ITie new test system would be capable of performing the test simulation then
actually performing the test. Further, tiie cost of tiie PC tester would be only a fraction of its
commercial counterpart, thereby significantiy reducing the cost of production testing.
PC Tester
In order for a PC to perform ftmctions similar to that of ATE it must be able to
generate and measvure sources and responses of an integrated circuit This requires the PC to
be able to dehver and measure patterns of voltages and currents. In some cases the
measurements must be extremely accurate. Testing ^ t e oxide leakage reqiiires the tester to be
capable of measuring currents in pico-amps. For other tests, such as memory testing, the
tester must be capable of sending and reading thousands of digital memory patterns. Testing
clock jitter could require a tester to be capable of sampling a signal in nano-seconds. Cleariy,
the test system must meet many criteria. It must be fast, programmable, highly accurate, easy
to use, and adaptable.
Adapting a PC to perform ATE tests requires it to be adapted with software and
hardware for regulating and measuring voltages. LabVIEW was chosen as the programming
language for the software, as mentioned in Chapter I. LabVIEW is a graphical programming
language that is primarily used for PC controlled automation. LabVLEW's most robust
programming features are the built in subroutines for controlling external devices such as
DAQ. The program must conomunicate with the DAQ to generate voltage signals and to
make voltage measurements. Because the bottieneck in measurement speed should occur at
the DAQ, the programming language must provide maximum data throughput to the DAQ.
LabVIEW provides this with varying levels of abstraction in DAQ control At the top level
the programmer can easily manipulate the DAQ at the expense of speed At the next level of
complexity, the programmer can control timing and buffer contents of the DAQ. At the
highest level, the programmer can control neariy every aspect of communication with the
DAQ including timing, buffer contents, sampling time, triggering, and output multiplexing.
The DAQ is responsible for generating voltage signals and for measuring voltages.
Typically a DAQ is comprised of digital-to-analog (D/A) converters, analog-to-digital (A/D)
converters, multiplexes, amplifiers, a simple processor, and memory. Figure 1 shows a block
diagram of die National Instruments (NI) DAQ 6024E tiiat was chosen for the PC tester.
. irquw Anaiog Input , T . J inlerlace | Tlmlng/c^ttol ! L"'*'^"P
; ) L
Counte>f/ Timing I O DAQ-STC euv
I Analog Output i RT& I BUS [ TlmliiLjContfOl ] Interlace
nrni c - ^ DACO I
Analog Oirtpul (Noton6023E,.
DAQ-STC BUG
Arrak-g Ourpul
P*KJ and PUiy
I 92C:^
TvTv C
C.\]lbraOO(-| DACs JL RTSI Conn^ctoi
C (602;.EOntyi
Figure 1: NI-6024E block diagram.
The 6024E was chosen after making a compromise between cost, speed, and diversity.
The 6024E has 16 analog input channels for sampling voltage signals, two analog output
channels for generating voltage signals, and eight bi-directional digital channels. The 16 analog
input channels can be configured as 16 single-ended inputs or eight differential inputs. Both
analog inputs and analog outputs have 12 bits of resolution with variable voltage ranges. The
DAQ, as mentioned, is typically the bottieneck in sampling speed. Few commercially available
DAQs are capable of sampling faster than one gigahertz. The 6024E has a maximum
sampling rate of 10 kilohertz across two analog output channels and 10 kilohertz across all
analog input and digital charmels.
CHAPTER III
ANALYSIS
It is proposed that a PC could provide an alternative to some portion of commercial
ATE. To illustrate and test the proposal, an instance of the PC tester was designed and
assembled. Characteristics of the example tester can tiien be compared to characteristics of
other testing methods. The results of die demonstration would not be data coEected from
running example tests, but the abilities of the tester to perform tests similar to those run on its
commercial counterparts.
Design
The first step in designing the PC tester was to identify the desirable characteristics.
Since the PC tester is intended as possibly an alternative to ATE, identifying those fimctions
performed by the ATE would define the requirements of the new tester. Commercial ATE
perform either DC tests, AC tests, or both. Both tests requite different capabilities of the
tester. Bums and Roberts state that DC or parametric tests "are those that return a value that
must be compared against one or more test limits to determine pass/fail results." [7] Most DC
tests only require high precision voltage and current sources and high precision voltage and
current meas^u:ements. In some cases the soiirces must be capable of regulating a voltage
while maintaining a high current output For example, these may be required for power
supplies to an IC. AC tests have more stringent requirements. AC or fimctional tests result in
only a pass/fail result without any numerical readings. In order to perform AC tests, the tester
must be equipped with digital input and output (I/O) and analog I /O. In order to perform
some tests, the AC sources must also be capable of generating high frequency waveforms.
Testing filter bandwidth or settling time of a D/A converter, for example, would require a
relatively high frequency source.
Most ATE tests are programs written in a programming language recognized by the
tester. The programs control the operations of the tester to perform the tests. Peari and C++
are two popular languages utilized by commercial ATE for programming automated tests.
The test programs direct the tester to measure or dehver signals to the ICs I /O pins. The
programs provide automation of die test sequence and data interpretation while also
generating dynamic waveforms required by the tests. These waveforms may be digital patterns,
analog signals, or just DC voltages or DC currents.
The smdy is aimed at determining if similar tests can be performed, not automated.
However, in order to provide the flexibility requited for DC and AC tests, the PC tester had to
be designed to provide the same diversity in waveform measurement and generation. This
diversity is also present in bench testing. Bench testing involves utilizing several pieces of
equipment to perform die same DC tests that an ATE might perform. Typically bench testing
does not involve AC testing due to the complexity of the stimulus required. Digital testing is
similar; the size and number of test vectors required to perform digital tests are to
cumbersome for bench test equipment In addition, both digital and AC tests may reqvdre
hundreds or thousands of DUT connections. On a bench, making this many connections and
making them reliable is possible but not practical. Examples of the equipment used in a bench
test are oscilloscopes, function generators, DC regulators, spectrum analyzers, logic analyzers,
etc. If the PC tester could be designed to mimic bench testing, it would be able to perform the
same tests that are possible at the bench level Therefore the interface to the PC tester was
chosen to imitate test bench equipment
The PC tester design is comprised of several pieces of bench test equipment A virtual
oscilloscope provides analysis of a DUT's transient response. A spectrum analyzer, by
graphing the Fourier transform of the response waveform, provides a representation of the
DUT's frequency response. A fimction generator supplies waveform creation with standard
controls for shape, frequency, and phase. A logic analyzer provides graphical access to buffers
where digital patterns are loaded and delivered to the digital I /O of the DAQ. Interpreting a
digital pattern response can be done through a similar interface; an input buffer is designated
separate of the output buffer and again graphical access to the buffer provides the ICs
response to the user. The next section will fturther describe the details, operation, and interface
to the virtual instruments of the PC tester.
10
PC Tester Semp
The PC tester is comprised of two parts, tiie NI-6024E DAQ and a program in
LabVIEW for controUing tiie DAQ. The 6024E is a plug-and-play device, and once installed
it is immediately recognized by tiie operating system. Software available for die DAQ assists
in the configuration the device given certain user specifications. The most important option
available in configuration is the chanJiel range. For measurements tiiat do not require large
voltage ranges, the input channel range of the DAQ can be reduced in order to increase the
measurement accuracy. Table 2 lists the ranges available and their corresponding accuracy. As
can be seen in Figure 1 the DAQ contains a programmable gain instrumentation amplifier
(PGIA). The PGIA feeds directiy into the A / D converter. The A / D converter provides a
measurement with 12 bits of resolution. Therefore, if the PGA is programmed to a gain of
0.5, the maximum accuracy obtainable is
tl»3+llovi=w=4.88mV
or for a gain of 100 the maximum accuracy would be
| -50mV|-h|50mV| _ IQOmV __ C)A A-, , , T ; 2^ 4096 — ^'i-^J-pV'
However, it should be mentioned that the NI-6024E has an absolute accuracy of 119[iV at fiiU
scale for a —50 to +50mV range which is more than the resolution of its measurements at that
range.
Table 2: Gain and measurement precision.
Gain
0.5
1.0
10.0
100.0
Input Range
-10 to+10 V
-5 to +5 V
-500 to +500 niV
-50 to +50 niV
Precision'
4.88 inV
2.44 mV
244.14 pV
24.41 pV
' The value of I LSB of the 12-hii ADC; ihal is, (he voltage incieiiient eorrespomljng (o ; eh:i(i"e of one cotiiil in the ADC I2-Iiil coiiiil.
The software for the PC tester requkes that LabVIEW be installed on the computer
that the program is running. Installing LabVIEW is easily done through an installation wizard
11
available witii die programming language. Once installed, the PC test program must also be
installed on tiie same computer. The program consists of 27 files that must be copied to tiie
same directory on die computer. Once copied, tiie program can be initiated by opening if s
root virtoal instrument (VI), Main.vi, and nm from the LabVIEW file menu.
LabVIEW, as mentioned before, is a graphical programming language. Writing a
program in LabVIEW involves selecting subroutines, indicated as icons, and cormecting data
paths between the subroutines, indicated as wires. Figure 2 shows a simple example of a
LabVIEW program that generates waveforms.
hflfsBtt
l-eset signaijl TF ||
signal typelL-iU
frequency iLBgyl
impl i tudelEl^
tahaselE
Sampling infolL-g°=J
duty cycle (%)VIKH-
I ^ IjiA/aveform
MkH^hase out
Instructions
Figure 2: LabVIEW program example.
The icons on the left represent data being introduced by the controls on the interface
panel in Figure 3.
I l^ i Fvjnrt ion Generr^tor examnlR.v i v ^ ^ ^ ^ ^ ^ ^ ^ ^ H l a l H l l
Eile Edit OperalE
I O l # l | l l |
signal type
^/Sine Wave
frequency
' te.so
amplitude
' / I . DO
offeet
',):0.oo
phase
'jiO.OO
duty cycle (%)
^teD.OD
1
Xools Browse Window \^\p
1 15pt Application Font - | | ± o - | | ^ ' ' | | ^ - l
reset signal Wavelbrm
|OFF
-*• 0 5 -sampling hnfo m
FS :_ 0.0
i) l.OOk <
•#s - ° ' = -
:,'i.00k _j^()_
0.
phase out
,180.00
i 1
DO 0.2D 0.40 0.60 0.80 l.C Time
a
Instructions
Set the inputs to the desired _ i values and run tha VI, iNotice that the time changes ,
1 1
M • l i
1
1 1'
A
Figure 3: LabVIEW program interface example.
12
The data collected from the controls is supplied to the fimction generator VI located
in the middle of Figure 2. The routine generates a waveform specified by the data supplied to
it. The result of the subroutine is fed out to the indicators on the right side of the subroutine
icon. The data suppUed to the indicators is then presented on the user panel as a waveform
graph and phase out indicator. As a rule of thumb, the input to a VI is typically on die left of
the icon and the output to the right. The colors of the data path wires indicate the type of data
being transferred and it's precision. In the programming window, controls are represented
with bold outlined icons and indicators have thin outlines as can be seen in Figure 2.
Program Operation
The program is divided into four primary blocks: the control program, input, output,
and a connection block diagram. The tester performs two general fimctions, it generates
analog or digital output and measures analog or digital input. Therefore, two separate
programs were written, one for generating output and one for measuring input. A control
program (Figure 4) was created in order to call the separate input and output programs. The
last program provides a depiction of the connection board for locating channel connections.
13
•i!^: TestSvstem.vl idi<J
Analog Output
° J J l Analog Input
J '
J =
J '
J «
J " J 13
Jl5
error out DAQ Device Number SIR 1
AO Buffer Size
AQ Samp n-eq Actual Update Rate
ijllOOO I ^.DD I
AI Buffer Size
IDOO
AI Samp n-eq Actual Update Rate
1000 |D.QO
I Vievif Cormectlonsl
StB»-t error out 2
•
Loop
0 dw
1 Figure 4: Control program interface.
Control Program
Since the tester has multiple input and output channels, writing a separate program for
the input and output fimctions allows the main program to instantiate instances of these
programs rather than opening separate copies for every channel. For example, the tester has
two analog input channels for measuring analog voltage waveforms. When analog chaimel
one is switched on, an instance of the analog input program is created and run. If chaimel two
is then switched on, a separate instance of the same program is opened and run. The program
sequence is shown in Figure 5.
14
r]g>,[A)
oEiirfni
^ [ Z >
ir llAnalog Input ChanneF
m (^^-p -M±I^J
tBt —)«>=%>•
Figure 5: Analog input program control.
Constants on the left have replaced the channel switch controls for simplicity. Prior to
the channel being turned on, the program generates the string "Analog Input Channel 0" to be
used for the subroutine's ftitute tide. When the chaimel is switched on, the routines located
within the True case of the True/False case statements are performed. For the case of the
channel being turned on, the program opens the analog input VI, Al.vi, as step zero of the
sequence loop and assigns an operating system handle to i t Step one, shown in Figure 6,
assigns the tide to the subroutine.
Figure 6: Sequence one.
Step two, three, and four supplies to the newly opened routine, the parameters
required by the routine to execute such as the process identifier associated with analog output.
Step five executes the subroutine and six closes the handle created in step zero.
When the channel is switched off, a new handle is created similar to the previous
sequence. The handle is then used to close the subroutine and clear it from memory. This is
15
the primary advantage of dynamically opening and closing the input and output programs.
When the programs are loaded and executed, they consume system resources such as memory.
Rurming 18 programs simultaneously would dramatically slow the computer and possibly
compromise the performance of the DAQ. Therefore, unless the programs are being used,
they are removed from memory, releasing the system resources. In addition, this approach
reduces the program's complexity.
In addition to calling the input and output programs, the main program also performs
the configuration routine for the I /O charmels. Every time a request is made for the DAQ to
generate a signal several things occur that must be initialized ahead of time. The same is true
for the DAQ to make voltage measurements. It is possible to have multiple DAQ in one PC.
Therefore the program must first know what device the operation is being requested on.
When the DAQ is installed it is assigned a device number. This device number is like an
address to the device. This is important if the computer is installed with multiple DAQ. In
order to distinguish which DAQ the program is controlling, a valid device number must be
provided to i t This control can be seen in the main program interface of Figure 4. The
program will return an error in the error window if the user supplies an invahd device number
that is not recognized by the operating system.
The DAQ generates waveforms using D/A converters. These converters generate
voltages from data samples deHvered from output buffers that are declared in the computer's
random access memory (RAM). The samples are generated at a rate specified in die hardware
setap. Therefore, in order for the board to generate a waveform, the buffer size must be
defined, tiie memory allocated, and tiie sampling rate given by tiie main program. All of tiiese
operations are shown in Figure 7.
16
"HTrue y-r
^jAnalogOutputO
^AnalogOulputl
iSAnaloglnputg
^Analoqlnputl
liAnaiagInput2
ISAnaloglnput3
>SAnaloqlnput4
IjAnaioglnputS
isAnaloqInputS
ISAnaloglpput?
i^Analoglfputa
IjAnaloglnpuig
1
teAnalaglnpuUO
i jAnatoglnmtl l
^AnaloQInpuaz
(jAnajoqlnpjtia
iiAnaloqIiTputl4
^AnaioglnpuaS
Allocate host compulgr memory"^
^ A g Devce (Mumfaerl
TO Buffer Sizel
IftI Buffer Size]
Figure 7: Analog I /O initialization.
On the right of the Figure, in blue, are the controls for the DAQ device number,
analog output buffer size, and analog input buffer size. The digital counterpart is similar and
not shown in the figure for simplicity. In the middle is a Tme/False case statement The
routine within the true case is performed when any of the three input controls gains the
program's key focus. The key focus is assigned to a control when its value is being changed.
The routine inside the true case, initializes the analog input and output channels, combines
theit parameters into two arrays. These arrays are supplied to the analog input and output
group configuration subroutines along with the DAQ device number, and buffer sizes.
The DAQ is only capable of generating an analog output sample every tenth of a
millisecond. If both analog output channels are being used, the board must switch between
channels limiting tiie maximum output sampling frequency to 5 kilohertz (assuming both
channels are requesting the same rate). It is possible however to achieve a higher sampling rate
on one channel by compensating the rate of the other channel. In either case, if the user
requests tiiat a signal be generated, which exceeds the DAQ's capabilities, die program returns
the actual samphng rate that was achieved when the signal was generated. Both the sampling
rate control and the actual sampHr^ rate display can be seen on the main program in Figure 4.
The code sequence for this fimction is shown below in Figure 8.
17
^O Sarrp Freql
M Samp Frig] B
. B a a a a & O B B d i ^ f i n f l a d i h n h H i i i b ' a d l J ,
Figure 8: Analog I /O test control.
The tme case is executed when the user pushes the start button, accessible in the
control program window. Inside die case stmcture is a sequence. The first of the sequence
supplies the analog task identifiers and the buffer sizes to the analog start Vis. These Vis
instmct the DAQ to generate die data samples stored in tiie analog buffers referenced by die
task identifier. The program then waits for the DAQ to complete the signal generation and
measurement samples. Next in die sequence, the program sets a global variable that is
accessible to all subroutines and programs currentiy running in LabVIEW. This is shown in
Figure 9.
1 liool- 0
n n n n n n a a p D n n n • • • n b a d d ri t ran
Figure 9: Sequence one, analog input refresh and wait.
The variable acts as an indicator, indicating that there are new contents in the analog
input buffers. AH analog input programs running monitor this global variable. When the
variable indicates there is new data, the input programs refresh their displays to reflect the new
data in their display. A timer keeps the variable's value for 100 milliseconds.
18
ITie last step of the sequence resets the global variable, and resets the start button's
position tiiat was initially turned on by the user. This indicates die signal generation and input
measurement routine has completed.
A connection block diagram (Figure 10) is also accessible from the main program's
interface. Physical coimections between the DAQ and the DUT are made through the actual
connection block. The block provides access to all of the DAQ I /O channels. The channel
connections are laid out in rows and are numbered from 1 to 68. The purpose of the
connection block program is to make it easier for the user to locate specific channels on the
board to reduce human error. When the program opens, it displays a layout similar to the
actual connection block. The user selects a specific channel from a channel list to locate on
the block. Once selected, the channel is highlighted and a short description of the channel's
fimction is provided in the adjacent window.
"""""^•3113 1 Connection Board [ConnBoard.vi] Elte Edit OperatB Icrols browse WftTctaw tlslp
I I6pt Appticaton Font ' l | t o ' l | i i B ' | [ ' ^ ' j
Connection
Select Connection
>J7.
Figure 10: Connection board program interface.
The program for opening the connection block program is shown in Figure 11 and is
present in the main control program. When tiie user selects to view tiie connection block
19
diagram, tiie control program loads and executes die connection block program. This is done
m die same fashion tiiat die analog input subroutines were called previously in tiiis chapter.
Again, when tiie user is not usmg tiie program, it is closed and its resources returned to tiie
operating system.
•^m\ "HI True k r
E > r x ) | IC°nnBoardv i | [ i l l | jConnBoardl
0-S IConnBoard.vil I H D |connBoard|
L 0? I n i l
J, g-evi ° •FP.Open L
.^......r^.,...,,.,.,^
Figure 11: Connection block program control.
Connection Block Program
When the connection block program is executed, the program initializes an array of
strings that contain the descriptions for each channel. This is shown in violet on the right of
Figure 12.
t f c E b E E E M R a N M I ThSwiTdowdiqalaysinfbnmatfan about the
jonnsction channsi bskig highlighled.
Figure 12: Array initialization and selection routines.
To the left, two other arrays are initialized with pin numbers. For each channel on the
DAQ there are multiple grovmd terminals and in some cases multiple source terminals. For
instance, the grounding pins for analog channel 0 and 1 are internally connected within the
DAQ. Therefore either may be used as ground for either channel Therefore, for each
20
channel tiiere is a corresponding list of possible ground pin numbers and a Est of source pin
numbers. When die user selects a channel, die two strings of pin numbers are pulled from die
array and sent to the indicators shown in Figure 13.
'Blnkfig
Figure 13: Pin indicator controls.
There are 68 indicators for the 68 output pins of the DAQ connection board. The
code for a single indicator is shown for clarity in Figure 14.
LED cont,
P I T F J . P !? H i ^ ^ V
' Visible 'Blinking
W' F^ure 14: Single indicator control for pin one.
As mentioned, the arrays supplied to the "LED cont" VI contain a list of source and
ground pins. The "LED cont" VI searches botii arrays for die pin number indicated in blue.
If tiie number exists in the source array, die "LED cont" VI makes die indicator visible and
illuminates i t If, however, the 'TED cont." VI detects tiie pin number in tiie ground array, it
makes the indicator visible, higUights the indicator, and flashes the indicator on and off. The
21
result appears as flashing ground pins and illuminated source pins when any channel i
selected. is
Input Program
As mentioned before, die main program spawns instances of tiie input and output
programs. The input program can be seen in Figure 15.
injxj
Figure 15: Analog input program interface.
The main function of the input program is to graphically display the contents of the
input buffer after a measurement has been made. How the system generates signals and
makes measurements will be covered later in this chapter. However, when the DAQ is
instructed to sample the input channels, it stores the sampled data points in the first-in-first-
out (FIFO) memory located on the board if the requested buffer size is the same size or
smaller than the amoimt of memory on the board. If the requested buffer size exceeds that
available on the card, the computer's memory is allocated as the input buffer instead. The
maximum sampling rate of the input channels is much higher, 200 samples per second. The
data points are being stored directiy on the DAQ, which is much faster than first being
transferred through the PC's PCI bus and into memory. After the DAQ has completed die
22
number of requested samples, tiie input program retrieves die data points and plots tiiem on
die graph visible on die mterface. The interface provides controls for die user to pan across
the data points or zoom in on select data pomts.
When die control program opens die input program, die input program first waits for
die "AIRNotification" variable to be assigned a tme Boolean value. This is die last fimction
die control program performs when it loads and executes die input program. After tiiis, tiie
program automatically reads die input buffer. If die buffer is empty it waits until die control
program changes die value of die global refresh variable. This variable was discussed eariier in
die context of die control program. The wait is done tiirough an infinite loop tiiat
continuously checks tiie value of die global variable. The wait loop is visible in Figure 16 as a
gray line encompassing the Tme/False case stmcture and corresponding control logic below.
Figure 16: Analog input refresh and wait routine.
The logic below the case statement allows the user to manually refresh the contents of
the input window or close the input program.
After the input program detects a change in the global variable, it reads the new
contents of the input buffer and stores it in a local variable called "Element" which is shown in
brown in the previous Figure.
When "Element" contains data, it is transferred outside the infinite loop to the display
window where it is graphically presented to the user in the window shown in Figure 15. This
sequence is shown in Figure 17, where the local variable is on the left and the display window
is on the far right
23
I 11:1. L^vdt
t2. m m I
h/Vaveform Graph]
ma
' 1
"H-i, laBtaultR"
XbrjlQ.bdit-ahie YScals I'ditahle
d Figure 17: Analog input display window controls sequence.
Changing the limits of the window is accomplished by the user pushing one of the 12
control buttons below and to the left of the display window. The data from these controls is
compressed into an array as shown in Figure 18.
Figure 18: Window control conversion to control
array.
24
This array is passed back to up the case statement in Figure 17. This case statement
determines which button was pressed. For each case, tiie current window settings are fed into
tiie case statement, altered depending on the operation, then reassigned to the display
window's properties. As an example. Figure 19 shows case four where the user has pressed
the pan up button.
^'-•l III • Minimum
!4,D0|- Ltf
« 2 ^ ^ ^
S S
Figure 19: Pan window up routine for window control.
First, the window's current dimensions are sent into the case structure. Inside the
structure, the height of the window is calculated as YScale.Maximimi — YScale.Minimum. The
result is divided by four in order to pan the window up by one fourth. The result is added to
the window's current YScale.Minimum and YScalcMaximum to obtain the new display
parameters. Then the new parameters are sent outside the case stmcture and reassigned to the
window's current setting.
Output Program
The output program is primarily responsible for directing the user when defining the
output and for loading the output buffers. As mentioned before, a buffer is designated in
memory for the output waveform data. When the DAQ is instmcted to generate an output, it
pulls the data points from the buffer and generates them with die D/A converters at tiie
sampling rate defined in the main program. The output program provides the user with
several signal options. First the user can choose one of the following waveforms: single tone,
muititone, square, sawtootii, triangle, or a constant for DC. For each signal type, die program
25
provides different controls. For example, in Figure 20, die signal currentiy selected is die
muititone waveform.
EllB Edit QparatB
«[^jmii i lEKltj
lools arowsB Jftllndo™ help
S l^a l Type
Multttone -J Noise View Wavefbrm
l ""® __JlJ IVIBWJ
• i ' l • 1 lslivTd>er of Tones
Frequency 1
9 0.00
# 0.00
9 0.00
9 0.00
• 0,00
• 0.00
• 0.00
• 'O.OD
9 0.00
• 0.00
ti
Amplitude 1 Phase 1
0.00
'o.oo
0.00
iO.QO
0.00
•0.00
,0.00
,0,00
0.00
:0.oo
n.Do
io.oo
0.00
0,00
|o.'oo"" '
,0.00
0,00
io.oo
jo.oo
0.00
lEdrtl
[ iS l [m} [HSI
[PO [ i * ] [ES I
rsri [ M ] f id^
W - inlxl
AO
«
Save WavBftirm
1 Save Waveform 1
t
1
mi
1 '''6 Figure 20: Analog output program interface.
The parameters of a muititone waveform are: the number of tones, frequencies of the
tones, ampHmdes, and phases of the tones. If the user were to select a square waveform the
muititone controls would disappear and controls for duty cycle, frequency, and amplimde
would appear as shown in Figure 21.
26
EIIB Edit Operate lools Browse j/Vindow Help
•[¥1|#[S1
.zMjii
"3 signal Type
Sawtooth T^
Noise None v l
View Wavefbrm Save Waveform
I View i |save Waveformj
FrequencySwrT AmplltudeSwIPhasBSwT
0.00 0.00 0.00 fidin
LLJ_
Figure 21: Program interface displaying sawtooth waveform controls.
Once the waveform parameters have been selected the user must save the waveform
in order to load the output buffer. The "Save Waveform" control generates the waveform
data points and writes them to the output buffer.
In addition to providing various waveforms, the output program also allows the user
to add noise to the output signal. Three types of noise are available: Gaussian, periodic
random, and uniform. After parameters of the waveform have been selected, the-waveform
can be viewed with a separate program. The program provides a waveform window similar to
the one used in the input program.
The first operation performed by the program is to determine what waveform the user
has selected. For each type of waveform, there is a local variable that is used to display and
hide the waveform controls. The waveform selection control and their corresponding variable
are shown in Figure 22.
27
t=>
nm ShgleToneVl
Visible
viutatoneVl
SavKtoothV
m l •Visibtt
mnj
SquareVl
MoneV anl 1 ! ^ n •Visible
3aussianV|
an l •Visibb
^enodicRVl I3E1I
•Visible
UniformVl J D I
•Visible
fnanglej
Figure 22: Control visibihty assignments.
When a waveform is selected, the variable corresponding to that waveform type is set
to a Boolean true value. When the local variable changes state, the controls corresponding to
that variable either appear or disappear depending whether they are being used. Figure 23
shows the local variables and their assignment to the visible properties of the waveform
controls.
28
^ 3 tesi^^S^^^^^^p—3^^^ Jlitude 1 ^ i ^ y e 2 l a,iTgitude3l ftirAjdi
Figure 23: Control visibihty assignments.
At the top are the frequency, amplimde, and phase controls for the muititone
waveform. The muititone allows up to ten tone contributions, therefore there are ten sets of
these controls. Below this block are the on/off indicators for each of the ten multitones.
Under this are the controls for the square, triangle, single tone, sawtooth, and DC waveforms
that work in the same manner.
Once the user selects what type of waveform to generate, the program takes that
selection and uses it to select a case in a case structure. Within the case structure are the
routines for generating each of the different waveforms. Figure 24 shows the contents of the
first case when the user has selected the single tone waveform.
TequencySTl
^ditST| | ^ m |ftmpltijdeST| valued
;eST
||FrequencyST|—i
)Seltings|| I ' M 1
Figure 24: Single tone waveform sequence.
On the left, when the user selects to edit the parameters of the single tone, the
program enters a True/False case stmcture for the tme case. Within the tme case, the
program first reads the current values of die frequency, amplimde, and phase tiien sends these
29
values to the "F & A" VI. When this VI is called it brings up the control window shown in
Figure 25.
eilB gdlt Operate loots frowse )titndow t l B ^
J a n •Bri i^ri^^i^n>an.-l[;^|s^[?*r:^
4a 5.0 g,s
4,0 . ' ' ' " ' ' • ' « , ^ 6.0
3 5 , ' '
ABiJil
3
M
f T 3.50
3.00 ,v-
2 . 5 n /
2,Q0C
i.5o:. ^
1,00'
0.3) ' ' .
11.00
1.00
N
4.50 5.00 5.50 6.00
• ' • , 6.50 " ^
1
i A w
• ' , 7,00 %
1 '•,'•511 i
I ' " • , .S0
'•"i s'^l-^J
affO^^F
Cancel
Frequsncy
160.0
140.0 . , . - ' ^ ' "
130.0 _.v '
120 0 . , ' '
i m o ,*'•
100,0 , ' ' ^ _
9 0 0 / ^ g
ai-o- *
^°' «.0-f sa.0--
•f f i .D '
3 0 , 0 ' ,
1B0.0 200.0
V AfTfllHuds
•D.QQD
, 220.0 ' ' • » , 230X1
' ' / , 240,0
\
' ^ H
t-^IH^I
' ' , 260.0
'-Z7D.D
V280,D
1 : m,a
1 ^300.0
• 5310.0
' hss^s^
/330.D
20.0 '-_
ID.o'' ' .
/aiao
350.0
360.0
Figure 25: Edit waveform properties program
interface.
The values sent to tiie "F & H" VI are initialized on die controls so tiiey reflect die
current values. The user can tiien make adjustments to all diree parameters by eidier rotating
tiie course dials or tiie fine dials. The programming behind die "F & H" VI is shown in
Figure 26.
30
Jkfreql
Figure 26: Dial initialization and display adjustment routines.
First, the program initializes the dials by calculating their position relative to the
current ranges selected for the dials. This is all seen on the left half of the previous figure. On
the right, the program continuously monitors the values of the dials and updates the digital
displays below the dials to provide a numerical readout of the current value. The readout
displays the sum of the values obtained from the course and the fine dials. When the user
pushes "ok" the program returns the values displayed in the digital displays to the previous
program. If the user selects to "cancel" instead, the program exits and returns the previous
values without change.
When the program returns from the "F & H" routine, the values returned are assigned
to the displays. The program then sends these values in addition to the analog output settings
to the sawtooth VI shown in the right half of Figure 24. This VI, available in LabVIEW, uses
the parameters to generate the appropriate data for a sawtooth waveform.
AH other waveform types are similar with the exception of the DC and muititone
waveforms. The programming behind the DC waveform is shown in Figure 27.
31
^ ^ gs]-
Figure 27: DC waveform generation routbe.
The DC waveform is generated by creating the waveform data from a constant value.
The analog output settings define the size of the waveform array that is initiaUzed with die
constant obtained from the DC dial control. The array and the analog output settings are
lumped into a waveform data type and sent out of the waveform case structure.
The muititone waveform is similar to the single tone waveform, however there are ten
tone settings that must be combined into an array and supplied to the muititone VI supplied
by LabVIEW. Figure 28 shows the contents of the case structure for the muititone selection.
giiCO—
Figure 28: Muititone generation routines.
Each block in the program is similar to that shown for the single tone. The output of
the blocks are pooled into three arrays of frequency, amphtode, and phase as seen on the right
32
TTiese arrays are tiien supphed to tiie muititone waveform as mentioned. The output, as in aU
otiier cases, is tiie waveform data tiiat is sent out of tiie case stmcmre.
Once tiie waveform data has been generated witiiin die case stmcUire, tiie program
loads tills data into die output memory buffer as seen in Figure 29.
Figure 29:Save waveform sequence.
The waveform data, entering on the left is brought into the true case of the Tme/False
case structure when the user chooses to save the waveform. Once in the case structure, the
data is sent to the analog output buffer write VI along with several other parameters such as
the analog output settings, task identifier, and buffer address. The "Write" VI then loads the
waveform data into the output buffer and returns control back to the output program.
The user also has the option to view the resulting waveform through a control in the
output program window. The waveform viewer is the same one used in the analog input
program, with the exception of the "refresh" control. The waveform can only be viewed after
33
die parameters have been defined, radier than while tiiey are being defined. Therefore there is
no need for a refresh control.
Operation
In order to administer a test, the system must carry out several tasks. The system must
generate a stimulus defined by the user and simultaneously measure die DUT's response. First
the system must initialize the waveform data to be generated. The user is responsible for
defining the waveform and its characteristics. Then he/she must save the waveform. The
program clears the buffer then loads the new data into the buffer. Once the data is in memory
the user can run the test sequence from the main program. The input channels do not require
any configuration; they are programmed to sample at the maximum rate possible. When the
user selects to run the sequence the program first initializes the output channels currentiy
configured. This involves setting the sampling rate and test duration for each of the active
channels. The program then checks that valid data is stored in the output buffer. If so, the
program instructs the DAQ to generate the data in the output buffer and begia sampling the
input channels. Once the sequence is completed the program, by means of a global variable,
instructs all open input programs to retrieve new input data. The input programs then refresh
die waveform display with the new DUT response.
To ftirdier illustrate how the PC tester would be used to perform actual tests, take as
an example testing to find input offset voltage of a simple amplifier. Input offset voltage is the
voltage that must be supplied to the amplifier in order to bring the output voltage to a desired
reference voltage. For an ATE to perform this task would be trivial. The following is a
pseudocode example for measuring the input offset voltage of an amplifier,
ampout ~ amp_input_offset_voltage()
{
connect meter: amp_output /*connect voltmeter to amphfier's output*/
set ViO - OV; /*set die amplifier's input 0 to 0 volts*/
for i = 0 to 100
{
set Vil = 5V - i * 50mV; /*decrement tiie amphfier's input 1
34
from 5 volts to 0 volts*/
ampout = read_meter(); /*read voltage level at amphfier's
output*/
if ampout == OV exit for; /*if amphfier's output is OV exit for
loop*/
}
return ampout;
}
In order to perform the same test with bench equipment, the test setap would require
a precise voltage source and meter. First, the voltage source would be connected to the input
to the amplifier as shown in Figure 30.
Voltage Regulator
+
Vi1 -OVtoSV +
ViO -
OV
DUT
+^\.^^
OPAMP I >
Volt Meter
?r K. b
Figure 30: Supply and meter connections to amphfier example.
Next, the voltmeter would be connected to the output of the amphfier and grounds of
both die source and amphfier connected. Next, die DC output voltage of the amphfier would
be read. The voltage of the source would tiien be adjusted until the meter read zero volts.
This is assuming zero volts is being used as tiie reference voltage. Finally, voltage supphed by
the source would be measured with the same or separate meter.
The procedure for performing the same test on die PC tester is very similar. Fkst tiie
PC tester wordd be connected to the device in the same manner as the equipment One of the
tput channels of tiie DAQ card would be connected to the input of tiie ampUfier. The oui
35
output of the amphfier would be connected to die analog input of the same DAQ. Once the
connections have been made, the main testing program would be opened. In the program, the
channels that are externally connected to the DUT are selected. Then, the stimulus is
configured by opening the analog output window of the analog output channel being used.
DC would be selected for the waveform to supply. Two dials appear immediately, the course
voltage control and the fine voltage control. An initial voltage would be selected and die test
run from the main program window. The PC tester would supply the DC voltage for a default
length of time and the output voltage of the amphfier would be available in the analog input
window. The result would be evaluated and the appropriate adjustment to the input voltage
made in order to bring the output to the desired reference voltage.
A faster and more effective method that is possible with the PC tester would be to
supply to the DUT a ramp voltage waveform of low frequency. The settings for this
waveform would be made in the same place as the settings for the DC voltage. However, the
test would only have to be run once. From the response of the DUT, the point in time the
output of the DUT achieved the desired reference voltage could be determined. The output
voltage could be read from the output waveform window. The same point in time could be
determined from the stimulus waveform, giving the required input voltage.
36
CHAPTER IV
RESULTS
In order to perform AC and DC tests, ATE and bench test equipment have specific
capabiHties tiiat are required for die tests. To determine if a PC could be used to perform
production testing or bench-level testing on ICs, die capabiHties of die tester can be compared
against tiiose of tiie testers currentiy in use. The comparison breaks down into tiiree topics:
hardware capabiHties, adaptabihty, and DUT interface. TTie comparison indicates tiiat die PC
test system can more easily perform characterization tests tiian ATE. It also indicates tiiat tiie
PC has tiie advantage of automation and tiie abHity to easily coUect measurement data unHke
bench equipment However, ATE suffer from many shortcomings also. The PC tester cannot
produce measurements as accurately as ATE or bench equipment Also, die PC tester is
incapable of measuring currents and lacks vector memory.
Hardware CapabiHties
Hardware capabiHties refer to the tester's flexibiHty in producing and measuring
voltages and currents. Most ATE are customized for the types of tests they are targeted at
performing. However, there are stiU similar characteristics that can be used as a benchmark
for evaluation. Some of these characteristics are tabulated in Table 3. Table 3 includes specific
values from a few select commercial ATE for comparison purposes.
Table 3: Specification comparison ATE.
Characteristic
Maximum Sampling Digital I / O Channels Analog I /O Channels
Voltage Source Measurement Ranges (V) Measurement Ranges (T)
Bit Resolution Switching Matrix Output
PC Tester
200 kHz 8
16/2 -lOV to +10V
±50mVto±10V N / A
12 N / A
Teradyne J973
41 MHz 1024 N/A
40V to +20V ±64mV to ±2.048V
N/A 12 32
Agilent 4072A Parametric
Tester
IMHz N/A
8 -40V to +40V ±2uV to 200V
lOfA to lA 16 48
37
The values in tiie table indicate tiiat witii die current DAQ card, NI-6024E, tiie PC
tester is comparable to ATE m some respects and not in odiers. Most importantiy, die DAQ
aUows die PC to meet tiie most essential criteria of being able to generate signals and make
measurements. This capabiHty is paramount to any Umitations or otiier capabiHties since tiiis is
requked for every test Beyond tiiis essential criteria, tiie most noticeable deficiency is die PC
testers sampHng rate. The PC tester's sampHng rate hardly compares to tiiose achievable by
tiie commercial ATE or a bench osciUoscope. This is a critical aspect of botii DC and AC
testing. Smidi states "a test program often generates hundreds of thousands of different test
vectors appHed at a frequency of several megahertz over several hundred miHiseconds." [7]
Smith is referring primarily to AC tests, however even DC tests require measurement settHng
times close to the same frequency in order to perform a typical regimen of DC tests. Cleariy,
the PC tester configurations in Table 3 would not be capable of performing the same volume
of tests achievable by an ATE, whether AC or DC, in the same amount of time. However, the
sampHng rate of the PC tester are defined by the type and model of DAQ used. Other DAQ
currentiy available are capable of achieving much higher sampling rates, even rates comparable
to ATE. The tradeoff is the increased cost of the DAQ. In addition, when comparing the PC
tester to bench hardware, there are some tradeoffs. Table 4 shows some benchmark
characteristics of test bench equipment compared to the PC tester setup for this study.
Table 4: Specification comparison bench equipment
Channels Max. Input Voltage
Max. Output Voltage Max. Output Frequency Max. Input Frequency
Max. Resolution
PC Tester
16 10 V 10 V
5 kHz 100 kHz 24 [iV
Fluke PM 3380B Combiscope
2 50 V N / A N / A
500 MHz 20tiV
Wavetek 1281 Multimeter
1 1000 V N / A N/A
IMHz 1\).V
Huke 5138A Function Generator
1 N/A 24 V
20 MHz N/A 2|iV
It is clear from the table that test bench equipment can produce more accurate results
than the PC test system. GeneraHy, bench equipment, Hke DAQ, are available that can
produce the degree of accuracy required. The only discrepancies, which cannot be realized
38
witii a DAQ, are die maximum voltage ranges of die output This is due to the DAQ residing
witiiin a PC in a PCI bus where die card reHes on the PC for power to generate signals.
While bench equipment may provide more accurate measurements for each test
performed, it is not reconfigurable widiout physicaUy altering the test setap. This is an
attribute not Hsted in Table 4. The PC tester can be reconfigured and adapted to any test
simply by altering the program much Hke an ATE.
Another downfaH is that some DAQ cards are incapable of measurir^ currents. This
capabiHty is critical for some DC tests such as current leakage or power consumption. Again,
however, DAQ are available that are capable of measuring currents. Table 5 Hsts some DAQ
that are currentiy on the market which have advanced capabiHties exceeding their less
expensive cotmterparts.
Table 5: DAQ card comparison.
Analog Inputs Digital I /O Channels
Analog Outputs Input Resolution
Input Gains
Maximum Input Ranges Bit Resolution
NIPCI-16 8 2 12
0.5,1,10,100
±10 12
NIPCI-6031E 64 8 2 16
1, 2, 5,10, 20, 50, 100
±10 12
NI PCI-6071E 64 8 2 16
0.5,1, 2, 5,10,20, 50,100
±20 16
Although it may be possible to find a DAQ capable of high-speed test appHcation and
current measurements, there are few, if any, DAQ available which provide a comparable
number of I / O pins that a typical ATE does. Most ATE are capable of supporting tiiousands
of pins. Most DAQ available only support at most 100 pins. This is a critical difference since
most ICs produced have more than 100 pins. Bench testing suffers from tiie same set back
For neariy every pin there must be a separate piece of bench equipment This is unreaHstic due
to the price and size of bench equipment
The only solution to this drawback is to outfit tiie PC witii more tiian one DAQ.
However, m reahty, this is not a reaHstic solution. Most PCs have a Hmited number of PCI
slots or I / O ports for connecting additional DAQ. Expansion cards could be added to die
computer, expanding die number of PCI slots to accommodate die volume of DAQ tiiat
39
would be requked. However die speed of die computer would be severely degraded m
addition to die availabihty of system resources.
Versatility
Anotiier critical aspect of ATE is tiiek abiHty to perform a regimen of mixed tests on
every ckcuit in production. Tlie test programs for an ATE control tiie test equipment and
define tiie stimulus to perform tiie tests. Figure 33 shows a portion of a flow chart:
example test program. as an
Start 3 Turn DUT off
in, Hoad values
I rSelect Vin to even pins
UpS I load to odd pins
I Execute pattern
for odds
Execute pattern for odds
Figure 31: Example test block diagram.
The program is for testing functional shorts. The portion of the program visible is
responsible for detecting shorts between adjacent pins. In order to traverse the flow chart, the
tester must be capable of generating a dynamic stimulus, measuring the result, and making
decisions based on the results. ATE perform this through theit test programs. However, it is
conceivable that a program written in LabVIEW could foUow similar test automata.
40
The PC tester developed for this stady was implemented in LabVIEW. The programs
developed for demonstration do not analyze the response. However, the example provided at
the end of Chapter IV demonstrated how the PC tester could be used to perform a test of the
input offset voltage. This is a perfect example of how the PC tester could be automated. A
simple routine could be integrated into the program that would evaluate the response of the
DUT and compare it against a reference. If the response exceeded the reference voltage, the
tester would adjust the output of the analog channel supplying the amplifier to compensate.
This could be performed with a binary search routine until the input offset voltage was
determined. Figure 31 ihustcates the input offset voltage (blue) and the output voltage (red)
and how the PC tester would search for the input offset voltage as described.
Figure 32: Voltage sequence for binary input offset
voltage test example.
This type of test could not be performed on bench equipment widiout manual
interaction. The bench equipment could not be programmed to make decision based on die
test results. This gives tiie PC tester an advantage over bench testing. It also impHes tiiat tiie
PC tester could coUect data much fester witii a better degree of repeatabiHty dian bench
equipment Bums and Roberts define repeatabiHty as "tiiat abiHty of die test equipment and
test program to give the same answer multiple times"[l].
DUT Interface
Most ATE are made up of several test instruments. Tlie instruments are connected to
die pins of die DUT in order for tiie tests to be performed. However, when bench testing, it
41
is tiie responsibOity of tiie user to make tiie physical comiections. The same is true of die PC
tester developed for dus stady. The connection board tiiat accompamed die DAQ suppHes
die leads for connecting to the DUTs.
It is conceivable, however, tiiat die PC tester could be outfitted witii die proper
equipment to automate die physical connections. Smce outfitting an ATE witii a test
instrument for every pin of die DUT is inconceivable, most ATE employ switching matrices.
A switching matrix is a matrix of switches to connect any test instrument in an ATE to any pin
on die DUT. Figure 32 shows how a switching matrix makes die connections.
RO
R1
R2
R3
UUT.'M
/ .^ .^ .^ \.& ^ d* O" vO' -S' s«> O J' / / /i rrrrrrrr
cO cl c2 c3 c4 c5 c6 c7 c9 c9 clO ell m H vuTfn
A- .^ J^ £l^ ^^ • ' ' ' • ' ^ / .* ,<• <y c" jJJ" <- < ^ t^
cO c1 c2 c3 c4 eS c6 e7 c8 cQ ;fO c(1
ft3s=
Figure 33: Switching matrix connection example.
There are many manufacturers of switching matrices since they are common in ATE.
Most of these commercial models are intended to accommodate 32 Hnes. Most ATE have
several of these matrices. If a switching matrix was incorporated into the PC tester, the tester
could make the interconnections between the DUT and the DAQ in the same manner an
ATE does.
42
Target Device Famihes
There are certain IC famihes that the PC test system is more suitably adapted to due to
die Hmitations Hnposed by LabVIEW, die DAQ, and the physical interface. Because of die
limited number of available channels the PC test system provides, famihes of chips with low
pin counts would be more appropriate. In addition, due to the inabihty of the PC tester to
provide large numbers of digital vectors without intermption, processor famihes should be
avoided. Most smaU-scale integration (SSI), medium-scale integration (MSI), and large-scale
integration (LSI) ICs are perfect for testing with the PC test system. However, very large-scale
integration (VLSI) and ultra large-scale integration (ULSI) IC are too complex and have too
many pins to easily be tested with the PC tester. However, within the SSI, MSI, and LSI
famihes, the PC tester would be perfect for performing simple tests such as characterization,
parametric, or even some functionaHty tests.
43
CHAPTER V
CONCLUSION
The PC test system developed for die stady proved a PC could provide die essential
capabiHties requked for performing IC testing relative to bench test equipment and ATE. The
final contribution can best be described as a consoHdation of test bench equipment into a
reconfigurable and programmable test system. The PC test system provided an example in
order to examine the advantages and disadvantages of using a PC rather than bench test
equipment or ATE. These tradeoffs are summarized in Table 6. However, the fiJI potential
of a PC for IC testing was not realized in the demonstration.
Table 6: PC Tester advantages and disadvantages.
PC Tester as Alternative to ATE Advantages Disadvantages
PC tester is fraction of the cost of commercial Loss of measurement accuracy. ATE.
PC tester can easily perform simple tests such PC tester cannot measure currents, suffers as characterization without extensive from a lower sampling rate, and generaHy has programming. a lower voltage ranges.
PC tester can be appHed to any type of PC tester incapable of reading test programs, process test such as characterization, parametric, or fimctional tests.
Loss of pattern depth and vector memory.
PC tester cannot support designs with large pin counts.
PC tester does not support data retention and data interpretation.
PC Tester as Alternative to Bench Equipment Advantages Disadvantages
PC tester is fraction of the cost of commercial Loss of measurement accuracy. ATE. Reconfigurable widiout physical PC tester cannot measure currents, suffers manipulation. &om a lower sampHng rate, and generaHy has
PC tester can easily coHect measurement data.
PC tester is an all-in-one system.
PC tester is programmable and therefore can be automated.
44
Furtiier Developrnf^nt;
The potential of tiie PC tester fat exceeds tiie capabiHties demonstrated in die test
system described m diis stady. Tliere are many capabiHties tiiat can easily be employed in
order to add ftmctionahty and diversity to die PC test system. Fkst, die system developed
lacks a mediod of data retention. The system is incapable of storing measurement results or
test settings. This could easily be implemented in die LabVIEW envkonment witii the file
manipulation routines akeady available. The results could be appended to a common test file,
or multiple results saved as separate files. Also, test settings could be saved for performing die
same test witii rekktiaHzkig die tester's settings. Widi tiiese capabiHties, die system could be
capable of data kiterpretation. This is anotiier feature die system lacks that is common in most
ATE. With the abiHty to puU cataloged data from test result files, many data interpretation
routines could be added to die system. LabVIEW makes statistical analysis sknple by
providing analysis routines such as histograms, distribution calculations, and process control.
Also, the PC test system currentiy does not provide means for test automation.
However, this could be incorporated several different ways. A script interpreter could be
programmed into the system. With a script editor, the test system could read a test script,
much like a test program for commercial ATE, and perform the tasks outlined in the script
Another method would be to tailor the test system program to perform only one test This is
a brute force method of automation, however it would be easy to implement with the bulk of
the program akeady written. For example, the system could be programmed to only perform
a continuity test This would mean adding a simple routine to read the test settings from a file,
initializing those settings, and then running the test sequence of forcing a current and
measuring the voltage produced.
Another feature that could easily be included in the PC test system that is not common
in ATE is virtaal testing. LabVIEW simulations of integrated ckcuits could be used in
conjunction with the current PC test system to perform virtual testing of ckcuit designs. As an
example. Figure 34 shows a LabVIEW simulation interface of a 555 timer ckcuit
45
lE-5 lE-4 1£.7 lE-4
lE-3^
lE-2-
l E - 1 '
lEtO
C J -lE-lD
IE-12
0.00 VCC
O.DO t lbrC
' /10.00
VI
•J!Q.CO
'10,0
D.DOO 0,200 D.f'oO 0,6CD 0.800 0,999 Time
V7, V6 Wavefiorm (Charge on C> 10.0-1
Q.Om 0.200 0.400 D.60D 0.800 0,999 Time
-10.0-• , 0.0)0 0.200 0.400 0.500 O.STO 0.999
Time
Figure 34: LabVIEW 555 IC sknulation kiterface.
Figure 35 shows the program behind the sknulation.
^!0D
(Output)!
^ :_?—#-
Mf"pfrx] nformatMnl k
ugu uuu u UUU'uannUaUUHU nap an f^ i fo..2] li-&flJl aHrtnnnnuuuHnnndmiomm
g;g[j>i|g E L ' ^ ^ S ^ ^ S
^O-JCtii @ EH
- - - = ^ 1
\----^ ©
j : i > z :
|>'a]l==va, VtD2-=Vl: Vffo' vBl -=B> JD~
k o l = = V l , Vm2==V8: Vffij'^ll
^rtol=^^^, VcQ2==VB: Vffa'=vffo|] ; - ^ ^ ^
k o i = = v i . Vca2=^V. Vflfa'=Vl|- r '• I [=>-.[«>-
^fca Vllb'=V1fel
-^:;i=>j
' r t H n f t i a H H h r l H h n n H n h r i t i r t h r l H r t f t h r t h n n a a D h h n r t r i n r i h n Q b H r t h f i a Q r t h r l r t f l
t=0=&>-S
Figure 35: LabVIEW 555 IC simulation program.
Only the basic operation of the ckcikt has been modeled. However, this model could
easily be incorporated into the PC test system. The PC test system is responsible for
generating voltages and currents and measuring voltages and currents. The inputs to the 555
46
sknulation are voltages appHed to die ICs pkis. This can be seen on die left side of Figure 35.
The response of die 555 simulation are die voltages which appear on die output pkis of tiie
IC. These are displayed ki die wmdows of Figure 34. The PC test system could be modified
to provide die stimulus to tiie simulation and tiien display the response. The results of die
sknulation could be compared to actual results obtained by performkig real tests on the actual
ckcuit using the same test system. This would aUow virtual and actual testing to be done on
the same platform.
Also, as mentioned before, if the PC test setap were adapted with a switching matrix,
the computer could control the physical connections to the DUT. Another possibiHty would
be to adapt the PC tester to a test head. This would allow the tester the abiHty to test die
before packaging or even wafers not ftdly processed.
With these additions, the PC test system would more resemble its multi-million doHar
counterpart, the ATE while maintaining the accuracy, diversity, and reconfigurable nature of
bench equipment. Table 7 summarizes the basic capabiHties and future capabiHties of the PC
test system.
47
Table 7: Current and future PC tester capabiHties.
Current and Future CapabiHties of PC Tester Current Future
Hardware 16 Analog Input Channels Input Voltage Ranges:
±50 mV, ±500 mV, ±1 V, ±10 V Sampling Frequency: 200 kHz Resolution: 12 bit (24 ]xV on ±50 mV scale)
Simple coimection kiterface with iUustration program.
Capable of measuring waveforms up to 5 kHz (foUowing the Nyquist criteria).
Ability to measure currents with different or additional DAQ.
Switching matrix for automated pin connections.
Software
Capable of generating single tone, muititone, sawtooth, triangle, square wave, and DC waveforms.
Displays both output and input waveforms in graph window with pan and zoom controls.
Control program utilizes system resources by dynamicaUy opening channel programs.
Provides error checking of user input
Automated test sequence generates and measures DUT response simultaneously.
Automatic resizing of program windows for maximizing workspace.
Reconfiguration of DAQ performed automaticaHy upon user alteration.
Measurement data retention.
Test setting retention for storing test settings.
Virtual testing of ckcuit models.
48
BIBLIOGRAPHY
1 Bums, Mark, and Gordon W. Roberts. An Introduction to Mixed-Signal IC Test and Measurement. New York, NY: Oxford University Press, 2001.
2 BushneU, M. L., and V. D. Agrawal. Essentials of Electronic Testing For Digital. Memory, and Mbced-Signal VLSI Ckcuits. Boston, MA: Kluwer Academic PubHshers, 2000.
3 Cema, Michael, Mahesh L. Chugani, and Abhay R. Samant LabVIEW Signal Processing. Englewood CHffs, NJ: Prentice HaU PTR, 1998.
4 Chad Fasca and Dylan McGrath, "Virtual Test Comes of Age," Evaluating Engineenng, July 1998 [on-Hne press archive]; available from http: / /www.virtualtestcom: Internet; accessed June 2001.
5 Feugate, Jr., Robert J., and Steven M. Mclntyre. Introduction to VLSI Testing. Englewood CHffs, NJ: Prentice HaU, 1988.
6 Nat Reeves, "Using Virtual Testers for Test-Vector Verification," Evaluating Engineering, July 1998 [on-Hne magazine]; available from http://www.virtualtestcom: Internet; accessed June 2001.
7 Smith, Michael John Sebastian. AppHcation-Specific Integrated Ckcuits. Reading, MA: Addison Wesley Longman, Inc., 1997.
8 Steve Carison, "ATE Struggles To Keep Pace Witii VLSI," EE Times, 13 December 2001 [on-line magazine]; available from http://www.eetimes.com: Internet; accessed June 2001.
49
APPENDIX
INSTALLATION INSTRUCTIONS
AU programs are available on WebCT at http://www.ctee.ttaedu:8900. The files
should reside on the WebCT server as a compressed Windows .zip file caUed TestSystem.zip.
The .zip file can be downloaded and the contents extracted to a separate folder. Also, a self-
extracting executable file should be present incase the target computer lacks Windows .zip
tools. The self-executable should be caUed TestSystem.exe. The following files must be
downloaded and installed in the same program folder of a computer instaUed with LabVIEW
6i.
• TestSystem.vi
• Al.vi
• AI Refresh.vi
. AO.vi
• ConnBoard.vi
• ConnLedContvi
• EditMTone.vi
. LEDBank.vi
. ViewWaveform.vi
Once die files have been copied to die same folder, open tiie TestSystem.vi file tiirough eitiier
Wkidows Explorer or LabVIEW 6i from tiie file menu. Once opened, tiie program can be
run from tiie LabVIEW "Operate" menu.
50
CI-RMIS.SIONrO C(WY
In presenting this thesis in partial tiilfillmcnt of the requirements for a master's
degree at Texas Tech University or Texas Tech University Health Sciences Center, 1
agree that the Library and my major department shall make it freely avadable for
research purposes. Permission to copy this thesis for scholarly purposes may be
granted by the Director of the Library or my major professor. It is understood that
any copymg or publication of this thesis for financial gam shall not be allowed
without my further wntten permission and that any user may be liable for copyright
mfringement.
Agree (Permission is granted.)
Disagree (Pennission is not granted.)
Student Signature Date