Microcomputer and a method of testing the same

Abstract: The present invention relates to a microcomputer and a method of testing the same. The microcomputer comprises: a memory ROM for storing a first instruction including a first byte and a second instruction including a first byte and a second byte having the same code as that of the first byte of the first instruction; an instruction register (100); and means (14, 15, 16) for loading the instruction register with the second byte of the second instruction after decoding the first byte of the second instruction. The microcomputer can hereby employ a single decode line (L) for all analogous instructions. It is therefore possible to reduce an area occupied by such decode lines (L) on a chip and minimize the size of the same chip. Additionally, the present invention provides a programmable logic array test circuit of the microcomputer, the microcomputer including programmable logic array means comprising: NAND decoder means (1) each composed of an input part for an instruction code, an input part (T) for a timing signal, a control signal output line (4), and a plurality of serially connected MOSFETs; first precharge MOSFET means (2) connected between the NAND decoder means (1) and one potential of a power supply; and second precharge MOSTFET means (3) connected between the NAND decoder means (1) and the other potential of the power supply, the programmable logic array test circuit comprising means (21) for making conductive the first precharge MOSFET means (2) in the course of testing the programmable logic array means. Hereby, the programmable logic array test circuit can establish a test operation on all wirings, etc., of the programmable logic array circuit by measuring a power supply current only concerning all timings of an instruction set. This assures the shortening of test time and the improvement of the accuracy of the executed test.

