WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Automatic test system having a "true tester-per-pin" architecture    
United States Patent4994732   
Link to this pagehttp://www.wikipatents.com/4994732.html
Inventor(s)Jeffrey; A. Keith (Dorset, GB2); Marsh; David J. (Ringwood, GB2); Collins; Philip I. (Dorset, GB2)
AbstractA multichannel automatic test system for an electronic circuit utilizes a "true tester-per-pin" architecture; each channel of the tester operates as if it were an independent tester. Each channel of the tester has a memory circuit which stores instructions for operating that channel of the tester. Each of these memories is cycled to the next address to provide a new instruction for that channel, only when it is necessary to change the state of operation of that channel. Thus, the timing of the events on one channel are independent of the timing on the events of any other channel in the tester. The architecture permits the use of dynamic random access memory (DRAM) circuits and allows for backward looping in the test sequence through the use of a cache memory circuit in each channel. The instructions for operating each channel of the tester are context-dependent; that is, the present state of operation of that channel of the tester is utilized in interpreting the next instruction for that channel.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4994732
Automatic test system having a "true tester-per-pin" architecture - US Patent 4994732 Drawing
Automatic test system having a "true tester-per-pin" architecture
Inventor     Jeffrey; A. Keith (Dorset, GB2); Marsh; David J. (Ringwood, GB2); Collins; Philip I. (Dorset, GB2)
Owner/Assignee     Schlumberger Technologies, Inc. (San Jose, CA)
Patent assignment
All assignments
Publication Date     February 19, 1991
Application Number     07/417,250
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 5, 1989
US Classification     324/73.1 324/537 714/731 714/736
Int'l Classification     G01R 031/28 G01F 011/12
Examiner     Karlsen; Ernest F.
Assistant Examiner     Nguyen; Vinh P.
Attorney/Law Firm     Ladas & Parry
Address
Parent Case     This is a divisional of copending application(s) Ser. No. 07/291,410 filed on DEC.22, 1988 which is a continuation of application Ser. No. 07/205,529 filed June 9, 1988 (now abandoned) which is a continuation of application Ser. No. 06/810,476 filed Dec. 18, 1985 (now abandoned).
Priority Data    
USPTO Field of Search     324/73.1 324/158 R 324/158 F 371/16 371/20.1 371/27 371/20.2 371/15 371/22.3 371/15.1
Patent Tags     automatic test "true tester-per-pin" architecture
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4646299
Schinabeck
714/736
Feb,1987

[0 after 0 votes]
4598245
Groves
714/743
Jul,1986

[0 after 0 votes]
4500993
Jacobson
714/734
Feb,1985

[0 after 0 votes]
4439858
Petersen
714/734
Mar,1984

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. Apparatus for testing an electronic circuit, said tester having a plurality of tester channels, each channel operating independently of all other channels, each channel comprising:

a test pins means for contacting a test point of a unit under test;

a channel control circuit means coupled to said pin for controlling the state of operation of said pin; and

a pin memory circuit means for storing test instructions which direct the sequence of operation of said channel control circuit, said pin memory circuit means being controlled by said channel control circuit means for cycling said pin memory means to a next address only when a new test instruction is required for that channel independent of a state of operation of all other channels.

2. The tester of claim 1 wherein channel control circuit means includes:

a pin driver for driving said pin with a predetermined signal; and

a data receiver for receiving data from said test point.

3. The tester of claim 2 wherein said pin driver circuit is a tri-state logic circuit, a high impedance output state being selected when said channel control circuit is instructed to receive data from said test point.

4. The tester of claim 2 further comprising a clock generator circuit means generating a clock signal coupled to each channel control circuit means, each channel control circuit means cycling said memory, when required, in synchronism with said clock signal.

5. The tester of claim 4 wherein said clock generator is coupled to a central processor which controls the operation of said tester, said central processor controlling said clock generator circuit to generate a signal which starts a test sequence for all channels.

6. The tester of claim 2 wherein said test pins are driven with a digital signal and said received data is a digital signal.

7. The tester of claim 1 wherein each pin memory circuit means is a random access memory (RAM).

8. The tester of claim 7 wherein each pin memory circuit means is a dynamic random access memory (DRAM).

9. The tester of claim 8 wherein the size of said pin memory means is not identical for each channel.

