METHOD AND APPARATUS FOR FAULT TESTING A CLOCK DISTRIBUTION NETWORK OF A PROCESSOR

Abstract: A method and apparatus for fault testing a clock distribution network (11) which provides a plurality of clock signal lines (25) to the logic networks (12) which comprise a data processor (10). The fault testing apparatus includes a decoder (24) for selecting one of the clock signal lines to be tested, and a test latch (40) which is clocked by the selected clock signal line. The selected clock signal line is tested by setting the test latch to a first logic value (e.g., binary ZERO) and maintaining a second value (e.g. binary ONE) at the test latch input. If the second logic value is stored in the test latch when the clock distribution network is inhibited, then a stuck-on fault is indicated for the selected clock signal line. If the second logic value fails to be stored in the test latch when the clock distribution network is enabled, then a struck-off fault is indicated for the selected clock signal line. Each clock signal line in the clock distribution network may be tested in this manner.

Description: Background of Invention 1. Technical Field This invention relates to testing a data processor, and more particularly to a method and apparatus for fault testing a clock distribution network in a data processor. As is well known to those having skill in the art, a data processor includes numerous complex logic networks for carrying on data processing operations. Interconnecting all the logic networks is a clock distribution network. The clock distribution network is a fan-out network for a clock signal generated by a high frequency oscillator. The clock signal is distributed to all the logic networks in a predetermined timing relationship. In a large data processor, on the order of 15,000 distinct clock signal lines may be provided. Accordingly, the clock distribution network may comprise 5-7% of the integrated circuit chips in the data processor. 2. Background Art The complexity of the logic and clock distribution networks in a large data processor presents extreme difficulties in the testing environment. Typically, tests are performed on the data processor prior to shipment. Internal tests are also generally performed by the data processor each time it is turned on to assure fault-free performance. Many techniques are known for fault testing the logic network portion of a data processor. For example, one widely known technique for testing a logic network is the Level Sensitive Scan Design (LSSD) technique wherein normally inaccessible logic points on an integrated circuit chip are accessed by means of a shift register latch network. The LSSD technique is described in detail in many publications and patents, for example, U.S. Patent 3,783,254 entitled "Level Sensitive Logic System", E. B. Eichelberger and assigned to the assignee of the present invention. The LSSD technique allows the complex logic networks which form a data processor to be fully tested. US-A-4,063,078 relates to a clock generation network and to the testing thereof by tests generated by the LSSD test generation system. Two pseudo clock inputs are provided allowing two non-overlapping pulse trains generated by the network to be held off together and to be independently controlled. However, the tests only relate to the generation of the clock pulses and not to their distribution. Techniques have heretofore not existed for fault testing the clock signal line network of a data processor. Generally each clock signal line in the clock distribution network is susceptible to two types of faults, referred to as "stuck-on" or "stuck-off" faults. A "stuck-on" fault, also referred to as a "hot clock", means that the clock signal line is still supplying a clock signal even though the clock distribution network is disabled. For example, a clock signal line which is short circuited to a power supply line would provide a "hot clock". A "stuck-off" fault, also referred to as a "cold clock", means that the clock signal line does not supply a clock signal even though the clock distribution network is enabled. For example, an open circuited clock signal line would provide a "cold clock". Heretofore, when the clock distribution network failed (i.e., one or more clock signal lines become stuck-on or stuck-off), the defect would manifest itself as a defect in the logic network being supplied by the clock distribution network. While it would be known that the data processor as a whole had a defect, it could not be ascertained whether the defect arose in the logic network itself or in the clock distribution network. Moreover, even if it could be ascertained that the defect arose in the clock distribution network, it was heretofore impossible to isolate the defect to a particular clock signal line on a particular integrated circuit chip within the clock distribution network. In the publication "Electronics International", vol. 56 (1983), March 1983, no.5, pages 120 to 124, Fig. 3 a shift register consisting of four stages is shown. To the second stage of this register an additional input line has been added to preset or clear this stage. Furthermore, an additional output (A2) to this stage has been added. By applying a known data value to the input of the shift register and by defining the state of the second stage at power-up by means of the additional input line to this stage it can be tested if the single clock line driving all four register stages is stuck. Disclosure of Invention It is therefore a primary object of the invention to provide a method and apparatus for fault testing the plurality of clock signal lines in the clock distribution network of a data processor, as it is defined in method claim 1 and apparatus claim 3 respectively. It is another object of the invention to provide a method and apparatus for isolating a fault in a clock distribution network to a particular clock signal line on a particular integrated circuit chip in the clock distribution network. It is yet another object of the invention to provide a method and apparatus for fault testing a clock distribution network without requiring excessive fault testing circuitry. It is still another object of the invention to provide a method and apparatus for fault testing a clock distribution network which is compatible with known LSSD techniques so that the clock distribution network testing system can be integrated with the logic network fault testing system. Brief Description of the Drawings Fig. 1 illustrates a simplified representation of a data processor; Fig. 2 illustrates a typical clock distribution network in a data processor, including a plurality of clock distribution chips; Fig. 3 illustrates a clock distribution chip including fault testing circuitry according to the present invention; Fig. 4 illustrates connection of the clock distribution chips in a clock distribution network to a fault testing chip according to the present invention; Fig. 5 illustrates a first embodiment of a fault testing chip according to the present invention; Fig. 6 illustrates a method for controlling fault testing of clock signal lines according to the present invention; and Fig. 7 illustrates an LSSD compatible fault testing chip according to the present invention. Best Mode for Carrying Out the Invention Referring now to Fig. 1 there is illustrated a simplified representation of a data processor. Data processor 10 includes a plurality of logic networks 12 each of which may include many thousands of logic gates for performing a specific data processing function. The logic network may also contain latches and chip arrays. A large data processor may include hundreds of such logic networks. Clock distribution network 11 is connected to a sinusoidal or other oscillator 13. Clock distribution network 11 distributes clock timing pulses derived from the oscillator signal to each of the logic networks throughout the data processor via clock distribution lines 16. Fig. 2 illustrates a more detailed representation of clock distribution network 11. Clock distribution network 11 is a fan-out network from the oscillator 13 to the plurality of clock distribution lines 16. Clock distribution network 11 is contained on a plurality of clock distribution chips 14. Typically, each clock distribution chip may have on the order of ten inputs which are fanned out to on the order of fifty outputs. Each clock chip output will hereinafter be referred to as a clock signal line, 25. Some of the clock signal lines 25 are internal to clock distribution network 11 (e.g., the clock signal lines 25 which connect clock chip 2 and clock chip 3). On the other hand, some of the clock signal lines 25 form the clock distribution lines 16 which connect clock distribution network 11 to logic networks 12 (e.g., the clock signal line 25 which connects clock chip 5 to logic network A). In order to fault test clock distribution network 11, and to isolate a fault to a particular clock signal line 25, each clock signal line must be tested for stuck-on or off. Referring now to Fig. 3, the details of a clock distribution chip 14 and the manner in which each clock signal line 25 is tested according to the present invention will be described. Clock distribution chip 14 includes a plurality of receivers 17 to which the clock chip inputs are applied, and a plurality of drivers 18 each of which drives a clock signal line 25. As illustrated in Fig. 3, one receiver 17 fans out to two drivers 18. However, it will be recognized by those having skill in the art that different fan-out arrangements may be employed. It will also be recognized by those having skill in the art, that fault testing can be performed at the output of receivers 17 rather than at the output of drivers 18 as illustrated in Fig. 3. Fault testing at the output of receivers 17 reduces the number of lines to be tested, but also reduces the ability to isolate a fault to a particular clock distribution chip 14 or clock signal line 25. In accordance with the present invention, each clock distribution chip 14 includes a decoder for selecting any one of the clock signal lines 25 on the clock distribution chip 14. The selected clock signal line is fault tested as described below. Fig. 3 illustrates a 3:8 decoder 24 for selecting any one of eight clock signal lines 25 and fanning the selected clock signal line to a clock test line 28 by means of a plurality of OR gates 26. As shown in Fig. 3, a shift register latch chain 21 may be employed for providing the address of the particular clock signal line 25 to be selected by decoder 24. It will be understood by those having skill in the art that each clock distribution chip 14 may have its shift register latch inputs 22 connected to the shift register latch outputs 23 of another clock distribution chip 14 so that one long shift register is formed for the entire clock distribution network 11. Thus, any one clock signal line 25 in the entire clock distribution network 11 may be selected by shifting the proper address into shift register latch chain 21. The selected clock signal line 25 is gated to a clock test driver 19 via a network of OR gates 26. It will be understood by those having skill in the art that other gating networks may be employed. Clock test line driver 19 drives clock test line 28 with the clock signal from the selected clock signal line 25. It will be recognized by those having skill in the art that other decoders other than 3:8 decoders may be employed, and that means other than a shift register and decoder may be employed for selecting a particular clock signal line. Regardless of the particular circuitry employed, the present invention provides means for selecting a single one of the clock signal lines 25 in clock distribution network 11. Referring now to Fig. 4, the clock test line 28 for each clock chip 14 is connected to fault testing chip 29. It will be recognized by those having skill in the art that the fault testing circuitry on chip 29 may also be replicated on each clock distribution chip 14 so that a separate fault testing chip 29 is not required. Referring now to Fig. 5, a general schematic of fault testing chip 29 will be described. Chip 29 includes an OR gate 31 which receives all of the clock test lines 28 from all of the clock chips 14. In accordance with the above description, only one clock test line 28 will be active at a given time. The output of OR gate 31 and a block clock input line 35 is connected to an OR gate 32. Block clock input line 35 is used to prevent the setting of test latch 40 while the address of the clock signal line to be tested is being shifted into shift register 21 (Fig. 3) as will be described below. As shown in Fig. 5, the latch 40 for testing the clock signal lines is a master/slave latch including a master latch 39 and slave latch 41. However, it will be recognized by those having skill in the art that simple latches (e.g., a D type flip-flop) may be employed. The master/slave latch 40 has the advantage that it can be integrated into a shift register with other master/slave latches in the data processor. Master latch 39 includes a shift input 42 (which may be connected to a shift register latch string in the data processor) for providing the binary value to be shifted into the master latch. Slave latch 41 includes a latch output 43 for providing the binary value which has shifted through the latch. Also included is a data input 44 for injecting a binary value into the latch, and clock inputs 45 for controlling the shifting of binary values into and out of latch 40. During fault testing, clocking for the latch is provided by the clock signal line under test, as routed to the output of OR gate 32. The output of the OR gate 32, which corresponds to the clock signal on the clock signal line under test, drives two latch drivers 34 and 36 for the master and slave latch 39 and 41, respectively. A delay element 37 is also provided for the slave latch to ensure that slave latch 41 does not change state until after master latch 39 has latched data therein. The fault testing circuitry on fault testing chip 29 (or as replicated on the individual clock chips 14) tests a clock signal line as follows: In order to test for a stuck-on clock (clock always running) a first logic value (e.g. binary ZERO) is shifted into latch 40 via shift input 42 (controlled by clock inputs 45) while the clock network 11 is inhibited. The clock network may be inhibited by means of an inhibit input 15 (Fig. 2) in the first clock chip, i.e., clock chip 1 which directly connects to oscillator 13). A second logic value (e.g., binary ONE) is maintained at the data input 44 of master latch 39. With the clock network inhibited, the second logic value at data input 44 value should not shift into the latch 40. However, if the clock signal line under test is stuck-on, the data will shift through the latch so that the output 43 of latch 40 will be at the second logic value (i.e., binary ONE). Thus, if the logic value at the data input 44 propagates through the latch 40 even though the clock network is inhibited, it may be ascertained that the clock signal line under test is stuck-on. It will be understood that the logic values described above may be reversed to perform the same function. The clock signal line under test is tested for stuck-off (clock never runs) in a similar manner. A first logic value (e.g., binary ZERO) is stored in latch 40 while a second logic value (e.g., binary ONE) is maintained at data input 44. Clock distribution network 11 is enabled, e.g., by a signal at line 15 (Fig. 2). If the second logic value at data input 44 propagates through latch 40 and appears at output 43, then the clock signal line under test is not stuck-off. However, if the second logic value does not propagate through the latch when the clock distribution network is enabled, then the clock signal line under test is stuck-off. It will be recognized by those having skill in the art that the most efficient way of testing for stuck-off is to enable clock distribution network 11 for a single clock cycle. However, the network may be enabled for more than one clock cycle with the same results. The shift register inputs and outputs 42, 43 (Fig. 5), the block clock input 35 (Fig. 5), the clock distribution network inhibit line 15 (Fig. 2) and the decoder shift register 21 (Fig. 3) may be controlled by a controller which is part of a maintenance processor incorporated into the data processing system. It will also be understood by those having skill in the art that the above enumerated control lines may be controlled and synchronized, and the resultant fault testing data analyzed by means of a special purpose hardware controller, a programmed dedicated controller, or a program which is part of a general purpose maintenance processor, according to the steps illustrated in Fig. 6. Referring now to Fig. 6, clock distribution network 11 (Fig. 1) is tested as follows: First, clock distribution network 11 is inhibited, e.g., by applying (block 56) an inhibit signal to line 15 (Fig. 2). Application of the clock distribution network inhibit signal effectively disconnects the oscillator from the clock distribution network. Then, the block clock signal 35 (Fig. 5) is applied (block 57) so that latch 40 (Fig. 5) is not set during the address setup procedure for the clock signal line under test. Then, (block 58) the first logical value (e.g., logic ZERO) is applied to master/slave latch 40 via its input 42 under the control of clock inputs 45. A second logic value (e.g., binary ONE) is always maintained at data input 44 as shown in Fig. 5. Next, (block 59) shift register 21 (Fig. 3) is loaded in order to select a clock signal line under test via decoder 24 (Fig. 3). While decoder 24 selects a clock signal line, the block clock signal 35 ensures that the latch value is not changed. With the clock signal line under test selected by decoder 24, the block clock signal 35 is removed (block 60) and the test waits at least one clock cycle time (block 61) before again applying the block clock signal (block 62). The output 43 of latch 40 is then monitored (block 63). If (block 64) the output is binary ZERO, then the clock signal line under test operated properly because a binary ONE did not propagate through the latch when the clock was off. On the other hand, if the latch output is ONE, then the clock was stuck-on (block 66) in that binary ONE propagated through the latch notwithstanding the fact that the clock distribution network was inhibited. Assuming the clock is not stuck-on, a stuck-off test is performed and the clock distribution network is enabled. The latch is again set to logic ZERO (block 67) and the block clock signal is removed (block 68). The test then waits for a time sufficient to allow at least one clock cycle to pass (block 68). The clock is then blocked again (block 71) and the output 43 of latch 40 is monitored (block 72). If the output is ONE (block 73), then there was no error (block 76) because the ONE did propagate through the latch. On the other hand, if the latch still remains at logic ZERO, then the clock is stuck-off (block 74) and there is an error. Assuming there was no error, then the shift register 21 may be incremented (block 77) and the next clock distribution line 25 may be fault tested. It will be understood by those having skill in the art that the order of performing stuck-on and stuck-off tests is immaterial. The process continues until all of clock signal lines 25 are checked. Testing may stop when a fault is detected (block 66 or 74) and the shift register values may be read to ascertain which clock signal line 25 is faulty. Thus, it is possible to isolate the fault to a particular clock signal line and to determine whether the faulty line is stuck-on or stuck-off. Fig. 7 illustrates an LSSD compatible embodiment of the fault testing chip of the present invention. LSSD compatible fault testing chip 30 includes many of the same components as the embodiment of Fig. 5, with like components being indicated by like reference numbers. Other components have been added or modified to make the chip LSSD compatible. Specifically, separate clock controls 52, 53 for master latch and slave latch are provided. Thus, clock control 52 and its associated OR gate/driver 47 control clock driver 34, while clock control 53 and its associated OR gate/driver 48 control clock driver 36. For LSSD compatibility at the chip tester, the master and slave clocks for latches 39 and 41, respectively, must be controlled independently, as explained in detail in the above cited U.S. Patent 3,783,254 to Eichelberger. For purposes of the present invention, clock controls 52 and 53 remain inactive during clock network fault testing. Additionally, both the data input 44 and the shift input 42 (Fig. 5) for latch 42 may be supplied from input line 50 via another latch 49 in the scan chain. The above described additions/modifications, ensure an LSSD compatible fault testing chip 30. The method of fault testing the clock distribution network is the same as described above with regard to Fig. 6.