Description: TECHNICAL FIELD The present invention relates to a microcomputer including a programmable logic array therein (hereinafter referred to as MC) and a method of testing the same. BACKGROUND OF THE INVENTION As illustrated in Fig. 1, a conventional MC includes a data bus, an instruction register IR, a programmable logic array PLA, a data register D, a stack pointer SP, accumulators A, B, temporary registers TRB, TRC, a programmable counter PC, a ROM, and a RAM. The program counter specifies instructions stored in the ROM, the instructions being sequentially transmitted to the instruction register IR via the data bus. The PLA includes control output lines connected to internal registers and memories, etc., decodes instruction data transmitted from the IR, and delivers control signals such as an EM (enable memory) signal, a WACC (write accumulator) signal, an EROM (enable read only memory) signal, and a WM (write memory) signal. Those control signals are to switch on and off the internal registers and the memories, and tranfer the data stored in the RAM, accumulator, and ROM, etc., onto the data bus or write the data on the data bus in the RAM and accumulator, etc. The ROM stores instruction codes constituting instructions shown in Fig. 2 for example. An instruction "ADD A, #N", which is represented by an instruction code "1010, 1010" or "A, A", means that the contents stored in the accumulator A are added with #N or the contents of the second byte, and then, a result of the addition is stored into the accumulator. An instruction "ADD A, M", which is represented by an instruction code "0110, 0101" or "6, 5", means that the contents stored in the accumulator A are added with the contents stored in the RAM, and then a result of the addition is stored into the accumulator. The PLA 200 includes, as illustrated in Fig. 3 for example, a plurality of NAND decoders 1, precharge circuits 2, 3, and a sense amplifier 18. The NAND decoder 1 comprises enhancement FETs indicated by circles (O) and depression FETs indicated by crosses (x). The precharge FET 2 has its one terminal connected to one terminal of the NAND decoder 1 and its other terminal connected to the earth. The precharge FET 3 has its one terminal connected to the other terminal of the NAND decoder 1 and its other terminal connected to a power supply V DD . Those precharge FETs 2, 3 further have their gates connected to precharge signal lines PRC, respectively. In the following, operation of the PLA circuit shown in Fig. 3 will be described with reference to timing charts shown in Figs. 6(a), (b). In a time interval T1 of a timing cycle in an interval M1 of a machine cycle, the control signal EROM opens the output gate of the ROM to fetch out the instruction code stored in the ROM onto the bus and the control signal WIR opens the input gate of the instruction register to store the instruction code on the bus in the instruction register 100. When. the instruction code fetched out from the instruction register IR 100 is "A, A", the NAND decoders 1 on decode lines L'1, L'3 become conductive in a machine cycle interval M2 to permit the sense amplifier 18 to input a signal "H" into the AND gate 6. Therefore, in a timing cycle interval T3 the control output signal EACC is generated on a control output signal line 4 via the AND gate 6, and in a timing cycle interval T4 the control output signal WACC is generated. Additionally, when the instruction code is "6, 5", the NAND decoders 1 located on decode lines L'2, L'4 become conductive in a machine cycle interval M2 to permit the sense amplifier 18 to input a signal "H" into the AND gate 6. Therefore, in the timing cycle interval T3 the control output signal ACC is generated on the control output signal line 4, and in a timing cycle interval T4 the control output signal WACC is generated. Here, the control signals such as EROM, WIR, PCUP, and the like illustrated in Fig. 1 are issued from a timing control circuit T/C. Such a conventional PLA circuit however has a problem that all instruction codes must be decoded to generate control signals in need of the execution of the instructions. One instruction code generally requires four decode lines on the average, for example the instruction "A, A" requires the decode lines L'1, L'3, ..., the instruction "6, 5" requires the decode lines L'2, L'4, L'5, ... That is, about 100 instructions require 400 through 600 decode lines in all. If the width of a single decode line of PLA circuit which is formed on a semiconductor chip is assumed to be 10 µm upon integrating the PLA, the PLA has its entire width ranging from 4 to 7 mm and hence occupies a wide areas of the semiconductor chip, causing a problem of its being made large sized. Hereupon, such a PLA incorporated in the MC is in need of any test on whether or not it is operational in a proper manner. Such a test is carried out two or three times on the last stage of the manufacture of semiconductors or in a packaging process of those semiconductors. A typical MC includes about output lines 4 of 100 through 200 for the control signals issued from the PLA. However, those control signal output lines 4 are connected to input/output gates of varieties of registers included in the MC but not connected to external output terminals. This does not allow a direct check on that any control signal is issued from the PLA. Accordingly, to test the existence of any short-circuit along the wirings in the PLA and that of any abnormal FET in the same, a MC program stored in the ROM is first executed in succession for every instructions. Then, contents in a register being an execution object of each instruction and contents in all registers other than the execution object of each instruction are read out each time for their checks. It is hereby checked that decoding and execution control of the instructions are carried out correctly, and tested indirectly that the PLA is normal. When for example an instruction "MOV A, B" is given from the outside to the MC and executed, it is needed to check the contents stored in an accumulator (ACC) and a temporary register B (TRB) for confirmation of a fact that the contents stored in the TRB have been moved into the ACC, and to check that there is no change in the contents stored in other registers and the like after fetching out those contents to the outside followed by execution of instruction "MOVE A, B". However, the aforementioned test operation to test the PLA requires a data check concerning internal circuits amounting 1000 to 100000 steps using the tester, substantially making it impossible to achieve the complete test. In addition, since the tester must usually be employed for varieties of test excepting the aforementioned object, use of such an expensive tester over a long period of time makes uneconomical the associated device. Furthermore, a program for such a test is very complicated, requiring much labor for preparation thereof. In view of the drawback of the prior art , it is an object of the present invention to reduce in one aspect the absolute number of decode lines keeping the same function as in the prior art , and to assure for a short period of time in the other aspect a test on whether or not all wirings in the programmable logic array circuit are operational normally. DISCLOSURE OF THE INVENTION A microcomputer includes in general varieties of instructions amounting in total about one hundred, some of which have a very similar format. For example, the foregoing instructions "ADD A, #N" and "ADD A, M" are the same instruction of addition, and are different only in that the former allows data to be fetched from "#N" or the second byte thereof or the buffer from a memory designated at "M". Such similar instructions very similar as such have almost common formats of control line signals and timing of the same. In accordance with the present invention as defined by the independent claims, there is provided a test circuit for testing a microcomputer which has a programmable logic array, said programmable logic array comprising : (a) a NAND type decoder having (i) inputs for receiving an instruction code and a timing signal, (ii) a control signal output line, and (iii) a plurality of MOSFETs serially connected ; (b) a first precharge MOSFET connected between one end of the output line of the decoder and the ground ; and (c) a second precharge MOSFET connected between the other end of the output line of the decoder and a power supply; the improvement wherein the test circuit further has means for making the first precharging MOSFET conductive during testing the programmable logic array. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a circuit block diagram illustrating a typical microcomputer (MC); Fig, 2 is a view illustrating formats of conventional instruction code; Fig. 3 is a circuit block diagram illustrating a conventional programmable logic array; Fig. 4 is a circuit block diagram illustrating a programmable logic array (PLA) test circuit of a first embodiment according to the present invention; Fig. 5 is a view illustrating formats of instruction codes in the embodiment of Fig. 4; Fig. 6 is a timing chart illustrating the operation of the embodiment of Fig. 4; Fig. 7 is a logic circuit diagram illustrating a sense amplifier for use in the present invention; Fig. 8 is a logic circuit diagram illustrating a delay circuit for use in the present invention; Fig. 9 is a logic circuit diagram illustrating an OR gate for use in the present invention; Fig. 10 is a timing chart illustrating a test on the PLA of the embodiment according to the present invention; and Fig. 11 is a circuit diagram illustrating a PLA test circuit of a second embodiment according to the present invention. BEST MODE FOR CARRYING OUT THE INVENTION In the following, a first embodiment of the invention will be described with reference to Figs. 4 through 10. Fig. 5 illustrates addition instructions "ADD A, #N" and "ADD A, M", the latter being analogous to the former addition instruction "ADD, A, M" previously described in the prior art. The former addition instruction "ADD A, #N" is not different from the conventional instruction code illustrated in Fig. 2. Against this, a first byte code 11 of a certain addition instruction "ADD A, M" is not different from the conventional one, but a second byte code 12 of the same possesses the same code as the first byte code 13 of the analogous addition instruction "ADD A, #N". As illustrated in Fig. 4, which exhibits a test circuit for a PLA of the first embodiment according to the invention, a decode line L1 is a NAND decoder for a code "6, 5", that is, the addition instruction "Add A, M", which is operated in a machine cycle interval M1. Namely, when the first byte instruction code "6, 5" of the instruction "ADD A, M" is entered into an instruction register 106, the decode line L1 is activated (i.e., to a "L" level) to permit a "H" level signal to be entered into a delay circuit 17 via a sense amplifier 18. Here, the sense amplifier 18 and the delay circuit 17 are arranged as illustrated in Figs. 7 and 8. The delay circuit D issues a control signal WIR in the next timing cycle interval M2, T1 under the control of gates 14, 15, 16, to open an instruction register IR gate for thereby loading the instruction register IR with a second byte code "A, A" from a bus. Simultaneously, a control line signal WTRB is prohibited from being generated. When the decode line L1 decodes the first byte of the instruction as described above, the delay circuit 17, and the gates 14, 15, 16 load the instruction register IR with the second byte of that instruction. A decode line L4 corresponds to the decode line L5 shown in the circuit diagram of the conventional PLA of Fig. 3. It therefore issues a control signal EM in a timing cycle interval M1, T4. Decode lines L2, L3 correspond to L'1, L'3 involved in the conventional PLA circuit of Fig. 3, respectively, which issue a control signal EACC in a timing cycle interval M2, T3 and a control signal WACC in a timing cycle interval M2, T4. Thus the PLA of the embodiment according to the first invention illustrated in Fig. 4 can exhibit the operation timing of control signals illustrated in Fig. 6, as in the covnentional PLA shown in Fig. 3. It should here be understood from a comparison of the decode lines in the PLA of Figs. 3 and 4 that the conventional decode lines L'2 and L'4 are not required but with L1 which is inexistent in the conventional case. Decode lines for control signals WTARC and FADD can also be reduced, although not illustrated in the PLA circuit diagram of Fig. 4. The MC includes substantially about 16 groups of analogous instructions such as ADD, ADC, SUB, SBB, OR, AND, EOR, INC, DEC, CMP, CPL, RRC, RLC, SRC, SLC, and the like. In a typical MC operational with about 8 bits, 5 decode lines on the average can be reduced among analogous instructions and about 80 decode lines as a whole can be reduced. Although in the above description the first and second byte instruction codes were shown as being commmon as an illustrative example, a combination of the second and third bytes may also be possible or with a replacement thereof for the machine cycles a combination of second and third machine cycles may be possible, as a matter of course. In the circuit diagram of a PLA test circuit of the first embodiment according to the present invention illustrated in Fig. 4, an OR gate 21 has its input connected to a test terminal 22 and a PRC (precharge) signal line and has its output connected to a gate of a precharge FET 2. The precharge FET, which is of an enhancement type as described previously, grounds the NAND decoder 1 at all times when the test terminal 22 is "H" at its input together with the conventional PRC input being "H", or when a test is executed. On the contrary, an external power supply 25 is connected via an external ammeter 24 to a VDD terminal 23 disposed on a semiconductor chip. The VDD terminal 23 is connected to one end of a precharge FET 3 whose other end is connected to the output of the NAND decoder 1. In the present embodiment, the ammeter 24 is a current measuring unit in a general-purpose tester, and the DC power supply 25 is a +5V one included in the same tester. Fig. 10 is a timing chart illustrating a test operation for the PLA in the MC in the embodiment according to the second invention. In what follows, operation of the just mentioned test operation will be described with reference to Fig. 11 and to the circuit diagram of Fig. 4. In a test interval for the PLA, the test terminal 22 is kept at a "H" level. Hereby, the precharge FET 2 becomes conductive to permit the NAND decoder 1 to be grounded at its one end at all times. In succession, in the timing T1, an instruction is entered. For example, when an instruction "MOV A, B" is entered, the NAND decoder 1 for an instruction code corresponding to that instruction becomes conductive. In the timing T1, the precharge signal (PRC) is at a "H" level, and the PRC becomes a "L" level. Hereby, the precharge FET 3 becomes conductive because of its being of a P channel type, and in the timing T1 a current IDD from the power supply 25 flows through a current route: precharge FET 3, NAND decoder 1, and precharge FET 2 because all those elements become conductive thereupon, allowing a current corresponding to the single NAND decoder or that corresponding to the single control signal to be read by the ammeter 24. Such a conduction current through the single NAND decoder is approximately 50 µA when the MC is constructed with a CMOS semiconductor. In opposition, if a current to that degree is detected, then it can be estimated that one control signal has been activated. In addition, although in the above situation a current flowed in the timing T1 corresponding to one control signal, the reason is that since the timing lies during the time when an instruction is entered, only that instruction is selected. Then, when the PRC becomes a "L" level in the timing T2, the PRC becomes a "H" level and the precharge FET 3 is switched off. Hereby, no power supply current IDD flows. It is here assumed that two control outputs are activated to a "H" level in a timing T3 for execution of the instruction "MOV A, B". Hereupon, two NAND decoders 1 have been conductive unless there is any short-circuit through wirings and any disconnection therealong. In this situation, the PRC changes to a "H" level in the timing T3, a conduction current flows through the precharge FET 3 because the NAND decoder 1 and the precharge FET 3 have already been conductive. Since thereupon the two NAND decoders have been conductive, there flows approximately 100 µA of the power supply current IDD corresponding to the two control signals. In succession, it is assumed on the design that the four control signal outputs have been at an active "A" level in the timing T4. Since in this situation, the four NAND decoders are conductive as in the timing T3, there flows the power supply current corresponding to the four control signal outputs. It is thus possible to measure the number of the control signal outputs by measuring the power supply current in each timing. Accordingly, a complete test can be achieved for all NAND decoders. If there is any trouble such as disconnection or short-circuit of wirings or bad transistors,or the like in the PLA in the manufacture of semiconductors of the MC, then the measured number of NAND decoders made conductive is not equal to that of NAND decoders made conductive on the design in each timing, allowing a bad PLA to be immediately detected by a tester program. The PLA of a MC includes in general NAND decoders amounting to about 100 through 500, requiring the steps of its test of about 400 through 2000 even when the test is assumed to be done in respective timings of T1 and T2. This corresponds to a very short time. A PLA circuit of the second embodiment according to the present invention illustrated in Fig. 11 is the same in its operation principle as that of the first embodiment illustrated in Fig. 4. Namely, a precharge FET 2 is made conductive to establish a DC path through a NAND decoder 1. In this situation, if there is any signal to be decoded corresponding to an input from an instruction register 100, a T timing input, and a M timing input, then a DC current flows from a power supply VDD via a precharge FET 3. The current is compared with the number of decoded signals for determination of the quality of the measurement. Although in the present specification the PLA of the MC was described, the present invention is applicable also for a PLA of a microprocessor. INDUSTRIAL APPLICABILITY According to the PLA test circuit of the invention, the number of the conducted NAND decoders is measured on the basis of the power supply current IDD in the part of the PLA of the MC. Accordingly, the power supply current IDD may be measured only for all timings of the instruction sets possessed by the MC. This simplifies a data check in the conventional case amounting 10000 through 100000 steps to about 2000 steps. Furthermore, according to the invention, a direct test of the circuit part of the PLA can be achieved without requiring a check on data stored in registers, etc., which can be checked externally of the MC. Thus, greater shortening of the time required for a test and sharp reduction of the step number for preparation of a test program can be realized, assuring very high industrial applicability.