10. In a multichannel tester for an electronic circuit having in each channel a test pin for contacting a test point of a unit under test and a pin memory circuit for storing instructions which determine a state of operation of said test pin, a channel control circuit means coupled between said test pin and an output of said pin memory, said channel control circuit means comprising:

means coupled to the output of said pin memory for decoding an instructions presented at said output; pin controlling means coupled to said decoding means for controlling the state of operation of said pin in response to a control signal from said decoding means;

means coupled to said decoding means for generating the address of the next instruction in said pin memory, said address generator cycling said memory to said next address only when a new instruction is required to change the state of operation of that channel.

11. The circuit of claim 10 wherein said channel control circuit means includes:

a pin driver for driving said pin with a predetermined signal; and

a data receiver for receiving data from said test point.

12. The circuit of claim 11 wherein said pin driver circuit is a tri-state logic circuit, a high impedance output state being selected when said channel control circuit is instructed to receive data from said test point.

13. The circuit of claim 10 wherein said memory address generator cycles said memory in synchronism with a clock signal which is common to all channels of said tester.

14. The circuit of claim 13 wherein said decoder and pin controller operate in synchronism with said clock signal.

15. The circuit of claim 14 wherein the frequency of said clock signal is substantially 100 MHz.

16. The circuit of claim 14 wherein said decoder and said address generator are responsive to a start/stop signal which starts a test sequence consisting of a sequence of test instructions in said pin memory in synchronism with said start/stop signal and stops said test sequence in synchronism with said start/stop signal in all channels of said tester.

17. The circuit of claim 16 wherein said pin memory is a dynamic random access memory (DRAM) circuit.

18. In a multichannel tester for an electronic circuit having in each channel a test pin for contacting a test point of a unit under test and a pin memory circuit for storing test instructions which determine the state of operation of said test pin, a channel control circuit means coupled between said test pin and an output of said pin memory circuit, said channel control circuit means comprising:

programmable timing means responsive to the output of said pin memory for timing a desired interval between a present state of operation of said test pin and a next state of operation of said pin; and

memory address generator means coupled to said timing means for generating the address of a next instruction is said pin memory, said memory being cycled to said next address at the end of said programmed time.

19. The circuit of claim 18 wherein said channel control circuit includes:

a pin driver for driving said pin with a predetermined signal; and

a data receiver for receiving data from said test point.

20. The circuit of claim 19 wherein said pin driver circuit is a tri-state logic circuit, a high impedance output state being selected when said channel control circuit is instructed to receive data from said test point.

21. The circuit of claim 18 wherein said memory address generator cycles said memory in synchronism with a clock signal which is common to all channels of said tester.

22. The circuit of claim 21 wherein said channel control circuit includes a decoder coupled to the output of said pin memory for decoding an instruction presented at said output and a pin controller for controlling the state of operation of said pin in response to a control signal from said decoder, said decoder and pin controller operate in synchronism with said clock signal.

23. The circuit of claim 22 wherein said decoder and said address generator are responsive to a start/stop signal which starts a test sequence consisting of a sequence of test instructions in said pin memory in synchronism with said start/stop signal and stops said test sequence in synchronism with said start/stop signal in all channels of said tester.

24. The circuit of claim 22 wherein the frequency of said clock signal is substantially 100 MHz.

25. The circuit of claim 18 wherein said pin memory is a dynamic random access memory (DRAM) circuit.

26. Apparatus for testing an electronic circuit, said tester having a plurality of tester channels, each channel operating independently of all other channels, said each channel comprising:

a test pin means for contacting a test point of a unit under test;

a pin memory circuit means for storing test instructions which direct the state of operation of said test pin; and

a channel control circuit means coupled between said pin and an output of said pin memory means for controlling the state of operation of said pin in response to test instructions appearing at said pin memory output, said channel control circuit means including programmable timer means responsive to instructions appearing at said pin memory means output to time a desired interval between a present state of operation of said test pin and a next state of operation of said pin; and

means coupled to said timing means for generating the address of a next instruction in said pin memory means, said memory being cycled to said next address at the end of said programmed time.

27. The circuit of claim 26 wherein said channel control circuit means includes:

a pin driver for driving said pin with a predetermined signal; and

a data receiver for receiving data from said test point.

28. The circuit of claim 27 wherein said pin driver circuit is a tri-state logic circuit, a high impedance output state being selected when said channel control circuit is instructed to receive data from said test point.

