INTERCONNECTED MULTIPORT FLIP-FLOP LOGIC CIRCUIT

Abstract: A digital integrated circuit incorporates a plurality of multi-port flip-flop circuits which are interconnected by a plurality of gate circuits (3,4,8,9). A separate source of clock pulses is provided for each of the ports of the multi-port flip-flop circuits, and each clock pulse source is selectively effective to cause the multi-port flip-flop circuits to perform independent functions. During operation under one source of clock pulses, the flip-flops perform their ordinary function as D type flip-­ flops. During operation under another source of clock pulses, the flip-flops function as one or more shift registers in order to set the flip-flops to a predefined initial state in accordance with serial input data, and/or to provide serial output data in response to the state of the flip-flops following a preceding operation. When a further source of clock pulses is effective, a plurality of flip-flops may be connected to function as a random number generator or as a signature generator so as to perform repetitive operations such as cycling the address inputs of a ROM and providing output signals corresponding to the operation of the ROM.

Description: This invention relates to a digital integrated circuit comprising a plurality of latch circuits which can operate either with first or with second input data, depending on selection signals supplied to them. Such a digital integrated circuit may be a parallel-serial converter, as e. g. the one described in US-A-4,418,418. In this converter, each latch circuit except the first one in shift direction receives either a signal of parallel input data or a signal shifted from the preceding latch circuit. This converter comprises a plurality of latch circuits, each comprising: first and second data input terminals for receiving first and second data, respectively; first and second gate transistors connected to said first and second data input terminals, respectively, said first and second gate transistors being controlled by first and second clock signals, respectively; a first inverting circuit connected to said first and second gate transistors; a third gate transistor connected to said first inverting circuit, and a second inverting circuit on the output side of said latch circuit. The first and second gate transistors receive first and second clock signals, respectively, which operate as selection signals. It has to be noted that in the preamble of appended claim 1, it is mentioned that the first and second gate transistors are controlled by first and second inverted clock signals. This formulation is chosen to bring the claim language in conformity with the further description of the present invention. The prior art converter indeed uses non-inverted clock signals, however, its function is independent from using direct or inverted clock signals. Delaying and shifting is provided in each latch circuit of the prior art converter by the third gate transistor which is clocked by a third clock signal which is essentially independent from the first and second clock signals. Other digital circuits are e. g. LSIs having an extremely large number of latch circuits and other circuits. As a result, testing such circuits becomes difficult. For improved testing, a scan-path test method has been proposed. In this method, a test mode is provided separately from the normal mode as an operational mode of the LSI. In the test mode, the latch circuits operate as a shift register. To perform the LSI test by the scan-path test method, it is necessary to constitute the latch circuits of the LSI as two-port latch circuits which can independently be operated in the normal mode and in the test mode, and which can receive different input signals in dependence of the selected mode and which can operate with independent clocks depending on the respective mode. The parallel-serial converter of the prior art has no provision to select clock signals in common with data signals, however, such a selection is possible with a latch circuit as illustrated in enclosed Fig. 1. Fig. 1 shows an example of a conventional two-port latch circuit. This two-port latch circuit is constituted by a selector 61 for selecting an input signal and selecting a clock source, depending on mode, and a D type flip-flop 62. The selector 61 is composed of AND gates 63-66 and OR gates 67 and 68. A mode setting signal is supplied from a mode setting signal input terminal 69 to one input terminal of each of the AND gates 64 and 66. The inverted mode setting signal is given from the input termanal 69 to one input terminal of each of the AND gates 63 and 65. Data ND in the normal mode is supplied from an input terminal 70 to the other input terminal of the AND gate 63. Data TD in the test mode is supplied to the other input terminal of the AND gate 64 from an input terminal 71. A clock NCK in the normal mode is fed to the other input terminal of the AND gate 65 from a clock input terminal 72. A clock TCK in the test mode is supplied to another input terminal of the AND gate 66 from a clock input terminal 73. The outputs of the AND gates 63 and 64 are supplied to the OR gate 67. The outputs of the AND gates 65 and 66 are supplied to the OR gate 68. The output of the OR gate 67 is supplied to the data input terminal of the D type flip-flop 62. The output of the OR gate 68 is supplied to the clock input terminal of the D type flip-flop 62. The output of the D type flip-flop 62 is output from an output terminal 74. A low level signal is supplied to the mode setting signal input terminal 69 in the normal mode. When the low level signal is supplied to the input terminal 69, the data ND from the input terminal 70 is supplied through the AND gate 63 and the OR gate 67 to the D type flip-flop 62 and, simultaneously, the clock NCK from the clock input terminal 72 is supplied to the flip-flop 62 via the AND gate 65 and the OR gate 68. Under the test mode, a high level signal is supplied to the input terminal 69. In response to the high level signal applied to the input terminal 69, the test data TD from the input terminal 71 is supplied to the flip-flop 62 through the AND gate 64 and the OR gate 67. The test clock TCK from the clock input terminal 73 is supplied to the flip-flop 62 through the AND gate 66 and the OR gate 68. As described above, the conventional two-port latch circuit needs the selector 61 comprising the AND gates 63 and 66 and the OR gates 67 and 68, in addition to the flip-flop 62, resulting in an increase in circuit size. Therefore, if an integrated circuit is constituted using multi-port latch circuits such as the foregoing two-port latch circuit, in order to accomplish a plurality of functions by use of the common circuit elements, there is the problem such that the required chip area increases. In addition, since the input data is supplied to the D type flip-flops through a plurality of gates, there is also the drawback that a delay occurs, caused by these gates, and it is difficult to realize a high operating speed. Further, the electric power consumption is increased, due to the increase in number of elements, so that problems such as heat generation and the like occur. It is the object of the present invention to provide a digital integrated circuit comprising multi-port latch circuits which can independently operate in a normal mode and in a test mode, said latch circuits requiring little chip area and having low power consumption but high operating speed. The digital integrated circuit of the present invention has the above listed features of the prior art parallel-serial converter, and it comprises additionally a fourth gate transistor connected in series with the third gate transistor and coupled to the input of the second inverting circuit. These both transistors are clocked with the clock signals of the normal mode and the test mode, respectively. Due to the special arrangement of the gate transistors used for data selection and the gate transistors used for clock selection, and due to the combination of the clock signals applied to the different transistors, a very simple, but anyhow very effective latch circuit is achieved. The above and other objects and the features of the present invention will become apparent from the following detailed description and the appended claims, with reference to the accompanying drawings. Fig. 1 is a block diagram of a conventional two-port latch circuit; Fig. 2 is a circuit diagram of a two-port latch circuit of the dynamic type which is used in an integrated circuit according to the present invention; Figs. 3A to 3H are timing charts for explaining the operation of the latch circuit in Fig. 2; Fig. 4 is a circuit diagram of a two-port latch circuit of a static system which is used in an integrated circuit of the invention; Figs. 5A to 5J are timing charts for explaining the operation of the latch circuit in Fig. 4; Fig. 6 is a block diagram showing an integrated circuit of one embodiment of the invention; Fig. 7 is a block diagram showing an integrated circuit of another embodiment of the invention; Fig. 8 is a block diagram showing an integrated circuit of a further embodiment of the invention; Fig. 9 is a circuit diagram of a two-port latch circuit of the dynamic type which is used in the embodiment of Fig. 8; and Figs. 10A to 10F are timing charts for explaining the operation of the latch circuit in Fig. 9. Fig. 2 shows an example of a two-port latch circuit for use in the invention. The two-port latch circuit has a dynamic type structure. In Fig. 2, reference numeral 1 denotes an input terminal to which data ND is supplied in the normal mode, and 2 indicates an input terminal to which test data TD is given in the test mode. A MOS transistor 3 is connected between the input terminal 1 and the input terminal of an inverter 7. A MOS transistor 4 is connected between the input terminal 2 and the input terminal of the inverter 7. The gate of the MOS transistor 3 is coupled to an input terminal 5 for an inverted clock NCK in the normal mode. The gate of the MOS transistor 4 is connected to an input terminal 6 for an inverted clock TCK in the test mode. A serial connection consisting of MOS transistors 8 and 9 is connected between the output terminal of the inverter 7 and the input terminal of an inverter 12. The gate of the MOS transistor 8 is coupled to an input terminal 10 for a clock NCK in the normal mode. The gate of the MOS transistor 9 is connected to an input terminal 11 for a clock TCK in the test mode. The output terminal of the inverter 12 is coupled to an output terminal 13. In the normal mode, the clock TCK in the test mode assumes a constant high level and its inverted clock CLK is at a constant low level. For this reason, a low level signal is given to the clock input terminal 6 in the normal mode, whereas a high level signal is supplied to the clock input terminal 11. The MOS transistor 4 is consequently kept in the OFF state and the MOS transistor 9 is maintained in the ON state. Under this state, the clock NCK in the normal mode is supplied to the clock input terminal 10 and its inverted clock NCK is supplied to the clock input terminal 5. In response to the high level inverted clock NCK in the normal mode, the MOS transistor 3 is turned on to transfer the data ND from the input terminal 1 to the inverter 7 via the MOS transistor 3. The output of the inverter 7 is supplied to the MOS transistor 8 and stored into the capacitance of the MOS transistor 8. The MOS transistor 8 is turned on by the high level clock NCK in the normal mode. In the normal mode, the MOS transistor 9 is kept in the ON state. Thus, the output stored in the capacitance of the transistor 8 is fed through the MOS transistor 9 to the inverter 12 in response to the leading edge of the clock NCK in the normal mode, so that the output of the inverter 12 is taken out of the output terminal 13 as an output Q. In the test mode, the clock NCK in the normal mode is kept at a constant high level, whereas the inverted clock NCK is maintained at a constant low level. Therefore, a low level signal is supplied to the clock input terminal 5 in the test mode, and a high level is supplied to the clock terminal 10. Thus, the MOS transistor 3 is maintained in the OFF state but the MOS transistor 8 is kept in the ON state. In this state, the clock TCK in the test mode is supplied to the clock input terminal 11 and the inverted clock TCK is supplied to the clock input terminal 6. In response to the high level inverted clock TCK in the normal mode, the MOS transistor 4 is turned on to transmit the test data TD from the input terminal 2 to the inverter 7 through the MOS transistor 4. Since the MOS transistor 8 is held in the ON state in the test mode, the output of the inverter 7 is stored into the capacitance of the MOS transistor 9 through the MOS transistor 8. When the clock TCK in the test mode is at a high level, the MOS transistor 9 is turned on and the output stored in the capacitance of the MOS transistor 9 is derived via the inverter 12 from the output terminal 13 as the output Q. In Figs. 3E and 3F, it is assumed that the clock TCK supplied to the clock input terminal 11 in the test mode is at a constant high level during a period of time shown at T₁ in these timing charts, respectively, and that the inverted clock TCK supplied to the clock input terminal 6 is contrarily at a constant low level. As shown in Figs. 3A and 3B, the clock NCK and the inverted clock NCK in the normal mode are supplied to the clock terminals 10 and 5 (Fig. 2). Because the MOS transistor 4 is turned off in this state, the data TD (Fig. 3G) from the input terminal 2 is not input. As shown in Fig. 3C, data ND n (ND₀, ND₁, ND₂, ...) is supplied to the input terminal 1 and inverted by the inverter 7 and stored into the capacitance of the MOS transistor 8. The inverted clock NCK is at a high level in the normal mode. In response to the high level clock NCK in the normal mode, the MOS transistor 8 is turned on so that the output of the MOS transistor 8 is inverted though the MOS transistor 9 and the inverter 12. The inverted output is taken out of the output terminal 13. Thus, the output Q from the output terminal 13 changes in response to the leading edge of the clock NCK in the normal mode. As shown in Fig. 3D, the data of which the input data ND n (ND₀, ND₁, ND₂, ...) was delayed by one clock is taken out of the output terminal 13. In Figs. 3A and 3B, it is assumed that the clock NCK supplied to the clock input terminal 10 in the normal mode is at a constant high level during a period of time shown at T₂ in these timing charts and that the inverted clock NCK supplied to the clock input terminal 4 is at a constant low level. As shown in Figs. 3E and 3F, the clock TCK and the inverted clock TCK in the test mode are transmitted to the clock input terminals 11 and 6 (Fig. 2). Since the MOS transistor 2 is turned off in this state, the data ND n (Fig. 3C) from the input terminal 1 is not input. As shown in Fig. 3G, data TD n (TD₀, TD₁, TD₂, ...) is supplied to the input terminal 2 and inverted by the inverter 7. This inverted data is supplied to the MOS transistor 9 and stored into the capacitance of the MOS transistor 9. On the other hand, the inverted clock TCK is at a high level in the test mode. In response to the high level clock TCK in the test mode, the MOS transistor 9 is turned on. Thus, the output of the MOS transistor 9 is inverted by the inverter 12 and taken out of the output terminal 13. Therefore, the output Q of the output terminal 13 changes in response to the leading edge of the clock TCK in the test mode. As shown in Fig. 3H, the data corresponding to the input data TD n (TD0, TD1, TD2, ...), delayed by one clock is taken out of the output terminal 13. As described above, the two-port latch circuit shown in Fig. 2 operates as a D hype flip-flop for the input data ND n , by supplying the clock NCK and the inverted clock NCK in the normal mode with the clock TCK and the inverted clock TCK held at a high level and a low level, respectively. On the other hand, the two-port latch circuit operates as a D type flip-flop for the input data TD n by supplying the clock TCK and the inverted clock TCK in the test mode with the clock NCK and the inverted clock NCK held at a high level and a low level. The clocks which are supplied to the clock input terminals 10 and 11 in Fig. 2 may be referred to as the clock TCK in the test mode and the clock NCK in the normal mode, respectively. Alternatively, the constitution shown in the diagram may be also reversed. Fig. 4 shows another example of a two-port latch circuit. This two-port latch circuit has a static type structure. In Fig. 4, the data ND in the normal mode is supplied to an input terminal 21 and the test data TD in the test mode is supplied to an input terminal 22. A MOS transistor 23 is connected between the input terminal 21 and the input terminal of an inverter 27. A MOS transistor 24 is coupled between the input terminal 22 and the input terminal of the inverter 27. The gate of the MOS transistor 23 is connected to an input terminal 25 for the inverted clock NCK in the normal mode. The gate of the transistor 24 is coupled to an input terminal 26 for the inverted clock TCK in the test mode. The output terminal of the inverter 27 is connected to the input terminal of an inverter 28. The output terminal of the inverter 28 is connected to the node of one end of each of the MOS transistors 23 and 24 and the input terminal of the inverter 27, through a serial connection of MOS transistors 29 and 30. The gate of the MOS transistor 29 is coupled to an input terminal 31 for the clock NCK in the normal mode. The gate of the MOS transistor 30 is connected to an input terminal 32 for the clock TCK in the test mode. The node of the output terminal of the inverter 27 and the input terminal of the inverter 28 is coupled to the input terminal of an inverter 35 through a serial connection of MOS transistors 33 and 34. The gate of the MOS transistor 33 is connected to an input terminal 36 for the clock TCK in the test mode. The gate of the MOS transistor 34 is coupled to an input terminal 37 for the clock NCK in the normal mode. The output terminal of the inverter 35 is connected to the input terminal of an inverter 38 and to an output terminal 39. MOS transistors 40 and 41 are connected in parallel between the output terminal of the inverter 38 and the input terminal of the inverter 35. The gate of the MOS transistor 40 is coupled to an input terminal 42 for the inverted clock TCK in the test mode. The gate of the MOS transistor 41 is connected to an input terminal 43 for the inverted clock NCK in the normal mode. In the normal mode, the clock TCK supplied to the clock input terminals 32 and 36 in the test mode is kept at a constant high level. On the contrary, the inverted clock TCK supplied to the clock input terminals 26 and 42 in the test mode is held at a constant low level. Thus, the MOS transistors 30 and 33 are held in the ON state but the MOS transistors 24 and 40 are kept in the OFF state. In this state, the clock signals NCK and NCK in the normal mode are transmitted to the clock input terminals 31, 37 and 25, 43. In response to the high level inverted clock NCK in the normal mode, the MOS transistor 23 is turned on to supply the data ND from the input terminal 21 to the inverter 27 through the MOS transistor 23. With the low level inverted clock NCK and the high level clock NCK in the normal mode, the MOS transistor 29 is turned on. Since the MOS transistor 30 is held in the ON state in the normal mode, the output of the inverter 27 is returned to its input terminal via the inverter 28 and the MOS transistors 29 and 30 by the ON state of the MOS transistor 29. Therefore, while the clock NCK in the normal mode is at a high level, data is retained at a node A of the output terminal of the inverter 27 and the input terminal of the inverter 28. Now, assuming that the clock NCK in the normal mode is at a high level, the MOS transistor 34 is turned on. Since the MOS transistor 33 is held in the ON state in the normal mode, when the MOS transistor 34 is turned on, the output of the node A is supplied to the input terminal of the inverter 35 via the MOS transistors 33 and 34. The MOS transistor 41 is turned on by the high level inverted clock NCK in the normal mode. The output of the inverter 35 is consequently returned to its input terminal through the inverter 38 and the MOS transistor 41. Thus, while the inverted clock NCK in the normal mode is at a high level, the data is held at the node B of the output terminal of the inverter 35 and the input terminal of the inverter 38. The output of the node B is taken out of the output terminal 39. In the test mode, the clock NCK supplied to the clock input terminals 31 and 37 in the normal mode is held at a constant high level, while the inverted clock NCK supplied to the clock input terminals 25 and 43 in the normal mode is kept at a constant low level. Therefore, the MOS transistors 29 and 34 are held in the ON state but the MOS transistors 23 and 41 are maintained in the OFF state. In this state, the clocks TCK and TCK in the test mode are supplied to the clock input terminals 32, 36 and 26, 42. In response to the high level inverted clock TCK in the test mode, the MOS transistor 24 is turned on, so that the data TD is transferred from the input terminal 22 to the inverter 27 through the MOS transistor 24. In response to the low level inverted clock TCK and the high level clock TCK in the test mode, the MOS transistor 30 is turned on. Since the MOS transistor 29 is maintained in the ON state in the test mode, the output of the inverter 27 is returned to its input terminal through the inverter 28 and MOS transistors 29 and 30 when the MOS transistor 30 is turned on. The data is, therefore, retained at the node A while the clock TCK in the test mode is at a high level. In addition, when the level of the clock TCK in the test mode becomes high, the MOS transistor 33 is turned on. Since the MOS transistor 34 is kept in the ON state in the test mode, the data of the node A is transferred through the MOS transistors 33 and 34 to the input terminal of the inverter 35 by the turn-on of the MOS transistor 33. In response to the high level inverted clock TCK in the test mode, the MOS transistor 40 is turned on. Thus, the output of the inverter 35 is returned to its input terminal, via the inverter 38 and the MOS transistor 40. The data at the node B is consequently held while the inverted clock TCK in the test mode is at a high level. The output of the node B is taken out of the output terminal 39. In Figs. 5F and 5G, the clock TCK supplied to the clock input terminals 32 and 36 in the test mode is at a constant high level during a period of time shown at T₁₁ in these timing charts. On the contrary, the inverted clock TCK supplied to the clock input terminals 26 and 42 in the test mode is at a constant low level. As shown in Figs. 5A and 5B, respectively, the clock NCK and the inverted clock NCK in the normal mode are transmitted to the clock input terminals 31, 37 and the clock input terminals 25, 43. In this state, since the MOS transistor 24 is in the OFF state, the data TD (Fig. 5H) from the input terminal 22 is not input. As shown in Fig. 5C, by supplying the data ND 1n (ND₁₀, ND₁₁, ND₁₂, ...), this data is transferred to the inverter 27 while the inverted clock NCK in the normal mode is at a high level. In response to the high level clock NCK and the low level inverted clock NCK in the normal mode, the MOS transistor 29 is turned on. Thus, the output of the inverter 27 is returned through the inverter 28 and the MOS transistors 29 and 30 to hold the data at the node A as shown in Fig. 5D while the MOS transistor 29 is on. Moreover, the output of the node A is supplied to the inverter 35, via the MOS transistors 33 and 34, since the MOS transistor 34 is turned on while the clock NCK is held at a high level. In response to the low level clock NCK in the normal mode and the high level inverted clock NCK , the MOS transistor 41 is held in the ON state. Thus, the output of the inverter 35 is returned to the inverter 35 through the inverter 38 and MOS transistor 41 so as to hold the data at the node B while the inverted clock NCK is at a high level. Therefore, the data of which the input data ND 1n (ND₁₀, ND₁₁, ND₁₂, ...) was delayed by one clock is output from the output terminal 39 as shown in Fig. 5E. In Figs. 5A and 5B, the clock NCK supplied to the clock input terminals 31 and 37 in the normal mode is kept at a constant high level for a period of time shown at T₁₂ in these timing charts, respectively; however, the inverted clock NCK supplied to the input terminal 25 and 43 in the normal mode is kept at a constant low level. As shown in Figs. 5F and 5G, respectively, the clock TCK and the inverted clock TCK in the test mode are supplied to the clock input terminals 32 and 36 and the clock input terminals 26 and 42. In this state, since the MOS transistor 23 is OFF, the data ND (Fig. 5C) from the input terminal 21 is not input. As indicated in Fig. 5H, by supplying the data TD 1n (TD₁₀, TD₁₁, TD₁₂, ...) this data is transferred to the inverter 27 while the inverted clock TCK in the test mode is at a high level. By the high level clock TCK in the test mode and the low level inverted clock TCK , the MOS transistor 30 is set into the ON state. Thus, the output of the inverter 27 is returned through the inverter 28 and the MOS transistors 29 and 30 to hold the data of the node A as shown in Fig. 5I while the clock TCK is at a high level and the MOS transistor 30 is on. Also, the output of the node A is fed through the MOS transistors 33 and 34 to the inverter 35 since the MOS transistor 33 is on while the clock TCK is kept at a high level. By the low level clock TCK in the test mode and the high level inverted clock TCK , the MOS transistor 40 is turned on. Therefore, the output of the inverter 35 is returned to the inverter 35 through the inverter 38 and MOS transistor 40 to hold the data of the node B while the inverted clock TCK is at a high level. Thus, the data of which the input data TD 1n (TD₁₀, TD₁₁, TD₁₂, ...) was delayed by one clock is output from the output terminal 39 as shown in Fig. 5J. An integrated circuit having the testing function as shown in Fig. 6 can be achieved using the two-port flip-flops constituted as described above. The digital circuit of Fig. 6 is composed of flip-flops and combination gate circuits. F1, F2, and F3 denote flip-flops and G₁, G₂, and G₃ indicate combination gate circuits, respectively. For the two-port latch circuits, units having the structures shown in Figs. 2 and 4 may be used. The outputs of the other logic gates are supplied to the combination gate circuits G1, G2, and G3. The output of the combination gate circuit G1 is supplied to the data input terminal of the two-port latch circuit F1. The output of the combination gate circuit G2 is supplied to the data input terminal of the two-port latch circuit F2. The output of the combination gate circuit G3 is supplied to the data input terminal of the two-port latch circuit F3. Also, the test data TD from an input terminal 51 is supplied to the test data input terminal of the two-port latch circuit F1. The output of the two-port latch circuit F1 is transferred to the test data input terminal of the two-port latch circuit F2. The output of the two-port latch circuit F2 is supplied to the test data input terminal of the two-port latch circuit F3. The clock NCK from a clock input terminal 52 is fed to the clock input terminals of the latch circuit F1, F2, and F3. The test clock TCK is transmitted to the test clock input terminals of the flip-flops F1, F2, and F3. In the normal state of operation, a high level signal is given to the clock input terminal 53 to set the normal mode. By the clock supplied to the clock input terminal 52, the two-port latch circuit F1, F2, and F3 operate as the D type flip-flops corresponding to the combination gate circuits G1, G2, and G3, respectively. In the case of executing the operation test, a high level signal is supplied to the clock input terminal 52 to set the test mode. In response to the test clock TCK supplied to the clock input terminal 53, the output of the latch circuit F1 is transferred to the latch circuit F2 without passing through any combination gate circuit, and the output of the latch circuit F2 is transmitted to the latch circuit F3 without passing through any combination gate circuit. Thus, the latch circuits F1 to F3 function as a shift register. Since the two-port latch circuits F1 to F3 function as a shift register in this manner, the latch circuits F1 to F3 can be set into arbitrary states by the test data TD from the input terminal 51. As mentioned above, the integrated circuit can be tested by use of the scan-path test method, since the two-port latch circuits F1 to F3 function as a shift register in the test mode. The following steps are repeated to test an LSI with such a scan-path method. First, the operation mode of the integrated circuit is set into the test mode so that the data can be supplied from the input terminal 51. This data is transferred to the internal latch circuits F1 to F3, and the state of each of the latch circuits F1 to F3 is set. The operation mode of the integrated circuit is then set into the normal mode so that the outputs of the internal gate circuits G1 to G3 are transferred to the latch circuits F1 to F3. Subsequently, the operation mode of the integrated circuit is set into the test mode to take out the outputs of the respective latch circuits F1 to F3 from an output terminal 54. The output data from the output terminal 54 is compared with an expected value, thereby determining whether the output data is proper or not. According to the embodiment, the two-port latch circuits which function as the latch circuits for the respective combination gate circuits in the normal mode, and which also function as the shift register in the test mode, can be realized by a simple structure without using any selector for selecting the input data and the input clock. The integrated circuit having the test function for allowing the test based on the scan-path method can be, therefore, accomplished without an increase in circuit size or complexity. The foregoing embodiment is fundamentally suitable to test an LSI consisting of a combination of latch circuits and gates. However, in recently developed LSI circuits, the circuits for parallel-in/parallel-out, such as ROM (read only memory) and PLA (programmable logic array) circuits, are formed together with other circuit components on the same chip, with the improvement of greater integration. A very large number of test vectors are needed to test these circuits by the scan-path method. For example, assuming that the address space of the ROM is 2 x and m flip-flops are used for the scan-path, then when m data is scanned and one address is tested, the quantity of test vectors as many as m x 2 x will be necessary, since there are 2 x addresses. However, in the case of testing the ROM or PLA, the number of test vectors can be reduced by use of an embodiment shown in Fig. 7, which will be explained hereinbelow. In this embodiment, the scan-path mode and the random pattern generation mode can be set in addition to the normal mode in which the ordinary operation is executed. In the scan-path mode, the test data is transferred to the latch circuits of the LSI. In the random pattern generation mode, pseudo random patterns are generated and supplied to the circuit to be tested. This embodiment will now be described hereinbelow with reference to Fig. 7. In Fig. 7, a ROM 101 is arranged in an LSI circuit, and the operation of the ROM 101 is tested. Reference numerals 111 to 115 and 121 to 125 represent three-port latch circuits, another form of a multi-port latch circuit, which are arranged on the same LSI. Two-port latch circuits 131 and 132 are arranged on the same LSI. Each of the latch circuits 111 to 115 and 121 to 125 has three data input terminals D, SD, PD, three clock input terminals NC, SC, PC, and one output terminal Q. When a clock is supplied to the clock input terminal NC, and the clock input terminals SC and PC are maintained at a high level, each of these latch circuits operates as a normal D type flip-flop for data supplied to the data input terminal D. When a clock is supplied to the clock input terminal SC, and the clock input terminals NC and PC are held at a high level, each of the latch circuits operates as a D type flip-flop for data supplied to the data input terminal SD. When a clock is supplied to the clock input terminal PC, and the clock input terminals NC and SC are kept at a high level, each of the latch circuits operates as a D type flip-flop for data supplied to the data input terminal PD. Each of the latch circuits 131 and 132 has two data input terminals D and SD, two clock input terminals NC and SC, and and output terminal Q. When a clock is supplied to the clock input terminal NC, and the clock input terminal SC is maintained at a high level, each of the latch circuits 131 and 132 operates as a D type flip-flop for data supplied to the data input terminal D. When a clock is supplied to the clock input terminal SC, and the clock input terminal NC is held at a high level, each of the latch circuits 131 and 132 operates as a D type flip-flop, for data supplied to the data input terminal SD. In Fig. 7, the outputs of combination gate circuits (not shown) arranged on the LSI are transferred to the data input terminals D of the three-port latch circuits 111 to 115 and 121 to 125 and two-port latch circuits 131 and 132, respectively. On the other hand, a system clock is supplied to the clock input terminals NC of the latch circuits 111 to 115, 121 to 125, 131, and 132, respectively. In the normal mode, a high level signal is supplied to clock input terminals 133 and 134. A system clock is supplied to the clock input terminals NC of the latch circuits 111 to 115, 121 to 125, 131, and 132. Therefore, in the normal mode, these latch circuits operate as the latch circuits for the outputs of the combination gate circuits arranged on the LSI. The output of the latch circuit 131 is supplied to the data input terminal SD of the latch circuit 111. The output of the latch circuit 111 is supplied to the data input terminal SD of the latch circuit 112. The output of the latch circuit 112 is supplied to the data input terminal SD of the latch circuit 113. The output of the latch circuit 113 is supplied to the data input terminal SD of the latch circuit 114. The output of the latch circuit 114 is supplied to the data input terminal SD of the latch circuit 115. The output of the latch circuit 132 is supplied to the data input terminal SD of the latch circuit 121. The output of the latch circuit 121 is supplied to the data input terminal SD of the latch circuit 122. The output of the latch circuit 122 is supplied to the data input terminal SD of the latch circuit 123. The output of the latch circuit 123 is supplied to the data input terminal SD of the latch circuit 124. The output of the latch circuit 124 is supplied to the data input terminal SD of the latch circuit 125. The scan clock SCK is supplied from the clock input terminal 133 to the clock input terminal SC of the latch circuits 111 to 115, 121 to 125, 131, and 132, respectively, In the scan-path mode, a high level signal is supplied to the clock input terminals NC of these latch circuits and to the clock input terminal 134. The scan clock SCK is supplied to the clock input terminal 133. In the scan-path mode, the latch circuits 131 and 111 to 115 operate as a shift register. The data supplied to the data input terminal SC of the latch circuit 131 is transferred to the flip-flops 131 and 111 to 115. The latch circuits 132 and 121 to 125 operate as a shift register. The data supplied to the data input terminal SD of the latch circuit 132 is transmitted to the latch circuits 132 and 121 to 125. The output of an exclusive-NOR (EX-NOR) gate 135 is supplied to the data input terminal PD of the latch circuit 111. The output of the latch circuit 111 is supplied to the data input terminal PD of the latch circuit 112. The output of the latch circuit 112 is supplied to the data input terminal PD of the latch circuit 113. The output of the latch circuit 113 is supplied to the data input terminal PD of the latch circuit 114. The output of the latch circuit 114 is supplied to the data input terminal PD of the latch circuit 115. The outputs of the latch circuits 113 and 115 are supplied to the input terminal of the EX-NOR gate 135. The outputs of the exclusive-OR (EX-OR) gates 136 to 140 are supplied to the data input terminals PD of the latch circuits 121 to 125, respectively. Output data D₄ to D₀ of the ROM 101 are supplied to one input terminal of the respective EX-OR gates 136-140. The output of the three-port latch circuit 125 is supplied to the other input terminal of the EX-OR gate 136. The output of the three-port latch circuit 121 is supplied to the other input terminal of the EX-OR gate 137. The output of the EX-OR gate 141 is supplied to the other input terminal of the EX-OR gate 138. The outputs of the three latch circuits 122 and 125 are supplied to the EX-OR gate 141. The output of the three-port latch circuit 123 is supplied to the other input terminal of the EX-OR gate 139. The output of the three-port latch circuit 124 is supplied to the other input terminal of the EX-OR gate 140. A random pattern generating clock PCK is supplied from the clock input terminal 134 to the clock input terminals PC of the to latch circuits 111 to 115 and 121 to 125. In the random pattern generating mode, a high level signal is supplied to the clock input terminals NC of the latch circuits 111 to 115 and 121 to 125. A high level signal is supplied to the clock input terminal 133. In this state, the random pattern generating clock PCK is supplied to the clock input terminal 134. In the random pattern generation mode, the pseudo random patterns are generated from the latch circuits 111 to 115. Namely, a shift register is constituted by the three-part flip-flops 111 to 115. The outputs of the latch circuits 113 and 115 are added by the EX-NOR gate 135 on the basis of modulo-2. The added data is returned to the three-port latch circuits. Therefore, a linear feedback shift register is constituted by the three-port latch circuits 111 to 115 and EX-NOR gate 135. The M-series pseudo random patterns are generated from the latch circuits 111 to 115. The pseudo random patterns are supplied from the latch circuits 111 to 115 to addresses A0 to A4 in the ROM 101. The corresponding data is read out of the ROM 101. The output data is supplied to the EX-OR gates 136 to 140. On the other hand, the output of the three-port latch circuit 125 is returned to the latch circuit 121 through the EX-OR gate 136. The outputs of the three-port latch circuits 125 and 122 are added on the basis of modulo-2 and the added data is supplied to the latch circuit 123. Therefore, the M-series data is produced by the latch circuits 121 to 125 and EX-OR gate 141 and a signature analysis register is constituted. The output data of the ROM 101 is supplied to the signature analysis register. The signature which is generated from the signature analysis register is compared with the expected value, thereby indicating whether the ROM 101 is proper or improper. In this embodiment, the ROM 101 is tested in the following manner. First, the scan clock SCK is supplied to the clock input terminal 133 to set into the scan-path mode. The test data is transferred from the input terminal. The latch circuits 111 to 115, 121 to 125, 131, and 132 are initialized. After these latch circuits were initialized into arbitrary states, the random pattern generating clock PCK is supplied to the terminal 134 to set into the random pattern generation mode. In response to the clock PCK supplied, the pseudo random patterns are generated from the latch circuits 111 to 115 and supplied into the addresses in the ROM 101. The output data of the ROM 101 is supplied to the signature analysis register consisting of the three-port latch circuits 121 to 125. Next, the scan clock SCK is supplied, and the circuit is set into the scan-path mode. Thus, the signatures which are output from the latch circuits 121 to 125 are transmitted to the latch circuits arranged on the LSI and taken out of the output terminal. The signatures are compared with the expected value, thereby determining whether the ROM 101 is proper or improper. A PLA can be also tested in a manner similar to the above, with the PLA substituted for the ROM 101. Although the generator polynomial (determined by the connections to the EX NOR gate 135) was set to (x⁵ + x² + 1 = 0) in the foregoing embodiment, the generator polynomial adapted to generate random patterns is not limited to this polynomial but other generator polynomial may be also used. As described in the above embodiment, 2 n test vectors are needed to test the combination gate circuit of n inputs, even in the case of an LSI on which none of the circuits such as ROM and PLA is arranged. Therefore, with an enlargement of the circuit scale, a very large number of test vectors are necessary to test the operation of the LSI. Even when random patterns are generated, and the operation of the LSI is tested by use of the random patterns, the portion having low controllability cannot be tested with a high degree of accuracy. Fig. 8 shows an embodiment which can solve such a drawback. In Fig. 8, G (1,1) to G (1,n) and G (2,1) to G (2,n) denote combination gate circuits arranged on the LSI. F1 to Fn indicate latch circuits arranged on the LSI. As shown in Fig. 8, each of the latch circuits F1 to Fn has two data input terminals D and TD, three clock input terminals NC, TC₁, and TC₂, and one output terminal Q. The outputs of the combination gate circuits G (1,1) to G (1,n) are supplied to the data input terminals D of the latch circuits F1 to Fn, respectively. The output of the multiplexer M1 is supplied to the data input terminal TD of the latch circuit F1. The output of the latch circuit F1 is supplied to the data output terminal TD of the latch circuit F2. Similarly, the output of the latch circuit FN-1 is supplied to the data input terminal TD of the latch circuit Fn. A system clock CK₁ is supplied from a clock input terminal 201 to the clock input terminals NC of the latch circuits F1 and F2. A system clock CK₂ is supplied from a clock input terminal 202 to the clock input terminal NC of the latch circuit Fn. A scan clock SCK is supplied from an input terminal 203 to the clock input terminals TC₁ of the latch circuits F1 to Fn. A random data generating clock GCK is supplied from a clock input terminal 204 to the clock input terminals TC₂ of the latch circuits F1 to Fn. The outputs from the output terminals Q of the latch circuits F1 to Fn are supplied to the combination gate circuits G (2,1) to G (2,n), respectively. The output from the output terminal Q of the latch circuit F1 is supplied to the data input terminal TD of the latch circuit F2. The output from the output terminal Q of the latch circuit F2 is supplied to the data input terminal TD of the latch circuit F3. The output from the output terminal Q of the latch circuit Fn is supplied to one input terminal 207C of the multiplexer M1. The data from a terminal 205 is supplied to the other input terminal 207B of the multiplexer M1. A selection signal is supplied from a terminal 206 to the multiplexer M1. Each of the flip-flops F1 to Fn can be set into either one of three modes. The first mode is the normal mode in which a system clock is supplied to the clock input terminal NC and a high level signal is supplied to the clock input terminals TC₁ and TC₂. In the normal mode, the latch circuits F1 to Fn operate as the latch circuits for the data supplied to the data input terminals D. The second mode is the scan mode which is used in the case where the latch circuits F1 to Fn operate as the shift register. In the scan mode, a scan clock is supplied to the clock input terminal TC₁ and a high level signal is supplied to the clock input terminals NC and TC₂. In the scan mode, the latch circuits F1 to Fn operate as the latch circuits for the data supplied to the data input terminals TD. The third mode is the random data generation mode in which the random data generating clock GCK is supplied to the clock input terminal TC₂ and a high level signal is supplied to the clock input terminals NC and TC₂. In the random data generation mode, the data which is supplied to the data input terminal D and the data which is supplied to the data input terminal TD are added on the basis of modulo-2 and the added data is transmitted into the latch circuits F1 to Fn. Each of the flip-flops F1 to Fn in Fig. 8 is constituted as shown in, e.g., Fig. 9. When comparing the arrangement of the latch circuit in Fig. 9 with that in Fig. 2, the operation will be understood, although the reference numerals are different. In the flip-flop in Fig. 9, an EX-OR gate 212, a MOS transistor 216, a clock input terminal 219 connected to the gate of the MOS transistor 216, a MOS transistor 220, and a clock input terminal 224 connected to the gate of the MOS transistor 220 are added to the flip-flop in Fig. 2. The third mode, which is made operative by those added circuits, for the case in which random data is generated, will now be described with reference to Fig. 10. The system clock CK and scan clock SCK are maintained at a high level. A low level signal is supplied to clock input terminals 217 and 218. A high level signal is supplied to clock input terminals 224 and 226. In this state, as shown in Fig. 10C, the random data generating clock GCK and the inverted clock GCK are supplied to the clock input terminals 225 and 219. Since a low level signal is supplied to the clock input terminals 217 and 218, MOS transistors 214 and 215 are held in the OFF state. In addition, since a high level signal is supplied to MOS transistors 220 and 222, the MOS transistors 220 and 222 are held in the ON state. When the clock GCK becomes a high level, the MOS transistor 216 is turned on, so that the output of the EX-OR gate 212 is supplied to the input terminal of an inverter 213 through the MOS transistor 216. The output of the inverter 213 is stored into the capacitance of a MOS transistor 221. When the clock GCK rises to a high level, the MOS transistor 221 is turned on, thereby allowing the output stored in the MOS transistor 221 to be taken out of an output terminal 227 through an inverter 223. Therefore, as described above, a low level signal is supplied to the clock input terminals 217 and 218, a high level signal is supplied to the clock input terminals 224 and 226, and the random data generating clock GCK and the inverted clock GCK are supplied to the clock input terminals 225 and 219. Thus, as shown in Fig. 10F, the added data of modulo-2 between the data D₀, D₁, D₂, ... (Fig. 10D) from an input terminal 210 and the data TD₀, TD₁, TD₂, ... (Fig. 10E) from an input terminal 211 is delayed by one clock and taken out of the input terminal 227. Although the example of a latch circuit of the dynamic type is shown in Fig. 9, it is also possible to constitute a static latch circuit corresponding to that shown in Fig. 9, in which the the static type latch circuit shown in Fig. 4 is used as a base circuit. An explanation will now be made hereinbelow with respect to the operation in the case where the latch circuit shown in Fig. 9 is applied to the latch circuits F1 to Fn in Fig. 8. As mentioned above, when the system clock CK is supplied to the clock input terminal NC, each of the latch circuits F1 to Fn operates as a D type flip-flop for the data supplied to the data input terminal D. When the scan clock SCK is supplied to the clock input terminal TC₁, each of those latch circuits operates as the D type flip-flop for the data supplied to the data input terminal TD. When the random data generating clock GCK is supplied to the clock input terminal TC₂, the data supplied to the data input terminal D and the data supplied to the data input terminal TD are added on the basis of modulo-2 and the added data is delayed by one clock and output. In Fig. 8, in the normal mode, the system clocks CK₁ and CK₂ are supplied to the clock input terminals 201 and 202 and a high level signal is supplied to the clock input terminals 203 and 204. Therefore, the system clock CK₁ or CK₂ is supplied to the clock input terminals NC of the latch circuits F1 to Fn. The outputs of the combination gate circuits G (1,1) to G (1,n) are supplied to the latch circuits F1 to F2, respectively. The outputs of the latch circuits F1 to Fn are supplied to the combination gate circuits G (2,1) to G (2,n), respectively. As mentioned above, in the normal mode, the latch circuits F1 to Fn operate as the latch circuits for the combination gate circuits G (1,1) to G (1,n). In the case of transferring the data in the test mode, the scan clock SCK is supplied to the clock input terminal 203 and a high level signal is supplied to the clock input terminals 201, 202, and 204. The terminals 207A and 207B of the multiplexer M1 are connected. Thus, the scan clock SCK is supplied to the clock input terminals TC1 of the latch circuits F1 to Fn. The data from the terminal 205 is supplied to the data input terminal TD of the latch circuit F1. The output of the latch circuit F1 is supplied to the data input terminal TD of the latch circuit F2. The output of the latch circuit Fn-1 is similarly supplied to the data input terminal TD of the latch circuit Fn. Therefore, in this case, the latch circuits F1 to Fn operate as a shift register. The data from the terminal 205 is transferred to the latch circuits F1 to Fn. In the case of generating the random data in the test mode, the clock GCK is supplied to the clock input terminal 204 and a high level signal is supplied to the clock input terminals 201, 202, and 203. The terminals 207A and 207C of the multiplexer M1 are connected. Therefore, the clock GCK is supplied to the clock input terminals TC₂ of the latch circuits F1 to Fn. In response to the clock GCK supplied to the terminals TC₂, the data supplied to the data input terminals D and the data supplied to the data input terminals TD are added on the basis of modulo-2. The added outputs are transmitted into the latch circuits F1 to Fn. The outputs of the combination gate circuits G (1,1) to G (1,n) are supplied to the data input terminals D of the latch circuits F1 to Fn, respectively. The outputs of the combination gate circuits G (1,1) to G (1,n) are determined by their inputs. The outputs of the other latch circuits are supplied to these combination gate circuits. The output of the latch circuit F1 is supplied to the data input terminal TD of the latch circuit F2. The output of the latch circuit Fn-1 is supplied to the data input terminal TD of the latch circuit Fn. The output of the latch circuit FN is supplied through the multiplexer M1 to the data input terminal TD of the latch circuit F1. Namely, the outputs of all of the flip-flops are input to the combination gate circuits. The output of the combination gate circuit is added to the output of the corresponding latch circuit on the basis of modulo-2 and the added data is input to the latch circuit. Therefore, at this time, the random pattern is generated. The operation of the embodiment in Fig. 8 is tested in the following manner. First, the scan clock SCK is supplied to the clock input terminal 203. The terminals 207A and 207B of the multiplexer M1 are connected to set into the scan mode. The test data is input to the terminal 205. The test data is transferred to the latch circuits F1 to Fn, so that these flip-flops are set into arbitrary states. Next, the terminals 207A and 207C of the multiplexer M1 are connected. The random data generating clock GCK is supplied to the clock input terminal 204 to set into the random data generation mode. Thus, random patterns are generated. After the random data generation clocks GCK (as many as necessary) were supplied, the scan mode is set. The data set in the flip-flops is taken out of the output terminals. The output data is compared with a predetermined expected value. By checking whether the data coincides with the expected value or not, it is determined whether the LSI operation is proper or improper. The foregoing embodiment relates to the arrangement of a testable integrated circuit and was shown as an integrated circuit which can cope with the two normal and test modes. However, the invention is not limited to such a circuit but may also be applied to an arrangement such that in the normal mode, the common circuit section can be controlled by switching the clocks in a manner such that the common circuit section operates as, for example, a monostable multivibrator in the first mode and operates as a parity generating or parity check circuit in the second mode. Although the present invention has been shown and described with respect to particular embodiments, various changes and modifications which are obvious from this disclosure to a person skilled in the art to which the invention pertains, may be made within the scope of the invention.