Claims: A test circuit for testing a microprocessor which has a programmable logic array (300), said programmable logic array comprising: (a) a plurality of NAND type decoders (1) each having: (i) inputs for receiving an instruction code and a timing signal (WIR'), (ii) a control signal output line, and (iii) a plurality of MOSFETs serially connected; (b) a plurality of first precharge MOSFETs (2) each of which is connected between one end of the output line of the decoder and a first potential source; and (c) a plurality of second precharge MOSFETs (3) each of which is connected to the other end of the output line of the decoder for providing a second potential level; characterized in that said test circuit further comprises: means (21) for making the first precharge MOSFETs (2) conductive in response to a test signal (22) when testing the programmable logic array (300); and a second potential providing terminal (23) connected to said second precharge MOSFETs (3) for connecting a second potential source (25) through a current measuring means (24) which measures a current (I DD ) flowing through said NAND decoders (1) via said second precharge MOSFETs (3) for each said timing signal (WIR') and evaluates the number of selected NAND type decoders (1). A method of testing a microcomputer, the method comprising the steps of: (a) preparing a microcomputer including programmable logic array means (300) composed of NAND decoder means (1) each having an input part for an instruction code, an input part for a timing signal (WIR'), a control signal output line, and a plurality of serially connected MOSFETs, of first precharge MOSFET means (2) each connected between one end of said NAND decoder means (1) and a first potential source, of second precharge MOSFET means (3) connected between the other end of said NAND decoder means (1) and a second potential providing terminal (23), the second precharge MOSFET means (3) providing a second potential to said NAND decoder means (1) through the second potential providing terminal (23); (b) inputting a test signal (22) into said first precharge MOSFET means (2) of said programmable logic array means (300) and connecting said NAND decoder means (1) to the first potential source; (c) inputting an instruction code and a timing signal (WIR') and evaluating the number of selected NAND decoder means (1); (d) measuring a current (loD) flowing through said NAND decoder means (1) via said second precharge MOSFET means (3) for each said timing signal (WIR') and evaluating the number of selected said NAND decoder means (1); and (e) comparing the evaluated number of said selected NAND decoder means (1) with a designated number and deciding the quality of said programmable logic array means (300).

Inventors: KOUJI TANAGAWA, KOUJI, TANAGAWA, Kouji, Tanagawa, c7o Oki Electric Industry Co.,Ltd
Applicants: OKI ELECTRIC IND CO LTD, OKI ELECTRIC INDUSTRY COMPANY, LIMITED
Application year: 1989
Main classification: G06F11
IPC codes: G06F11, G06F9, G01R31