29. The circuit of claim 26 wherein said memory address generator cycles said pin memory means in synchronism with a clock signal which is common to all channels of said tester.

30. The circuit of claim 21 wherein said channel control circuit includes a decoder coupled to the output of said pin memory for decoding an instruction presented at said output and a pin controller for controlling the state of operation of said pin in response to a control signal from said decoder, said decoder and pin controller operate in synchronism with said clock signal.

31. The circuit of claim 29 wherein said decoder and said address generator are responsive to a synch signal which starts a test sequence consisting of a sequence of test instructions in said pin memory in synchronism with said synch signal and stops said test sequence in synchronism with said start/stop signal in all channels of said tester.

32. The circuit of claim 30 wherein the frequency of said clock signal is substantially 100 MHz.

33. The circuit of claim 26 wherein said pin memory means is a dynamic random access memory (DRAM) circuit.

34. The circuit of claim 26 further comprising shift register means for converting the output of said pin memory means from a parallel to a serial format, to produce a bit stream which is coupled to said programmable timing means.

35. A multichannel tester for an electronic circuit, each channel being controlled by a sequence of test instructions stored in a memory circuit and operated independently of all other channels, said each channel, comprising:

means for cycling said memory to a next address to obtain a new test instruction;

means for decoding said new test instruction to determine the next state of operation by a channel, said decoding being dependent on the present state of operation of that channel.
 Description Submit all comments and votes
 


This invention relates to a method and apparatus for the automatic testing of electronic circuits. In particular, it relates to the automatic functional testing of electronic circuits on a printed circuit board.

Functional testers are connected to the input/output connector of the printed circuit board, by means of an edge connector which mates with the circuit board when it is inserted into the fixture of the automatic testing apparatus. The functional tester exercises the board so as to simulate the actual functioning of the printed circuit board in its intended environment. The tester measures data which represent the outputs of the printed circuit board circuit, compares them against the expected result and determines whether or not the printed circuit board is functioning properly in its intended environment. Hence the name "functional tester".

FIG. 1 illustrates a prior art apparatus generally indicated as 100 for functionally testing a unit under test (UUT) 146. For clarity of illustration, the tester 100 is shown as having only three channels, whereas testers with 256 or 512 channels are common. Each pin of the tester, here labelled pins .phi., 1 and n, contact the corresponding pin on the connector of the UUT. Each pin is connected in turn to the output of an interface circuit 140, 142 or 144 which contains a driver to drive the pin with predetermined signals and a receiver for receiving data from the pin. This interface circuit is known in the art as the "pin electronics". The pin electronics can drive the pin with a digital signal which is either high or low to represent a digital "1" or "0". In addition, the driver circuit can be placed in a high impedance output state and a receiver circuit can be activated to measure the data on the pin to determine whether or not the voltage on the pin is high or low thereby representing a digital "1"or a digital "0".

The pin electronics 140, 142, 144 are each connected to the output of a channel control circuit 126, 128, 130, respectively, by output buses 134, 136 and 138. The operation of the channel control circuits is directed by instructions stored in a pin control random access memory (RAM) 114, 116 or 118, there being one such memory for each channel of the tester. The test instructions stored in the pin control RAM determine if the pin is to be driven or an input of data is to be taken from the pin. In addition, it determines whether the pin is to be driven high or low or if data is to be received whether the data is expected to be high or low. The test instructions from the pin RAM also determine which of the global timing signals are utilized to produce an output or receive an input at a particular pin, as will be explained in detail below. The pin RAMs are controlled by a global sequence control processor 104 which generates an address onto address bus 112 which is coupled to all of the pin RAMs in the tester. The global sequence control processor 104 is controlled by a sequence control RAM 102 via bus 106 to implement the test program stored in sequence control RAM 102. The instructions of the program in the sequence control RAM 102 cause the global sequence control processor to generate a new address which in turn cycles all of the pin RAMs to a new address thus enabling a change in state on all of the channels of the tester. The fact that the pin RAMs function as a single memory with all RAMs cycling to the same next address at the same time allowed some prior art testers to utilize a single memory circuit in place of individual pin RAMs. The only requirement on this memory circuit is that it have a long enough word (or memory "width") to provide the required number of control bits to the input of each channel control circuit at the same time in parallel. The test program stored in sequence control RAM 102 may, for example, comprise a sequence of steps which is repeated for a given number of times. These program instructions cause the global sequence control processor to generate a sequence of addresses which implements the repetition of these steps. The address bus 112 is also coupled to the input of the sequence control RAM 102 and the input of a timing control RAM 111. The address present on this bus is utilized to fetch the next instruction from RAM 102 to control the global sequence control processor 104 and the next instruction from RAM 111 to control the operation of global timing control generator 110. The select instructions from RAM 111 are coupled to generator 110 via bus 108.

