Abstract:
The integrity of a circuit processing logic signals is verified by use of switching means, including pass transistors, which are selectively varied to provide different test circuit configurations for different modes of operation. The circuit operates in normal, scan, test and data receive modes. During normal operation, the logic signal from the primary circuit is passed directly through a logic test block without the shifting of data in the logic test block.

Description:
CONTINUATION INFORMATION 
     This application is a divisional of patent application Ser. No. 07/385,856 filed Jul. 26, 1989 now U.S. Pat. No. 5,047,710, which is a divisional of patent application Ser. No. 07/106,750 filed Oct. 7, 1987, now U.S. Pat. No. 4,855,669. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to a system for scan testing logic circuit networks. 
     2. Description of the Prior Art 
     Scan testing is a widely accepted means for functional testing of large scale integrated circuits and very large scale integrated circuits. To implement scan testing a special shift register is usually added to an integrated logic circuit solely for the purpose of functional testing. The special shift register comprises interconnected test blocks which are connected to the logic circuit. 
     FIG. 1 shows a typical prior art scan testing circuit arrangement including a network of combination logic circuits 6, 7, 8 . . . n. The primary inputs to the combinational logic circuitry and the outputs from the combinational logic circuitry remain unchanged, but test blocks 10, 20, 30, . . . n are connected respectively to the combinational logic circuitry 6, 7, 8 . . . n at points which permit surveillance of the functions performed in each logic circuit. The test blocks are interconnected to form a shift register. The operation of the combinational logic circuits and the special shift register are generally dependent only upon the digital logic level, and correct operation is not dependent upon the rise time, fall time, or minimum delay of any individual circuit or signal. 
     Each test block in FIG. 1 has four input lines and one output line. For example, the test block 10 has a data input line associated with a test circuit 13, an auxiliary data input line 11, a scan control input line 14, and a clock input line 12. The auxiliary data input line 11 is connected to the scan-in input line 4. The output line 15 of the first test block 10 is connected to the auxiliary data input line 21 of the second test block 20, the output line 25 of the second test block is connected to the auxiliary data input line 31 of the third test block 30, and the output line of each test block is connected to the auxiliary data input line of the next test block up to the last test block n. The output line n5 of the final test block n is tied to the scan-out output line 5. 
     The scan test consists of two basic parts. The operation of the special shift register comprising the interconnected test blocks 10, 20, 30, ..., n is first checked. Then the operation of the logic system is checked. To verify operation of the shift register a test vector is scanned through the shift register. A scan test is used to verify the operation of the logic system. Proper sequencing of the clock signal, scan control signal, test signals, and primary input signals is necessary to perform the scan test. The scan test applies known input signals to combinational logic circuits and then the output signals, generated by the logic circuit in response to the known input signals, are measured. Comparison of the predicted output signals with the measured output signals indicates the functionality of the circuits. 
     The sequencing of the clock signal, scan control signal, test signals and the primary input signals will depend upon the configuration of the test blocks. A typical test block which requires only a single clock line is shown in FIG. 2. A data input line 100 from a combinational logic circuit 6, 7, 8, . . . , or n is connected to a first input terminal of the AND gate 120. A first line 101 connects the scan control line 103 to an inverter on the second input terminal of the AND gate 120. The auxiliary data input line 102 and the scan control line 103 are connected to the input terminals of a second AND gate 121. The output line 105 from the AND gate 120 and the output line 106 from the AND gate 121 are connected to the input terminals of OR gate 122. The output line 107 from the OR gate 122 is connected to the input terminal D of the master latch 123. A clock input line 104 is connected to the clock terminal C of the master latch 123 and to an inverter 126. The output line 109 from the master latch 123 is connected to the input terminal D of a slave latch 124. The output line 110 from the inverter 126 is connected to the clock input C of the slave latch 124. The test block output line 111 is connected to the output terminal Q of the slave latch 124. 
     The normal mode of operation for the test block shown in FIG. 2, requires a low signal on the scan control line 103. With a low signal on the line 103, the output signal of AND gate 121 on the line 106 is always low, and the signal from the inverter on the second input terminal of the AND gate 120 is high. If the signal on input line 100 to AND gate 120 is high, the output signal on line 105 is high, but if the signal on line 100 is low, the signal on line 105 is also low. Thus, the signal on the line 105 follows the signal on the input line 100. 
     The output signal of the OR gate 122 on line 107 follows the signal on the input line 105 because the signal on the other input line 106 to the OR gate 122 is low in the normal mode of operation. Therefore, since the signal of the line 105 follows the signal on the input line 100, the signal on line 107 follows the signal on the input line 100, i.e., the input signal is applied to the input terminal D of the master latch 123 in the normal mode of operation. 
     To pass the input signal on line 107 through the master slave flip-flop 125 to the output line 111, a clock signal is provided on line 104. The signal on line 107 is then passed through the flip-flop 125 to the output line 111. Thus, the user of a circuit which contains this test block must provide a sequence of clock signals to the flip-flop 125 which coincide with the signals on line 100 so that the circuit will function normally. Further, the test block also degrades the circuit&#39;s normal performance because it introduces additional delays associated with the switching of the master slave flip-flop 125. 
     To perform a scan test with the test block in FIG. 2, a high signal is applied on the scan control line 103. This places the test block in the scan mode. In this mode, any signal applied on line 102 is present on the input line 107 of the master latch 123 and when a clock pulse is provided on line 104 the input signal is loaded into the flip-flop 125 and available on the output line 111. After this sequence of operations the test block is in the test mode because a known test signal is available on the output line 111 which is connected to an input line of the logic circuit under test. To determine the results of applying a known input signal to the logic circuit under test the logic circuit is given time to stabilize and then the data receive mode is used. 
     In the data receive mode, the high logic signal on the scan control line 103 is switched to a low logic level. As described previously, for a low signal on the scan control line 103, the signal on the input line 100 is applied to the input terminal D of the master latch 123. Thus, if the line 100 is connected to the output line of a logic circuit under test, the test output signal is available to the input terminal D of the master latch. Application of a clock pulse on the clock input line 104 stores the test output signal in the flip-flop 125. 
     Next the signal on the scan control line 103 is again switched to a high signal, and a sequence of clock pulses applied to shift the stored test signals out of the shift register comprised of the interconnected test blocks, as shown in FIG. 1. 
     The implementation of this prior art scan technique requires that the flip-flops in the test block remain in the normal signal path of the combinational logic circuit network even after the test is completed. The extra circuitry introduces timing delays as well as the need for clock pulses to pass the normal circuit logic signal through the latches. 
     While other embodiments of test blocks are used in scan testing, these test blocks also require that the normal combinational logic circuit output signals pass through one or more flip-flops before the signal is available to the next portion of the combinational logic circuitry. This requires sequencing of one or more clock pulses to the flip-flops during normal operation of the combinational logic circuitry. The user must not only understand the general logic circuit but also the interaction of the test blocks with the circuits. A malfunction of the flip-flop in a test block under normal operation will directly affect the output signal from the combinational logic circuitry. 
     Another prior art system for scan testing of logic circuits is shown in FIG. 3. The normal output lines 180 from the logic circuit under test are a first set of input lines to a multiplexer 191. The multiplexer output lines 184 are the input lines to a group of output registers 192. The output lines 185 from the output registers 192 are the output lines for the logic circuit. The lines 186 are connected to the output lines 185 and to the inputs of the scan register 190. The scan register 190 also has a clock input line 181, scan-in input line 182, a mode control input line 183, a scan-out output line 193, and a set of output lines 188, which are a second set of input lines to the multiplexer 191. The scan register 190 is basically a register with shift capability. The mode control input line 183 is also connected to the multiplexer 191. 
     This system has some advantages over the other prior art scan testing systems because the normal signal path through this system requires only that the signal on the mode control line be set so that the multiplexer passes the signals on the input lines 180 to the output lines 184. Hence, the user is not required to sequence clock pulses with the normal signals from the logic circuit under test to pass the normal logic circuit signals through the scan testing system. Also, a test vector may be loaded into the scan register while the normal signals from the circuit are passed through the scan system. 
     However, this system requires additional hardware and the system still permits only a high degree of fault coverage. Therefore, the prior art scan testing systems while assisting in determining the functionality of a logic circuit are difficult for the user to use and introduce additional failure modes which may not easily be checked or verified by the user. 
     SUMMARY OF THE INVENTION 
     In accordance with my invention I solve the problems of the prior art by providing a primary test circuit incorporating at least one logic test block for verifying the functionality of the primary circuit. Any logic test blocks so incorporated in the primary circuit are transparent to the user during normal operation of the primary circuit, but yet the logic test blocks provide the capability for complete scan testing of the primary circuit. Further, each logic test block is designed such that every function performed by the logic test block may be tested so as to verify correct operation of the logic test block. Each logic test block comprises a plurality of switching elements that enable a multiplicity of modes of operation of the primary circuit. 
     The logic test block of this invention has an input terminal, a scan-in input terminal, an output terminal, a scan-out output terminal and a scan clock input terminal. The input terminal is connected to the output terminal by a first switch means. The scan-in terminal is connected to the input terminal of a data storage means by a second switch means, while the scan-out output terminal is connected to the output terminal of the data storage means. The scan clock input terminal is connected to the clock terminal of the data storage means. A third switch means connects the input terminal to the input terminal of the data storage means and a fourth switch means connects the logic test block output terminal to the output terminal of the data storage means. 
     This novel logic test block is inserted in each primary circuit line where it is desired to verify the logic signal. The primary circuit line is effectively separated producing two ends. A first end of the primary circuit line is connected to the input terminal of the logic test block while the second end of the primary circuit line is connected to the output terminal of the logic test block. 
     The scan-in and scan-out terminals of the logic test blocks incorporated in the primary circuit are interconnected to form a shift register. The logic test blocks may function in either the normal, scan, test, or data receive modes. 
     A novel feature of the invention is that during normal operation the first switch means and the third switch means are closed while the second switch means and the fourth switch means are open. Hence, the primary circuit&#39;s logic signal is passed from the input terminal through the first switch means to the output terminal of the logic test block. The user of the primary circuit does not have to be concerned with shifting data through the logic test block during normal operation. Rather, the signal from the primary circuit is passed directly through the logic test block in its normal configuration. 
     To perform the scan testing the switch means in the logic test blocks incorporated in the primary circuit are opened and closed in predetermined sequences. Clock pulses are applied to shift data into and out of the logic test block&#39;s data storage means. Using scan testing, the user can verify the functionality of the primary circuit. 
     During the scan testing, the first switch means in the logic test blocks will be open, so that the signals may be appropriately transferred through the data storage means from either the input terminal or the scan-in input terminal. However, the scan testing verifies the functionality of the first switch means because of the unique layout of the first switch means. In one embodiment, the first switch means is a transistor which shares its diffusion regions with other transistors, whose integrity is verified by scan testing. Also, the gate of the transistor is part a serial line, which includes the gates of similar transistors in other logic test blocks. The serial line is designed to permit easy verification of its integrity. The unique layout of the transistor permits the 100% functional testing and verification of operability of the logic test block. 
     Finally, this invention permits the user to monitor the logic signals in the primary circuit while the primary circuit is operating in its normal mode. 
    
    
     DESCRIPTION OF THE DRAWINGS 
     FIG. 1 illustrates a prior art scan test circuit. 
     FIG. 2 illustrates a prior art scan logic test block which uses only a single clock. 
     FIG. 3 illustrates another prior art scan test circuit. 
     FIG. 4A and 4B are a representational diagram of the scan logic test block of this invention. 
     FIG. 5 is a schematic circuit diagram of an embodiment of a scan logic test block, made in accordance with this invention. 
     FIG. 6a is a block circuit diagram of an implementation of the novel scan logic test block in a combinational logic circuit so as to permit scan path testing of the combinational logic circuit. 
     FIG. 6b illustrates the signal levels during loading of a test vector into the logic test blocks. 
     FIG. 7 illustrates a novel layout of pass transistors in the logic test block of this invention which permits 100% testing for operability of the logic test block. 
     FIG. 8 illustrates the use of the novel scan logic test block in testing a flip-flop circuit with a feedback loop. 
     FIG. 9 illustrates the use of the novel scan logic test block in testing of the input/output circuitry of an integrated circuit. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 4 is a conceptual representational diagram of the logical test block of this invention. Conceptually, the logic test block is comprised of two single pole double throw switches, a data storage means and lines interconnecting the switches, the data storage means and the logic circuit containing the logic test block. A first input line 210 of the logic test block is connected to both the second terminal 232 of a first single pole double throw switch 230 and to the first terminal 241 of a second single pole double throw switch 240. A second input line, the scan-in input line, 220 is connected to the first terminal 231 of the single pole double throw switch 230. The selector 233 of the single pole double throw switch 230 is connected to the input terminal of a clocked flip-flop 250. The scan clock input line 222 is connected to the clock terminal of the data storage means, a flip-flop 250. The output terminal of the flip-flop 250 is connected to both a second terminal 242 of the single pole double throw switch 240 and the scan-out output line 221 of the logic test block. The selector 243 of the single pole double throw switch 240 is connected to the logic test block output line 211. 
     The concepted logic test block of my invention as shown in FIG. 4 functions in the four normal scan testing modes, i.e., normal, scan, test, and data receive modes. The logic test block may be configured to perform some of these functions simultaneously. In the normal mode of operation the selector 233 of switch 230 is either in contact with terminal 231 or left in the open position. The selector 243 of switch 240 is connected to terminal 241. In this mode, the signal on input line 210 passes through switch 240 to the output line 211 of the logic test block and the flip-flop 250 is isolated from the output line 211 and the input line 210. Hence, unlike the prior art, in the normal mode of operation the functionality of the logic test block&#39;s flip-flop 250 will not affect the operation of the circuit to which the logic test block is connected. 
     In the scan mode, data is shifted into and out of the logic test block&#39;s flip-flop 250. In the scan mode, the selector 233 of switch 230 is connected to the terminal 231 while the selector of switch 240 may be connected to terminal 241, terminal 242 or left in the open position. If the selector 243 is connected to terminal 241, a signal may be loaded into the flip-flop 250 without disturbing the normal functioning of the circuit in which the logic test block is located. During the scan mode, clock pulses are applied on the line 222 to shift data into and out of the flip-flop 250. 
     In the test mode, the signal stored in the flip-flop 250 is used to provide a known signal on the line 211. Therefore, the selector 243 of switch 240 is connected to terminal 242 and the signal on the output terminal of the flip-flop 250 is available on both the output line 211 and the scan-out output line 221. In the test mode, the selector 233 of switch 230 may be connected to terminal 232, terminal 231, or left in the open position. 
     In the scan test data receive mode, the signal, which is being tested, on the input line 210 is stored in the flip-flop 250. Therefore, the selector 233 of the single pole double throw switch 230 is connected to the terminal 232. The selector 243 of the single pole double throw switch 240 is connected to the terminal 242 since the data in flip-flop 250 is providing one of the stimuli for the test. A clock pulse is applied on the scan clock line 222 to load the signal being tested on the line 210 into the flip-flop 250. 
     In addition to the scan test modes, the logic test block can also be configured by selected switch positions to permit real time measurements of signals. For example, the selector 233 of switch 230 is connected to terminal 232 while the selector 243 of switch 240 is connected to terminal 241. In this configuration, the signal on the input line 210 passes through switch 240 to the output line 211, but the signal on the input line 210 also passes to the input terminal of the flip-flop 250 through switch 230. The application of a clock pulse on the scan clock input line 222, the signal on the input line 210 is loaded into flip-flop 250 and then scanned out on line 221. Therefore, in this configuration, the signal on the input line 210 is stored in the flip-flop 250 without interrupting the normal function of the circuit in which the logic test block is contained. 
     In yet another configuration formed by the switches, the logic test block performs a function equivalent to that of the normal mode of operation of the prior art logic test block in FIG. 2. For this function, the selector 233 of the switch 230 is connected to the terminal 232 and the selector 243 of the switch 240 is connected to terminal 242. 
     In this selected configuration, the signal on the input line 210 is passed through switch 230 to the input of the flip-flop 250, but the signal on the input line 210 is not passed through the switch 240 to the output line 211 because the selector 243 of switch 240 is in contact with terminal 242. Hence, to pass the input signal to the output line 211, a clock pulse is applied on scan clock line 222. In this configuration, the logic test block is functionally equivalent to the normal mode of operation of the prior art circuit in FIG. 2. 
     To perform a scan test, the conceptual logic test block of FIG. 4 or a multiplicity of such logic test blocks are placed in a logic circuit. Typically, the logic test blocks are utilized in a combinational logic circuit. The combinational logic circuit is comprised of combinational logic blocks (CLB) wherein each CLB has a specified number of input and output lines. A logic test block is normally placed in each output line of the CLBs. Each CLB output line in which a logic test block is placed is effectively separated producing two ends. A first end is connected to the input line 210 of the logic test block and the second end to the output line 211 of the logic test block. For each group of CLBs which are mutually independent from other CLBs, the scan-in input line and the scan-out output line of the logic test blocks are interconnected to form a shift register. 
     To perform the scan test, the functionality of the shift register is verified by placing each of the logic test blocks comprising the shift register in the scan mode. Then a known sequence of signals is applied to the scan-in input line of the first logic test block in the shift register and clock pulses applied to shift these signals through the shift register. The output signal on the scan-out output line of the last logic test block in the shift register is checked. Comparison of the input signals to the output signals reveals the functionality of the shift register. 
     After the functionality of the shift register is verified, a known test vector is loaded into the logic test blocks while they are in the scan mode. Then the selector 243 of the switch 240 is set to the terminal 242 in each logic test block of the shift register. This puts the logic test blocks in the test mode. The signal stored in the flip-flop 250 is then available on both the output line 211 and the scan-out output line 221. Since the output line 211 of each logic test block is connected to an input line of the logic circuit, the test vector is applied to the input lines of the logic circuit. 
     After the logic circuit under test has stabilized, the selector 233 of the switch 230 in each logic test block comprising the shift register is set to the terminal 232. This puts the logic test blocks in the data receive mode and the signal on the input line 210 of each logic test block is clocked into its flip-flop 250 by the application of a clock pulse. Next the logic test blocks are placed in the scan mode by placing the selector 233 of the switch 230 in contact with the terminal 231. A series of clock pulses is applied and the signal on the scan-out line of the last logic test block in the shift register is checked and compared with the signal expected from the combinational logic block to determine its functionality. 
     Thus, the novel logic test block of my invention provides a means for scan testing. To further illustrate the novelty of the logic test block, a specific embodiment of the logic test block is shown in FIG. 5. The input line 210A is connected to both the drain/source of the first pass transistor 301 and the drain/source of the second pass transistor 302. Since the pass transistors in FIG. 5 are symmetric, the designation of source and drain is not important because the transistors pass a signal from the source to the drain or from the drain to the source when a voltage greater than the threshold voltage is applied. Therefore, the first terminal of the transistor is denoted the drain/source and the second terminal is denoted the source/drain. 
     The scan-in input line 220A is connected to the drain/source of the third pass transistor 303. The source/drain of the pass transistor 303 is connected to both the source/drain of the pass transistor 301, and the input terminal 263 of a first latch 260. A first control line 320 is connected to the gate of the pass transistor 303. A second control line 310, which supplies the complement of signal on line 320, is connected to the gate of the pass transistor 301. 
     The source/drain of the pass transistor 302 is connected to the logic test block output line 211A. The drain/source of the fourth pass transistor 308 is also connected to the logic test block output line 211A. The source/drain of the pass transistor 308 is connected to the output line 274 of the latch 270. The third control line 330 is connected to the gate of the pass transistor 302. A fourth control line 311, which carries the complement of the signal on line 330, is connected to the gate of the pass transistor 308. 
     The latch 260 is comprised of two inverters 261, 262 and two pass transistors 304, 305. The drain/source of the pass transistor 304 is connected to the latch input line 263, while the source/drain of the pass transistor 304 is connected to both the input terminal of the inverter 261 and the source/drain of the pass transistor 305 in the latch 260. The output terminal of the inverter 261 is connected to both the output line 264 of the latch 260 and the input terminal of the second inverter 262 in the latch 260. The output terminal of the inverter 262 is connected to the drain/source of the second pass transistor 305 while the source/drain of pass transistor 305 is connected to the input terminal of the inverter 261. One of the scan clock input lines 222A is connected to the gate of the pass transistor 304. The other scan clock line 312, which carries the non-overlapping complement of the signal on the first scan clock input line 222A, is connected to the gate of the pass transistor 305. 
     The output line 264 of the first latch 260 is connected to the input line 273 of a second latch 270. The latch 270 is also comprised of two inverters 271, 272 and two pass transistors 306, 307. The drain/source of the pass transistor 306 is connected to both the latch input line 273 and the source/drain of the pass transistor 306 is connected to both the input terminal of a first inverter 271 and the source/drain of the pass transistor 307 in the latch 270. The output terminal of the first inverter 271 is connected to both the output line 274 of the latch 270 and the input terminal of the second inverter 272 in the latch 270. The output terminal of the inverter 272 is connected to the drain/source of the second pass transistor 307 while the source/drain of pass transistor 307 is connected to the input terminal of the inverter 271. The scan clock line 312 is connected to the gate of the pass transistor 306. The gate of the other pass transistor 307 is connected to the other scan clock input line 222A. 
     For normal operation, a high signal is present on line 330 and line 320. Since the signal on the line 311 is the complement of the signal on the line 330, the signal on the line 311 is low. Similarly, the signal on the line 310 is the complement of the signal on the line 320 and so the signal on the line 310 is also low. 
     The term &#34;high signal&#34; means a voltage such that when the voltage is applied to the gate of the pass transistor, the signal on the drain/source of the pass transistor is passed to the source/drain of the pass transistor, whereas a low signal means a voltage that is not sufficient when applied to the gate of a pass transistor to pass the signal on the drain/source of the pass transistor to the source/drain of the pass transistor. 
     The high signal on the line 330 drives the gate of the pass transistor 302 high. The pass transistor 302 then passes the input signal on the input line 210A to the output line 211A. The signal on the latch 270 output line 274 does not pass to the output line 211A, since the signal on the line 311 is low and the pass transistor 308 does not conduct. Also, the pass transistor 301 does not pass any signal present on its drain/source from the input line 210A because the signal on the line 310 is low. 
     The high signal on the line 320 drives the gate of the pass transistor 303 high and the signal on the drain/source of the pass transistor 303 from the scan-in input line 220A is passed to the input line 263 of the latch 260. However, the signal on the scan clock input line 222A is low during normal operation. Thus, the gate of the pass transistor 304 in the latch 260 is low and the pass transistor 304 does not pass the signal on the line 263 to the inverter 261. During normal operation, the state of the latch 260 is not of interest since no signal is being passed to it, and similarly the signal on the scan-out output line 221A is not of interest. 
     Notice that in the normal mode, the latches 260, 270 in the logic test block are transparent to the user. The signal on the input line 210A passes to the output line 211A without any additional actions in or on the logic test block. No clock pulses are required by the logic test block and no gate or data storage devices are required to function as in the prior art. 
     Another unique feature of the logic test block is that it can be configured for the normal mode and the scan mode of operation simultaneously. The signal path from the scan-in input line 220A through the pass transistor 303, latch 260 and the latch 270 to the scan-out output line 221A is isolated from the normal signal path consisting of input line 210A, the pass transistor 302 and the output line 211A. Further, the pass transistor 303 is typically on in the normal mode and consequently all that is necessary to scan data into the logic test block is to provide a signal on the scan-in input line 220A in combination with an appropriate sequence of clock pulses on lines 222A and 312. The clock pulses on the line 222A and 312 must be non-overlapping in this embodiment to assure proper operation of the flip-flop 530. 
     In the scan mode, a high signal is applied on line 320. Thus, the scan-in signal on the scan-in input line 220A is first passed by the pass transistor 303 to the input line 263 of the latch 260. Then, when the signal on the scan clock input line 222A goes high, the scan-in signal on the input line 263 of the latch 260 is passed by the pass transistor 304 to the inverter 261 and the complement of the scan-in signal is output from the inverter 261 to the input line 273 of latch 270. The complement of the scan-in signal from the inverter 261 also goes to the input of the inverter 262, which inverts the signal back to the original scan-in signal, but the pass transistor 305 does not pass the signal from the output of the inverter 262 back to the input of the inverter 261 because the signal on line 312 is low. 
     The high signal on the scan clock input line 222A also drives the gate of the pass transistor 307 in the latch 270 high, but the gate of the pass transistor 306 is low because the signal on the line 312 is low. Thus, the pass transistor 306 will not pass the signal on the input line 273 and the remainder of the circuit of latch 270 is isolated from the input line 273. The high level on the gate of the pass transistor 307 passes the signal from the output of the inverter 272 to the input of the inverter 271. Thus, the latch 270 latches on the signal which was present on the latch 270 input line 273 prior to the initiation of the high signal on the scan clock input line 222A and the complement of the input signal is maintained on the latch output line 274 while data is scanned into the latch 260. 
     When the signal on scan clock input line 222A returns to the low state the gate of the pass transistor 304 in the latch 260 goes low and the remainder of the circuitry of the latch 260 is isolated from the input signal on the scan-in input line 220A because the pass transistor 304 does not pass a signal. The gate of the pass transistor 305 is driven high by the signal on the line 312 which goes high after the signal on the scan clock input line 222A returns to the low level. With the gate high, the pass transistor 305 passes the signal from the output of the inverter 262 to the input of the inverter 261. Thus, the latch 260 latches on the signal that was present on the latch input line 263 at the initiation of the high signal on the scan clock input line 222A and the complement of the input signal is maintained at the latch output line 263 while the data is scanned into the latch 270. 
     After the clock signal on the scan clock input line 222A goes low, the high signal on the line 312 also drives the gate of the pass transistor 306 in the latch 270 high. Thus, the pass transistor 306 passes the signal on the input line 273 to the input of the inverter 271. However, the gate of the pass transistor 307 follows the signal on the scan clock input line 222A and goes low, and consequently the output of the inverter 272 is no longer passed by the pass transistor 307 to the input of the inverter 271. Hence, the inverter 271 acts as an output driver for the scan-out output line 221A. This demonstrates that in the scan mode a clock pulse on the scan clock input line 222A, i.e. the signal on the line 222A goes from low to high and back to low, loads the signal on the scan-in input line 220A into the latch 260 and the latch 270 acts as output driver and provides the scan-in input signal level to the scan-out output line 221A. Thus, the scan-in is complete. 
     After loading a known signal into the logic test block during scan-in, the logic test block is placed in the test mode by changing the signal on line 330 to a low level and the signal on line 311 to a high level. Consequently, pass transistor 302 no longer passes the signal on the input line 210A to the output line 211A, but pass transistor 308 passes the signal loaded in the latches 260, 270 during scan-in to the output line 211A. Hence, during the test mode a known signal is applied to the circuit to which the output line 211A of the logic test block is attached. 
     After the change to the test mode and after the circuit under test has stabilized, the signal on line 320 is switched to a low level and the signal on line 310 to a high level. This change turns pass transistor 301 on and pass transistor 303 off and places the logic test block in the data receive mode. Therefore, any signal present on the input line 210A during the test mode can be loaded in the latches by use of scan clock pulses as described in the scan-in. 
     After the test signals have been applied and results loaded into the appropriate logic test blocks, the logic test blocks are returned to the normal configuration. In this configuration, the application of scan clock pulses scans the data out of the logic test block in a matter equivalent to that described in the scan-in. 
     FIG. 6a depicts the logic test block of this invention incorporated in a combinational logic block circuit. The circuit in FIG. 6a includes five combinational logic blocks 405, 415, 425, 435, and 445, and five logic test blocks 480-484 of the type shown in FIG. 4. The output lines 404, 414, 424, 434 from each of the four combinational logic blocks 405, 415, 425, 435 are connected to respective input lines of logic test blocks 480, 481, 482, 483. The output lines 211B, 211C, 211D, 211E, of the logic test blocks 480, 481, 482, 483 serve as input lines 440-443 respectively to the fifth combinational logic block 445. The scan-in line and scan-out lines of each logic test block are interconnected to form one continuous shift register. 
     The combinational logic blocks 405, 415, 425, 435 are identical in structure in that each has four input lines and one output line, but yet the function performed by each CLB may be different. Therefore, a description of block 405 input and output lines will encompass the structure and operation of the other combinational logic blocks&#39; input and output lines as shown in FIG. 6a. The combinational logic block 405 has four input lines 400-403. The function performed by the combinational logic block 405 is represented by the signal on the output line 404. The output line 404 is connected to the input line 210B of the first logic test block 480. The output line 211B from the logic test block is the first input line 440 for combinational logic block 445. 
     The scan-in input line 220B of the logic test block 480 is coupled to a source which supplies scan-in test signals. The scan-out output line 221B of logic test block 480 is connected to the scan-in input line 220C of the next logic test block 481. The scan-out output line 221C from logic test block 481 is connected to the scan-in line 220D of logic test block 482 and each of the remaining logic test blocks are similarly connected. The scan-out output line 221F of the fifth logic test block 484 is coupled to circuitry which allows measurement of the signal on the line 221F. 
     In an actual application, the scan-out output line 221F of the logic test block 484 and the scan-in input line 220B of the logic test block 480 may be connected to other logic test blocks which form a larger shift register. Therefore, the coupling discussed for the shift register in FIG. 6a is illustrative only and is not intended to limit the general use of the logic test blocks in a shift register which is interconnected with a multiplicity of combinational logic circuits such as that shown in FIG. 6a. 
     Each of the logic test blocks in FIG. 6a also has a scan clock input line and the four control lines 320, 310, 330, 311 to the pass transistors, as shown in FIG. 5. However, for clarity these lines are not shown in FIG. 6a. The simple circuit in FIG. 6a is illustrative of one application. The specific number of combinational logic blocks, number of input lines to each combinational logic block, the number of output lines from each combinational logic block, and the interconnections of the logic test blocks that form the shift register are illustrative only. Any number or combination of combinational logic blocks and any number of input and output lines can be used to implement the invention. The only restriction is that the CLBs comprising a test circuit, as defined by the logic test blocks interconnected to form a shift register, must be mutually independent from the other CLBs that comprise the complete combinational logic circuit. 
     Initially, the circuit in FIG. 6a is operating in the normal mode. Referring again to FIG. 5, this means that in each logic test block in FIG. 6a, a high signal is present on lines 330 and 320 while a low signal is present on lines 310 and 311. In this configuration, the latches in the logic test block are isolated from the normal signal path through the logic test block. Consequently, the logic test block is ready for data to be scanned into the latches by the application of signals on the scan-in input line and the application of clock pulses. 
     Typically, several test vectors are used to test a combinational logic circuit. The generation of the test vectors and the appropriate sequencing of scan clock pulses can be accomplished manually, but for any reasonably sized combinational logic circuit, the number of sequences that must be analyzed is so large that manual generation is not practical. Rather, a microprocessor utilizing either software or data files used to design the combinational logic circuit is used to generate the appropriate test vectors. 
     However, for illustrative purposes assume that a test vector which corresponds to a high signal on the input line 440, the input line 441, and the input line 443 and a low signal on the input line 442 to the combinational logic block 445 is used to test the combinational logic block 445. 
     Initially, the signal stored in the latch of each logic test block is unknown. In FIG. 6b, the signal stored in the logic test block is represented by a dashed line until the signal is known. To start the test vector scan-in, a high logic signal is applied to the scan-in input line 220B. As shown in FIG. 6b, a first clock pulse is then supplied to each logic test block for the period t 1  -t 2 . In FIG. 6b, the signal on line 222A is shown. The signal on line 312 (FIG. 5) will be low when the signal line on line 222A is high and high when the signal on 222A is low. In this embodiment, care must be taken in switching the signals on lines 222A and 312 to assure that the edges of the clock pulses on the lines do not overlap in time. 
     At the end of the first clock pulse, at t 2 , the signal on the scan-out output line 221B of the logic test block 480 is high while the output signal from the remaining logic test blocks is still unknown. At the time t 3 , the signal on the scan-in input line 220B of the logic test block 480 is switched to a low logic level and another clock pulse is applied to each logic test block for a period t 4  -t 5 . At t 5 , the signal on the scan-out output line 221B of the logic test block 480 is at a low logic level; the signal on the scan-out output line 221C of the logic test block 481 is at a high logic level; and the signals from the remaining logic test blocks are still unknown. At the time t 6 , the signal on the scan-in input line 220B to the logic test block 480 is switched to a high logic level and then a clock pulse is supplied to each of the logic test blocks for the period t 7  -t 8 . 
     At t 8 , the signal on the scan-out output line 221B of the logic test block 480 is at a high logic level; the signal on the scan-out output line 221C of the logic test block 481 is at a low logic level; the signal on the scan-out output line 221D of the logic test block 482 is at a high logic level, and the signal on the scan-out output line 221E of the logic test block 483 is still unknown. Another clock pulse is supplied to each logic test block for the period t 9  -t 10 . At t 10  the signal on the scan-out output line 221B of the logic test block 480 is at a high logic level; the signal on the scan-out output line 221C of the logic test block 481 is at a high logic level; the signal on the scan-out output line 221D of the logic test block 482 is at a low logic level; and the signal on the scan-out output line 221E of the logic test block 483 is at a high logic level. 
     Thus, the desired test vector is entered in the logic test blocks 480-483. To demonstrate that the shift register is working correctly, the signal on the scan-in input line 220B of the logic test block 480 is switched to a low logic level and then additional clock pulses supplied to the logic test blocks 480-484. After each additional clock pulse, a bit of the test vector is shifted to the scan-out output line 221F of the logic test block 484. If the correct signal is measured after each clock pulse and the output on the output line 211F of the logic test block 484 does not change, then the shift register is functioning correctly. To complete the scan test the sequence of signals shown in FIG. 6b is repeated to reload the test vector into the logic test blocks 480-483. 
     To transfer the test vector from the latches to the output line of the logic test blocks, the logic test blocks must be switched from the scan mode to the test mode. To change from the scan mode to the test mode, the signal on the control line 330 in FIG. 5 is switched to a low signal and the signal on the control line 311 is switched to a high level. With this change of signals, the gate of the pass transistor 302 is at a low level and the pass transistor 302 no longer passes the signal on the input line 210A to the output line 211A. The high signal on the gate of pass transistor 308 passes the signal on the latch output line 274 to the output line 211A. 
     Thus, when the signals on the control lines to the logic test blocks in FIG. 6a are switched to the test mode, the signal which was loaded into each logic test block 480-483 during the scan mode is available on both the scan-output lines 221B, 221C, 221D, 221E and the output lines 211B, 211C, 211D, 211E. Since the logic test block output lines 211B, 211C, 211D, 211E are the input lines 440-443 of the combinational logic block 445, the switch to the test mode applies the test vector to the combinational logic block 445. The result of the function performed by the combinational logic block 445 is represented by the signal on the output line 444 which is the input line 210F of the logic test block 484. 
     To ascertain the signal on the input line 210F of the logic test block 484, the block must be switched to the data receive mode. To change to the data receive mode, the signal on the control line 320 in FIG. 5 is switched to a low signal and the signal on the control line 310 is switched to a high signal. Now, the gate of the pass transistor 303 is at a low level and pass transistor 303 no longer passes the signal on the scan-in input line 220A to the latch input line 263. However, the gate of the pass transistor 301 is high and the pass transistor 301 passes the signal on the input line 210A to the input line 263 of the latch 260. 
     Thus, in FIG. 6a the signal on the input line 210F of the logic test block 484 is passed to the input line of the logic test block&#39;s latch by switching to the data receive mode. Next, a clock pulse is applied on the scan clock input line 222F to the logic test block 484 to load the signal into the block 484 and consequently onto the output lines 221F, where the signal may be measured to determine the functionality of the combinational logic block 445. 
     In addition to isolating the CLB 445 and providing a scan testing capability of CLB 445, the logic test block arrangement in FIG. 6a provides a real time test capability for any of the lines associated with CLB 445. For example, assume that a user wants to determine the signal on input line 210C to the logic test block 481 at certain times during normal operation of the circuit. This is accomplished by providing a high signal on line 310C and a low signal on line 320C of the logic test block 481. Note that the line numbers here are designated by reference numerals corresponding to the reference numerals of FIG. 5, but the numbers have a suffix letter corresponding to the suffix used for the logic test block in the FIG. 6a. This signal change isolates the scan-in input line 220C, but it connects the input line 210C to the latch 260C input line 263C of the logic test block 481. A clock pulse on line 222C at the time of interest to the user will load the signal on line 210C into the logic test block&#39;s latches. 
     To determine the signal stored in the logic test block, a series of additional clock pulses is applied to logic test blocks. These pulses shift the stored signal to the output line 221F of logic test block 484 where it may be measured. The shifting of data out of logic test block 481 and through the other logic test blocks will not interrupt the normal operation of the CLB 445 or the associated logic test blocks because in the normal mode of operation the normal signal path through the logic test block is isolated from the shift register path. Hence, by modifying the signals on lines 310 and 320 of a specified logic test block the user may monitor the normal signal in that logic test block by applying a sequence of clock pulses to the logic test blocks. 
     In the scan test, the functionality of the scan test circuitry of the logic test blocks and the functionality of the combinational logic blocks are verified. Moreover a novel feature of the logic test block is that the scan test verifies the integrity of the pass transistor 302 in FIG. 5 even though the pass transistor 302 is not actually utilized during the scan test. To accomplish this verification a novel layout of the pass transistor 302 is used. 
     The layout of the pass transistors 301, 302, 308 in FIG. 5 is shown in FIG. 7. The diffusion region 501 for the drain/source of the pass transistor 302A is the same as the diffusion region for the drain/source of the pass transistor 301A. The diffusion region 502 for the source/drain of the pass transistor 302A is the same diffusion region as the source/drain of the pass transistor 308A. Since the pass transistor 301A and the pass transistor 308A are tested during scan testing, any defects in the diffusion region 501 or in the diffusion region 502 would be detected during the scan testing. 
     The line 505 is the gate for the pass transistor 302A. If this line failed, then the pass transistor 302A would not pass a signal. The line 505 is serially connected to all the logic test blocks used in conjunction with a particular combinational logic circuit and a means is provided at the end of its path for checking the voltage level on the line. Hence, if the line 505 is open at any point on the serial line, the failure is detected by measuring the voltage at the end of the line 505. The only other failure mode for the pass transistor 302A is a short. In this case a contention or possible defect would be detected in the scan test and even though a contention was not detected the logic test block would still work in normal operation. 
     Another application of the novel logic test block is shown in FIG. 8. The logic test block 670 in FIG. 8 is identical to the logic test block in FIG. 5, but only the input line 210H and the output line 211H are shown. The other components and electrical leads which are shown in FIG. 5, but not shown in FIG. 8 for the purpose of convenience and clarity, will be designated by reference numerals corresponding to the reference numerals of FIG. 5, but will have a suffix letter &#34;H&#34;. In FIG. 8, a first user-definable path selector 600 has three input lines 601-603 and an output line 604 which is connected to a first input terminal of a first OR gate 640. The second input terminal of the OR gate 640 is connected to the master set line 605. The output line 606 of the OR gate 640 is connected to the set terminal S of the flip-flop 650. A second user-definable path selector 610 has three input lines 611-613 and an output line 614 which is connected to the clock terminal C of the flip-flop 650. A third user-definable path selector 620 has three input lines 621-623 and an output line 624 which is connected to a first input terminal of a second OR gate 630. The master reset line 625 is connected to the second input terminal of the OR gate 630. The output line 626 of the OR gate 630 is connected to the reset terminal R of the flip-flop 650. The output terminal QB of the flip-flop 650 is connected to the input line 210H of the logic test block 670. The output line 211H of the logic test block 670 is connected to the input terminal D of the flip-flop 650. Thus, the logic test block 670 is coupled in a feedback path between the output terminal QB to the input terminal D of the flip-flop 650. 
     If the logic test block 670 is set in the test mode, i.e., a low signal is applied on the control line 330H to the logic test block 670 and a high signal is applied on the control line 311H to the logic test block 670, then the signal on the input line 210H is no longer passed through the pass transistor 302H to the output line 211H. Rather, the output of the second latch 270H is passed through pass transistor 308H to the output line 211H. Thus, in this configuration, the logic test block is used to break the feedback path. This allows total control of the flip-flop 650, that is, the next state of the flip-flop 650 does not depend upon the previous state, but only the signal stored in the logic test block 670. When testing flip-flops the clock, set and reset signals to the flip-flops are inhibited when scanning data into the logic test block. Thus, an inhibit line 660 is connected to the inhibit terminal 661 of the user-selectable path 620 to the inhibit terminal 662 of the user-selectable path 610 and the inhibit terminal 663 of the user-selectable path 600. This assures that the signals from the user-selectable paths may be inhibited while data is scanned into any of the logic test blocks that provide a stimulus to those paths. 
     In addition to using the logic test block in scan testing of combinational logic circuits and in feedback paths, the logic test block may also be used in any circuit where it is desired to determine the level of logic signals or provide stimuli in the circuit. For example, in FIG. 9 a logic test block is incorporated in a user-configurable input/output (I/O) block. The I/O block in FIG. 9 includes a pin/pad 700 having an input/output line 716 that connects to the input line 717 of an input buffer 701. The output line 718 of the input buffer 701 is connected to the input terminal D of a flip-flop 750 and to the first input line 719 of a first user-definable path selector 704. The output terminal Q of the flip-flop 750 is connected to the second input line 720 to the user-definable path selector 704. The output line 726 of the user-definable path selector 704 is connected to the input line 210I of the logic test block 780. The line 716 is also connected to the output line 715 of the output buffer 702. The input terminal of the output buffer 702 is connected to the line 714. The master reset line 725 is connected to the reset terminal R of the flip-flop 750. The master set line 722 is connected to the set terminal S of the flip-flop 750. The input/output clock line 724 is connected to a first input terminal of the NAND gate 705. The line 723 which carries the complement of the inhibit signal is connected to the second input terminal of the NAND gate 705. The output line 721 from the NAND gate 705 is connected to the clock terminal of the flip-flop 750. 
     The input line 210I of the logic test block 780 reflects the status of the I/O pin 700 or the contents of the input flip-flop 750. If the flip-flop 750 is selected by the user-definable path selector 704, then data present on the I/O pin 700 will be clocked to the input line 210I by the I/O clock signal on line 724. The output buffer may be enabled, disabled, or under the control of the three-state connection at the path selector 703. Using the scan test and procedures with respect to the logic test block 780 the signal on the I/O pin 700 may be ascertained. During testing while scanning data into and out of the logic test block 780, the clock to the flip-flop 750 is inhibited by NAND gate 705. 
     The logic test block of my invention provides a means for testing 100% of the functionality of a wide variety of circuits which process logic signals. The logic test block is transparent to the circuit in which it is contained during normal operation of the circuit. Further, the logic test block can be configured to permit normal operation of the circuit containing it and simultaneously provide a means for real time measurement of logic signals passing through the logic test block. Finally, the novel design of the logic test block and the layout of its components permits verification of the operability of each component in the logic test block.