Claims: A digital integrated circuit comprising a plurality of multi-port latch circuits (F1, F2, F3; 111 - 115, 121 - 125; F1 ... Fn) each comprising: first and second data input terminals (1, 2; 21, 22; 210, 211) for receiving first and second data, respectively; first and second gate transistors (3, 4; 23, 24; 214, 215) connected at one ends to said first and second data input terminals, respectively, said first and second gate transistors being controlled by first and second inverted clock signals ( NCA , TDK ; CK , SCK ), respectively; a first inverting circuit (7; 27; 213) connected at its input to the other ends of said first and second gate transistors; a third gate transistor (8; 36; 220) connected to the output of said first inverting circuit, and a second inverting circuit (12; 35; 223) on the output side of said latch circuit; characterized by a fourth gate transistor (9; 37; 222) serially connected to said third gate transistor and coupled to the input of said second inverting circuit, said third and fourth gate transistors being controlled by the first and second clock signals (NCK, TCK), respectively. A digital integrated circuit according to claim 1, including a further gate transistor (216) controllable by third clock signals ( GCK ), said further gate transistor being connected to receive said first and second data signals and to provide a signal to the input of said first inverting circuit (213). Apparatus according to claim 2, including another gate transistor (211) connected in series with said third and fourth gate transistors (220, 222). Apparatus according to claim 1, including a third inverting circuit (28) having its input connected to the output of said first inverting circuit (27), and fifth and sixth gate transistors (29, 30) serially connected between the output of said third inverting circuit and the input of said first inverting circuit, said fifth and sixth gate transistors being controlled by said first and second clock signals (NCK, TCK), respectively. Apparatus according to claim 1, including a third inverting circuit (38) having its input connected to the output of said second inverting circuit (35), and fifth and sixth gate transistors (41, 40) each connected between the output of said third inverting circuit and the input of said second inverting circuit, said fifth and sixth gate transistors being controlled by said inverted first and second clock signals ( NCK , TCK ), respectively. Apparatus according to claim 1, including means for connecting a plurality of said multi-port latch circuits (F1, F2, F3) for operation as a shift register in response to clock signals from one of said first and second clock signals, for shifting serial data. Apparatus according to claim 1, including circuit means (135) for connecting a plurality of said multi-port latch circuits (111-115) for operation as a pseudo random number generator in response to clock signals from one of said first and second clock signals (PCK). Apparatus according to claim 1, including circuit means for connecting a plurality of said multi-port latch circuits (F1.. Fn) into a shift register, and means adapted to cause such shift register to shift out, under the control of clock pulses (SCK) from said first clock pulse source, data corresponding to the previous state of said flip-flops. Apparatus according to claim 1, including means for interconnecting a plurality of said multi-port latch circuits (121-125) into a signature analysis register, and means adapted to provide an output under control of clock pulses (SCK) from said first clock pulse source corresponding to the content of said signature analysis register. Apparatus according to claim 1, including a third source of clock signals (GCK), each of said multi-port latch circuits (F1.. Fn) being connected to said third source of clock signals to perform operations independently of each other in response to signals received from each of said three sources of clock signals, and including circuit means for interconnecting said latch circuits to allow operation in a normal mode, for causing said latch circuits to operate independently as D type flip-flops in response to said first clock signals (CK1, CK2), circuit means for interconnecting said latch circuits to operate as a shift register in response to said second clock signals (SCK), and circuit means for interconnecting said latch circuits to operate as a random data generator in response to said third clock signals (GCK). Apparatus according to claim 10, including a multiplexer means (M1) having an input (207C) connected to an output of one latch circuit (Fn) and its output (207A) connected to a data input (TD) of another latch circuit (F1), and means for controlling operation of said multiplexer in accordance with the selected function of said latch circuits.

Inventors: HAGA, TETSU, HASEGAWA, YOUHEI, SHIMIZUME, KAZUTOSHI, UEMATSU, TAKESHI
Applicants: SONY CORPORATION
Application year: 1986
Main classification: G11C19
IPC codes: H03K3, G11C19