The global sequence control processor 104 operates in synchronism with a clocking signal generated by global timing control generator 110 and coupled to the global sequence control processor by line 109. The clocking signal is controlled by timing control information stored in the timing control RAM 111 to change the memory word provided to the channel control circuits 126, 128, 130 for each pin at every interval. The operation of the unit under test may dictate that all of the changes in the state of operation of the pin not occur simultaneously. The minimum amount of time between changes in the state of operation is generally limited by the cycle time of the memory in the pin RAM, which as a practical matter is too long to permit the required flexibility of activity within a cycle. Accordingly, the changes in operation are controlled by a series of timing signals produced by the global timing control generator 110 and coupled to the channel control circuits by timing signal bus 132. A typical global timing control generator may be able to produce eight sets of eight different signals each with only one of the eight sets being generated at any given time. Accordingly, timing signal bus 132 will be eight lines wide and have eight timing signals present at any given time. The selection of the particular set of timing signals that is to be generated at any given time is changeable "on the fly" under the control of the select information stored in the timing control RAM 111. The selection is made via select bus 108. Thus, the instructions contained in the pin RAMs do not merely dictate the change in state of operation of a pin but also specify the timing pulse at which the actual change in state will occur. That is, the instructions in the memory will cause the change in the state of operation of the pin to occur on a selected transition of the selected one of the eight timing pulses. For example, the timing information could go high on timing signal three, which means that the pin would be driven to a high state on the low-to-high transition of timing signal three.

Programming flexibility for the test sequences is provided by having the instructions stored in timing control RAM 111 control the set of timing pulses produced and the length of time between memory cycles. This permits maximizing the number of activities that can take place on all of the pins per memory cycle without unduly limiting the ability to change the state of any given pin.

In some prior art testers, the timing signals are generated within each channel control circuit to provide greater flexibility in performing the test sequence. However, the small number of timing signals available still places limitations on the ability of the tester to simulate the actual operating environment of the unit under test.

Functional testers employing this type of architecture have several major disadvantages. Firstly, it is desirable to have the drive/read signals correspond exactly to signals which are expected during the normal operation on the printed circuit board. The fact that there are only eight timing signals (or some other small number) available means that compromises must be made in producing signals which can be close enough to all of the desired timing functions throughout the test of the circuit. For example, if we had to perform one operation 5 nanoseconds after the clock pulse and another operation 4 nanoseconds after the clock pulse and had only a single timing signal remaining which had to be used to control both of these operations, then a compromise would have to be made. We would have to either decide which of the timing intervals was more critical to the operation of the circuit or, perhaps choose an interval of say 4.5 nanoseconds as a compromise. Even if a larger number than eight signals were provided, compromises would obviously still have to be made in programming the test. This unnecessarily complicates the generation of the test, especially for large/complex circuit boards. Because of the complexity of the implications created by the various trade off possibilities, the programming of a test for a functional tester has remained a manual task. Manually programming a precise test for a large/complex circuit can take longer and be more costly than is practical. Accordingly, compromises are usually made to reduce the effort and cost although this results in a less accurate test. This problem will be exacerbated by the increasingly complex circuit boards of the future. Increasing the number of operations that can take place between memory cycles would ease the problem but requires more bits per word and thus increases the size of the memory.

Another disadvantage of this prior art technique is that many times a pin is very active during a portion of the test and relatively quiet during the remainder of the test. However, since the memory address for all pins must be updated for a single pin-event as well as a string of pin-events, the memory locations for these relatively quiet pins must be filled with no operations (no-ops). This is extremely wasteful of expensive memory space. Furthermore, in order to improve the efficiency of programming these tests, it has been common to allow for looping of the test program. This requires the use of static random access memories (SRAMs) which are relatively expensive. In testers that do utilize the lower cost dynamic random access memories (DRAMs), portions of the program are typically periodically loaded into SRAMs for execution. A further disadvantage of this architecture is the fact that parallel address and timing buses run throughout the tester electronics because they must be connected to all electronics for all of the pins, thus creating problems of time skew between bits in these lines at higher memory speeds.