Claims: A method of fault testing in a processor (10) the clock signal lines of a clock distribution network (11) which fans out a clock signal to a plurality of clock signal lines (25), by performing the following steps: a) selecting a predetermined clock signal line (clock line 25, 28) to be tested; b) separating said selected clock signal line (25, 28) from a test latch (40) by applying a blocking signal (block clock signal 35) to a blocking circuit (32); c) setting said test latch (40) through a first input (42) to a first logic value (e.g. ZERO) while maintaining a second logic value (e.g. ONE) at a data input (44) of said test latch (40), wherein said second logic value is of opposite value to said first logic value; d) connecting the said selected clock signal line (25, 28) under test to a clock input of said test latch (40); e) inhibiting said clock distribution network (11); f) removing said blocking signal (block clock signal 35); g) monitoring the output (43) of said test latch (40) to ascertain whether said second logic value propagates through said test latch nothwithstanding the inhibition of said clock distribution network (11), therefore indicating the presence of a stuck-on clock line; h) repeating steps b) to d); i) enabling said clock distribution network (11); j) removing said blocking signal (block clock signal 35); and k) monitoring the output (43) of said test latch (40), to ascertain whether said second logic value fails to propagate through said test latch, notwithstanding the enabling of said clock distribution network (11), therefore indicating the presence of a stuck-off-clock line. The method of claim 1, wherein the order of the tests for a stuck-on or a stuck-off clock line is reversed. Apparatus in a processor (10) for fault testing the clock signal lines of a clock distribution network (11) which fans out a clock signal to a plurality of clock signal lines (25, 28), comprising: a test latch (40); means (42, 44, 45, 49, 50) for setting a first logic value (e.g. zero) through a first input (42) of said test latch (40) and for maintaining a second logic value (e.g. one) at a data input (44) of said test latch (40), wherein said second logic value is of opposite value to said first logic value; means (24, 26, 31) for selecting and connecting a predetermined one of said clock signal lines (25, 28) to a clock input of said test latch (40) via a blocking circuit (32, 35), said blocking circuit (32, 35) allowing the separation of said predetermined clock signal line (25, 28) from said test latch (40); and means (15) for enabling or inhibiting the generation of clock signals; whereby monitoring of the output (43) of said test latch (40) is performed to ascertain whether said selected one of said clock signal lines is either stuck off, in which case the said second logic value fails to propagate through the said test latch (40) during the enabling of the said clock distribution network (11), or stuck on, in which case the said second logic value propagates through the said test latch (40) during the inhibition of the said clock distribution network (11). The apparatus of claim 3, wherein said test latch (40) is a master/slave latch (39, 41) and wherein said first input (42) is a shift input of said master latch (39) and is used for storing said first logic value into said master latch (39); said second logic value being stored into said master latch (39) by said clock signal on said selected clock signal line (25, 28); and said selected clock signal line (25, 28) being connected to said slave latch (41) via a delay circuit (37), wherein the said slave latch (41) is used for transferring the binary value stored in said master latch to the output of said slave latch, for monitoring. The apparatus of claim 4 with said processor including a known level sensitive scan design (LSSD) shift register apparatus for testing, wherein said shift input and said data input are connected to the output of a further latch (49) in said LSSD shift register. The apparatus of claim 3, wherein said means for selecting and connecting a predetermined one of said clock signal lines (25, 28) to a clock input of said test latch (40) includes a decoder (24), one output of which may be selected to thereby gate said predetermined one of said clock signal lines (25, 28) to said test latch (40), via said blocking circuit (32, 35). The apparatus of claim 6 further including a shift register (21) connected to said decoder (24) for providing the identity of the decoder output to be selected. The apparatus of claim 3 wherein said clock distribution network is formed on a plurality of integrated circuit clock distribution chips (14) whose outputs (25, 28) are all connected to a single integrated circuit fault testing chip (29), with each of said integrated circuit clock distribution chips including said decoder (24) and wherein said test latch (40) is included on said fault testing chip.

Inventors: BUCHANAN, GREGORY SCOTT, DEFAZIO, JOHN JOSEPH
Applicants: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1984
Main classification: G06F11
IPC codes: G06F1, G01R31, G06F11