SUMMARY OF THE INVENTION

It is a general object of the present invention to provide an improved automatic test system architecture and a method for operating same.

Another object of the invention is to provide an automatic test system having a "true tester-per-pin" architecture.

A further object of the invention is to provide an automatic test system in which the pin memory is cycled to the next address only when a test instruction is required to change the state of operation of that channel.

Yet another object of the present invention is to provide an automatic test system in which the pin memory is cycled to the next address at the end of a programmed time.

A further object of the present invention is to provide an automatic test system which utilizes dynamic random access memory circuits for storing the test instructions.

Another object of the present invention is to provide an automatic test system which utilizes dynamic random access memory circuits for storing the test instructions and which permits backward loops in the sequence of test instructions.

A further object of the present invention is to provide an automatic test system in which the decoding of the test instructions to determine the next state of operation of a channel is dependent upon the present state of operation of that channel.

These and other objects, advantages and features are achieved by apparatus for testing an electronic circuit, having a plurality of tester channels. Each channel of the tester has a test pin means for contacting a test point of a unit under test; a channel control circuit means coupled to said pin for controlling the state of operation of said pin; and a pin memory circuit means for storing test instructions which direct the sequence of operation of said channel control circuit, said pin memory circuit means being controlled by said channel control circuit means to cycle said pin memory means to a next address only when a new test instruction is required for that channel.

Another aspect of the invention includes a method for operating a multichannel tester for an electronic circuit having in each channel a test pin for contacting a test point of a unit under test and a pin memory circuit for storing instructions which determine the state of operation of said test pin. The pin memory circuit is cycled to a next address only when a new test instruction is required to change a state of operation of that channel.

A further aspect of the invention includes a multichannel tester for an electronic circuit having in each channel a test pin for contacting a test point of a unit under test and a pin memory circuit for storing instructions which determine a state of operation of said test pin. A channel control circuit is coupled between said test pin and an output of said pin memory circuit. The channel control circuit includes means coupled to the output of said pin memory for decoding an instruction presented at said output; means coupled to said decoding means for controlling the state of operation of said pin in response to a control signal from said decoding means; and means coupled to said decoding means for generating the address of the next instruction in said pin memory. The address generator cycles said memory to said next address only when a new instruction is required to change the state of operation of that channel.

Another aspect of the invention comprises a multichannel tester for an electronic circuit having in each channel a test pin for contacting a test point of a unit under test and a pin memory circuit for storing test instructions which determine the state of operation of said test pin. A channel control circuit is coupled between said test pin and an output of said pin memory circuit. The channel control circuit includes a programmable timing means responsive to the output of said pin memory for timing a desired interval between a present state of operation of said test pin and a next state of operation of said pin and means coupled to said timing means for generating the address of a next instruction in said pin memory. The memory is cycled to said next address at the end of said programmed time.

A still further aspect of the invention includes a method for operating a multichannel tester for an electronic circuit having in each channel a test pin for contacting a test point of a unit under test and a pin memory circuit storing test instructions which determine the state of operation of said test pin, and a channel control circuit coupled between said test pin and an output of said pin memory circuit. A timer is programmed utilizing instructions appearing at said output of said pin memory circuit to time a desired interval between a present state of operation of said test pin and a next state of operation of said pin. The pin memory circuit is cycled to a next address to a new test instruction for said next state of operation of said test pin.

Another aspect of the invention includes an apparatus for testing an electronic circuit having a plurality of tester channels Each channel includes a test pin means for contacting a test point of a unit under test, a pin memory circuit means for storing test instructions which direct the state of operation of said test pin, a channel control circuit means coupled between said pin and an output of said pin memory means for controlling the state of operation of said pin in response to test instructions appearing at said pin memory output, said channel control circuit means including programmable timer means responsive to instructions appearing at said pin memory means output to time a desired interval between a present state of operation of said test pin and a next state of operation of said pin, and means coupled to said timing means for generating the address of a next instruction in said pin memory means, said memory being cycled to said next address at the end of said programmed time. Yet another aspect of the invention comprises an apparatus for testing an electronic circuit having a plurality of tester channels, each channel having a channel control circuit for controlling the state of operation of said channel in response to a sequence of test instructions stored in a respective memory circuit. The memory circuit includes a dynamic random access memory (DRAM) circuit means for storing said test instructions, and a cache memory circuit means coupled to said DRAM circuit and to said channel control circuit for storing a subsequence of test instructions from said DRAM circuit; said channel control circuit controlling the operation of said channel from the test instructions stored in said cache memory means while refreshing said DRAM circuit, thereby permitting backward loops in said sequence of test instructions.

A further aspect of the invention includes a method for operating a multichannel tester for an electronic circuit having a plurality of channels, each channel having a channel control circuit for controlling the state of operation of said channel in response to a sequence of test instructions stored in a respective dynamic random access memory (DRAM) circuit. Backward loops in said sequence of test instructions are permitted by storing a subsequence of test instructions from said DRAM circuit in a cache memory circuit and operating said channel from the test instructions in said cache memory while simultaneously refreshing said DRAM circuit.

Another aspect of the invention comprises a method of operating a multichannel tester for an electronic circuit, each channel being controlled by a sequence of test instructions stored in a memory circuit. The memory is cycled to a next address to obtain a new test instruction and the new test instruction is decoded to determine the next state of operation by a channel, said decoding being dependent on the present state of operation of that channel.

A still further aspect of the invention includes a multichannel tester for an electronic circuit, each channel being controlled by a sequence of test instructions stored in a memory circuit. A means for cycling said memory to a next address to obtain a new test instruction. A means for decoding said new test instruction to determine the next state of operation by a channel, said decoding being dependent on the present state of operation of that channel.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a prior art shared resource system;

FIG. 2 is a block diagram of one embodiment of a system in accordance with the present invention;

FIG. 3 is a more detailed block diagram of a channel control circuit in accordance with the invention shown in FIG. 2;

FIG. 4 is a block diagram of the RAM data decoder shown in FIG. 3;

FIG. 5 is a timing diagram illustrating a typical test sequence on one pin of the tester in accordance with the present invention;

FIG. 6 is a block diagram of a channel control circuit which includes a cache memory.

DETAILED DESCRIPTION

Referring to FIG. 2, a functional tester in accordance with the present invention is generally shown as 200. As in FIG. 1, the tester is shown as having three channels, .phi., 1 and n, for clarity of illustration, whereas it is common to have testers with 256, 512 or more channels. The tester is again organized so that each channel has its respective pin RAM channel control circuit and pin electronics. Thus, pin RAM 210 is coupled to channel control 224 via instruction bus 222 and address bus 220 and channel control 224 is coupled to pin electronics 238 via lines 240, 242 and 244 to form channel .phi.. Similarly, pin RAM 212 is coupled to channel control 230 via instruction bus 228 and address bus 226 and channel control 230 is coupled to pin electronics 252 via lines 254, 256, 258 to form channel 1; pin RAM 214 is coupled to channel control 236 via instruction bus 234 and address bus 232 and channel control 236 is coupled to pin electronics 266 via lines 268, 270, 272 to form channel N. Each of the channel control circuits are coupled to their respective connector pin which are brought into contact with the connector of the unit under test (UUT) 280. Thus, pin electronics 238 is coupled to pin .phi. via line 250, pin electronics is coupled to pin 1 via line 264 and pin electronics 266 is coupled to pin N via line 278.

In the illustrated embodiment, the pin electronics is suitable for sink/source logic circuits such as TTL or CMOS. Each contains a driver circuit which can be placed in a high impedance (tri-state) output state and a receiver circuit. Other logic families would require different pin electronics.

In the embodiment illustrated in FIG. 2, the pin electronics 238 for channel .phi. comprises a tri-state driver 246 coupled to the channel control 224 by line 244. Driver 246 can be placed in a high impedance output state by means of a signal on line 242. A data receiver 248 is coupled to pin .phi. by line 250 and to channel control 224 by line 240. Similarly, the pin electronics 252 for channel 1 comprises driver 268 and receiver 262. Driver 268 is coupled to channel control 230 by line 258 and can be place in a nigh impedance state by a signal on line 256. Data receiver 262 is coupled to pin by line 264 and to channel control 230 by line 254. The pin electronics 266 for channel N comprises driver 274 and receiver 276. Driver 274 is coupled to channel control 236 via line 272 and can be placed in a high impedance state by a signal on line 270.

The pin electronics 238, 252, 266 may be coupled to the channel controls 224, 230, 236 by a line carrying encoded instructions instead of the technique illustrated in FIG. 2. This is because the pin electronics are located very close to the UUT in order to preserve the integrity of the drive or received signals whereas the remainder of the electronics may be in another portion of the tester and coupled to the pin electronics by a cable which is relatively long in view of the high operating speeds. The encoded signals would be decoded and perform the same functions shown in FIG. 2. The details of such an arrangement are well known to those skilled in the art and need not be repeated here.

Each of the pin RAMs 210, 212, 214 are coupled to the central processor 202 by means of an instruction bus 208. The central processor 202 is also coupled to a clock generator 206 by means of control line 204. The clock generator 206 generates a clock signal which is present on line 216 and coupled to all of the channel control circuits within the tester. Clock generator 206 also generates a synchronizing (hereinafter "synch") signal which is present on line 218 and also coupled to all of the channel control circuits in the tester.

Although each of the pin RAMs receive an input from a bus which is common to all of the RAMs, similar to circuits shown in FIG. 1, it should be carefully noted that the common bus in FIG. 2 is an instruction bus whereas the common bus in FIG. 1 is an address bus. The instruction bus shown in FIG. 2 is used prior to the test to be performed by the tester. During this phase of operation, it is necessary to load the instructions to be performed during the test into each of the pin RAMs. The central processor 202 addresses each of the pin RAMs by means not shown and loads the instructions which perform the desired test into the pin RAM. Alternatively, bus 208 could be connected to all of the channel controllers and the instructions loaded into the pin RAMs by the channel controllers. The instructions provided on instruction bus 208 could come from the memory associated with the central processor 202 but more commonly will come from a magnetic tape or disk, although other sources could obviously be used. After the central processor 202 has loaded the instructions into all of the pin RAMs in the tester, the instruction bus 208 plays no further part in the operation of the tester. It should also be noted that the tester shown in FIG. 1 also requires this means of initially loading the instructions into the pin RAMs, and that this has been omitted from FIG. 1 for clarity of illustration.

Accordingly, once the tester 200 has been loaded with the test program, there is no centralized control over the address utilized to fetch an instruction from the pin RAM. The address for each pin RAM is sent over its respective address bus from its respective channel control circuit For example, in channel .phi., the address for pin RAM 210 is provided over address bus 220 from channel control 224. Thus, the generation of the address for channel .phi. is independent of the address generation for all other channels in the tester. This in turn eliminates the need to cycle each pin RAM in order to generate the required test sequence. The channel control therefore only cycles the memory when it is necessary to obtain a new instruction for changing the state of that channel which greatly reduces the amount of data that must be stored in the tester in order to generate the test sequence. The detailed operation of the channel control circuit will be described in connection with FIGS. 3, 4, 5 and 6. The ability to operate each channel independent of the other so that the memory need only be cycled when it is necessary to obtain a new test instruction to modify the state of operation of that channel makes each channel, in effect, an independent tester. Accordingly, the architecture of this tester may be referred to as a "true tester-per-pin" architecture. A feature of this architecture is that the size of each of the pin RAMS need not be identical because the RAMS will not be cycled together. Some channels may have larger pin RAMS than the others, these channels being reserved for more active pins.

Each channel of the tester operates :n the same manner although independently. Referring to channel .phi. as an example, channel control circuit 224 will produce an address on bus 220 when it is necessary to fetch a new instruction from pin RAM 210 in order to change the state of operation of channel .phi.. The new instruction is sent to channel control 224 via instruction bus 222 from pin RAM 210. Channel control 224 decodes the instruction to determine whether or not pin driver 246 is to be activated. If driver 246 is to be activated to drive the pin to a high or low state, the appropriate signal is placed at the input of the driver and the pin is driven to either a high or a low state as required by the test instruction. If the driver is not to be activated but data is to be received via receiver 248, then a signal is provided on line 242 to place the output of the tri-state logic driver 246 into its high impedance state. In this state, the driver 246 has no effect on the signal being received by the data receiver 248. If data is to be received, it will be compared against the expected value of that data and the results sent to the central processor by means not shown.

Although each channel operates independently, all channels operate in synchronism with a clock signal provided on line 216. The clock signal shown in FIG. 2 is a typical clock signal that might be utilized for this system having, for example, a 100 MHz rate with a 5 nanosecond segment in the high state and a 5 nanosecond segment in the low state. This signal is continuously generated and all memory cycles would occur on the leading edge of the clock signal on line 216. Synchronization is obviously required because it :s necessary that the data change in accordance with the protocol (operating requirements) of the circuits, particularly integrated circuit logic and microprocessors, utilized on the electronic circuit board. As the clock signal is continuously generated, it is necessary that the test sequence on all pins be started or stopped in synchronism. Accordingly, a line 218 is provided with a synch signal which :s generated by clock generator 206 under control of the central processor 202 via control line 204. The test sequence is started for all channels on the leading edge of the synch signal which occurs in the middle of a clock period so that all channels will start on the next clock edge. A time monitor in clock generator 206 keeps track of the length of the test and stops the test sequence by changing the state of the synch signal. It should be noted that two short pulses, one to start the test and another to stop the test, could be used in place of the single long pulse illustrated.

FIG. 3 shows a more detailed block diagram of a channel control circuit 224, 230 or 236, generally shown as 300. The channel control circuit has a RAM data decoder 304 which is coupled to the pin RAM via instruction bus 302. The instruction bus would correspond to bus 222, 228 or 234 in FIG. 2. The RAM data decoder 304 is also coupled to a memory address generator 308 via line 310. Memory address generator 308 is in turn coupled to the pin RAM, such as RAM 210, 212 or 214 via address bus 306 which corresponds, for example, to buses 220, 226 or 232. RAM data decoder 304 is coupled to a pin control circuit 320 via data buses 312 and 314. Pin control circuit 320 is coupled to pin electronics 334 via lines 322, 324 and 326. The pin electronics comprises a pin driver 330 coupled to pin control circuit 320 via line 326. The tri-state input of driver 330 is coupled to the pin control circuit 320 via line 324. Pin control 320 receives data from a data receiver 328 via line 322. Data receiver 328 and pin driver 330 are coupled together via a line 332 which is also coupled to the respective test pin of that channel. RAM data decoder 304, memory address generator 308 and pin control 320 are connected to the clock generator 206 via line 316. RAM data decoder 304 and memory address generator 308 are also connected to the synch signal generator in clock generator 206 via line 318.

RAM data decoder 304 receives a word from the output of the pin RAM via instruction bus 302. This word is the next instruction in the test sequence for that channel and will change the state of operation of that channel and only that channel. The RAM data decoder 304 decodes this word to generate a data word which determines the type of event that will take place on the pin coupled to that channel of the tester. The RAM data decoder 304 also decodes the instruction to produce a word which determines the timing of the event which will be explained in detail below. A detailed description of the operation of decoder 304 will be presented below in conjunction with FIG. 4. Pin control 320 utilizes the event data word and timing data word to generate signals to the pin electronics 334 to drive the pin connected to the UUT or to receive data from the UUT. The major difference between pin control 320 and a corresponding portion of the channel control circuits of the prior art is that pin control 320 is programmable to generate the required timing information for each pin event. In the prior art, the electronics selected one of a predetermined number of timing signals which either were externally generated for all of the channels of the tester or internally generated for each channel of the tester in accordance with instructions loaded into each channel at the start of the test. Neither prior art system provided, therefore, the flexibility to have the timing for each pin event independent of any other pin event in the test sequence. It is this flexibility that allows the tester to follow exactly the test pattern required for the UUT and also permits the memory reduction described above. The generation of a typical test sequence for one pin of a tester will be discussed below in connection with FIG. 5 and Table 1.

Memory address generator 308 generates the address of the next instruction to be retrieved from the pin RAM for that channel. This address is coupled to the pin RAM via bus 306 which corresponds, for example, to the buses 220, 226 and 232 of FIG. 2. The memory address generator is responsive to a signal from RAM data decoder 304 coupled via line 310 to generate the next memory address. In the embodiment shown, looping in the test sequence in order that a portion of the sequence be repeated a predetermined number of times, is not provided. This is discussed below in conjunction with FIG. 6.

FIG. 4 shows a more detailed block diagram of the RAM data decoder 304, generally shown as 400. The data bus 302 is shown as bus 402 which, as illustrated, is 80 bits wide. The width of data bus 402 is determined by the cycle time of the pin RAMs and the time resolution that is desired. For example, if it is desirable to use DRAMs having a cycle time of 80 nanoseconds and if we want a resolution of 1 nanosecond per bit, this yields a word width of 80 bits. Although a wide word is required, the system is still very cost effecti