WO2000062339A1 - Semiconductor integrated circuit, method for testing the same, and method for manufacturing the same - Google Patents

Semiconductor integrated circuit, method for testing the same, and method for manufacturing the same Download PDF

Info

Publication number
WO2000062339A1
WO2000062339A1 PCT/JP1999/001974 JP9901974W WO0062339A1 WO 2000062339 A1 WO2000062339 A1 WO 2000062339A1 JP 9901974 W JP9901974 W JP 9901974W WO 0062339 A1 WO0062339 A1 WO 0062339A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
test
signal
logic
memory
Prior art date
Application number
PCT/JP1999/001974
Other languages
French (fr)
Japanese (ja)
Inventor
Masayuki Satoh
Isao Shimizu
Hideaki Takahashi
Original Assignee
Hitachi, Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi, Ltd. filed Critical Hitachi, Ltd.
Priority to JP2000611314A priority Critical patent/JP4147005B2/en
Priority to PCT/JP1999/001974 priority patent/WO2000062339A1/en
Publication of WO2000062339A1 publication Critical patent/WO2000062339A1/en

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • G01R31/318519Test of field programmable gate arrays [FPGA]

Definitions

  • the present invention relates to a semiconductor integrated circuit, a test method therefor, and a manufacturing method.
  • the present invention relates to a semiconductor integrated circuit (IC: Integrated Circuit) and its test technology and manufacturing technology.
  • IC semiconductor integrated circuit
  • the present invention provides a logic LSI (Large Scale Integration) capable of detecting a fault and avoiding a fault location to configure a logic. is there.
  • LSI Large Scale Integration
  • test pattern data is generated by a test device called a test device, input to the IC, and the output data signal is compared with an expected value and detected.
  • a test device As a test method for a logic IC, a method is generally used in which test pattern data is generated by a test device called a test device, input to the IC, and the output data signal is compared with an expected value and detected. Met.
  • the number of steps in the test pattern of the logic IC increases as the scale of the logic increases, and the time required to create the test pattern and to perform a test using the test pattern becomes extremely long.
  • a sequential circuit such as a flip-flop that constitutes the original function of the IC is cascaded to design a shift register.
  • a test pattern is serially input (scan-in) at the register and loaded (set), and the test data captured at the shift register is input to a desired combinational logic circuit, and then the output of the logic circuit is output.
  • scan path method which is a so-called scan path method that enables a data signal to be taken into a shift register and shifted out (scan out), has been developed and put into practical use.
  • the output differs depending on the internal state.Therefore, to test a certain logic circuit, first test the state of the sequential circuit included in it.
  • the test pattern becomes very long because it must be set with a pattern, but the test pattern is input (scan-in) with the flip-flop configuration as a shift register. As a result, the number of test passes can be significantly reduced.
  • a B1ST (Built-in self test) test technique has been proposed in which a pattern generator that generates a random test pattern such as a pseudo-random number generator is built in a logic integrated circuit.
  • the BIST test circuit does not guarantee that the generated test pattern will be a test pattern sufficient to detect a defect. Therefore, there is a problem that it is necessary to separately verify whether a sufficient defect detection rate can be obtained with a test pattern of a test circuit.
  • none of the LSIs equipped with the conventional test circuit takes any measures against the failure or defect of the test circuit itself.
  • the test circuit itself fails, there is a disadvantage that a failure is determined even if the original circuit of the chip is normal.
  • the only countermeasure that can be taken is to minimize the size of the test circuit and suppress the occurrence of failures and defects. This results in inconsistencies with the objective of improving test adequacy, that is, improving the defect detection rate. I will invite you.
  • An object of the present invention is to provide a test technique capable of testing a circuit inside an LSI without using a high-performance external tester.
  • the semiconductor integrated circuit according to the present invention includes a plurality of basic logic cells (cell logic blocks) on a chip, and can output a signal indicating whether the circuit is normal or abnormal for each of the basic logic cells, and performs arbitrary logic. It is equipped with a variable logic circuit such as a configurable FPGA (Field Programmable Gate Array). As a result, it is possible to know that there is a defective portion in the variable logic circuit (FPGA) and its location without using an external tester. In addition, the yield is improved by constructing logic by avoiding defective parts, and when a test circuit is constructed using this variable logic circuit (FPGA) to test other internal circuits, the test circuit itself is tested. It is possible to avoid outputting an incorrect test result due to a failure.
  • a configurable FPGA Field Programmable Gate Array
  • the basic logic cell that can output a signal indicating whether the circuit is normal or abnormal is, for example, a 2-wire line logic (logical AND gate circuit) having complementary outputs and a judging means for judging the presence or absence of an abnormality by comparing its output. (Exclusive OR gate).
  • This configuration of the basic logic cell realizes a variable logic circuit (FPGA) that can output a signal indicating whether the circuit is normal or abnormal and that can configure any logic with a relatively small circuit. can do.
  • the method for testing a semiconductor integrated circuit includes at least a plurality of substrates.
  • a variable logic circuit consisting of this logic cell (cell logic block) and capable of outputting a signal indicating whether the circuit is normal or abnormal for each basic logic cell and capable of configuring any logic, and a readable and writable memory circuit
  • a self-test is performed by the above-described variable logic circuit (FPGA) in a semiconductor integrated circuit with a built-in logic, and a predetermined algorithm is used only with the basic logic cell excluding the defective part using the information indicating the defective part obtained as a result.
  • a predetermined test signal and an expected value signal are generated in accordance with and the test signal is supplied to the memory circuit.
  • the memory test circuit is configured to generate a signal indicating a failure when the two do not match, and output the signal to the outside of the chip.
  • Such a memory test circuit can be configured as a test pattern generator called an ALPG (Algorithmic Memory Pattern Generator) that generates a memory test pattern according to a predetermined algorithm.
  • the ALPG is composed of a control unit of a known microprogram control system that decodes an instruction code and controls an arithmetic unit and the like, and an arithmetic unit that generates a test pattern by an arithmetic operation. Then, the instruction code of the test pattern generation program is sequentially supplied to the ALPG built in the FPGA as described above to generate a test pattern, and the test pattern is supplied to the memory circuit which is the circuit under test. The presence or absence of a defect can be inspected.
  • test pattern generation program is described using an existing tester language or a test language, and a test pattern (address and data) is generated according to the predetermined algorithm defined by the instruction code.
  • the tester language is regarded as an effective command language for efficiently generating a test pattern including an address and data.
  • the test language is a language used in the tester industry. For example, a language compatible with Advantest's test language is used.
  • the program data of the existing test pattern can be used.
  • the language for describing the predetermined algorithm is not limited to the test language, but may be any instruction language capable of generating a test pattern including an address and data.
  • Another test method of the semiconductor integrated circuit according to the present invention includes a semiconductor integrated circuit including a custom logic circuit such as a CPU (Central Processing Unit) or a user logic circuit configured with a logic function required by a user together with a memory circuit.
  • a test circuit logic test
  • a test circuit that generates test signals and expected value signals for the CPU and custom logic circuits in accordance with a predetermined algorithm in the above-mentioned FPGA and conducts the test is constructed, and it is determined that the test is normal by the above test.
  • the test pattern or the test pattern generation program is stored in the memory circuit, and the test circuit built in the FPGA is started to read the test pattern or the test pattern generation program from the memory circuit. It tests CPUs and custom logic circuits.
  • the logic circuit inside the LSI can be tested without using a sophisticated external tester.
  • a test circuit for generating a test signal and an expected value signal of a CPU or a custom logic circuit in accordance with a predetermined algorithm and performing a test includes a micro-instruction-type control unit that decodes an instruction code and forms a control signal; When a test signal and an expected value signal for a CPU or a custom logic circuit are generated based on a control signal output from a control unit, and a signal output from the CPU or a custom logic circuit is compared with an expected value signal and the values do not match. This is achieved by constructing signal formation and comparison means in the FPGA that generate a signal indicating a failure.
  • a timing generation circuit that forms a plurality of clock signals having different phases and duties from each other based on the reference clock signal is built in the FPGA, and the timing for each test signal is controlled according to the control signal from the control unit. It is good to be able to set.
  • the test circuit includes a microprogram control type control unit that forms a control signal for generating a test signal and an expected value signal for the CPU and the custom logic circuit according to a predetermined algorithm, and an output from the control unit.
  • the test signal and expected value signal of the internal logic circuit are generated based on the control signal to be generated, and the signal output from the internal logic circuit is compared with the expected value signal to form a signal indicating a failure if they do not match.
  • Signal formation Therefore, it is not necessary to store all the test patterns in the internal memory, and the configuration of the control unit enables the data compression of the instruction code itself, so that it can be sufficiently built in the FPGA.
  • FIG. 1 is a block diagram showing an entire configuration of an embodiment of a logic LSI to which the present invention is applied.
  • FIG. 2 is a circuit configuration diagram showing one embodiment of a variable logic circuit (FPGA) provided in a logic LSI to which the present invention is applied.
  • FPGA variable logic circuit
  • FIG. 3 is a block diagram showing a specific example of a crosspoint switch constituting an FPGA.
  • FIG. 4 is a logic circuit diagram and a conceptual diagram showing a specific example of a cell logic block constituting an FPGA.
  • FIG. 5 is a logic circuit diagram showing another example of the cell logic block constituting the FPGA.
  • FIG. 6 is a block diagram showing a configuration example of a test interface circuit provided in a logic LSI to which the present invention is applied.
  • FIG. 7 is a flowchart illustrating an example of an inspection procedure of the internal circuit in the logic LSI to which the present invention is applied.
  • FIG. 8 is a flowchart showing the specific contents of the inspection procedure of the FPGA section in steps S1 to S3 of the flowchart of FIG.
  • FIG. 9 is a flowchart showing specific contents of the inspection procedure of the SRAM section in steps S4 to S5 of the flowchart of FIG.
  • FIG. 10 is a flowchart showing the specific contents of the inspection procedure of the custom logic circuit and the CPU unit in steps S6 to S8 of the flowchart of FIG.
  • FIG. 11 is a flowchart showing specific contents of the inspection procedure of the DRAM section in steps S9 to S12 of the flowchart of FIG.
  • Figure 12 is a block diagram showing the configuration of the ALPG built in the FPGA.
  • FIG. 13 is a block diagram illustrating a configuration example of a path when a memory circuit is tested using the ALPG.
  • FIG. 14 is an explanatory diagram showing a configuration example of the instruction format of the microphone opening instruction stored in the instruction memory of the ALPG.
  • FIG. 15 is a block diagram illustrating a configuration example of a sequence control unit of the ALPG.
  • FIG. 16 is a block diagram illustrating a configuration example of an address calculation unit of the ALPG.
  • FIG. 17 is a block diagram illustrating a configuration example of a test data generation operation unit of the ALPG.
  • FIG. 18 is a flowchart showing an example of a sequence control procedure using an opcode and an operand of a microinstruction when a memory circuit is inspected by ALPG.
  • FIG. 19 is a flowchart showing an example of a test address and data generation and output procedure using a micro-instruction operation code and a data generation code when a memory circuit is inspected by ALPG.
  • FIG. 20 is a block diagram showing a configuration example of a logic tester built in the FPGA.
  • FIG. 21 is a logic circuit diagram showing a specific example of a signal forming / comparing means in a logic test.
  • FIG. 22 is a waveform diagram showing an example of a test signal waveform formed by a logic test.
  • FIG. 1 is a block diagram of an embodiment of a system LSI to which the present invention is applied, and is configured on a single semiconductor chip 100 such as single crystal silicon by a known semiconductor integrated circuit manufacturing technique.
  • reference numerals 1 to 180 denote internal components formed on the semiconductor chip 100.
  • Circuit, 190 is an interface circuit for inputting and outputting signals between these internal circuits and external devices
  • 200 is for connecting the above internal circuits 110 to 180 and between the interface circuit 190 It is an internal bus.
  • 110 and 120 are custom logic circuits such as a user logic circuit that configures a logic function required by a user, and 120 of these logics can be freely configured by a user. It is composed of FPGA. This custom logic circuit may be left as it is without configuring the user logic.
  • the system LSI of this embodiment is stipulated by the IEEE 1149.1 standard in order to input and output signals to and from an external tester 500 when testing internal circuits.
  • TAP (Test Access Port) 210 is provided as an interface circuit.
  • the tester 500 does not have to be as sophisticated as a conventional logic LSI or memory tester, but can be a device that can perform data read / write and simple data processing. Can also be used.
  • the CPU 130 is configured as a microprocessor processor including a so-called microcomputer peripheral circuit such as a program ROM, a marking RAM, a serial communication interface, a timer circuit, and a digital-to-analog conversion circuit, in addition to the CPU in a narrow sense. You may.
  • a microcomputer peripheral circuit such as a program ROM, a marking RAM, a serial communication interface, a timer circuit, and a digital-to-analog conversion circuit, in addition to the CPU in a narrow sense. You may.
  • the static RAM 140 and the dynamic RAMs 150 to 180 include memory peripheral circuits such as an address decoder for selecting a corresponding memory cell when an address signal is applied via the internal path 200.
  • the dynamic RAMs 150 to 180 include a refresh control circuit that performs pseudo-selection periodically so that the information charges of the memory cells are not lost even when the non-access time is long.
  • the dynamic RAM 150 to 180 stores a spare memory row or column containing the defective bit in the memory array. If memory row In other words, so-called redundant circuits that replace the spare memory columns are provided.
  • FIG. 2 shows a specific example of the FPGA constituting the custom logic circuit 120 among the internal circuits 110 to 180 shown in FIG.
  • the FPGA of this embodiment includes a plurality of cell logic blocks C LB arranged in a matrix, wiring groups 121 and 122 provided between each cell logic block CLB to connect cells, and It is composed of a cross-point switch C SW that can change the state of wiring connection.
  • the cross point switch C SW is divided into a horizontal wiring Lx and a vertical wiring Ly, and a switch MOSFET Qsw having a drain connected thereto and a gate of the switch MOSFET Qsw.
  • a wiring connection information storage memory cell SMC for storing control information applied to the power supply. It is desirable that the wiring groups 121 and 122 be formed in a state where they are insulated from each other by different wiring layers using a multilayer wiring technique.
  • FIG. 2 shows two wires between each cell logic block, more wires are actually formed. The number of wires is increased in proportion to the number of cell logic blocks.
  • an X-decoder circuit, a Y-decoder circuit, a write circuit, and the like for selecting the above-mentioned wiring connection information storage memory cell SMC and writing data are provided around the FPGA block. You may do it.
  • the memory cell SMC for storing the wiring connection information can be provided as an SRAM memory array around the FPGA block instead of being provided as a pair I with the switch MO SFET Qsw.
  • the cell logic block CLB has a logical product gate circuit (2-wire linear logic) LG1 having complementary outputs such as AND logic and NAND logic, and its complementary output as an input.
  • exclusive OR gate circuit comparing means.
  • the gate circuit LG 2 outputs a low-level output signal when the two input signals have the same logic level, and outputs a high-level output signal when the two input signals have different logic levels. If the output of the AND gate circuit LG1 is defective and the complementary output should be the in-phase output, the output of the gate circuit LG2 goes low, indicating that the gate circuit LG1 is defective.
  • the output signal of the gate circuit LG2 may be output as it is to the outside of the FPGA block.
  • the signal for storing the wiring connection information constituting the cross point switch C SW shown in FIG. 3 is used.
  • the memory cell is configured so that it can be inputted to the node N2 of the SMC and stored.
  • the power supply voltage is applied to each cell logic block CLB, the output state of the gate circuit LG2 at that time is stored in the wiring connection information storage memory cell SMC, and then the wiring connection information storage memory cell SMC is By reading the stored information to the outside, it is possible to know whether or not the cell logic block CLB operates normally. In addition, by sequentially writing and reading data from the outside of the chip to each wiring connection information storage memory cell SMC, it is also possible to detect whether or not a memory cell has failed.
  • the switch MOSFET Qsw becomes It is also possible to detect whether a failure has occurred.
  • the gate structure of the MOSFET Q1 or the memory cell circuit that constitutes the wiring connection information storage memory cell SMC to which the output state of the gate circuit LG2 is input is devised. May be configured so that the MOS FET Q1 is not inverted by an external input from outside, that is, does not turn off. This makes it possible to efficiently detect whether or not the cell logic block CLB has a failure.
  • the MOS FET Q1 constituting the memory cell SMC has a structure having a control gate and a floating gate, and a gate circuit LG2 is provided.
  • the output (low level) is inverted by INV and the high level voltage Vp is applied to the control gate CG of the MOSFET 1 to float.
  • a method is conceivable in which charges are injected into the gate FG so that the state of the memory cell does not change due to external data input.
  • the AND gate circuit LG1 having complementary outputs such as the AND logic and the NAND logic shown in FIG. 4 (a)
  • a circuit as shown in FIG. 4 (c) can be considered. That is, the logical product gate circuit LG 1 is composed of a first MOSFET row composed of MOS SFETs Q 11 to Q 13 connected in series between the power supply voltage terminal Vc c and the ground point, and a series MOSFET S 1 A second MOSFET row composed of TQ21 to Q23, and a first input signal X is supplied to the gates of Q12 and Q21, so that input signals X, X are output from the output node N12 of the second M0 SFET row.
  • the MOSFETs Q11 and Q23 shown in the figure respectively act as loads when the gate and the drain are coupled or a predetermined potential is applied to the gate.
  • FIG. 5A shows another configuration example of the cell logic block CLB.
  • the cell logic block CLB of this embodiment is a logic block with a built-in BIST (Built-in self test), which latches two input signals X and Y, respectively, and outputs positive and negative signals X and / X; Flip-flops FF1 and FF2 that output ⁇ and / ⁇ , a logic unit ALU that uses these four output signals as input signals and can perform multiple logical operations such as logical sum, logical product, and exclusive logical sum, and this logical unit A flip-flop FF3 for latching the output Z of the unit and outputting the positive and negative phase signals Z and / Z; a readable and writable memory MEM for storing control information for specifying the logical operation of the logic unit; It consists of a well-known LFSR (Linear Feedback Shift Register) that generates test patterns in the form of random numbers and a comparator CMP.
  • LFSR Linear Feedback Shift Register
  • the memory MEM for storing the logic unit control information is configured to allow externally writing control information.
  • the input signals X and Y and the logical unit control information and the logical unit control information are connected to the LFSR via the switches MOSF ET G1 to G7. It can be connected to the output signal 2 of / 3 and the transmission signal line of / Z, and operates in synchronization with the clock CLK.
  • a control signal CHK is input to the gates of the switches MO SFETs G1 to G7 to be turned on. Then, a random pattern is formed by the LFSR and supplied to the flip-flops FF 1 and FF 2 and the logic unit ALU, and the generated pattern and the output of the flip-flop FF 3 are logically synthesized and compressed. Output to the CMP as a signature pattern
  • the comparator CMP latches from the read 'only' memory ROM where the expected signature pattern is stored, the exclusive OR gate EOR, the output latch OLT, and the clock CLK. It is composed of a timing generation circuit TMG that generates signals.
  • the CMP compares the expected signature pattern stored in the only ROM with the exclusive OR gate EOR and the output pattern of the LF SR. If they match, a low-level signal is output, and if they do not match, a high-level signal is output. This output is latched by the latch OLT and output as a signal ERR indicating good / bad.
  • FIG. 6 shows a specific example of the interface circuit 210 using the TAP shown in FIG.
  • TAP is an interface and control circuit for scan test and BIST circuits specified in the IEEE 1149.1 standard, and shifts test data from input ports to output ports. Select the bypass register 211, the data register 212 used to transmit a specific signal to the circuit, the device ID register 213 to set the chip-specific manufacturing identification number, and the data register. And an instruction register 214 used for controlling the internal test method, a controller 215 for controlling the entire TAP circuit, and the like.
  • the data registry evening 212 is a registration evening treated as an option.
  • four mandatory instructions and three optional instructions are prepared for the instructions set in the Instruction Registrar.
  • the test mode select signal TMS, the test clock TCK, and the reset signal TRST for specifying the test mode are input to the controller 215 from three dedicated external terminals. Control signals for the registers 211 to 214 and the selector circuits 216 to 218 are formed.
  • the TAP is provided with an input terminal for the test data TDI and an output terminal for the test result data TD, and the input test data TDI is supplied to each of the registers 211 to 1 through the selector circuit 216. Supplied to 214 or internal scan path Iscan, Bscan. The contents of the registers 211 to 214 and the scanout data from the internal circuit are output to the outside of the chip via the selector circuits 217 and 218. Further, a signal to the internal BIST circuit is formed and supplied to the TAP according to the contents of the data register 212 and the instruction register 214, and a signal indicating the test result output from the BIST circuit is output to the selector circuit 217. , 218 so that it can be output to the outside of the chip.
  • the self-test circuit built on the CPU logic circuit (FPGA) 120 or the CPU 130 is regarded as a BIST circuit, and the signal input / output function for the BIST circuit of the TAP is used to create a custom logic circuit (FPGA) 120 It is configured to input a setting signal for self-test to CPU and CPU 130, and to output test results and data stored in memory cells in FPGA 120 and SRAM 140. ing.
  • the scan test function of the TAP is not used in the system LSI of the embodiment of FIG.
  • Iscan is a test for diagnosing the internal logic circuit by using a shift register in which flip-flops constituting the internal logic circuit are connected in a chain as a scan path for the test data. Means a path.
  • the “Bscan” uses a shift register, which is a chain of flip-flops provided in the signal input / output section (the interface circuit 190 in FIG. 1), as a scan path, and uses other semiconductors. It means a test path for diagnosing the connection status with the integrated circuit (boundary scan test).
  • FIG. 7 shows an outline of the test procedure of the entire LSI
  • FIGS. 8 to 11 show specific examples of the test procedure of each block constituting the LSI.
  • the FPGA 120 is inspected using the function of the cell logic block described above, and it is determined whether there is a defect. Avoidance of a defective part is performed (steps S1 to S3).
  • a test circuit (ALPG) for testing the SR AMI 40 is constructed in a portion of the FPGA 120 excluding the defective portion, and the test of the SRAM 140 is executed (steps S 4 and S 5).
  • test circuit for testing the custom logic circuit 110 and the CPU 130 is constructed in the portion of the FPGA 120 excluding the defective part.
  • the tests of the custom logic circuit 110 and the CPU 130 are executed (steps S6 to S8). At this time, a test pattern is created using SRAM that has already been tested. A turn or test pattern generation program is stored.
  • a test circuit for testing the DRAMs 150 to 180 is constructed in the portion of the FPGA 120 excluding the above defective parts, and the DRAMs 150 to 180 are sequentially tested. It is performed (Steps S9, S10). If a defective part is found, it is stored in the SRAM 140 or an external storage device, and then the defective bit is rescued by using the redundant circuit provided in the DRAMs 150 to 180.
  • the rescue program is read by the CPU 130, and the program is executed by the CPU 130 to perform bit rescue (steps S11 and S12).
  • step S13 a part of the custom logic such as the user logic is formed in a portion of the FPGA 120 excluding the defective portion, and the system is completed as a system LSI (step S13).
  • the TAP 210 is set to the access mode of the connection information storage memory cell SMC in the FPGA 120, and then the failure is determined by using the information indicating the failure location obtained in step S1.
  • a desired logic is constructed by writing a data which constitutes the user logic so as to avoid the place in the memory cell SMC of the normal crosspoint switch in the FPGA 120.
  • FIG. 8 shows a more detailed procedure of the self-verification of the custom logic circuit (FPGA) 120 in steps S1 to S3 of the flowchart of FIG.
  • the logic gate circuits LG 1 and LG 2 of the cell logic block CLB constituting the FPGA 120 are activated, and if there is a defect, the logic is activated.
  • the output of the gate circuit LG1 goes low, and the output state is stored in the connection information storage memory cell SMC (step S111).
  • a code to be set in the test mode select signal TMS function register 214 is input to the TAP 210 as the test interface circuit, and the TAP 210 is connected to the FPGA 120.
  • the access mode is set for the memory cell SMC for connection information storage (step S112).
  • data indicating normality for the memory cell SMC (the cell theory
  • the logic level (the logic level opposite to the logic level indicating the defect state by self-verification of the logical block CLB) is written (step S113).
  • data is read from the memory cell SMC (step S114).
  • step S115 by comparing the read data and the write data, it is determined which cell logic block CLB has a defect (step S115). Further, for example, by writing and reading the reverse of the write data, a cross-point switch CSW having a defect in the memory cell SMC itself can also be detected.
  • a map of a normal cross-point switch CSW and a cell logic block CLB is created based on the above determination result (step S116).
  • the created map that is, the information indicating whether the cross point switch CSW and the cell logic block CLB are normal or abnormal is stored in a storage device or the like in the tester 500.
  • the HDL description of the SRAM test (ALPG) to be built on the FPGA 120 is read from a data pace and the like, and the logic synthesis is performed at the test 500, and the defective crosspoint switch C SW and the cell are determined based on the above map.
  • Data for constructing an ALPG (Algorithmic Memory Pattern Generator) avoiding the logic block CLB is generated (step S117).
  • the generated data is stored in a storage device or the like in the tester 500 (step S118). This data is data for selectively turning on the normal cross-point switch CSW switch MOSFETQsw according to the logic to be configured.
  • FIG. 9 shows a more detailed procedure for inspecting the SRAM section 140 in steps S4 to S5 of the flowchart of FIG.
  • a control signal is supplied from the tester 500 to the TAP 210 to select the memory cell SMC for storing the crosspoint switch control information in the FPGA 120 (step S121). Then, the data for constructing the ALPG stored in the storage device in step S118 is transferred to the selected memory cell SMC (step S122). This creates a test pattern for testing SRAM in FPGA 120.
  • a test circuit including a possible ALPG is constructed. The structure of the ALPG built in the FPGA 120 and the specific method of building the ALPG will be described later in detail.
  • a program for operating the ALPG to generate a test pattern is written by the tester 500 into the memory circuit in the FPGA 120 via the TAP 210 (step S123).
  • This memory circuit is composed of the cell logic block CLB and the crosspoint switch CSW constituting the FPGA 120 when the ALPG is constructed in step S122.
  • control signal is supplied from the tester 500 to the TAP 210 to set the SRAM section 140 to the selected state (step S124).
  • the ALPG in the FPGA 120 is activated, the test pattern generation program written in step S123 is executed to generate a test pattern, and the generated test pattern is transferred via the bus 200 or the like.
  • the test is supplied to the selected SRAM section 140, and the test result is output to the outside (tester 500) via the TAP 210 (steps S125 and S126).
  • the tester 500 determines whether there is a defect in the SRAM section 140 from the output test result and sorts out a non-defective product and a defective product (step S127).
  • the write data formed by the ALPG built in the FPGA 120 is output to the outside as an expected value, and the data read from the SRAM is also output to the outside. It is also possible to configure so as to judge the presence or absence of a defect by comparing the read data with the read data.
  • an instruction code for configuring the test pattern generation program may be sequentially input from outside via a TAP.
  • FIG. 10 shows a more detailed procedure for checking the logic unit, that is, the custom logic unit 110 and the CPU unit 130 in steps S6 to S8 of the flowchart in FIG.
  • a data for constructing a logic test in the FPGA 120 is created. Step S1 3 1). At this time, a logic tester is constructed by using the map of the normal cell logic block CLB and the crosspoint switch CSW generated in step S116 of the FPGA self-verification flow in Fig. 8 to avoid faulty circuits. Is created.
  • a control signal is supplied from the tester 500 to the TAP 210 to select the memory cell SMC in the FPGA 120 for storing the cross-point switch control information (step S132).
  • the data for constructing the logic test stored in the storage device in the above step S131 is transferred to the selected memory cell SMC (step S133).
  • a test circuit capable of generating a test pattern for testing a logic part is built in the FPGA 120.
  • a program memory may be configured in the FPGA, and a program for operating the logic tester may be transferred to the configured memory.
  • a control signal is supplied from the tester 500 to the TAP 210 to select the SRAM section 140 for which the flow inspection in FIG. 9 has been completed (step S134).
  • a program for generating a test pattern for testing the custom logic section 110 prepared in advance in the test section 500 is written into the SRAM 140 via the tap 210 by the test section 500. (Step S135).
  • storing it in an SRMA that has been inspected without storing it in the memory circuit in the FPGA generally uses a logical circuit test pattern rather than a memory test pattern. This is because the longer one requires a larger memory area.
  • the logic test in the FPGA 120 is started, and the test pattern generation program written in the SRAM 140 in step S135 is read to generate a test pattern, and the custom logic unit is generated. It is supplied to 110 (step S136). Then, the output signal from the custom logic section 110 is compared with the expected value, and the test result is output to the outside (test section 500) via the TAP 210 (step S137). Then, the tester 500 determines whether or not there is a defect in the custom logic section 140 based on the output test result, and selects a non-defective product and a defective product (step S138).
  • a test pattern generation program for inspecting the CPU 130 prepared in the tester 500 in advance is transferred to the SRAM 140 (step S139).
  • the logic test in the FPGA 120 is started up, and the test pattern generation program written in the SRAM 140 in step S135 is read and supplied to the CPU 130 while generating a test pattern (step S140).
  • the output signal from the CPU 130 is compared with the expected value, and the test result is output to the outside (test 500) via the TAP 210 (step S141).
  • the tester 500 determines whether there is any defect in the CPU 130 based on the output test result and sorts out a non-defective product and a defective product (step S142).
  • FIG. 11 shows a more detailed procedure of the inspection of the DRAM units 150 to 180 in steps S9 to S12 of the flowchart of FIG.
  • DRAM section 1.50 ⁇ In the test of L80, first, at test 500, a test for constructing an ALPG (Algorithmic Memory Pattern Generator) capable of generating test patterns for testing DRAM in FPGA 120 Create (step S151). At this time, using the map of the normal cell logic block CLB and the crosspoint switch CSW generated in step S116 of the FPGA self-verification flow of FIG. 8 to avoid the faulty circuit and construct the ALP G A day is created. Note that ALP G for DRAM inspection is almost the same as ALP G for SRAM inspection, and the refresh operation is normal.
  • ALPG Algorithmic Memory Pattern Generator
  • the difference is that processing for judging abnormalities has been added.
  • a control signal is supplied from the tester 500 to the TAP 210 to select the memory cell SMC in the FPGA 120 that stores the crosspoint switch control information (Step S152). Then, the data for constructing the ALPG created in step S151 is transferred to the selected memory cell SMC (step S153).
  • a test circuit including ALP G is built. The structure of the ALPG built in the FPGA 120 and a specific method of building the ALPG are almost the same as those of the ALPG for inspecting the SRAM, which will be described later in detail.
  • tester 500 a program for operating ALPG to generate test patterns is provided by Tester 500? Through 210?
  • the data is written into the memory circuit in the address 120 (step S154).
  • This memory circuit is configured by the cell logic block CLB and the crosspoint switch CSW constituting the FPGA 120 when the ALPG is constructed in step S153.
  • the test pattern generation program may be stored in the SRAM 140, or an instruction code may be sequentially input from the outside to the ALPG in the FPGA at the time of DRAM testing.
  • step S155 a fail memory for storing the position of a defective bit detected in a DRAM test (step S159) described later in the SRAM (step S156).
  • step S159 a control signal is supplied from the tester 500 to the TAP 210 to set the CPU section 130 to the selected state (step S157), and a rescue program for relieving defective bits of the DRAM is stored in the memory in the CPU 130. Transfer (step S158). This rescue program may be stored in the SRAM 140.
  • This rescue program uses the above DRAM in accordance with a predetermined replacement algorithm.
  • a replacement address is set in an address conversion circuit in a redundant circuit provided along with 150, and a memory row or a memory column containing a defective bit is replaced with a spare row or a spare column.
  • the redundant replacement algorithm which selects the most appropriate spare memory row or spare memory column based on the test results and replaces the defective bit, is known per se and can be used for this embodiment. Does not require a new replacement algorithm.
  • a test signal is supplied to the TAP 210 by the tester 500 to set the DR AML 50 to the selected state.
  • the ALPG in the FPGA 120 is activated, and the test pattern generation program written in step S154 is executed.
  • a test pattern is generated, and the generated test pattern is supplied to the selected DRAM unit 150 to perform a test, and the result, that is, the position of the defective bit is stored in the fail memory configured in the SRAM 140 (step S 159).
  • a test as to whether a normal refresh operation is performed is also performed.
  • the CPU 130 is activated to execute the rescue program.
  • the memory row or column containing the defective bit is replaced with the spare row or spare column.
  • a bit rescue process is performed (step S160).
  • a test as to whether or not the rescue has been performed normally is performed as a series of operations of the rescue program (step S161).
  • the test result is output to a tester 500 outside the chip.
  • the tester 500 determines whether there is a defect in the DRAM section 150 based on the output test result, and sorts out a non-defective product and a defective product (step S162).
  • the process returns to step S159, and the test, the bit rescue and the judgment of the test result are similarly performed on the other DRAM units 160, 170, and 180.
  • the ALPG is composed of an instruction memory 411 storing a microprogram consisting of a plurality of microgroove instructions described according to a predetermined test pattern generation algorithm, and an instruction memory 411.
  • a program counter 412 for specifying an instruction address of a microinstruction to be read, a control signal for a memory circuit section by decoding an instruction code in a microphone instruction read from the instruction memory 411, a program counter 412, etc.
  • a sequence control circuit 413 for forming a control signal for an internal circuit in the test circuit; and a sequencer for generating a test address according to the microinstruction read from the instruction memory 411.
  • a dress operation circuit 414, a test data generation circuit 415 for generating test data and expected value data in accordance with the read microinstruction, and a data read from the SRAM section 140 by the test address. It is composed of a comparison / determination circuit 416, etc., which compares the data with the expected value data generated by the test data generation circuit 415 to determine whether or not the data has been written normally. .
  • the judgment result in the comparison judgment circuit 416 is configured to be output to the outside of the chip via the TAP 210 as a judgment signal F indicating data match Z mismatch.
  • the test pattern generation algorithms themselves are known, and by applying them, a new algorithm is not particularly required for this embodiment.
  • the plurality of microinstructions stored in the instruction memory 411 can be described using an existing test language or test language.
  • a test pattern (address and data) is generated according to the predetermined algorithm defined by the plurality of instructions.
  • the tester language is regarded as an effective instruction language for efficiently generating a test pattern including an address and a data.
  • the test language is a language used in the test industry, for example, a language compatible with Adpantest's test language. This is because the program data of the existing test pattern can be used.
  • the language for describing the predetermined algorithm is not limited to the test language, but may be any instruction language capable of generating a test pattern including an address and a data pattern.
  • the instruction memory 411 is constituted by SRAM memory cells
  • the FPGA 120 includes a non-volatile memory
  • the above program is stored in a part of an address area of the nonvolatile memory, and the above program is stored in response to the shift to the SRAM test mode. It is preferable to load the above program from the address area to be stored to the above instruction memory 411.
  • continuous instruction code The sequence may be sequentially input to the ALPG sequence control unit 414 built in the FPGA 120 to generate a test pattern of the SRM A.
  • a CPU 130 and a custom logic circuit 110 are provided in addition to the memory like the system LSI of FIG. 1 to which this embodiment is applied, as shown in FIG. 180), the CPU 130, the custom logic circuit 110, and the FPG A 120 on which the test circuit is built, and a variable bus configuration in which a dedicated bus 220 and a signal switching circuit 230 including switching switches SWl to SWn are provided. Good.
  • the signal CS for controlling the switching switches SWl to SWn in the signal switching circuit 230 may be generated by an instruction in the ALPG when testing the memory circuit, and may be applied to the switches SWl to SWn. No. Further, the switching control signal CS may be formed based on a test mode designation signal supplied from the outside.
  • switching switches SWl to SWn are connected between the memory circuit 140 and the CPU 130 and the custom logic circuit 110, or are the memory circuits 140 and 800 built? It is preferable that not only the connection switching between the CPU 120 and the custom logic circuit 110 but also the FPGA 120 be connected.
  • FIG. 14 shows an example of the configuration of the instruction format of the microinstructions stored in the instruction memory 411. As mentioned earlier, the format of this microinstruction is based on the test language.
  • the microinstruction of this embodiment includes an address field MFa for storing a PC address indicating a jump address of an instruction used in a jump instruction, an operation code field MFb for storing a sequence control code, and instruction repetition.
  • An operand field MF c for storing numbers and the like, a control field MF d for storing a control code for instructing output and read / write of address data, and an address operation code field for storing an address operation instruction code MF e and data storage where the data generation instruction code is stored It consists of a composite code field MF f and so on.
  • Address field MFa is considered as the field that specifies the address of the next instruction to be executed.
  • the feature of the microinstruction as the test language used in this embodiment is that two instructions are executed in parallel by specifying a test address operation and a data operation with one instruction.
  • FIG. 15 shows a configuration example of the sequence control circuit 4 13.
  • the sequence control circuit 4 13 includes an instruction decoding control section 4 30 including a decoder for decoding a control code in the operation code field MFb to form a control signal, and a program counter 4 1.
  • Increment 431 for incrementing the value of 2 to ⁇ +1 '' and either the above increment 431 or the jump address in the address field MFa are selected and supplied to the program counter 412.
  • a working register 435 composed of a plurality of planes or ways holding the value of “1 1”, and a flag indicating the presence / absence of data inversion used in the jXd instruction (see Table 1) described later.
  • Lag 433, a plurality of flags 433 indicating whether or not the operand used in the jindex instruction is transferred to the program counter 412, and the values of the registers 433, 435 are selectively decremented as described above. It is composed of a plurality of multiplexers 4 3 8 to be supplied to 3 4 and a demultiplexer 4 3 9 which distributes the value of the decrement 4 3 4 to one of the planes of the single king register 4 3 5.
  • Table 1 shows the types and contents of the opcodes used for the sequence control, which are defined and stored in the opcode field MFb in the microinstruction. ⁇ table 1 ⁇
  • the instruction indicated by “nop” is a no-operation instruction that instructs the value of the program counter 412 to “+1” in increments 43 1 and returns to the program count 412, that is, other than the update of the program count. Is an instruction to move to the next instruction without performing any operation.
  • “Jindexlj to“ jindex4j ” are instructions prepared to turn the loop of the instruction by jumping. In the memory pattern test, the same instruction is repeatedly executed many times using the jump instruction. In some cases, the number of instructions, that is, the program length, can be reduced (for example, writing “1” to all memory cells and reading them out by incrementing the address to the final address).
  • an index register 433 is provided so that the number of loops (jumps) can be set.
  • jump instructions, index registers 433 and working registers 4 35 are provided for each of them.
  • each jump instruction has the same control content, the control operation by “jindexl” will be described below, and the description of other jump instructions “jindex2” to “jindex4” will be omitted.
  • the PC address in the address field MFa of the microphone instruction is set to the program counter 412. Then, the number of loops in idxl of the index register 433 is supplied to the decrement unit 434 via the multiplexer 438 and decremented to "1". The decremented value is stored in idxwl of the working register 435 via the demultiplexer 439.
  • the idxwl of the working register 435 becomes “0”
  • the PC address in the micro-instruction address field MFa is not set to the program counter 412, but the address of the program counter 412 is incremented by 431.
  • the multiplexer 432 is controlled so as to return “+1” to the program counter 412.
  • the operand field MFc is defined.
  • the same jindex for the number of loops specified in The instruction is repeatedly executed, and finally, the program counter 412 is incremented, and control is performed so as to proceed to the next microinstruction and exit from the loop.
  • the “j xd” instruction in Table 1 refers to df lg in the flag 436, and is used to operate the value of the program counter according to the value of the df 1 g flag.
  • the “j xd” instruction transfers the operand to the program counter, and transfers the program to the instruction at the jump destination address indicated by the operand. Jump, and set the df 1 g flag to a second value, such as "1".
  • the “j xd” instruction increments the value of the program power, returns to the program counter, and df 1 g Reset the flag to a first value, such as "0".
  • the jmpj instruction is an instruction that transfers the operand to the program counter and causes the program to jump to the instruction at the jump address indicated by the operand.
  • the “stop” instruction is a stop instruction that instructs to end the sequence control.
  • FIG. 16 shows a configuration example of the address calculation circuit 414.
  • the address calculation circuit 414 of this embodiment is roughly composed of an X address calculation section 441 for generating an X address and a Y address calculation section 442 for generating a Y address. Since the X address operation unit 441 and the Y address operation unit 442 have almost the same configuration, the configuration of the X address operation unit 441 will be described below, and the description of the configuration of the Y address operation unit 442 will be omitted. In addition, by providing an impossible Z address operation unit as necessary, it is possible to generate a partial pattern (partial pattern).
  • the X address calculator 441 selects an initial value register Xhold for storing the initial value of the X address, a zero setting means 443 for holding “0”, and either the initial value of the X address or “0”.
  • Multiplexer MUX 1 and selected The base register Xbase holding the initial value or ⁇ 0j '', the first arithmetic unit ALU1 that adds the value of the register Xbase, and the arithmetic result of arithmetic unit ALU1, or either ⁇ 0 '' or the feedback value
  • a second multiplexer MUX2 for selecting the current value, a current register Xcurrent for holding the selected value, a second arithmetic unit ALU2 for adding or subtracting the value of the register Xcurrent, and a second arithmetic unit ALU2 or It comprises a third multiplexer MUX3 for selecting one of the outputs of the first arithmetic unit ALU1, and an inverter I NV capable of inverting the
  • This impulse INV is provided in a memory pattern test because a malfunction due to switching noise of the address signal may be tested. In this case, it is necessary to output an inverted signal of the address signal. By using this impulse signal NV, an inverted signal of the address signal in the above test can be easily formed.
  • the X addresses generated by the arithmetic units ALU 1 and ALU 2 of the X address arithmetic unit 441 are sent to the Y address side, and the Y address generated by the Y address arithmetic unit 442 is
  • the third multiplexer MUX 3 is configured to output the data to the X address side.
  • the test circuit is configured to be used as a test circuit for any of a plurality of types of memories, for example, an address multiplex type memory and an addressless multiplex type memory.
  • a test circuit for any of a plurality of types of memories, for example, an address multiplex type memory and an addressless multiplex type memory.
  • the difference between the X address operation unit 441 and the Y address operation unit 442 is that the first operation unit ALU 1 of the Y address operation unit 442 overflows when the first operation unit ALU 1 of the X address operation unit 441 overflows.
  • the borrow signal BR is supplied.
  • Table 2 shows the description in the operation code field MFe in the above microinstruction.
  • the types and contents of the operation codes used for the Y address operation (base operation) in the first arithmetic unit ALU 1 of the Y address operation unit 442 where the first definition is stored are shown.
  • Ybase-0 is an instruction to set the value of the pace register Ybase to “0”.
  • Ybase — Yhold is an instruction to put the contents of the initial register Yhold into the base register Ybase.
  • Y base Y base + 1 is an instruction to increment (+1) the value of the pace register Y base and return it to the register Y base.
  • Ybase — Y base + 1 (BR) is the base register. If the value of Xbase is not the maximum value, leave the value of Y base as it is, and if the value of Xbase is the maximum value, increment the value of Ybase and register This is an instruction to return to Ybase. At this time, the Porro signal BR is supplied from the first arithmetic unit ALU 1 to the second arithmetic unit ALU 2.
  • Table 3 shows types and contents of operation codes used for the address operation in the first arithmetic unit ALU1 of the X address operation unit 441.
  • Table 4 shows the types and contents of operation codes used for the Y address operation (current operation) in the second arithmetic unit ALU2 of the Y address operation unit 442.
  • Table 5 shows the addresses of the XLU 441 It shows the types of operation codes used in the address operation and their contents.
  • the left column is the ALPG description described using the tester language
  • the right column is the corresponding function operation level description. This description can be described according to the rules of the hardware description language (HDL description) to express the function.
  • HDL description hardware description language
  • FIG. 17 shows a configuration example of the test data generation circuit 415.
  • the test data generation circuit 415 of this embodiment includes an initial value register Tphold for storing the initial value of write data or an expected value, an impeller INVERT1 capable of inverting the value of the initial value register Tphold, and a test to be output. It comprises a base data register Tp for holding data or a reference data of an expected value, an arithmetic unit ALU having a bit shift function, and an inverter INVERT2 capable of inverting the output of the arithmetic unit ALU.
  • the bit width is set to 18 bits. However, if necessary, the test data circuit can be expanded to have a desired bit width.
  • Table 6 shows the types and contents of the control codes used for the operation control in the test data generation circuit 415 defined or described in the data generation code field MFf in the microinstruction. .
  • instructions represented by the same rules as the instructions in Tables 3 to 5 are almost the same.
  • Tp Tp * 2 controls the register bit and the arithmetic unit ALU, processes the 18-bit data in the register bit Tp with the arithmetic unit ALU, and shifts the bit string to the MSB side or LSB side by one bit. It is an order to return to Regis Tp.
  • This instruction writes data “1” to memory cells one bit at a time, even if the memory unit is a type of memory that reads and writes data in units such as one word or one byte. The test data can be generated relatively easily. [Table 6]
  • Table 7 shows an example of a list of microinstructions for a marching test, one of the memory test methods.
  • the marching test is performed as follows. Of all the bits of the memory cell in memory array 1, one bit is selected in order. The selected memory cell is written with the data of “0 j.” Then, the written data of “0” is read. Subsequently, of all the bits, one bit is selected in order. The data "1” is written to the selected memory cell. After that, the written “1” data is read out, and the presence or absence of a defect is determined by comparing the data with the expected value.
  • the symbols W and R are control codes that indicate read / write to the memory as described or defined in the control field MFd.
  • This control code is represented by bits corresponding to W and bits corresponding to R, that is, two bits.
  • the number described in the “PC address” column indicates the jump destination address. Means to shift to the microphone mouth instruction of the number described in the column and loop or jump.
  • the symbols X « ⁇ Xbase, Y Ybase described in the column of“ Control command etc. ” mean that the values of the pace registers Xbase, Ybase are output as dresses and Y addresses, respectively.
  • FIGS. 18 and 19 show the microinstruction list of Table 7 when the SRAM140 marching test is performed by the test circuit (ALPG) including the control unit and the arithmetic unit of the microprogram control method.
  • APG test circuit
  • FIG. 18 shows the flow of sequence control using the obecode and operands in the microphone instruction.
  • FIG. 19 shows test addresses and test data (write data, expected data, etc.) based on address operation codes and data generation codes which are executed in parallel with the sequence control flow shown in FIG.
  • the following figure shows the flow of generating value data.
  • the second microinstruction in Table 7 is read out because the program count 412 has been incremented in step S201. Since the opcode of the second microinstruction is "jindex l ⁇ , In the circuit 413, the number of repetitions of the operand is set to the index register idx1 (step S202).
  • the first set value of the index register idx1 corresponds to the capacity (number of bytes or words) of memory array 1.
  • the address operation circuit 414 outputs the values of the base registers Xbase and Ybase as the X address and the Y address, respectively, using the operation code X—Xbase and YYbase.
  • the data generation circuit 415 outputs the value “0” of the register Tp.
  • a control signal W (write) is output.
  • the memory array 1 the memory cell corresponding to the X, ⁇ address output from the address operation circuit 414 is selected and data “0” is written (step S222).
  • the sequence control circuit 413 decrements the value of the index register idx1 by the operation code "jindexlj” and puts it into the working register idxw, and repeats the same instruction until it becomes "0" (steps S203 and S204). .
  • the address calculation circuit 414 increments the value of the base register Xbase, that is, the X address, by the operation code Xbase Xbase + 1, and the Y address when the base register Xbase reaches the maximum value by Ybase Ybase + 1 (BR). Increment. Since the initial setting value of the index register idx1 is the same as the capacity of the memory array 1, by repeating the above operation, data ⁇ 0 '' is written to all the memory cells in the memory array 1 in order. (Steps S223, S224) o
  • the sequence control circuit 413 increments the value of the program counter 412 and reads the third microinstruction in Table 7.
  • the opcode is “nop”. Therefore, the sequence control circuit 413 does nothing and advances the program counter 412 by one (step S205).
  • the address operation circuit 414 increments the X and Y addresses according to the operation code of the third microinstruction, and then sets the pace register X
  • the values stored in base and Ybase are output as X address and Y address, respectively.
  • the values of the base registers Xbase and Ybase have returned to “0”.
  • the data generation circuit 415 outputs “0”.
  • a control signal R (read) is output according to the control code of the control field MFd.
  • the data at the address is read out and compared with the expected value data “0” (steps S225, S226) o
  • the fourth microinstruction in Table 7 is read. Since the operation code of the fourth microinstruction is “jindex l”, the sequence control circuit 413 sets the number of repetitions of the operand to the index register id x 1 (step S 206). The first set value of the index register id x 1 corresponds to the capacity of memory array 1 (number of bytes or words). However, since the jindex 1 instruction code of the fourth instruction has a different PC address (jump address) from the jindex l instruction code of the second instruction, it returns to the third instruction (opcode is “no op”) after execution.
  • the address arithmetic circuit 4 14 outputs the values of the pace registers Xbase and Ybase as the X address and the Y address, respectively, using the operation code X Xbase and Y Y base.
  • the data generation code D invert outputs data “1” obtained by inverting the value “0” of the register Tp from the data generation circuit 415. Then, at this time, the control signal W (write) is output. As a result, in the memory array 1, "1" is written to the memory cell at the output X, ⁇ address (step S227).
  • the sequence control circuit 4 13 decrements the value of the index register idxl by the operation code “jindex l” and puts it in the working register id Xw, and returns to the “nop” instruction and repeats until it becomes “0” (step S207, S208) o
  • the operation code Xbase—Xbase + 1 increments the value of the base register Xbase, ie, the X address, by the operation code Xbase—Xbase + 1, and Ybase—Ybase + 1 (BX) When the base register Xbase reaches the maximum value, the Y address is incremented.
  • the initial set value of the dex register i dx 1 is the same as the capacity of the memory array 1, all the memory cells in the memory array 1 are read out in order by the above three steps and compared with the expected value. Thereafter, the operation of writing "1" to the address is repeated (steps S227 and S228). Next, the fifth microinstruction in Table 7 is read. Since the operation code of the fifth microinstruction is "jindexl", the sequence control circuit 413 sets the number of repetitions of the operand to the index register idx1 (step S209). The first set value of index register idx1 corresponds to the capacity of memory array 1 (number of bytes or words).
  • the fifth jindexl instruction code has the same PC address as the second jindex1 instruction code, and is an instruction that repeats the same instruction.
  • the address operation circuit 414 outputs the values of the base registers Xbase and Ybase as the X address and the Y address, respectively, using the operation code X—Xbase and Y-Ybase.
  • the data generation circuit 415 outputs data “lj” obtained by inverting the value “0” of the register Tp according to the data generation code D invert.
  • the control signal R (write) is output.
  • data is read out from the memory cell specified by the output X and Y addresses (step S229).
  • the sequence control circuit 413 decrements the value of the index register idx1 by the opcode "jindexl” and puts it into the king register idxw, and repeats the "jindexl” instruction until it becomes "0" (step S2 10, S11).
  • the address calculation circuit 414 increments the value of the base register Xbase, that is, the X address, by the operation code Xbase—Xbase + 1, and increments the Y address when the base register Xbase reaches the maximum value by Ybase—Ybase + 1 (BR). .
  • step S230, S231 Since the initial setting value of the index register i dxl is the same as the capacity of the memory array 1, by repeating the above operation, all the memory cells in the memory array 1 are sequentially read and the expected value is obtained. It is compared with "1" (steps S230, S231). Next, the sixth microinstruction in Table 7 is read. Since the operation code of the sixth microinstruction is “j xd”, the sequence control circuit 413 jumps to the jump address indicated by the PC address in the address field MFc. In this embodiment, the processing returns to the second instruction “jindexl” in Table 7. Then, when the jindexl instruction is read again, the flag df 1 g is set to “lj.” As a result, in the second sequence processing, “YE S” is determined in step S212 in FIG. To complete the marching test.
  • the data generation circuit 414 sets the write data and the expected value data to “1”, and continuously writes all bits. After writing, the written data is read one bit at a time, inverted data “0” is written to it, and then all bits are read continuously.
  • step S232 it is determined whether the writing / reading of data opposite to the first cycle as described above in steps S222 to S231 has been completed (back data end determination). Is performed. Note that the back data generation for performing the inspection using the back data is controlled by Thold INVERT and dflg in FIG.
  • control in accordance with the flow charts of FIGS. 18 and 19 uses the instruction codes described in Tables 1 to 6 to store the microinstructions in the instruction memory 411 in the instruction list in Table 7 below.
  • Tables 1 to 6 the instruction codes described in Tables 1 to 6 to store the microinstructions in the instruction memory 411 in the instruction list in Table 7 below.
  • test circuit in addition to the marching test, “0” or “1” is set to all memory cells by using the instruction codes described in Tables 1 to 6. Check whether it can be written All "0” judgment test or all “1” judgment test, or write "1” to a certain bit and check all bits to make sure that other bits are not erroneously written. N 2 square pattern test (or gear Rocking test) can also be performed.
  • Table 8 shows the microinstruction list for N 2 square pattern test. Note that ixd is an instruction to generate a back test pattern by controlling INVERT, which is controlled by a flag df lg below the initial value register Tphold. When the flag df1g is 0, the value of the initial value register Tphold is stored in the register Tp as it is, and when the flag dflg is 1, the reverse pattern is set in the register Tp.
  • the value to be initially set in the program counter evening 4 12 by changing the instruction address of the first microinstruction shown in Table 7 and Table 8, start the marching test or N 2 square pattern test Can be done.
  • the logic tester has a configuration similar to the ALPG shown in Fig. 12 for generating a memory test pattern, and is described in accordance with a predetermined test pattern generation algorithm, for example, as shown in Fig. 20
  • An instruction memory 411 storing a microprogram consisting of a plurality of microinstructions, a program counter 412 for specifying a microinstruction to be read from the instruction memory 411, and a microinstruction read from the instruction memory 411. Decodes the instruction code and sends it to the circuit in the control unit 400 such as the program counter 412.
  • circuits whose functions are specified for example, ALU: Arithmetic Logic Unit
  • ALU Arithmetic Logic Unit
  • test pattern assets By using the test pattern assets, it is possible to generate efficient test patterns.
  • a fault assumption method and a method of generating an efficient test pattern called the D algorithm based on the idea of a single fault, where one circuit has one fault, are known. .
  • the microprogram for generating the test pattern can be shortened, and the capacity of the instruction memory 411 can be suppressed to an achievable level.
  • the timing setting bit TS decoded by the decoder 418 is composed of two bits, and seven control data are stored in the data register set 417. .
  • One of these control data is the data "RATE" that defines the test cycle, and the remaining six control data determine the output timing of the high-level or low-level signal for each signal line of the test-only path.
  • Two types of control data “ACLK 1” and “A CLK 2” to be given, and two types of control data “BC LK 1" and “BC LK 2" to give the rising timing of the pulse signal and the falling edge of the pulse signal
  • There are two types of control data "CCLK1" and "CCLK2" which give the timing and the comparison output timing with the expected value.
  • control data RATE When each of these control data is supplied to the timing generation section 420, the control data RATE is converted into a signal RATE having a predetermined timing.
  • the micro instruction code is supplied to the gram counter 412 and the micro instruction code from the instruction memory 411 is fetched.
  • a clock corresponding to the control code is generated from the timing clocks ACLK 1 to CCLK 2 and a comparator is generated. Output to 300. Connection and selection for use of each clock are appropriately performed as needed.
  • one of the increment address 421 for incrementing the value of the program count 412 to “11” and the jump address 421 in the increment evening 421 or the destination address in the address field MF a A multiplexer 422 for selecting the value of the index register 423 and supplying the same to the program counter 412, an index register 423 for holding the number of repetitions in the operand field MFc, and a decrement register for decrementing the value of the index register 423 to "1".
  • This logic tester has an operand field MFc for storing the number of instruction repetitions in the micro-instruction code and an index register 423 for holding the number of repetitions, so that the same test signal can be repeatedly generated. In this case, the number of required microinstructions can be reduced and the microprogram can be shortened. Further, in this embodiment, since the index register 423 and the king register 425 and the flag 427 are provided in a plurality of planes (four in the figure), the sub-loop processing within a certain loop processing and the sub-loop processing are further performed. It is possible to easily execute sub-loop processing in the inside, and to shorten the microprogram.
  • FIG. 21 shows an embodiment of the signal forming / comparing unit 300. Note that the circuit in FIG. 21 corresponds to one of the signal lines constituting the test bus 220. Although only the corresponding driver / comparator circuit is shown as a representative, actually, the circuits shown in FIG. 21 are provided for the number of signal lines constituting the test path 220.
  • the driver / comparator circuit of this embodiment includes a driver circuit (signal forming circuit) 340 that forms a signal to be output to a tester dedicated bus, and a signal on the tester dedicated bus and an expected value signal. It is composed of a comparator circuit (comparison circuit) 350 for comparing and comparing the match / mismatch, and a switching circuit 360 for switching between a driver circuit 340 and a comparator circuit 350.
  • the switching circuit 360 includes a transmission gate TG1 provided between the driver circuit 340 and the input / output node Nio, and a transmission gate TG2 provided between the input / output node Ni0 and the comparator circuit 50. One of them is opened according to the input / output control bit IZO supplied from the control unit 400, and the other is shut off.
  • the driver circuit 340 includes an edge-triggered flip-flop 341 that captures and holds the input / output control bit TP with the timing clock ACLKi supplied from the evening timing generator 420, and a timing clock BCLKi supplied from the timing generator 420.
  • An OR gate 342 for taking a logical sum with CCLKi; a J / K flip-flop 343 having an output of the OR gate 342 and an output of the edge-triggered flip-flop 341 as an input signal; an output of the JZK flip-flop 343 and a control unit
  • An input and output control bit C ONT supplied from 400 and an AND gate 344 as an input signal, and an output of the edge trigger flip-flop 341 and an input / output control bit CON T supplied from the control unit 400 are input.
  • An AND gate 345 used as a signal and a drive for driving a test bus dedicated to the output of these AND gates 344 and 345 And a 346 Metropolitan.
  • the comparator circuit 350 is provided with an AND gate 351 using the timing clock CCLKi supplied from the timing generation section 420 and the input / output control bit CONT supplied from the control section 400 as input signals, and the D-type flip-flop.
  • the output (expected value) of the Plobb 341 and supplied via the transmission gate TG 2 The exclusive OR gate 352 that receives the signal on the dedicated bus for the tester as an input signal, the AND gate 353 that receives the output of the exclusive OR gate 352 and the AND gate 351 as an input signal, and the output of the AND gate 353
  • a flip-flop 354 for latching is provided, and a signal obtained by calculating the logical sum of the output circuits of all the comparator circuits 350 is output as a total fail signal TFL.
  • the input / output control bits I / O, TP, and CONT correspond to the control signals.
  • the microinstruction in the test circuit of the present embodiment includes an address field MFa storing a PC address indicating a jump address of an instruction used in a jump instruction, and a sequence control code.
  • the timing setting bit TS stored in the timing setting field MFd is 2 bits in this embodiment as described above, but may be 3 bits or more.
  • the I / O control bits stored in the I / O control field MFe correspond to the driver's bit TP, I / O bit, and control 'bit CONT corresponding to the n signal lines of the tester dedicated path 220. These three bits are one set, and only n sets are provided. Of these bits, the I / O bit is a control bit that specifies whether it is an input or an output. When this bit is "1", the transmission gate TG1 is opened and TG2 is cut off to output the driver output signal to the dedicated test path.
  • Bit 0 is output on the corresponding signal line, and when it is "0", the transmission gate TG 1 is shut off and TG 2 is opened to input the signal on the corresponding signal line of the test path 220 to the comparison gate 352. .
  • Bit CONT determines whether the output is high or low, positive or negative pulse output, input invalid state, or output high impedance state according to the combination. specify.
  • Table 9 shows the relationship between the input / output control bits TP, I / O, and CONT and the operation state of the signal forming / comparing unit 300.
  • the state in which the control bits TP, 1/0, and CONT are "000" has no meaning.
  • the transmission gate TG 1 is closed and TG 2 is opened, and the exclusive OR gate 352 is between the high level and the low level.
  • a Schmitt circuit that operates at two levels, signal formation is performed so that the state where the potential of the input / output node Nio connected to the dedicated tester path 220 exists between the two levels (high impedance state) can be compared.
  • ⁇ Comparison section 300 can be configured. FIG.
  • FIG. 22 shows an example of the evening clocks ACLK1 to CCLK2 supplied from the timing generator 420 and the signals output from the comparator 300 on the test evening path 220 in the above embodiment.
  • I have.
  • FIG. 22 shows the reference clock 00 supplied from the outside
  • (b) to (g) show the waveforms of the timing clocks ACLK1 to CCLK2
  • (h) shows the output of Table 9. Shows the waveform of the output signal from the pin where "1" is specified as the test signal and ACLK 1 is selected as the clock.
  • (I) shows the waveform of the output signal of the terminal for which “0j” is specified as the output test signal of Table 9 and ACLK2 is selected as the clock.
  • (J) shows the output test signal of Table 9.
  • (k) shows the waveform of the output signal of the terminal where “N” is specified as the output test signal in Table 9 and BCLK2 and CCLK2 are selected as the clock.
  • the input / output control bits TP, I / O, and CONT are set to “1 1 1” and the clock ACLK 1 is specified from the terminal designated by clock ACLK 1 as shown in Fig. 22 (h).
  • a high-level signal is output, and TP, I / O, and CONT are set to “01 1” and the clock ACLK 2 is specified from the terminal designated by the clock ACLK 2 according to the clock ACLK 2, as shown in Figure 22 (i).
  • Is output, and TP, I / O, and CONT are set to “1 10”, and the clocks A CLK 1, B CLK 1, and CCLK 1 are output from the specified pins according to the data set by the clock ACLK 1.
  • a positive pulse is output as shown in Figure 22 (j)
  • TP, I / O, and CONT are set to “010j” and the clock ACLK2, BCLK2, and CCLK2 are specified from the specified terminal.
  • a negative pulse is output as shown in Fig. 22 (k) with BCLK2 and CCLK2 as edges.
  • the input / output control bits TP, I / O, and CONT are set to “10 1” and the clock CCLK 1 is specified at the pin where the expected value is set to the high level, and the clock CCLK in FIG. Comparison is performed using 1 as the strobe signal, TP, I / O, and CONT are set to “001” and the clock CCL At the terminal where K2 is specified, the expected value is set to the low level, and the comparison is performed using the clock CCLK2 in FIG. 22 (g) as the strobe signal.
  • the selection of the clock is not limited to the above, and may be any combination.
  • a plurality of basic logic cells are provided on a semiconductor chip, and a signal indicating whether the circuit is normal or abnormal can be output for each of the basic logic cells and an arbitrary logic can be output.
  • a variable logic circuit such as an FPGA (Field Programmable Gate Array) that can be configured.
  • FPGA Field Programmable Gate Array
  • the yield is improved by constructing logic while avoiding defective parts, and when a test circuit is constructed using this variable logic circuit (FPGA) to test other internal circuits, the test circuit itself is tested. There is an effect that it is possible to avoid outputting an incorrect test result due to a failure.
  • the method for testing a semiconductor integrated circuit includes a variable logic circuit (FPGA) that can output a signal indicating whether the circuit is normal or abnormal and that can configure an arbitrary logic, and a readable and writable memory circuit.
  • FPGA variable logic circuit
  • a self-test is performed by the above-described variable logic circuit (FPGA) in a semiconductor integrated circuit having a built-in logic circuit.
  • a memory test circuit for inspecting a memory circuit is constructed according to the above-mentioned method, and the memory circuit is inspected. This has the effect that the memory circuit inside the LSI can be tested without using a sophisticated external tester.
  • test method of the semiconductor integrated circuit according to the present invention is a semiconductor integrated circuit in which a custom logic circuit such as a CPU (Central Processing Unit) or a user logic circuit in which a logic function required by a user is configured together with a memory circuit.
  • a test circuit original test
  • the test circuit or test pattern generation program was stored in the memory circuit using the memory circuit, and the test circuit built in the FPGA was started to test the CPU and the custom logic circuit. This has the effect that the CPU and the logic circuit inside the LSI can be tested without using a sophisticated external tester.
  • a self-test is performed by the above-described variable logic circuit, and a defective portion is identified in the variable logic circuit by using information indicating a defective portion obtained as a result. Constructing a memory test circuit for testing the first memory circuit according to a predetermined algorithm only with the removed basic logic cells, and testing the first memory circuit;
  • variable logic circuit a logic test circuit for testing a custom logic circuit or a central processing unit according to a predetermined algorithm only with the basic logic cells excluding the defective part is constructed, and the logic test circuit is also constructed in the first memory circuit. Storing a test pattern or a test pattern generation program to inspect the custom logic circuit or central processing unit,
  • variable logic circuit a memory test circuit for inspecting the second memory circuit according to a predetermined algorithm only with the basic logic cells excluding the defective part is constructed, and the second memory circuit is inspected.
  • a bit rescue is performed by replacing a defective bit in the second memory circuit with a spare bit by using a long circuit associated with the second memory circuit. Since the processing is performed, the bit relief of the memory circuit can be performed automatically, and the yield and productivity of the semiconductor integrated circuit can be improved.
  • the desired logic is configured in the variable logic circuit after the bit rescue processing of the second memory circuit. Since there is no useless circuit, there is an effect that it is possible to reduce hardware overhead due to providing a test circuit inside the LSI.
  • the method for manufacturing a semiconductor integrated circuit according to the present invention is characterized in that: Since the information indicating the position of the defective bit is stored in the first memory circuit at the time of the path inspection, the information stored in the first memory circuit is read out to cause a failure. There is an effect that analysis can be easily performed.
  • the output state of the exclusive OR gate circuit LG2 which detects whether or not the circuit in the cell logic circuit CLB is normal and outputs it is stored in the memory cell SMC in the cross-point switch circuit CSW.
  • it may be configured to output to the outside of the LSI chip.
  • the fail memory for storing the position of the defective bit when testing the DRAMs 150 to 180 is configured in the SRAM 140, but the fail memory is stored in an external test memory. May be provided. Further, in the above embodiment, the TAP specified by the IEEE is used as the test interface circuit. However, the present invention is not limited to this, and a dedicated interface circuit suitable for this embodiment is used. It may be designed and provided separately. Industrial applicability
  • the invention made by the present inventor has been mainly described by taking as an example a self-verification method in a system LSI provided with a CPU, an SRAM, a DRAM, and a custom logic circuit, which is a field of application which is the background.
  • the present invention is not limited to this.
  • Logic LSI with CPU and SRAM and custom logic circuit, logic LSI with CPU and DRAM and custom logic circuit, logic LSI with CPU and custom logic circuit, SRAM and DRAM and The present invention can be used for a logic LSI having a custom logic circuit, and also for a semiconductor integrated circuit having an analog circuit in addition to the above-described digital circuit.

Abstract

A variable logic circuit, such as an FPGA (Field Programmable Gate Array), comprising basic logic cells (cell logic block) and capable of outputting a signal representing whether or not the circuit is normal for each logic cell and of constituting an arbitrary logic is provided in a semiconductor chip. A memory test circuit for testing a memory circuit instructs a variable logic circuit (FPGA) to perform a self-test, generates a predetermined test signal and an expectation signal referring to the information representing fault portions detected by the self-test according to a predetermined algorithm by means of only normal basic logic cells, feeds the test signal to the memory circuit, compares the output signal (output data) from the memory circuit with the expectation signal (expectation data), generates a signal representing a fault if the output signal does not agree with the expectation signal, and outputs the signal to the outside of the chip.

Description

明細書 半導体集積回路およびそのテスト方法並びに製造方法 技術分野  TECHNICAL FIELD The present invention relates to a semiconductor integrated circuit, a test method therefor, and a manufacturing method.
本発明は、 半導体集積回路 ( I C : Integrated Circuit) およびそのテスト 技術並びに製造技術に関し、 例えば故障を検出し故障個所を回避して論理を 構成可能な論理 L S I (Large Scale Integration) を提供するものである。 背景技術  The present invention relates to a semiconductor integrated circuit (IC: Integrated Circuit) and its test technology and manufacturing technology. For example, the present invention provides a logic LSI (Large Scale Integration) capable of detecting a fault and avoiding a fault location to configure a logic. is there. Background art
ロジック I Cのテス ト方式としては、 テス夕と呼ばれるテス ト装置により テス トパターンデータを発生して I Cへ入力し、 出力されたデータ信号と期 待値とを比較して検出する方式が一般的であった。 しかしながら、 ロジック I Cはその論理の規模が大きくなるほどテストパターンのステップ数が長大 になってしまい、 テストパターンの作成およびそれを用いたテスト所要時間 が非常に長くなつてしまう。  As a test method for a logic IC, a method is generally used in which test pattern data is generated by a test device called a test device, input to the IC, and the output data signal is compared with an expected value and detected. Met. However, the number of steps in the test pattern of the logic IC increases as the scale of the logic increases, and the time required to create the test pattern and to perform a test using the test pattern becomes extremely long.
そこで、 テスタによるテス トを容易にする方法として、 I Cの本来の機能 を構成しているフリップフロップ等の順序回路を縦続接続してシフトレジス 夕を構成可能に設計しておいて、 テスト時に前記シフ トレジス夕にテストパ ターンをシリアルに入力 (スキャンイン) して取り込ませ (セッ ト) 、 所望 の組合せ論理回路にシフ トレジス夕に取り込んだテス トデ一夕を入力し、 そ の後前記論理回路の出力データ信号をシフトレジスタに取り込んでシフトし て外部へ取り出せる (スキャンアウト) ようにしたいわゆるスキャンパス方 式と呼ばれるテスト容易化設計技術が開発され実用化されている。  Therefore, as a method of facilitating the test using a tester, a sequential circuit such as a flip-flop that constitutes the original function of the IC is cascaded to design a shift register. A test pattern is serially input (scan-in) at the register and loaded (set), and the test data captured at the shift register is input to a desired combinational logic circuit, and then the output of the logic circuit is output. A so-called scan path method, which is a so-called scan path method that enables a data signal to be taken into a shift register and shifted out (scan out), has been developed and put into practical use.
外部からテストパターンを入力する方式では、 論理回路が順序回路を含ん でいると内部の状態によって出力が異なるので、 ある論理回路を検査するに はその中に含まれる順序回路の状態をまずテス トパターンで設定しなければ ならないためテストパターンが非常に長くなつてしまうが、 フリップフ口ッ プをシフ トレジス夕構成にしてテストパターンを入力 (スキャンイン) する ことでテストパ夕一ンを大幅に減らすことができる。 In the method of inputting a test pattern from the outside, if the logic circuit includes a sequential circuit, the output differs depending on the internal state.Therefore, to test a certain logic circuit, first test the state of the sequential circuit included in it. The test pattern becomes very long because it must be set with a pattern, but the test pattern is input (scan-in) with the flip-flop configuration as a shift register. As a result, the number of test passes can be significantly reduced.
しかしながら、 上記スキャンパス方式は、 それまでのテスト方式に比べる とテス トパターンの量が少なくなるもののテストパターンの生成が難しく不 良検出率を上げにくいとともに、 テストパターンをシリアルに入力 (転送) することを繰り返し行なうためテスト時間が長くなると不具合もある。 また、 新たに開発する論理 L S Iが R A M (ランダム ' アクセス 'メモリ) 、 R O M (リード ' オンリ ' メモリ) のようなメモリ回路や C P U等の大型セル (マクロセルまたは I Pコア: Intellectual Property Core) を備える場合、 それらのセルについてもテストを行なおうとすると膨大なテストパターンの 作成と入力が必要とされるため、 事実上テス トが行なえないという問題点が め O o  However, in the above scan path method, although the amount of test patterns is smaller than the previous test methods, it is difficult to generate a test pattern, it is difficult to increase a failure detection rate, and the test pattern is input (transferred) serially. Since the test is repeated, there is a problem when the test time is long. Also, if the newly developed logic LSI has memory circuits such as RAM (random 'access' memory) and ROM (read 'only' memory), or large cells (macrocell or IP core: Intellectual Property Core) such as CPU However, if these cells are to be tested, a huge amount of test patterns need to be created and entered, and the test cannot be performed in practice.
一方、 論理集積回路内に疑似乱数発生回路のようなランダムなテス トパ ターンを発生するパターン発生回路を内蔵させた B 1 S T (Built in self test) 方式のテスト技術が提案されている。  On the other hand, a B1ST (Built-in self test) test technique has been proposed in which a pattern generator that generates a random test pattern such as a pseudo-random number generator is built in a logic integrated circuit.
しかしながら、 B I S T方式のテス ト回路は、 発生されたテストパターン が不良を検出するのに充分なテストパターンになるか保証されていない。 そ のため、 テス ト回路のテス トパターンで充分な不良検出率が得られるかどう か別途検証する必要があるという課題があつた。  However, the BIST test circuit does not guarantee that the generated test pattern will be a test pattern sufficient to detect a defect. Therefore, there is a problem that it is necessary to separately verify whether a sufficient defect detection rate can be obtained with a test pattern of a test circuit.
さらに、 従来のテス ト回路を搭載した L S Iはいずれも、 そのテス ト回路 の自身の故障ないしは欠陥については何ら対策が施されていない。 つまり、 テスト回路そのものが故障した場合にはチップ本来の回路が正常であっても 不良判定をしてしまうという欠点がある。 そして、 その対策としては、 テス ト回路の規模を最小にして故障や欠陥の発生を抑制するしかないが、 このこ とはテス トの充分性すなわち不良検出率の向上という目的と矛盾した結果を 招いてしまう。  Furthermore, none of the LSIs equipped with the conventional test circuit takes any measures against the failure or defect of the test circuit itself. In other words, when the test circuit itself fails, there is a disadvantage that a failure is determined even if the original circuit of the chip is normal. The only countermeasure that can be taken is to minimize the size of the test circuit and suppress the occurrence of failures and defects.This results in inconsistencies with the objective of improving test adequacy, that is, improving the defect detection rate. I will invite you.
この発明の目的は、 高機能の外部テス夕を用いることなく L S I内部の回 路のテストを行なうことが可能なテスト技術を提供することにある。  An object of the present invention is to provide a test technique capable of testing a circuit inside an LSI without using a high-performance external tester.
この発明の他の目的は、 自分で故障個所を検出しかつ自己救済することが できる歩留まりの高い L S Iを提供することにある。 この発明の他の目的は、 ハードウェアのオーバーへッ ドの少ない自己テス ト機能を有する L S Iを提供することにある。 Another object of the present invention is to provide a high-yield LSI that can detect a faulty part and repair itself by itself. Another object of the present invention is to provide an LSI having a self-test function with little hardware overhead.
この発明の他の目的は、 不良解析の容易な L S Iを提供することにある。 この発明のさらに他の目的は、 特に中央処理ュニットのような制御回路や メモリ回路、 カスタム論理回路等を 1つのチップ上に備えたいわゆるシステ ム L S Iに適用して好適な製造技術を提供することにある。  Another object of the present invention is to provide an LSI which is easy for failure analysis. Still another object of the present invention is to provide a manufacturing technology suitable especially for a so-called system LSI having a control circuit such as a central processing unit, a memory circuit, a custom logic circuit, etc. on one chip. It is in.
この発明の前記ならびにそのほかの目的と新規な特徴については、 本明細 書の記述および添付図面から明らかになるであろう。 発明の開示  The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings. Disclosure of the invention
本願において開示される発明のうち代表的なものの概要を説明すれば、 下 記のとおりである。  The outline of typical inventions disclosed in the present application is as follows.
すなわち、 本発明に係る半導体集積回路は、 チップ上に複数の基本論理セ ル (セル論理ブロック) からなり基本論理セルごとに回路が正常か異常かを 示す信号を出力可能でかつ任意の論理を構成可能な F P G A ( Field Programmable Gate Array) のような可変論理回路を搭載するようにしたもの である。 これにより、 外部テス夕を使用することなく可変論理回路 (F P G A ) 内に不良個所があることおよびその位置を知ることができる。 また、 不 良個所を回避して論理を構成することにより歩留まりを向上させるとともに、 この可変論理回路 (F P G A ) を用いてテスト回路を構築して他の内部回路 をテストする場合にテスト回路自身の故障による誤ったテスト結果が出力さ れるのを回避することができる。  That is, the semiconductor integrated circuit according to the present invention includes a plurality of basic logic cells (cell logic blocks) on a chip, and can output a signal indicating whether the circuit is normal or abnormal for each of the basic logic cells, and performs arbitrary logic. It is equipped with a variable logic circuit such as a configurable FPGA (Field Programmable Gate Array). As a result, it is possible to know that there is a defective portion in the variable logic circuit (FPGA) and its location without using an external tester. In addition, the yield is improved by constructing logic by avoiding defective parts, and when a test circuit is constructed using this variable logic circuit (FPGA) to test other internal circuits, the test circuit itself is tested. It is possible to avoid outputting an incorrect test result due to a failure.
回路が正常か異常かを示す信号を出力可能な基本論理セルとしては、 例え ば相補出力を有する 2線ラインロジック (論理積ゲート回路) とその出力を 比較して異常の有無を判定する判定手段 (排他的論理和ゲート) とからなる 回路がある。 基本論理セルをこのような構成とすることで、 比較的小規模な 回路で、 回路が正常か異常かを示す信号を出力可能でかつ任意の論理を構成 可能な可変論理回路 (F P G A ) を実現することができる。  The basic logic cell that can output a signal indicating whether the circuit is normal or abnormal is, for example, a 2-wire line logic (logical AND gate circuit) having complementary outputs and a judging means for judging the presence or absence of an abnormality by comparing its output. (Exclusive OR gate). This configuration of the basic logic cell realizes a variable logic circuit (FPGA) that can output a signal indicating whether the circuit is normal or abnormal and that can configure any logic with a relatively small circuit. can do.
また、 本発明に係る半導体集積回路のテス ト方法は、 少なくとも複数の基 本論理セル (セル論理ブロック) からなり基本論理セルごとに回路が正常か 異常かを示す信号を出力可能でかつ任意の論理を構成可能な可変論理回路 ( F P G A ) と読出し書込み可能なメモリ回路とを内蔵した半導体集積回路 において、 まず上記可変論理回路 (F P G A ) により自己テストを行なわせ、 その結果得られた不良個所を示す情報を用いて不良個所を除いた基本論理セ ルのみで所定のァルゴリズムに従って所定のテスト信号および期待値信号を 発生してテス ト信号を上記メモリ回路に供給し、 その結果メモリ回路から得 られる出力信号 (出力データ) と上記期待値信号 (期待値デ一夕) とを比較 して一致しない場合に不良を示す信号を形成してチップ外部へ出力させるメ モリテス ト回路を構築するようにしたものである。 Further, the method for testing a semiconductor integrated circuit according to the present invention includes at least a plurality of substrates. A variable logic circuit (FPGA) consisting of this logic cell (cell logic block) and capable of outputting a signal indicating whether the circuit is normal or abnormal for each basic logic cell and capable of configuring any logic, and a readable and writable memory circuit First, a self-test is performed by the above-described variable logic circuit (FPGA) in a semiconductor integrated circuit with a built-in logic, and a predetermined algorithm is used only with the basic logic cell excluding the defective part using the information indicating the defective part obtained as a result. A predetermined test signal and an expected value signal are generated in accordance with and the test signal is supplied to the memory circuit. As a result, an output signal (output data) obtained from the memory circuit and the expected value signal (expected value data) are obtained. The memory test circuit is configured to generate a signal indicating a failure when the two do not match, and output the signal to the outside of the chip.
かかるメモリテス ト回路は、 所定のアルゴリズムに従ってメモリのテス ト パターンを生成する A L P G (Algorithmic Memory Pattern Generator) と 呼ばれるテス トパターン生成器として構成することができる。 さらに、 この A L P Gは、 命令コ一ドを解読して演算器等を制御する公知のマイクロプロ グラム制御方式の制御部と、 テストパターンを演算によって生成する演算器 とにより構成する。 そして、 上記のように F P G A内に構築された A L P G にテストパ夕一ン生成プログラムの命令コードを順次供給してテス トパター ンを発生させ、 そのテストパターンを被テスト回路であるメモリ回路に供給 して不良の有無を検査することができる。  Such a memory test circuit can be configured as a test pattern generator called an ALPG (Algorithmic Memory Pattern Generator) that generates a memory test pattern according to a predetermined algorithm. Further, the ALPG is composed of a control unit of a known microprogram control system that decodes an instruction code and controls an arithmetic unit and the like, and an arithmetic unit that generates a test pattern by an arithmetic operation. Then, the instruction code of the test pattern generation program is sequentially supplied to the ALPG built in the FPGA as described above to generate a test pattern, and the test pattern is supplied to the memory circuit which is the circuit under test. The presence or absence of a defect can be inspected.
さらに、 上記テストパターン生成プログラムは、 既存のテスタ言語乃至は テス ト言語を用いて記述され、 命令コードによって定義される上記所定のァ ルゴリズムに従って、 テス トパターン (アドレスとデータ) が生成される。 上記テスタ言語は、 ァドレスとデータとを含むテストパターンを効率的に発 生するための有効な命令言語と見なされる。 上記テス夕言語は、 テスタ業界 で用いられているような言語とされ、 たとえば、 アドバンテスト社のテス夕 言語と互換性のある言語が用いられる。 これにより、 既存のテストパターン のプログラムデータが利用できるからである。 上記所定のアルゴリズムを記 述する言語は、 テス夕言語に限定されるものではなく、 アドレスとデータと を含むテストパ夕一ンを発生することが可能な命令言語で有ればよい。 本発明に係る半導体集積回路の他のテスト方法は、 半導体集積回路がメモ リ回路と共に CPU (中央処理ユニット) やユーザが要求する論理機能を構 成したユーザ論理回路のようなカスタム論理回路を含むような場合に、 上記 FPGAに所定のアルゴリズムに従って CPUやカスタム論理回路のテスト 信号および期待値信号を生成してテストを行なうテスト回路 (ロジックテス 夕) を構築するとともに、 既に前記テストにより正常と判定されたメモリ回 路を使用して、 そのメモリ回路にテストパターンもしくはテストパターン生 成プログラムを格納し、 FPGAに構築されたテスト回路を起動してメモリ 回路からテストパターンもしくはテストパターン生成プログラムを読み出し ながら CPUやカスタム論理回路のテストを行なうものである。 Further, the test pattern generation program is described using an existing tester language or a test language, and a test pattern (address and data) is generated according to the predetermined algorithm defined by the instruction code. The tester language is regarded as an effective command language for efficiently generating a test pattern including an address and data. The test language is a language used in the tester industry. For example, a language compatible with Advantest's test language is used. As a result, the program data of the existing test pattern can be used. The language for describing the predetermined algorithm is not limited to the test language, but may be any instruction language capable of generating a test pattern including an address and data. Another test method of the semiconductor integrated circuit according to the present invention includes a semiconductor integrated circuit including a custom logic circuit such as a CPU (Central Processing Unit) or a user logic circuit configured with a logic function required by a user together with a memory circuit. In such a case, a test circuit (logic test) that generates test signals and expected value signals for the CPU and custom logic circuits in accordance with a predetermined algorithm in the above-mentioned FPGA and conducts the test is constructed, and it is determined that the test is normal by the above test. Using the configured memory circuit, the test pattern or the test pattern generation program is stored in the memory circuit, and the test circuit built in the FPGA is started to read the test pattern or the test pattern generation program from the memory circuit. It tests CPUs and custom logic circuits.
これによつて、 高機能の外部テス夕を用いることなく L S I内部の論理回 路のテストを行なうことができる。  As a result, the logic circuit inside the LSI can be tested without using a sophisticated external tester.
所定のァルゴリズムに従って C PUやカスタム論理回路のテスト信号およ び期待値信号を生成してテストを行なうテスト回路は、 命令コードを解読し て制御信号を形成するマイクロ命令方式の制御部と、 該制御部から出力され る制御信号に基づいて CPUやカスタム論理回路のテスト信号および期待値 信号を生成するとともに CPUやカスタム論理回路から出力される信号と期 待値信号とを比較して一致しない場合に不良を示す信号を形成する信号形 成 ·比較手段を FPGA内に構築することで実現される。 この場合、 基準ク 口ック信号に基づいて互いに位相やデューティの異なる複数のクロック信号 を形成するタイミング発生回路を FPGA内に構築して、 上記制御部からの 制御信号に従って各テスト信号ごとにタイミングを設定できるようにすると よい。  A test circuit for generating a test signal and an expected value signal of a CPU or a custom logic circuit in accordance with a predetermined algorithm and performing a test includes a micro-instruction-type control unit that decodes an instruction code and forms a control signal; When a test signal and an expected value signal for a CPU or a custom logic circuit are generated based on a control signal output from a control unit, and a signal output from the CPU or a custom logic circuit is compared with an expected value signal and the values do not match. This is achieved by constructing signal formation and comparison means in the FPGA that generate a signal indicating a failure. In this case, a timing generation circuit that forms a plurality of clock signals having different phases and duties from each other based on the reference clock signal is built in the FPGA, and the timing for each test signal is controlled according to the control signal from the control unit. It is good to be able to set.
このように、 テスト回路は、 所定のアルゴリズムに従って CPUやカス夕 ム論理回路のテスト信号および期待値信号を生成するための制御信号を形成 するマイクロプログラム制御方式の制御部と、 該制御部から出力される制御 信号に基づいて内部論理回路のテスト信号および期待値信号を生成するとと もに内部論理回路から出力される信号と期待値信号とを比較して一致しない 場合に不良を示す信号を形成する信号形成 ·比較手段とにより構成されるた め、 テストパターンをすべて内部のメモリに記憶する必要がないとともに、 制御部の構成によって命令コ一ド自身のデータ圧縮が可能となり、 FPGA 内に充分に構築することができる規模のものである。 図面の簡単な説明 As described above, the test circuit includes a microprogram control type control unit that forms a control signal for generating a test signal and an expected value signal for the CPU and the custom logic circuit according to a predetermined algorithm, and an output from the control unit. The test signal and expected value signal of the internal logic circuit are generated based on the control signal to be generated, and the signal output from the internal logic circuit is compared with the expected value signal to form a signal indicating a failure if they do not match. Signal formation Therefore, it is not necessary to store all the test patterns in the internal memory, and the configuration of the control unit enables the data compression of the instruction code itself, so that it can be sufficiently built in the FPGA. BRIEF DESCRIPTION OF THE FIGURES
図 1は、 本発明を適用した論理 LS Iの一実施例の全体構成を示すブロッ ク図である。  FIG. 1 is a block diagram showing an entire configuration of an embodiment of a logic LSI to which the present invention is applied.
図 2は、 本発明を適用した論理 LS I内に設けられる可変論理回路 (FP GA) の一実施例を示す回路構成図である。  FIG. 2 is a circuit configuration diagram showing one embodiment of a variable logic circuit (FPGA) provided in a logic LSI to which the present invention is applied.
図 3は、 FPGAを構成するクロスポイントスィッチの具体例を示すブ 口ック図である。  FIG. 3 is a block diagram showing a specific example of a crosspoint switch constituting an FPGA.
図 4は、 FPGAを構成するセル論理プロックの具体例を示す論理回路図 および概念図である。  FIG. 4 is a logic circuit diagram and a conceptual diagram showing a specific example of a cell logic block constituting an FPGA.
図 5は、 F P G Aを構成するセル論理プロックの他の例を示す論理回路図 である。  FIG. 5 is a logic circuit diagram showing another example of the cell logic block constituting the FPGA.
図 6は、 本発明を適用した論理 L S I内に設けられるテス ト用イン夕 フェース回路の一構成例を示すプロック図である。  FIG. 6 is a block diagram showing a configuration example of a test interface circuit provided in a logic LSI to which the present invention is applied.
図 7は、 本発明を適用した論理 L S Iにおける内部回路の検査手順の一例 を示すフローチャート図である。  FIG. 7 is a flowchart illustrating an example of an inspection procedure of the internal circuit in the logic LSI to which the present invention is applied.
図 8は、 図 7のフローチャートのステップ S 1〜S 3における FP G A部 の検査手順の具体的内容を示すフローチヤ一トである。  FIG. 8 is a flowchart showing the specific contents of the inspection procedure of the FPGA section in steps S1 to S3 of the flowchart of FIG.
図 9は、 図 7のフローチャートのステップ S 4~S 5における SRAM部 の検査手順の具体的内容を示すフローチャートである。  FIG. 9 is a flowchart showing specific contents of the inspection procedure of the SRAM section in steps S4 to S5 of the flowchart of FIG.
図 10は、 図 7のフローチヤ一トのステップ S 6〜S 8におけるカスタム 論理回路および CPU部の検査手順の具体的内容を示すフローチャートであ る o  FIG. 10 is a flowchart showing the specific contents of the inspection procedure of the custom logic circuit and the CPU unit in steps S6 to S8 of the flowchart of FIG.
図 1 1は、 図 7のフローチャートのステップ S 9〜S 12における DRA M部の検査手順の具体的内容を示すフローチャートである。  FIG. 11 is a flowchart showing specific contents of the inspection procedure of the DRAM section in steps S9 to S12 of the flowchart of FIG.
図 12は、 FPGA内に構築される ALPGの構成を示すブロック図であ る o Figure 12 is a block diagram showing the configuration of the ALPG built in the FPGA. O
図 13は、 ALPGを使用してメモリ回路をテス卜する際のパスの構成例 を示すプロック図である。  FIG. 13 is a block diagram illustrating a configuration example of a path when a memory circuit is tested using the ALPG.
図 14は、 AL P Gの命令メモリに格納されるマイク口命令の命令フォー マツトの構成例を示す説明図である。  FIG. 14 is an explanatory diagram showing a configuration example of the instruction format of the microphone opening instruction stored in the instruction memory of the ALPG.
図 15は、 ALPGのシーケンス制御部の構成例を示すブロック図であ る ο  FIG. 15 is a block diagram illustrating a configuration example of a sequence control unit of the ALPG.
図 16は、 ALPGのアドレス演算部の構成例を示すブロック図である。 図 17は、 ALPGのテストデータ生成演算部の構成例を示すブロック 図である。  FIG. 16 is a block diagram illustrating a configuration example of an address calculation unit of the ALPG. FIG. 17 is a block diagram illustrating a configuration example of a test data generation operation unit of the ALPG.
図 18は、 ALPGによりメモリ回路の検査を行なう場合のマイクロ命 令のォペコードおよびオペランドを用いたシーケンス制御手順の一例を示 すフローチャートである。  FIG. 18 is a flowchart showing an example of a sequence control procedure using an opcode and an operand of a microinstruction when a memory circuit is inspected by ALPG.
図 19は、 ALPGによりメモリ回路の検査を行なう場合のマイクロ命 令の演算コードおよびデータ生成コードを用いたテストアドレスおよび データの生成、 出力手順の一例を示すフローチャートである。  FIG. 19 is a flowchart showing an example of a test address and data generation and output procedure using a micro-instruction operation code and a data generation code when a memory circuit is inspected by ALPG.
図 20は、 FPGA内に構築されるロジックテスタの構成例を示すプロッ ク図である。  FIG. 20 is a block diagram showing a configuration example of a logic tester built in the FPGA.
図 21は、 ロジックテス夕内の信号形成 ·比較手段の具体例を示す論理回 路図である。  FIG. 21 is a logic circuit diagram showing a specific example of a signal forming / comparing means in a logic test.
図 22は、 ロジックテス夕により形成されるテスト用信号波形の一例を示 す波形図である。 発明を実施するための最良の形態  FIG. 22 is a waveform diagram showing an example of a test signal waveform formed by a logic test. BEST MODE FOR CARRYING OUT THE INVENTION
以下、 本発明の好適な実施例を図面に基づいて説明する。  Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
図 1は、 本発明を適用したシステム LS Iの一実施例のブロック図で、 公 知の半導体集積回路の製造技術により単結晶シリコンのような 1個の半導体 チップ 100上に構成される。  FIG. 1 is a block diagram of an embodiment of a system LSI to which the present invention is applied, and is configured on a single semiconductor chip 100 such as single crystal silicon by a known semiconductor integrated circuit manufacturing technique.
図 1の符号 1 10〜180は上記半導体チップ 100上に構成された内部 回路、 190はこれらの内部回路と外部装置との間の信号の入出力を行なう イン夕フェース回路、 200は上記内部回路 1 10〜180相互間およびィ ン夕フェース回路 190との間を接続する内部バスである。 上記内部回路 1 10〜180のうち、 110および 120はユーザが要求する論理機能を構 成するユーザ論理回路のようなカスタム論理回路で、 このうち 120はュ一 ザが任意に論理を構成可能な F P G Aにより構成されている。 このカスタム 論理回路は、 ユーザ論理を構成せずそのまま残しておくようにしてもよい。 また、 130はプログラムの命令を解読して対応する処理や演算を実行す る C P U (中央処理ュニッ ト) 、 140はスタティック RAM (ランダム ' アクセス ·メモリ) 、 150〜 180はダイナミック RAMである。 さらに、 この実施例のシステム L S Iには、 特に制限されるものでないが、 内部回路 のテスト時に外部のテス夕 500との間の信号の入出力を行なうため、 I E E E 1 149. 1規格で規定されている T A P (Test Access Port) 210 がインタフェース回路として設けられている。 テス夕 500は、 従来の論理 LS Iやメモリのテス夕のような高機能のものでなくデ一夕の書き込みと読 み出しおよび簡単なデータ処理が行なえるものでよく、 パーソナルコン ビュ一夕を用いることも可能である。 In FIG. 1, reference numerals 1 to 180 denote internal components formed on the semiconductor chip 100. Circuit, 190 is an interface circuit for inputting and outputting signals between these internal circuits and external devices, and 200 is for connecting the above internal circuits 110 to 180 and between the interface circuit 190 It is an internal bus. Of the internal circuits 110 to 180, 110 and 120 are custom logic circuits such as a user logic circuit that configures a logic function required by a user, and 120 of these logics can be freely configured by a user. It is composed of FPGA. This custom logic circuit may be left as it is without configuring the user logic. 130 is a CPU (central processing unit) that decodes program instructions and executes corresponding processing and operations, 140 is a static RAM (random access memory), and 150 to 180 are dynamic RAMs. Further, although not particularly limited, the system LSI of this embodiment is stipulated by the IEEE 1149.1 standard in order to input and output signals to and from an external tester 500 when testing internal circuits. TAP (Test Access Port) 210 is provided as an interface circuit. The tester 500 does not have to be as sophisticated as a conventional logic LSI or memory tester, but can be a device that can perform data read / write and simple data processing. Can also be used.
上記 CPU 130は、 狭義の CPUの他に、 プログラム ROM、 ヮーキン グ RAM、 シリアルコミュニケーションインタフェースやタイマー回路, デ ジ夕ル ·アナログ変換回路などのいわゆるマイコン周辺回路を含んでマイク 口プロセッサとして構成されていてもよい。  The CPU 130 is configured as a microprocessor processor including a so-called microcomputer peripheral circuit such as a program ROM, a marking RAM, a serial communication interface, a timer circuit, and a digital-to-analog conversion circuit, in addition to the CPU in a narrow sense. You may.
上記スタティック RAM 140およびダイナミック RAM 150〜: 180 は、 内部パス 200を介してアドレス信号が与えられたときに対応するメモ リセルを選択するアドレスデコーダ等のメモリ周辺回路を含む。 さらに、 ダ イナミック RAM 150〜 180は、 非アクセス時間が長くなつてもメモリ セルの情報電荷が失われないように周期的に疑似選択するリフレツシュ制御 回路を含む。 また、 特に制限されるものでないが、 この実施例では、 ダイナ ミック RAM 150〜 180には、 メモリアレイ内に欠陥ビットがあった場 合にその欠陥ビッ トを含むメモリ行もしくはメモリ列を予備のメモリ行もし くは予備のメモリ列と置きかえるいわゆる冗長回路がそれそれ設けられてい る。 The static RAM 140 and the dynamic RAMs 150 to 180 include memory peripheral circuits such as an address decoder for selecting a corresponding memory cell when an address signal is applied via the internal path 200. In addition, the dynamic RAMs 150 to 180 include a refresh control circuit that performs pseudo-selection periodically so that the information charges of the memory cells are not lost even when the non-access time is long. In addition, although not particularly limited, in this embodiment, if there is a defective bit in the memory array, the dynamic RAM 150 to 180 stores a spare memory row or column containing the defective bit in the memory array. If memory row In other words, so-called redundant circuits that replace the spare memory columns are provided.
図 2には、 図 1に示されている内部回路 1 10〜180のうち、 カスタム 論理回路 120を構成する F P G Aの具体例を示す。  FIG. 2 shows a specific example of the FPGA constituting the custom logic circuit 120 among the internal circuits 110 to 180 shown in FIG.
この実施例の FPGAは、 マトリックス状に配置された複数個のセル論 理ブロック C LBと、 各セル論理プロック CLB間に設けられてセル間を 接続するための配線群 121, 122と、 外部から配線間接続の状態を変 更することが可能なクロスボイントスィツチ C SWとにより構成されてい る。 上記クロスポイントスィッチ C SWは、 図 3に示すように、 例えば横 方向の配線 Lxと縦方向の配線 Lyにそれそれソート, ドレインが接続さ れたスィッチ MOSFET Qswと、 このスィッチ MOSFET Q s wのゲートに印加される制御情報を記憶する配線接続情報記憶用メモリセ ル SMCとから構成されている。 上記配線群 12 1および 122は、 多層 配線技術を利用してそれそれ異なる配線層によって互いに絶縁された状態 で形成するのが望ましい。 図 2には、 各セル論理ブロック間にそれぞれ 2 本ずつ配線が示されているが、 実際にはより多くの配線が形成される。 配 線の数はセル論理プロックの数に比例して増加される。  The FPGA of this embodiment includes a plurality of cell logic blocks C LB arranged in a matrix, wiring groups 121 and 122 provided between each cell logic block CLB to connect cells, and It is composed of a cross-point switch C SW that can change the state of wiring connection. As shown in FIG. 3, for example, the cross point switch C SW is divided into a horizontal wiring Lx and a vertical wiring Ly, and a switch MOSFET Qsw having a drain connected thereto and a gate of the switch MOSFET Qsw. And a wiring connection information storage memory cell SMC for storing control information applied to the power supply. It is desirable that the wiring groups 121 and 122 be formed in a state where they are insulated from each other by different wiring layers using a multilayer wiring technique. Although FIG. 2 shows two wires between each cell logic block, more wires are actually formed. The number of wires is increased in proportion to the number of cell logic blocks.
特に制限されるものではないが、 この FPGAブロックの周辺には、 上 記配線接続情報記憶用メモリセル SMCを選択してデータを書き込むため の Xデコーダ回路や Yデコーダ回路、 書込み回路等を設けるようにしても よい。 また、 上記配線接続情報記憶用メモリセル SMCは、 スィッチ MO SFET Qswと 1対 : Iで設ける代わりに、 FPGAブロックの周辺に SRAMメモリアレイとして設けることも可能である。  Although not particularly limited, an X-decoder circuit, a Y-decoder circuit, a write circuit, and the like for selecting the above-mentioned wiring connection information storage memory cell SMC and writing data are provided around the FPGA block. You may do it. The memory cell SMC for storing the wiring connection information can be provided as an SRAM memory array around the FPGA block instead of being provided as a pair I with the switch MO SFET Qsw.
セル論理ブロック CLBは、 例えば図 4 (a) に示すように、 AND論 理と NAND論理のような相補出力を有する論理積ゲート回路 (2線ライ ンロジック) LG 1と、 その相補出力を入力とする排他的論理和ゲート回 路 (比較手段) LG 2とから構成することができる。 このゲート回路 LG 2は、 2つの入力信号が同一の論理レベルのときにロウレベルの出力信号 を、 また 2つの入力信号の論理レベルが異なるときにハイレベルの出力信 号を出力するので、 論理積ゲート回路 LG 1に欠陥があって相補出力とな るべきところが同相出力となると、 ゲート回路 LG 2の出力はロウレベル となりゲート回路 LG 1に欠陥があることを知らせる。 As shown in Fig. 4 (a), for example, as shown in Fig. 4 (a), the cell logic block CLB has a logical product gate circuit (2-wire linear logic) LG1 having complementary outputs such as AND logic and NAND logic, and its complementary output as an input. And exclusive OR gate circuit (comparing means). The gate circuit LG 2 outputs a low-level output signal when the two input signals have the same logic level, and outputs a high-level output signal when the two input signals have different logic levels. If the output of the AND gate circuit LG1 is defective and the complementary output should be the in-phase output, the output of the gate circuit LG2 goes low, indicating that the gate circuit LG1 is defective.
このゲート回路 LG 2の出力信号は、 そのまま FPGAプロックの外部 へ出力させるようにしてもよいが、 この実施例では、 図 3に示されている クロスポイントスィツチ C SWを構成する配線接続情報記憶用メモリセル SMCのノード N2に入力させて記憶できるように構成されている。  The output signal of the gate circuit LG2 may be output as it is to the outside of the FPGA block. However, in this embodiment, the signal for storing the wiring connection information constituting the cross point switch C SW shown in FIG. 3 is used. The memory cell is configured so that it can be inputted to the node N2 of the SMC and stored.
従って、 各セル論理プロック CLBに電源電圧を与えてそのときのゲ一 ト回路 L G 2の出力状態を配線接続情報記憶用メモリセル S M Cに記憶さ せてから、 配線接続情報記憶用メモリセル SMCの記憶情報を外部へ読み 出すことにより、 セル論理プロック CLBが正常に動作するか否かを知る ことができる。 また、 各配線接続情報記憶用メモリセル SMCへチップ外 部から順次データを書き込んで読み出すことでメモリセルが故障している か否かも検出することができる。 さらに、 配線接続情報記憶用メモリセル SMCにデータを書き込んで所望のスィッチ MOSFET Qswをオン させて配線群 121 , 122を使用して外部より信号を入力しチェックす ることで、 スィッチ MOSFET Q swが故障しているか否かも検出す ることができる。  Therefore, the power supply voltage is applied to each cell logic block CLB, the output state of the gate circuit LG2 at that time is stored in the wiring connection information storage memory cell SMC, and then the wiring connection information storage memory cell SMC is By reading the stored information to the outside, it is possible to know whether or not the cell logic block CLB operates normally. In addition, by sequentially writing and reading data from the outside of the chip to each wiring connection information storage memory cell SMC, it is also possible to detect whether or not a memory cell has failed. Furthermore, by writing data to the wiring connection information storage memory cell SMC, turning on the desired switch MOSFET Qsw, and inputting a signal from the outside using the wiring groups 121 and 122 and checking, the switch MOSFET Qsw becomes It is also possible to detect whether a failure has occurred.
なお、 ゲート回路 L G 2の出力状態が入力される配線接続情報記憶用メ モリセル SMCを構成する MOSFET Q 1のゲート構造あるいはメモ リセル回路を工夫することにより、 ゲート回路 L G 2の出力がロウレベル のときは外部からのデ一夕入力によって MO S FET Q 1が反転すなわ ちオフしないよゔに構成してもよい。 これによつて、 セル論理ブロック C L Bに故障があるか否かを効率良く検出することができる。  Note that when the output of the gate circuit LG2 is low level, the gate structure of the MOSFET Q1 or the memory cell circuit that constitutes the wiring connection information storage memory cell SMC to which the output state of the gate circuit LG2 is input is devised. May be configured so that the MOS FET Q1 is not inverted by an external input from outside, that is, does not turn off. This makes it possible to efficiently detect whether or not the cell logic block CLB has a failure.
かかる機能を実現する具体的方法としては、 メモリセル SMCを構成す る MOS FET Q 1を、 例えば図 4 (b) に示すように、 コントロール ゲートとフローティングゲートを有する構造とし、 ゲート回路 LG 2の出 力 (ロウレベル) をインバー夕 I N Vで反転して MO S F E T Q 1のコ ントロ一ルゲート CGに高レベルの電圧 Vpを印加してフローティング ゲ一ト FGに電荷を注入させ、 外部からのデータ入力によってはメモリセ ルの状態が変化しないようにする方法が考えられる。 As a specific method of realizing such a function, for example, as shown in FIG. 4 (b), the MOS FET Q1 constituting the memory cell SMC has a structure having a control gate and a floating gate, and a gate circuit LG2 is provided. The output (low level) is inverted by INV and the high level voltage Vp is applied to the control gate CG of the MOSFET 1 to float. A method is conceivable in which charges are injected into the gate FG so that the state of the memory cell does not change due to external data input.
また、 図 4 (a) に示す AND論理と NAND論理のような相補出力を 有する論理積ゲート回路 LG1としては例えば図 4 (c) のような回路が 考えられる。 すなわち、 論理積ゲート回路 LG 1は、 電源電圧端子 Vc c と接地点との間に直列形態に接続された MO SFET Q 1 1〜Q 13か らなる第 1MOSFET列と、 直列形態の MO S FE T Q 21〜Q 23 からなる第 2MOSFET列とからなり、 Q 12と Q21のゲートに第 1 の入力信号 Xが供給されることにより、 第 2 M 0 S F E T列の出力ノード N 12から入力信号 X, Yの論理積出力 Z ( = Χ · Y) が、 また第 1 MO SFET列の出力ノード N 11から入力信号 X, Yの論理積出力 Zの反転 出力/ Z ( = /X - Y) を出力するように動作する。 なお、 図に示されて いる MOSFET Q 1 1および Q 23は、 それそれゲートとドレインが 結合もしくはゲ一トに所定の電位が印加されることにより負荷として作用 する。  Also, as the AND gate circuit LG1 having complementary outputs such as the AND logic and the NAND logic shown in FIG. 4 (a), for example, a circuit as shown in FIG. 4 (c) can be considered. That is, the logical product gate circuit LG 1 is composed of a first MOSFET row composed of MOS SFETs Q 11 to Q 13 connected in series between the power supply voltage terminal Vc c and the ground point, and a series MOSFET S 1 A second MOSFET row composed of TQ21 to Q23, and a first input signal X is supplied to the gates of Q12 and Q21, so that input signals X, X are output from the output node N12 of the second M0 SFET row. AND output Z of Y (= ΧY), and inverted output / Z (= / X-Y) of AND output Z of input signals X and Y from output node N 11 of the first MOS FET column To work. The MOSFETs Q11 and Q23 shown in the figure respectively act as loads when the gate and the drain are coupled or a predetermined potential is applied to the gate.
図 5 (a) に上記セル論理ブロック C LBの他の構成例を示す。  FIG. 5A shows another configuration example of the cell logic block CLB.
この実施例のセル論理ブロック C L Bは、 B I S T (Built in self test) 内蔵型の論理ブロックであり、 2つの入力信号 X, Yをそれぞれ ラッチして各々正相と逆相の信号 X, /X; Υ, /Υを出力するフリヅプ フロップ FF 1, FF2と、 これら 4つの出力信号を入力信号とし論理和 や論理積、 排他的論理和等複数の論理動作が可能な論理ュニット ALUと、 この論理ュニッ 卜の出力 Zをラッチして正相と逆相の信号 Z, /Zを出力 するフリップフロップ FF 3と、 上記論理ュニッ トの論理動作を指定する 制御情報を記憶する読出し書き込み可能なメモリ MEMと、 テストパター ンを乱数の形で発生する公知の L F S R ( Linear Feedback Shift Register) と、 コンパレータ CMP等より構成されている。  The cell logic block CLB of this embodiment is a logic block with a built-in BIST (Built-in self test), which latches two input signals X and Y, respectively, and outputs positive and negative signals X and / X; Flip-flops FF1 and FF2 that output Υ and / Υ, a logic unit ALU that uses these four output signals as input signals and can perform multiple logical operations such as logical sum, logical product, and exclusive logical sum, and this logical unit A flip-flop FF3 for latching the output Z of the unit and outputting the positive and negative phase signals Z and / Z; a readable and writable memory MEM for storing control information for specifying the logical operation of the logic unit; It consists of a well-known LFSR (Linear Feedback Shift Register) that generates test patterns in the form of random numbers and a comparator CMP.
上記論理ュニッ ト制御情報を記憶するメモリ M E Mは外部から制御情報 を書き込めるように構成されている。 上記 LFSRにはスィツチ MOSF ET G 1〜G7を介して入力信号 X, Yと論理ユニット制御情報および 3の出カ信号2, /Zの伝送信号線と接続可能に構成されて、 クロッ ク CLKに同期して動作する。 The memory MEM for storing the logic unit control information is configured to allow externally writing control information. The input signals X and Y and the logical unit control information and the logical unit control information are connected to the LFSR via the switches MOSF ET G1 to G7. It can be connected to the output signal 2 of / 3 and the transmission signal line of / Z, and operates in synchronization with the clock CLK.
この実施例のセル論理ブロック CLBを自己検査動作させる場合、 上記 スィッチ MO SFET G 1〜G 7のゲートに制御信号 CHKを入力して オンさせる。 すると、 LFSRによりランダムなパターンが形成されてフ リップフロッブ F F 1, F F 2および論理ュニッ ト ALUに供給されると ともに、 発生されたパターンとフリップフロップ F F 3の出力とが論理合 成、 圧縮されてシグネチヤ 'パターンとしてコンパレ一夕 CMPに出力さ ォし ο  When the cell logic block CLB of this embodiment is to be subjected to a self-test operation, a control signal CHK is input to the gates of the switches MO SFETs G1 to G7 to be turned on. Then, a random pattern is formed by the LFSR and supplied to the flip-flops FF 1 and FF 2 and the logic unit ALU, and the generated pattern and the output of the flip-flop FF 3 are logically synthesized and compressed. Output to the CMP as a signature pattern
コンパレータ CMPは、 例えば図 5 (b) に示されているように、 期待 シグネチヤ ·パターンが格納されたリード 'オンリ 'メモリ ROM、 イク スクルーシブ ORゲート E OR、 出力ラッチ OLT、 クロック CLKより ラッチ夕イミング信号を発生するタイミング発生回路 TMG等から構成さ れている。 LF SRよりシグネチヤ ·パターンが入力されると、 コンパ レ一夕 CMPはイクスクルーシブ ORゲート EORによってリード 'オン リ ·メモリ R OMに格納されている期待シグネチヤ ·パターンと LF SR の出力パターンとを比較して一致しているとロウレベルの信号を、 また一 致していないとハイレベルの信号を出力する。 この出力がラツチ OL Tに ラッチされて良/不良を示す信号 ERRとして出力される。  For example, as shown in Fig. 5 (b), the comparator CMP latches from the read 'only' memory ROM where the expected signature pattern is stored, the exclusive OR gate EOR, the output latch OLT, and the clock CLK. It is composed of a timing generation circuit TMG that generates signals. When a signature pattern is input from the LF SR, the CMP compares the expected signature pattern stored in the only ROM with the exclusive OR gate EOR and the output pattern of the LF SR. If they match, a low-level signal is output, and if they do not match, a high-level signal is output. This output is latched by the latch OLT and output as a signal ERR indicating good / bad.
なお、 LFSRの動作原理は既に公知であり、 種々の文献等に記載され ているので詳しい説明は省略するが、 その原理に従い被検査論理回路に 合った最適化が可能である。 LFSRを適用した B I STを内蔵した一般 の論理 LS Iでは、 論理回路毎に L F SRの最適化が必要であったため設 計上煩わしさがあつたが、 本実施例の FP G Aでは同一のセル論理プロッ ク CLBを使用しているので、 その最適化は一律に行なうことができ、 設 計負担が軽減される。 また、 B I S Tを内蔵した従来の L S Iは、 1つの B I S Tが L S I内部回路全てを検査するグロ一パルな B I S Tであった め、 生成されるテストパターンではテスト充分性が保証されないが、 本実 施例の B I S Tは各セル論理ブロック CLB内に設けられたローカルな B I STであるため、 テスト充分性も保証される。 The principle of operation of the LFSR is already known and has been described in various documents, so a detailed description is omitted, but optimization according to the logic circuit to be inspected can be performed according to the principle. In a general logic LSI with a built-in BIST to which LFSR is applied, optimization of the LFSR is required for each logic circuit, which complicates the design.However, in the FPGA of this embodiment, the same cell logic is used. Since the block CLB is used, the optimization can be performed uniformly, and the design burden is reduced. In addition, in conventional LSIs with a built-in BIST, one BIST is a global BIST that inspects all the internal circuits of the LSI, so the test patterns generated do not guarantee test adequacy. BIST is a local B provided in each cell logic block CLB. Because of the IST, test adequacy is also guaranteed.
図 6は、 図 1に示されている TAPを用いたインタフェース回路 2 10の 具体例を示す。  FIG. 6 shows a specific example of the interface circuit 210 using the TAP shown in FIG.
TAPは前述したように、 I EEE 1 149. 1規格で規定されているス キャンテストや B I S T回路のためのインタフェースおよび制御回路で、 入 力ポートからのテス トデ一夕を出力ポートへシフ トするときに使用するパイ パスレジスタ 21 1、 回路へ特定の信号を伝える場合に使用するデータレジ ス夕 212、 チップ固有の製造識別番号を設定するためのデバイス IDレジ ス夕 213、 データレジス夕の選択や内部のテスト方法を制御する場合に使 用するインス トラクションレジスタ 214、 TAP回路全体を制御するコン トローラ 215等により構成されている。  As described above, TAP is an interface and control circuit for scan test and BIST circuits specified in the IEEE 1149.1 standard, and shifts test data from input ports to output ports. Select the bypass register 211, the data register 212 used to transmit a specific signal to the circuit, the device ID register 213 to set the chip-specific manufacturing identification number, and the data register. And an instruction register 214 used for controlling the internal test method, a controller 215 for controlling the entire TAP circuit, and the like.
上記データレジス夕 212はォプション扱いのレジス夕である。 また、 ィ ンス トラクシヨンレジス夕 2 14に設定される命令には、 4つの必須命令と 3つのオプション命令が用意されている。 コントローラ 215には、 専用の 3つの外部端子から、 テス トモードを指定するためのテストモードセレク ト 信号 TMS、 テストクロック TCK、 リセッ ト信号 TRS Tが入力されてお り、 これらの信号に基づいて上記レジスタ 21 1〜2 14やセレクタ回路 2 16〜218に対する制御信号を形成する。  The data registry evening 212 is a registration evening treated as an option. In addition, four mandatory instructions and three optional instructions are prepared for the instructions set in the Instruction Registrar. The test mode select signal TMS, the test clock TCK, and the reset signal TRST for specifying the test mode are input to the controller 215 from three dedicated external terminals. Control signals for the registers 211 to 214 and the selector circuits 216 to 218 are formed.
また、 TAPにはテストデ一夕 TD Iの入力端子とテス ト結果データ TD ◦の出力端子が設けられており、 入力されたテストデータ TD Iは上記セレ クタ回路 216を介して各レジスタ 21 1〜214または内部のスキャンパ ス Iscan,Bscanへ供給される。 また、 レジス夕 21 1〜 2 14の内容および内 部回路からのスキャンアウ トデ一夕は、 セレクタ回路 217、 218を介し てチップ外部へ出力される。 さらに、 TAPには、 データレジスタ 212と インストラクションレジスタ 2 14の内容に従って内部の B I S T回路に対 する信号が形成されて供給されると共に、 B I S T回路から出力されたテス ト結果を示す信号がセレクタ回路 217, 2 18を介してチップ外部へ出力 可能に構成されている。  The TAP is provided with an input terminal for the test data TDI and an output terminal for the test result data TD, and the input test data TDI is supplied to each of the registers 211 to 1 through the selector circuit 216. Supplied to 214 or internal scan path Iscan, Bscan. The contents of the registers 211 to 214 and the scanout data from the internal circuit are output to the outside of the chip via the selector circuits 217 and 218. Further, a signal to the internal BIST circuit is formed and supplied to the TAP according to the contents of the data register 212 and the instruction register 214, and a signal indicating the test result output from the BIST circuit is output to the selector circuit 217. , 218 so that it can be output to the outside of the chip.
図 1の実施例のシステム LS Iでは、 後に詳細に説明されるようにカス夕 ム論理回路 (FPGA) 120や CPU 130上に構築される自己テスト回 路を B I S T回路とみなして、 上記 TAPの有する B I S T回路用の信号入 出力機能を利用して、 カスタム論理回路 (FPGA) 120や CPU 130 に対する自己テス卜のための設定信号ゃデ一夕を入力したり、 テスト結果お よび FPGA 120内のメモリセルや SRAM 140に記憶されているデー 夕を出力したりするように構成されている。 TAPの有するスキャンテスト のための機能は、 図 1の実施例のシステム LS Iでは使用されない。 In the system LSI of the embodiment of FIG. 1, as will be described in detail later, The self-test circuit built on the CPU logic circuit (FPGA) 120 or the CPU 130 is regarded as a BIST circuit, and the signal input / output function for the BIST circuit of the TAP is used to create a custom logic circuit (FPGA) 120 It is configured to input a setting signal for self-test to CPU and CPU 130, and to output test results and data stored in memory cells in FPGA 120 and SRAM 140. ing. The scan test function of the TAP is not used in the system LSI of the embodiment of FIG.
なお、 図 6において、 "Iscan" は内部論理回路を構成するフリップフロヅ プをチェーン状に結合したシフトレジスタをテストデ一夕のスキヤンパスと して使用して、 内部論理回路の診断を行なうためのテス卜パスを意味する。 また、 "Bscan"は信号入出力部 (図 1のイン夕フェース回路 190 ) 内に設 けられているフリップフ口ップをチェーン状に結合したシフトレジスタをス キャンパスとして使用して、 他の半導体集積回路との間の接続状態の診断 (バウンダリスキャンテスト) を行なうためのテストパスを意味する。  In FIG. 6, "Iscan" is a test for diagnosing the internal logic circuit by using a shift register in which flip-flops constituting the internal logic circuit are connected in a chain as a scan path for the test data. Means a path. The “Bscan” uses a shift register, which is a chain of flip-flops provided in the signal input / output section (the interface circuit 190 in FIG. 1), as a scan path, and uses other semiconductors. It means a test path for diagnosing the connection status with the integrated circuit (boundary scan test).
次に、 図 1に示されているシステム L S Iに本発明に係るテスト方法を適 用した場合のテスト手順の一例を、 図 7〜図 1 1を用いて説明する。 図 7に は、 L S I全体のテスト手順の概略が、 また図 8〜図 11には L S Iを構成 する各プロックのテスト手順の具体例が示されている。  Next, an example of a test procedure when the test method according to the present invention is applied to the system LSI shown in FIG. 1 will be described with reference to FIGS. FIG. 7 shows an outline of the test procedure of the entire LSI, and FIGS. 8 to 11 show specific examples of the test procedure of each block constituting the LSI.
本発明に係るテスト方法に従うと、 図 7に示されているように、 先ず FP GA 120が前述したセル論理ブロックの機能を利用して検査され、 不良の 有無が判定されて不良があるときは不良個所の回避が行なわれる (ステップ S 1〜S 3) 。 次に、 FPGA 120内の上記不良個所を除いた部分に S R AMI 40をテストするためのテスト回路 (ALPG) が構築され、 SRA M 140のテストが実行される (ステップ S 4 , S 5)  According to the test method according to the present invention, as shown in FIG. 7, first, the FPGA 120 is inspected using the function of the cell logic block described above, and it is determined whether there is a defect. Avoidance of a defective part is performed (steps S1 to S3). Next, a test circuit (ALPG) for testing the SR AMI 40 is constructed in a portion of the FPGA 120 excluding the defective portion, and the test of the SRAM 140 is executed (steps S 4 and S 5).
SRAM 140に不良個所が発見されなかった場合には、 FPGA 120 内の上記不良個所を除いた部分にカスタム論理回路 1 10および CPU 13 0をテストするためのテスト回路 (ロジックテス夕) が構築され、 カスタム 論理回路 1 10および CPU 130のテストが実行される (ステップ S 6〜 S 8 ) 。 このとき、 既に検査が終了している SRAMを利用してテストパ ターンもしくはテストパターン生成プログラムが格納される。 If no defective part is found in the SRAM 140, a test circuit (logic test section) for testing the custom logic circuit 110 and the CPU 130 is constructed in the portion of the FPGA 120 excluding the defective part. The tests of the custom logic circuit 110 and the CPU 130 are executed (steps S6 to S8). At this time, a test pattern is created using SRAM that has already been tested. A turn or test pattern generation program is stored.
不良が発見されなかった場合には、 FPGA 120内の上記不良個所を除 いた部分に DRAM 150〜 180をテストするためのテスト回路 (ALP G) が構築され、 DRAM 1 50〜 180のテストが順次実行される (ス テツプ S 9, S 10) 。 そして、 不良個所が発見された場合には、 それが S RAM 140あるいは外部の記憶装置に記憶されてから、 DRAM 150〜 180に設けられている冗長回路を利用して不良ビッ トを救済するための救 済プログラムが CPU 130に読み込まれ、 CPU 130によってそのプロ グラムが実行されてビット救済が行なわれる (ステップ S 11, S 12) 。 その後、 FPGA 120内の上記不良個所を除いた部分にユーザ論理等の カスタム論理の一部が構成されて、 システム L S Iとして完成される (ス テツプ S 13) 。 このステップ S 13では、 先ず TAP 210を FPGA 1 20内の接続情報記憶用メモリセル SMCのアクセスモードに設定してから、 ステップ S 1で得られている不良個所を示す情報を利用してその不良個所を 回避するようにユーザ論理を構成するデ一夕を FPGA 120内の正常なク ロスポイントスィツチのメモリセル SMCに書き込むことによって所望の論 理を構成する。  If no defect is found, a test circuit (ALP G) for testing the DRAMs 150 to 180 is constructed in the portion of the FPGA 120 excluding the above defective parts, and the DRAMs 150 to 180 are sequentially tested. It is performed (Steps S9, S10). If a defective part is found, it is stored in the SRAM 140 or an external storage device, and then the defective bit is rescued by using the redundant circuit provided in the DRAMs 150 to 180. The rescue program is read by the CPU 130, and the program is executed by the CPU 130 to perform bit rescue (steps S11 and S12). After that, a part of the custom logic such as the user logic is formed in a portion of the FPGA 120 excluding the defective portion, and the system is completed as a system LSI (step S13). In step S13, first, the TAP 210 is set to the access mode of the connection information storage memory cell SMC in the FPGA 120, and then the failure is determined by using the information indicating the failure location obtained in step S1. A desired logic is constructed by writing a data which constitutes the user logic so as to avoid the place in the memory cell SMC of the normal crosspoint switch in the FPGA 120.
図 8には、 図 7のフローチャートのステップ S 1〜S 3におけるカスタム 論理回路 (FPGA) 120の自己検証のより詳しい手順が示されている。 本実施例のデバイス (システム LS I) に電源電圧が投入されると、 FP GA 120を構成するセル論理プロック CLBの論理ゲート回路 LG 1, L G 2が能動化され、 欠陥がある場合には論理ゲート回路 LG 1の出力がロウ レベルになってその出力状態が接続情報記憶用メモリセル S M Cに記憶され る (ステップ S 1 11) 。  FIG. 8 shows a more detailed procedure of the self-verification of the custom logic circuit (FPGA) 120 in steps S1 to S3 of the flowchart of FIG. When the power supply voltage is applied to the device (system LSI) of the present embodiment, the logic gate circuits LG 1 and LG 2 of the cell logic block CLB constituting the FPGA 120 are activated, and if there is a defect, the logic is activated. The output of the gate circuit LG1 goes low, and the output state is stored in the connection information storage memory cell SMC (step S111).
次に、 テスタ 500を用いてテスト用イン夕フェース回路としての TAP 210にテストモ一ドセレクト信号 TMSゃィンストラクシヨンレジスタ 2 14に設定するコードを入力して、 TAP210を、 FPGA 120内の接 続情報記憶用メモリセル SMCのアクセスモードに設定する (ステップ S 1 12) 。 続いて、 メモリセル SMCに対して正常を示すデータ (上記セル論 理ブロック C LBの自己検証による欠陥状態を示す論理レベルと逆の論理レ ベル) を書き込む (ステップ S 1 13) 。 次に、 上記メモリセル SMCの データの読み出しを行なう (ステップ S 114) 。 Next, using the tester 500, a code to be set in the test mode select signal TMS function register 214 is input to the TAP 210 as the test interface circuit, and the TAP 210 is connected to the FPGA 120. The access mode is set for the memory cell SMC for connection information storage (step S112). Next, data indicating normality for the memory cell SMC (the cell theory The logic level (the logic level opposite to the logic level indicating the defect state by self-verification of the logical block CLB) is written (step S113). Next, data is read from the memory cell SMC (step S114).
そして、 読み出されたデータと書込みデータとを比較することでいずれの セル論理プロック CLBに欠陥があるか判定する (ステップ S 1 15) 。 ま た、 例えば上記書込みデータと逆のデータを書き込んで読み出すことによつ てメモリセル SMC自身に欠陥のあるクロスボイントスィツチ C SWも検出 することができる。  Then, by comparing the read data and the write data, it is determined which cell logic block CLB has a defect (step S115). Further, for example, by writing and reading the reverse of the write data, a cross-point switch CSW having a defect in the memory cell SMC itself can also be detected.
次に、 テス夕 500において、 上記判定結果に基づいて正常なクロスボイ ントスィッチ CSWおよびセル論理ブロック CLBのマップを作成する (ス テツプ S 1 1 6) 。 作成したマップすなわちクロスポイントスィツチ CSW およびセル論理ブロック CLBの正常ノ異常を示す情報は、 テスタ 500内 の記憶装置等に格納しておく。 それから、 FPGA120上に構築する SR AMテス夕 (ALPG) の HD L記述をデータペース等から読み出してテス 夕 500で論理合成等を行ない、 上記マップに基づいて欠陥のあるクロスボ イントスイッチ C SWおよびセル論理プロック CLBを回避して ALPG (Algorithmic Memory Pattern Generator) を構築するデータを生成する (ステップ S 1 17) 。 そして、 生成したデ一夕をテス夕 500内の記憶装 置等に格納する (ステップ S 1 18) 。 このデータは、 正常なクロスボイン トスイッチ C SWのスィッチ MO S F E T Q s wを、 構成したい論理に応 じて選択的にオンさせるデータである。  Next, at test 500, a map of a normal cross-point switch CSW and a cell logic block CLB is created based on the above determination result (step S116). The created map, that is, the information indicating whether the cross point switch CSW and the cell logic block CLB are normal or abnormal is stored in a storage device or the like in the tester 500. Then, the HDL description of the SRAM test (ALPG) to be built on the FPGA 120 is read from a data pace and the like, and the logic synthesis is performed at the test 500, and the defective crosspoint switch C SW and the cell are determined based on the above map. Data for constructing an ALPG (Algorithmic Memory Pattern Generator) avoiding the logic block CLB is generated (step S117). Then, the generated data is stored in a storage device or the like in the tester 500 (step S118). This data is data for selectively turning on the normal cross-point switch CSW switch MOSFETQsw according to the logic to be configured.
図 9には、 図 7のフローチャートのステップ S 4〜S 5における SRAM 部 140の検査のより詳細な手順が示されている。  FIG. 9 shows a more detailed procedure for inspecting the SRAM section 140 in steps S4 to S5 of the flowchart of FIG.
SRAM部 140の検査では、 先ずテスタ 500から TAP 2 10に制御 信号を供給して FPGA120内のクロスポイントスイッチ制御情報を記憶 するためのメモリセル SMCを選択状態にする (ステップ S 12 1) 。 それ から、 選択状態のメモリセル SMCに上記ステップ S 1 18で記憶装置に記 憶された ALPGを構築するデ一夕を転送する (ステップ S 122) 。 これ によって、 FPGA 120内に S RAMを検査するためのテストパターンを 発生可能な ALPGを含むテス ト回路が構築される。 FPGA 120内に構 築される ALPGの構造および A LP Gを構築する具体的な方法については、 後に詳しく説明する。 In the inspection of the SRAM section 140, first, a control signal is supplied from the tester 500 to the TAP 210 to select the memory cell SMC for storing the crosspoint switch control information in the FPGA 120 (step S121). Then, the data for constructing the ALPG stored in the storage device in step S118 is transferred to the selected memory cell SMC (step S122). This creates a test pattern for testing SRAM in FPGA 120. A test circuit including a possible ALPG is constructed. The structure of the ALPG built in the FPGA 120 and the specific method of building the ALPG will be described later in detail.
次に、 AL P Gを動作させてテストパターンを発生させるためのプログラ ムをテスタ 500により TAP 210を介して FPGA120内のメモリ回 路に書き込む (ステップ S 123) 。 このメモリ回路は、 ステップ S 122 での ALPGの構築の際に、 FPGA120を構成するセル論理ブロック C LBとクロスポイントスィツチ C SWとによって構成されている。  Next, a program for operating the ALPG to generate a test pattern is written by the tester 500 into the memory circuit in the FPGA 120 via the TAP 210 (step S123). This memory circuit is composed of the cell logic block CLB and the crosspoint switch CSW constituting the FPGA 120 when the ALPG is constructed in step S122.
続いて、 テス夕 500から TAP 210に制御信号を供給して SRAM部 140を選択状態にする (ステップ S 124) 。 そして、 上記 FPGA 12 0内の ALP Gに起動をかけ、 ステップ S 123で書き込んだテス トパター ン生成プログラムを実行させてテス トパターンを発生させ、 発生されたテス トパターンをバス 200等を介して選択状態の S RAM部 140に供給して テストを行ない、 そのテスト結果を TAP 2 10を介して外部 (テスタ 50 0) へ出力する (ステップ S 125, S 126 ) 。  Subsequently, the control signal is supplied from the tester 500 to the TAP 210 to set the SRAM section 140 to the selected state (step S124). Then, the ALPG in the FPGA 120 is activated, the test pattern generation program written in step S123 is executed to generate a test pattern, and the generated test pattern is transferred via the bus 200 or the like. The test is supplied to the selected SRAM section 140, and the test result is output to the outside (tester 500) via the TAP 210 (steps S125 and S126).
すると、 テスタ 500は出力されたテスト結果から S RAM部 140内に 不良があるか否かを判定し良品と不良品を選別する (ステップ S 127) 。 なお、 FPGA 120内に構築された ALPGにより形成された書込みデー 夕を期待値として外部へ出力させるとともに、 SRAMから読み出された データも外部へ出力させることで、 外部のテス夕で期待値と読み出しデータ とを比較して不良の有無の判定を行なうように構成することも可能である。 また、 テストパターン生成プログラムを FPGA内に構成したメモリ回路に 記憶される代わりに、 外部から TAPを介して順次テストパターン生成プロ グラムを構成する命令コ一ドを入力させるようにしてもよい。  Then, the tester 500 determines whether there is a defect in the SRAM section 140 from the output test result and sorts out a non-defective product and a defective product (step S127). The write data formed by the ALPG built in the FPGA 120 is output to the outside as an expected value, and the data read from the SRAM is also output to the outside. It is also possible to configure so as to judge the presence or absence of a defect by comparing the read data with the read data. Instead of storing the test pattern generation program in a memory circuit configured in the FPGA, an instruction code for configuring the test pattern generation program may be sequentially input from outside via a TAP.
図 10には、 図 7のフローチャートのステップ S 6〜 S 8におけるロジッ ク部すなわちカスタム論理部 1 10および CPU部 130の検査のより詳細 な手順が示されている。  FIG. 10 shows a more detailed procedure for checking the logic unit, that is, the custom logic unit 110 and the CPU unit 130 in steps S6 to S8 of the flowchart in FIG.
論理部 110および 130の検査では、 先ずテスタ 500において、 FP GA 120内にロジックテス夕を構築するためのデ一夕を作成する (ステツ プ S 1 3 1 ) 。 このとき、 図 8の F PGA自己検証フローのステップ S 1 1 6で生成された正常なセル論理プロック CLBとクロスポイントスィッチ C SWのマップを用いて故障のある回路を回避してロジックテスタを構築する ようなデータが作成される。 In the inspection of the logic units 110 and 130, first, in the tester 500, a data for constructing a logic test in the FPGA 120 is created. Step S1 3 1). At this time, a logic tester is constructed by using the map of the normal cell logic block CLB and the crosspoint switch CSW generated in step S116 of the FPGA self-verification flow in Fig. 8 to avoid faulty circuits. Is created.
次に、 テスタ 5 00から TAP 2 1 0に制御信号を供給して FPGA 1 2 0内のクロスボイントスィツチ制御情報を記憶するメモリセル SMCを選択 状態にする (ステップ S 1 32) 。 それから、 選択状態のメモリセル SMC に上記ステップ S 1 3 1で記憶装置に記憶されたロジックテス夕を構築する データを転送する (ステップ S 1 3 3) 。 これによつて、 FP GA 1 20内 に論理部を検査するためのテス トパターンを発生可能なテスト回路が構築さ れる。 このとき、 FP GA内にプログラムメモリを構成し構成されたメモリ にロジックテス夕を動作させるためのプログラムも転送しておくようにして もよい。 FP GA 1 2 0内に構築されるロジックテスタの構造およびロジッ クテスタを構築する具体的な手順については、 後に詳しく説明する。  Next, a control signal is supplied from the tester 500 to the TAP 210 to select the memory cell SMC in the FPGA 120 for storing the cross-point switch control information (step S132). Then, the data for constructing the logic test stored in the storage device in the above step S131 is transferred to the selected memory cell SMC (step S133). As a result, a test circuit capable of generating a test pattern for testing a logic part is built in the FPGA 120. At this time, a program memory may be configured in the FPGA, and a program for operating the logic tester may be transferred to the configured memory. The structure of the logic tester built in the FPGA 120 and the specific procedure for building the logic tester will be described later in detail.
次に、 テスタ 5 0 0から TAP 2 1 0に制御信号を供給して、 図 9のフ ローの検査が終了した SRAM部 1 40を選択する (ステップ S 1 34) 。 そして、 予めテス夕 5 00内に用意されているカスタム論理部 1 1 0を検査 するためのテストパターンを発生するプログラムをテス夕 5 00により TA P 2 1 0を介して SRAM 14 0内に書き込む (ステップ S 1 3 5 ) 。 S R AMのテストパターンを生成するプログラムのように、 FP GA内のメモリ 回路に格納せずに検査が終了した SRMA内に格納するのは、 一般にメモリ のテストパターンよりも論理回路のテス トパターンの方が長くより大きなメ モリ領域を必要とするためである。  Next, a control signal is supplied from the tester 500 to the TAP 210 to select the SRAM section 140 for which the flow inspection in FIG. 9 has been completed (step S134). Then, a program for generating a test pattern for testing the custom logic section 110 prepared in advance in the test section 500 is written into the SRAM 140 via the tap 210 by the test section 500. (Step S135). Like a program that generates a test pattern for an SRAM, storing it in an SRMA that has been inspected without storing it in the memory circuit in the FPGA generally uses a logical circuit test pattern rather than a memory test pattern. This is because the longer one requires a larger memory area.
続いて、 上記 FP GA 1 2 0内のロジックテス夕に起動をかけ、 ステップ S 1 3 5で SRAM 1 40に書き込んだテストパターン生成プログラムを読 み出してテス トパターンを生成しながらカスタム論理部 1 1 0に供給する (ステップ S 1 3 6 ) 。 そして、 カスタム論理部 1 1 0からの出力信号を期 待値と比較してテス ト結果を TAP 2 1 0を介して外部 (テス夕 5 00) へ 出力する (ステップ S 1 37) 。 すると、 テス夕 500は出力されたテスト結果からカスタム論理部 14 0内に不良があるか否かを判定し良品と不良品を選別する (ステップ S 1 38)。 Subsequently, the logic test in the FPGA 120 is started, and the test pattern generation program written in the SRAM 140 in step S135 is read to generate a test pattern, and the custom logic unit is generated. It is supplied to 110 (step S136). Then, the output signal from the custom logic section 110 is compared with the expected value, and the test result is output to the outside (test section 500) via the TAP 210 (step S137). Then, the tester 500 determines whether or not there is a defect in the custom logic section 140 based on the output test result, and selects a non-defective product and a defective product (step S138).
次に、 予めテス夕 500内に用意されている CPU 130を検査するた めのテストパターン生成プログラムを SRAM 140へ転送する (ステツ プ S 139)。 続いて、 上記 FPGA 120内のロジックテス夕に起動をか け、 ステップ S 135で SRAM 140に書き込んだテストパターン生成 プログラムを読み出してテストパターンを生成しながら CPU 130に供 給する (ステップ S 140)。 そして、 CPU 130からの出力信号を期待 値と比較してテスト結果を TAP 2 10を介して外部 (テス夕 500 ) へ 出力する (ステップ S 141)。  Next, a test pattern generation program for inspecting the CPU 130 prepared in the tester 500 in advance is transferred to the SRAM 140 (step S139). Subsequently, the logic test in the FPGA 120 is started up, and the test pattern generation program written in the SRAM 140 in step S135 is read and supplied to the CPU 130 while generating a test pattern (step S140). . Then, the output signal from the CPU 130 is compared with the expected value, and the test result is output to the outside (test 500) via the TAP 210 (step S141).
すると、 テス夕 500は出力されたテスト結果から CPU 130内に不 良があるか否かを判定し良品と不良品を選別する (ステップ S 142)。  Then, the tester 500 determines whether there is any defect in the CPU 130 based on the output test result and sorts out a non-defective product and a defective product (step S142).
図 1 1には、 図 7のフローチャートのステップ S 9〜S 12における DR AM部 150〜180の検査のより詳細な手順が示されている。  FIG. 11 shows a more detailed procedure of the inspection of the DRAM units 150 to 180 in steps S9 to S12 of the flowchart of FIG.
DRAM部 1.50〜: L 80の検査では、 先ずテス夕 500において、 F P GA 120内に DRAMを検査するためのテストパターンを発生可能な A L P G (Algorithmic Memory Pattern Generator) を構築するためのデ一夕を 作成する (ステップ S 15 1) 。 このとき、 図 8の FPGA自己検証フロ一 のステップ S 116で生成された正常なセル論理ブロック CLBとクロスポ イントスィツチ C SWのマップを用いて故障のある回路を回避して ALP G を構築するようなデ一夕が作成される。 なお、 DRAMを検査する ALP G は S R AMを検査する A L P Gとほぼ同様であり、 リフレツシュ動作の正常 DRAM section 1.50 ~: In the test of L80, first, at test 500, a test for constructing an ALPG (Algorithmic Memory Pattern Generator) capable of generating test patterns for testing DRAM in FPGA 120 Create (step S151). At this time, using the map of the normal cell logic block CLB and the crosspoint switch CSW generated in step S116 of the FPGA self-verification flow of FIG. 8 to avoid the faulty circuit and construct the ALP G A day is created. Note that ALP G for DRAM inspection is almost the same as ALP G for SRAM inspection, and the refresh operation is normal.
/異常を判定する処理が追加されている点が異なる。 The difference is that processing for judging abnormalities has been added.
次に、 テス夕 500から TAP 2 10に制御信号を供給して F P G A 12 0内のクロスポイントスィツチ制御情報を記憶するメモリセル SMCを選択 状態にする (ステップ S 1 52) 。 それから、 選択状態のメモリセル SMC に上記ステップ S 15 1で作成された ALPGを構築するデ一夕を転送する (ステップ S 153) 。 これによつて、 FPGA 120内に DRAMを検査 するための ALP Gを含むテスト回路が構築される。 FPGA 120内に構 築される AL PGの構造および ALPGを構築する具体的な方法は、 後に詳 しく説明される SRAMを検査するための ALPGとほぼ同様である。 Next, a control signal is supplied from the tester 500 to the TAP 210 to select the memory cell SMC in the FPGA 120 that stores the crosspoint switch control information (Step S152). Then, the data for constructing the ALPG created in step S151 is transferred to the selected memory cell SMC (step S153). This allows testing of DRAM in FPGA 120 A test circuit including ALP G is built. The structure of the ALPG built in the FPGA 120 and a specific method of building the ALPG are almost the same as those of the ALPG for inspecting the SRAM, which will be described later in detail.
次に、 ALPGを動作させてテストパターンを発生させるためのプログラ ムをテスタ 500にょり丁 ?210を介して ?0八120内のメモリ回 路に書き込む (ステップ S 154) 。 このメモリ回路は、 ステップ S 153 での ALPGの構築の際に、 FPGA120を構成するセル論理ブロック C LBとクロスポイントスィッチ CSWとによって構成されている。 なお、 テ ストパターン生成プログラムは、 SRAM140内に記憶してもよいし、 D RAM検査の際に外部から順次命令コードを FPGA内の ALPGに入力す るようにしてもよい。  Next, a program for operating ALPG to generate test patterns is provided by Tester 500? Through 210? The data is written into the memory circuit in the address 120 (step S154). This memory circuit is configured by the cell logic block CLB and the crosspoint switch CSW constituting the FPGA 120 when the ALPG is constructed in step S153. Note that the test pattern generation program may be stored in the SRAM 140, or an instruction code may be sequentially input from the outside to the ALPG in the FPGA at the time of DRAM testing.
続いて、 テスタ 500から TAP210に制御信号を供給して SRAM部 Next, a control signal is supplied from the tester 500 to the TAP210 to
140を選択状態にして (ステップ S 155 ) 、 SR AM内に後述の DR A Mテスト (ステップ S 159) で検出される欠陥ビッ 卜の位置を記憶するた めのフェールメモリを構成する (ステップ S 156) 。 次に、 テス夕 500 から TAP 2 10に制御信号を供給して CPU部 130を選択状態にして (ステップ S 157) 、 DRAMの欠陥ビットを救済するための救済プログ ラムを CPU 130内のメモリに転送する (ステップ S 158) 。 この救済 プログラムは SRAM140内に入れておくようにしてもよい。 140 is selected (step S155), and a fail memory for storing the position of a defective bit detected in a DRAM test (step S159) described later in the SRAM (step S156). ). Next, a control signal is supplied from the tester 500 to the TAP 210 to set the CPU section 130 to the selected state (step S157), and a rescue program for relieving defective bits of the DRAM is stored in the memory in the CPU 130. Transfer (step S158). This rescue program may be stored in the SRAM 140.
この救済プログラムは、 所定の置換アルゴリズムに従って、 上記 DRAM This rescue program uses the above DRAM in accordance with a predetermined replacement algorithm.
150に付随して設けけられている冗長回路内のアドレス変換回路に置換ァ ドレスを設定し、 欠陥ビッ トを含むメモリ行またはメモリ列を予備行または 予備列に置きかえるものである。 テスト結果に基づいて、 最も適切な予備メ モリ行または予備メモリ列を選択して、 欠陥ビッ トと置き換える冗長置換ァ ルゴリズムそれ自身は公知であり、 それを使用することで、 本実施例のため に新規な置換アルゴリズムを必要としない。 A replacement address is set in an address conversion circuit in a redundant circuit provided along with 150, and a memory row or a memory column containing a defective bit is replaced with a spare row or a spare column. The redundant replacement algorithm, which selects the most appropriate spare memory row or spare memory column based on the test results and replaces the defective bit, is known per se and can be used for this embodiment. Does not require a new replacement algorithm.
それから、 テスタ 500により TAP 210に制御信号を供給して DR A Ml 50を選択状態にしてから上記 FPGA 120内の ALPGに起動をか け、 ステップ S 154で書き込んだテス トパターン生成プログラムを実行さ せてテストパターンを発生させ、 発生されたテストパターンを選択状態の D RAM部 150に供給してテストを行ない、 その結果すなわち欠陥ビットの 位置を SRAM 140に構成されたフェールメモリに記憶させる (ステップ S 159) 。 なお、 ステップ S 159での DRAMテストでは、 SRAMテ ストと同様のリード/ライ トテストの他に、 正常なリフレッシュ動作が行な われるか否かのテストも行なわれる。 Then, a test signal is supplied to the TAP 210 by the tester 500 to set the DR AML 50 to the selected state. Then, the ALPG in the FPGA 120 is activated, and the test pattern generation program written in step S154 is executed. Then, a test pattern is generated, and the generated test pattern is supplied to the selected DRAM unit 150 to perform a test, and the result, that is, the position of the defective bit is stored in the fail memory configured in the SRAM 140 (step S 159). In the DRAM test in step S159, in addition to the read / write test similar to the SRAM test, a test as to whether a normal refresh operation is performed is also performed.
次に、 CPU 1 30に起動をかけて救済プログラムを実行させ、 上記 フェールメモリ (SRAM 140) に記憶された欠陥ビットの情報に基づい て欠陥ビットを含むメモリ行またはメモリ列を予備行または予備列に置きか えるビヅ ト救済処理を行なう (ステップ S 160) 。 その後、 正常に救済が 行なわれたか否かのテストが救済プログラムの一連の動作として行なわれる (ステップ S 161 ) 。 そして、 そのテスト結果がチップ外部のテスタ 50 0に出力される。  Next, the CPU 130 is activated to execute the rescue program. Based on the information on the defective bits stored in the fail memory (SRAM 140), the memory row or column containing the defective bit is replaced with the spare row or spare column. Then, a bit rescue process is performed (step S160). Thereafter, a test as to whether or not the rescue has been performed normally is performed as a series of operations of the rescue program (step S161). Then, the test result is output to a tester 500 outside the chip.
すると、 テス夕 500は出力されたテスト結果から DRAM部 150内 に不良があるか否かを判定し良品と不良品を選別する (ステップ S 1 6 2 )。 DRAM部 1 50のテストおよびビッ ト救済が終了すると、 再びス テツプ S 159へ戻って他の DRAM部 160、 170および 180につ いても同様にしてテストおよびビッ ト救済とテスト結果の判定が行なわれ 次に、 前記 SRAM 140の検査の際に F P G A 120内に構築される ALPGの詳細について説明する。 ALPGは、 例えば図 12に示されて いるように、 所定のテストパターン生成アルゴリズムに従って記述された 複数のマイグロ命令群からなるマイクロプログラムが格納される命令メモ リ 41 1と、 該命令メモリ 41 1から読み出されるべきマイクロ命令の命 令ァドレスを指定するプログラムカウンタ 412と、 上記命令メモリ 41 1から読み出されたマイク口命令内の命令コードを解読してメモリ回路部 に対する制御信号やプログラムカウン夕 412等テスト回路内の内部回路 に対する制御信号を形成するシーケンス制御回路 413と、 命令メモリ 4 1 1より読み出されたマイクロ命令に従ってテストァドレスを生成するァ ドレス演算回路 4 1 4と、 読み出されたマイクロ命令に従ってテストデー 夕および期待値データを生成するテストデータ生成回路 4 1 5と、 上記テ ストアドレスによって S R A M部 1 4 0から読み出されたデ一夕と上記テ ストデ一夕生成回路 4 1 5により生成された期待値デ一夕とを比較し、 正 常な書込みがなされた否か判定する比較判定回路 4 1 6等により構成され ている。 Then, the tester 500 determines whether there is a defect in the DRAM section 150 based on the output test result, and sorts out a non-defective product and a defective product (step S162). When the test and bit rescue of the DRAM unit 150 are completed, the process returns to step S159, and the test, the bit rescue and the judgment of the test result are similarly performed on the other DRAM units 160, 170, and 180. Next, the details of the ALPG built in the FPGA 120 when the SRAM 140 is inspected will be described. For example, as shown in FIG. 12, the ALPG is composed of an instruction memory 411 storing a microprogram consisting of a plurality of microgroove instructions described according to a predetermined test pattern generation algorithm, and an instruction memory 411. A program counter 412 for specifying an instruction address of a microinstruction to be read, a control signal for a memory circuit section by decoding an instruction code in a microphone instruction read from the instruction memory 411, a program counter 412, etc. A sequence control circuit 413 for forming a control signal for an internal circuit in the test circuit; and a sequencer for generating a test address according to the microinstruction read from the instruction memory 411. A dress operation circuit 414, a test data generation circuit 415 for generating test data and expected value data in accordance with the read microinstruction, and a data read from the SRAM section 140 by the test address. It is composed of a comparison / determination circuit 416, etc., which compares the data with the expected value data generated by the test data generation circuit 415 to determine whether or not the data has been written normally. .
上記比較判定回路 4 1 6における判定結果は、 データの一致 Z不一致を 示す判定信号 Fとして T A P 2 1 0を介してチップの外部へ出力されるよ うに構成されている。 テストパターン生成アルゴリズム自体は公知であり、 それらを適用することで、 特に本実施例のために新規なアルゴリズムを必 要としない。  The judgment result in the comparison judgment circuit 416 is configured to be output to the outside of the chip via the TAP 210 as a judgment signal F indicating data match Z mismatch. The test pattern generation algorithms themselves are known, and by applying them, a new algorithm is not particularly required for this embodiment.
上記命令メモリ 4 1 1に格納される複数のマイクロ命令は、 既存のテス 夕言語乃至はテスト言語を用いて記述することができる。 上記複数の命令 によって定義される上記所定のアルゴリズムに従って、 テストパターン (アドレスとデータ) が生成される。 上記テスタ言語は、 アドレスとデ一 夕とを含むテストパターンを効率的に発生するための有効な命令言語と見 なされる。 上記テス夕言語は、 テス夕業界で用いられているような言語と され、 例えば、 アドパンテスト社のテス夕言語と互換性のある言語が用い られる。 既存のテストパターンのプログラムデータが利用できるからであ る。 上記所定 アルゴリズムを記述する言語は、 テス夕言語に限定される ものではなく、 アドレスとデ一夕とを含むテストパターンを発生すること が可能な命令言語で有ればよい。  The plurality of microinstructions stored in the instruction memory 411 can be described using an existing test language or test language. A test pattern (address and data) is generated according to the predetermined algorithm defined by the plurality of instructions. The tester language is regarded as an effective instruction language for efficiently generating a test pattern including an address and a data. The test language is a language used in the test industry, for example, a language compatible with Adpantest's test language. This is because the program data of the existing test pattern can be used. The language for describing the predetermined algorithm is not limited to the test language, but may be any instruction language capable of generating a test pattern including an address and a data pattern.
上記命令メモリ 4 1 1が S R A Mメモリセルによって構成される場合に は、 テストの実施に先立って、 上記命令メモリにプログラムをロードする 必要がある。 F P G A 1 2 0が不揮発性メモリを含む場合には、 この不揮 発性メモリの一部のァドレス領域に上記プログラムを格納しておき、 S R A Mテストモ一ドへの移行に応答して、 上記プログラムを格納するァドレ ス領域から上記命令メモリ 4 1 1へ上記プログラムをロードするのがよい。 命令メモリ 4 1 1を設ける代わりに連続した命令コードを外部のテス夕か ら順次 FPGA 120内に構築されている ALPGのシーケンス制御部 4 14に入力して SRM Aのテストパ夕一ンを発生させるように構成しても よい。 When the instruction memory 411 is constituted by SRAM memory cells, it is necessary to load a program into the instruction memory before performing the test. When the FPGA 120 includes a non-volatile memory, the above program is stored in a part of an address area of the nonvolatile memory, and the above program is stored in response to the shift to the SRAM test mode. It is preferable to load the above program from the address area to be stored to the above instruction memory 411. Instead of providing instruction memory 4 1 1, continuous instruction code The sequence may be sequentially input to the ALPG sequence control unit 414 built in the FPGA 120 to generate a test pattern of the SRM A.
なお、 本実施例が適用される図 1のシステム L S Iのようにメモリの他 に CPU 130やカスタム論理回路 1 10を備えている場合には、 図 13 に示すように、 メモリ回路 140 ( 150〜 180) と CPU 130及び カスタム論理回路 1 10と、 テスト回路が構築される FPG A 120との 間に専用バス 220および切替えスィツチ SWl〜SWnからなる信号切 替え回路 230を設けた可変バス構成としてもよい。  When a CPU 130 and a custom logic circuit 110 are provided in addition to the memory like the system LSI of FIG. 1 to which this embodiment is applied, as shown in FIG. 180), the CPU 130, the custom logic circuit 110, and the FPG A 120 on which the test circuit is built, and a variable bus configuration in which a dedicated bus 220 and a signal switching circuit 230 including switching switches SWl to SWn are provided. Good.
上記信号切替え回路 230内の切替えスィツチ SWl〜SWnを制御す る信号 C Sは、 メモリ回路のテストの際には、 ALPGにおいて命令に よって発生させ、 それをスィッチ SWl〜SWnへ与えるようにしてもよ い。 また、 外部から供給されるテストモード指定信号に基づいて切替え制 御信号 C Sを形成するように構成してもよい。  The signal CS for controlling the switching switches SWl to SWn in the signal switching circuit 230 may be generated by an instruction in the ALPG when testing the memory circuit, and may be applied to the switches SWl to SWn. No. Further, the switching control signal CS may be formed based on a test mode designation signal supplied from the outside.
また、 上記切替えスィッチ SWl〜SWnは、 メモリ回路 140と CP U 130及びカスタム論理回路 1 10との間、 またはメモリ回路 140と 八 卩0が構築された ?0 120との間の接続切り替えのみならず、 CPU 130及びカスタム論理回路 1 10と FPGA 120との間を接続 できるように構成するのがよい。  In addition, the above-mentioned switching switches SWl to SWn are connected between the memory circuit 140 and the CPU 130 and the custom logic circuit 110, or are the memory circuits 140 and 800 built? It is preferable that not only the connection switching between the CPU 120 and the custom logic circuit 110 but also the FPGA 120 be connected.
図 14には、 上記命令メモリ 4 1 1に格納されるマイクロ命令の命令 フォーマツトの構成例が示されている。 前述のように、 このマイクロ命令 のフォーマッ トは、 テス夕言語に基づいている。  FIG. 14 shows an example of the configuration of the instruction format of the microinstructions stored in the instruction memory 411. As mentioned earlier, the format of this microinstruction is based on the test language.
この実施例のマイクロ命令は、 ジャンプ命令で使用する命令の飛び先番 地を示す P Cアドレスが格納されるアドレスフィールド M F aと、 シーケ ンス制御コードが格納されるオペコードフィールド MFbと、 命令の繰り 返し数などが格納されるオペランドフィールド MF cと、 ァドレスゃデー 夕の出力およびリード/ライ トを指示する制御コードが格納される制御 フィールド MF dと、 ァドレス演算命令コードが格納されるアドレス演算 コードフィールド MF eと、 デ一夕生成命令コードが格納されるデ一夕生 成コードフィールド M F f 等からなる。 アドレスフィールド M F aは、 次 に実行されるべき命令のァドレスを規定するフィールドと見なされる。 The microinstruction of this embodiment includes an address field MFa for storing a PC address indicating a jump address of an instruction used in a jump instruction, an operation code field MFb for storing a sequence control code, and instruction repetition. An operand field MF c for storing numbers and the like, a control field MF d for storing a control code for instructing output and read / write of address data, and an address operation code field for storing an address operation instruction code MF e and data storage where the data generation instruction code is stored It consists of a composite code field MF f and so on. Address field MFa is considered as the field that specifies the address of the next instruction to be executed.
この実施例に使用されるテス夕言語としてのマイクロ命令の特徴は、 1 つの命令でテスト用のァドレス演算とデータ演算とを指定して 2つの演算 を並列に実行する点にある。  The feature of the microinstruction as the test language used in this embodiment is that two instructions are executed in parallel by specifying a test address operation and a data operation with one instruction.
図 1 5には、 シーケンス制御回路 4 1 3の構成例が示されている。 この 実施例のシーケンス制御回路 4 1 3は、 ォペコードフィールド M F bの制 御コードを解読して制御信号を形成するデコーダなどからなる命令解読制 御部 4 3 0と、 プログラムカウン夕 4 1 2の値を 「 + 1」するためのイン クリメン夕 4 3 1と、 上記インクリメン夕 4 3 1またはアドレスフィール ド M F a内の飛び先番地のいずれかを選択してプログラムカウンタ 4 1 2 へ供給するマルチプレクサ 4 3 2と、 オペランドフィールド M F c内の繰 り返し数を保持する複数のィンデックスレジスタ 4 3 3と、 該インデック スレジスタ 4 3 3の値を 「一 1」 するためのデクリメン夕 4 3 4と、 「一 1」 された値を保持する複数のプレーンあるいはウェイから構成される ワーキングレジスタ 4 3 5 と、 後述の j X d命令 (表 1参照) で用いる データ反転の有無を示すフラグ 4 3 6と、 jindex 命令で用いるオペランド のプログラムカウンタ 4 1 2への転送の有無を示す複数のフラグ 4 3 7と、 レジスタ 4 3 3, 4 3 5の値を選択的に上記デクリメン夕 4 3 4に供給す る複数のマルチプレクサ 4 3 8と、 デクリメン夕 4 3 4の値をヮ一キング レジス夕 4 3 5のいずれかのプレーンに分配するデマルチプレクサ 4 3 9 から構成される。  FIG. 15 shows a configuration example of the sequence control circuit 4 13. The sequence control circuit 4 13 according to this embodiment includes an instruction decoding control section 4 30 including a decoder for decoding a control code in the operation code field MFb to form a control signal, and a program counter 4 1. Increment 431 for incrementing the value of 2 to `` +1 '' and either the above increment 431 or the jump address in the address field MFa are selected and supplied to the program counter 412. Multiplexer 432, a plurality of index registers 433 holding the number of repetitions in the operand field MFc, and a decrement register 4-3 for decrementing the value of the index register 433. 4, a working register 435 composed of a plurality of planes or ways holding the value of “1 1”, and a flag indicating the presence / absence of data inversion used in the jXd instruction (see Table 1) described later. Lag 433, a plurality of flags 433 indicating whether or not the operand used in the jindex instruction is transferred to the program counter 412, and the values of the registers 433, 435 are selectively decremented as described above. It is composed of a plurality of multiplexers 4 3 8 to be supplied to 3 4 and a demultiplexer 4 3 9 which distributes the value of the decrement 4 3 4 to one of the planes of the single king register 4 3 5.
表 1には、 上記マイクロ命令内のォペコードフィールド M F bに定義乃 至記述格納されるところの上記シーケンス制御に用いられるォペコードの 種類とその内容が示されている。 【表 1】 Table 1 shows the types and contents of the opcodes used for the sequence control, which are defined and stored in the opcode field MFb in the microinstruction. 【table 1】
Figure imgf000027_0001
表 1において、 「n o p」 で示される命令は、 プログラムカウンタ 412 の値をインクリメン夕 43 1で 「+ 1」 してプログラムカウン夕 412へ 戻すことを指示するノーオペレーション命令つまりプログラムカウン夕の 更新以外に何の操作を行なわずに次の命令に移ることを指令する命令であ る o
Figure imgf000027_0001
In Table 1, the instruction indicated by “nop” is a no-operation instruction that instructs the value of the program counter 412 to “+1” in increments 43 1 and returns to the program count 412, that is, other than the update of the program count. Is an instruction to move to the next instruction without performing any operation.
また、 「jindexlj 〜 「jindex4j は、 ジャンプによる命令のループを回 すために用意された命令である。 メモリのパターンテス トにおいては、 ジャンプ命令を用いて同じ命令を何回も繰り返して実行することで命令数、 すなわち、 プログラム長を減らすことができる場合 (例えば、 アドレスを 最終番地までインクリメントすることで、 全メモリセルに 「1」 を書き込 んで読み出すよ.うな場合) がある。 このループ (ジャンプ) の回数を設定 できるようにするために、 本実施例では、 インデックスレジスタ 433を 設けている。 しかも、 複数種類の判定方式を実行できるようにするため、 ジャンプ命令とィンデックスレジス夕 433およびワーキングレジスタ 4 35をそれそれ 4つずつ設けている。 “Jindexlj to“ jindex4j ”are instructions prepared to turn the loop of the instruction by jumping. In the memory pattern test, the same instruction is repeatedly executed many times using the jump instruction. In some cases, the number of instructions, that is, the program length, can be reduced (for example, writing “1” to all memory cells and reading them out by incrementing the address to the final address). In this embodiment, an index register 433 is provided so that the number of loops (jumps) can be set. In addition, in order to be able to execute multiple types of judgment methods, jump instructions, index registers 433 and working registers 4 35 are provided for each of them.
各ジャンプ命令は同じ制御内容であるので、 以下 「jindexl」 による制 御動作を説明し、 他のジャンプ命令 「jindex2」 〜 「jindex4」 の説明は 省略される。 オペコードフィールド MFわから jindexl命令が読み出され ると、 それが最初の jindexl命令であるか判定されて、 その判定結果がフ ラグ 437に反映される。 具体的には、 最初の jindexlのときはフラグ j f l = 0とされ、 2回目以降は j f 1= 1とされる。  Since each jump instruction has the same control content, the control operation by “jindexl” will be described below, and the description of other jump instructions “jindex2” to “jindex4” will be omitted. When the jindexl instruction is read from the operation code field MF, it is determined whether it is the first jindexl instruction, and the determination result is reflected in the flag 437. Specifically, the flag jfl = 1 is set for the first jindexl, and jf1 = 1 for the second and subsequent times.
フラグ j f 1=0のときに jindexl命令が読み出されると、 そのマイク 口命令のァドレスフィ一ルド MF a内のジャンプ先ァドレスとしての P C アドレスがプログラムカウンタ 412へ設定されるように、 マルチプレク サ 432が制御される。 それによつて、 マイクロ命令の実行シーケンスは その番地にジャンプされるとともに、 フラグ j f 1は 「1」 にセッ トされ る。 これと同時に、 オペランドフィールド MFc内で定義されるループ回 数がィンデックスレジスタ 433の i dxに読み込まれる。  When the jindexl instruction is read when the flag jf 1 = 0, the multiplexer 432 is set so that the PC address as the jump address in the address field MFa of the microphone instruction is set to the program counter 412. Controlled. As a result, the execution sequence of the microinstruction is jumped to that address, and the flag jf1 is set to "1". At the same time, the number of loops defined in the operand field MFc is read into idx of the index register 433.
フラグ j f l= lのときに jindexl命令が読み出されると、 そのマイク 口命令のァドレスフィ一ルド MFa内の P Cアドレスがプログラムカウン 夕 412へ設定される。 そして、 インデックスレジスタ 433の idx l 内のループ回数がマルチプレクサ 438を介してデクリメン夕 434に供 給されデクリメント 「一 1」 される。 デクリメントされた値は、 デマルチ プレクサ 439を介してワーキングレジス夕 435の i dxwlに格納さ れる。 そして、 ワーキングレジス夕 435のidxwlが 「0」 になると、 マイクロ命令のァドレスフィ一ルド MFa内の PCアドレスをプログラム カウン夕 412へ設定しないで代わりに、 プログラムカウンタ 4 12のァ ドレスをインクリメン夕 431で 「+ 1」 してプログラムカウンタ 412 へ戻すようにマルチプレクサ 432が制御される。  When the jindexl instruction is read when the flag jfl = l, the PC address in the address field MFa of the microphone instruction is set to the program counter 412. Then, the number of loops in idxl of the index register 433 is supplied to the decrement unit 434 via the multiplexer 438 and decremented to "1". The decremented value is stored in idxwl of the working register 435 via the demultiplexer 439. When the idxwl of the working register 435 becomes “0”, the PC address in the micro-instruction address field MFa is not set to the program counter 412, but the address of the program counter 412 is incremented by 431. The multiplexer 432 is controlled so as to return “+1” to the program counter 412.
従って、 マイクロ命令のオペコードフィルード MFbに jindex命令が定 義乃至記述され、 そのァドレスフィールド MF a内に当該マイクロ命令の ジャンプ先ァドレスとしての P Cァドレスが定義乃至記述されていると、 オペランドフィールド MF c内で指定されたループ回数だけ同一の jindex 命令が繰り返し実行され、 最後にプログラムカウンタ 412がインクリメ ントされて、 次のマイクロ命令へ進んでループから抜け出すような制御が 行なわれる。 Therefore, if the jindex instruction is defined or described in the opcode field MFb of the microinstruction and the PC address as the jump destination address of the microinstruction is defined or described in the address field MFa, the operand field MFc is defined. The same jindex for the number of loops specified in The instruction is repeatedly executed, and finally, the program counter 412 is incremented, and control is performed so as to proceed to the next microinstruction and exit from the loop.
また、 表 1内の 「j xd」 命令は、 フラグ 436内の df l gを参照し、 その df 1 gフラグの値によってプログラムカウン夕の値を操作する命令 とされる。 「 j xd」 命令は、 フラグ 436内の df lgフラグが 「0」 の ような第 1の値のときは、 オペランドをプログラムカウン夕へ転送し、 プ ログラムをオペランドの示す飛び先番地の命令へジャンプさせ、 かつ、 d f 1 gフラグを 「1」 のような第 2の値にセットする。 一方、 「 j xd」 命 令は、 df l gフラグが 「1」 のような第 2の値のときは、 プログラム力 ゥン夕の値をインクリメントし、 プログラムカウン夕へ戻し、 かつ、 df 1 gフラグを 「0」 のような第 1の値にリセットする。  The “j xd” instruction in Table 1 refers to df lg in the flag 436, and is used to operate the value of the program counter according to the value of the df 1 g flag. When the df lg flag in the flag 436 is the first value such as “0”, the “j xd” instruction transfers the operand to the program counter, and transfers the program to the instruction at the jump destination address indicated by the operand. Jump, and set the df 1 g flag to a second value, such as "1". On the other hand, when the df lg flag is a second value such as “1”, the “j xd” instruction increments the value of the program power, returns to the program counter, and df 1 g Reset the flag to a first value, such as "0".
「jmpj命令は、 オペランドをプログラムカウン夕へ転送して、 プロ グラムをオペランドの示す飛び先番地の命令へジャンプさせることを指令 する命令である。  "The jmpj instruction is an instruction that transfers the operand to the program counter and causes the program to jump to the instruction at the jump address indicated by the operand.
「s t o p」 命令は、 シーケンス制御を終了させる事を指示する停止命 令である。  The “stop” instruction is a stop instruction that instructs to end the sequence control.
図 16には、 上記ァドレス演算回路 414の構成例が示されている。 この実施例のァドレス演算回路 414は、 大きく分けて Xァドレスの生 成を行なう Xアドレス演算部 441と、 Yアドレスの生成を行なう Yアド レス演算部 442とにより構成されている。 Xアドレス演算部 441と Y アドレス演算部 442は、 ほぼ同一の構成であるので、 以下、 Xアドレス 演算部 441の構成を説明し、 Yァドレス演算部 442の構成の説明を省 略する。 また、 必要に応じて不可的な Zアドレス演算部を設けることによ り、 部分的なパターンの生成 (パーシャルパターン) を行なわせるように できる。  FIG. 16 shows a configuration example of the address calculation circuit 414. The address calculation circuit 414 of this embodiment is roughly composed of an X address calculation section 441 for generating an X address and a Y address calculation section 442 for generating a Y address. Since the X address operation unit 441 and the Y address operation unit 442 have almost the same configuration, the configuration of the X address operation unit 441 will be described below, and the description of the configuration of the Y address operation unit 442 will be omitted. In addition, by providing an impossible Z address operation unit as necessary, it is possible to generate a partial pattern (partial pattern).
Xァドレス演算部 441は、 Xァドレスの初期値を格納する初期値レジ ス夕 Xhold と、 「0」 を保持するゼロ設定手段 443と、 Xアドレスの初期 値または 「0」 のいずれかを選択するマルチプレクサ MUX 1と、 選択さ れた初期値または 「0j を保持するベースレジス夕 Xbase と、 レジスタ X base の値を加算する第 1の演算器 ALU 1と、 演算器 ALU 1の演算結果 または 「0」 または帰還値のいずれかを選択する第 2のマルチプレクサ M UX2と、 選択された値を保持するカレントレジス夕 Xcurrent と、 レジス 夕 Xcurrentの値を加算もしくは減算する第 2の演算器 ALU2と、 この第 2演算器 ALU 2または上記第 1演算器 ALU 1の出力のいずれかを選択 する第 3のマルチプレクサ MUX3と、 選択された出力を反転可能なィン バ一夕 I NVとから構成されている。 The X address calculator 441 selects an initial value register Xhold for storing the initial value of the X address, a zero setting means 443 for holding “0”, and either the initial value of the X address or “0”. Multiplexer MUX 1 and selected The base register Xbase holding the initial value or `` 0j '', the first arithmetic unit ALU1 that adds the value of the register Xbase, and the arithmetic result of arithmetic unit ALU1, or either `` 0 '' or the feedback value A second multiplexer MUX2 for selecting the current value, a current register Xcurrent for holding the selected value, a second arithmetic unit ALU2 for adding or subtracting the value of the register Xcurrent, and a second arithmetic unit ALU2 or It comprises a third multiplexer MUX3 for selecting one of the outputs of the first arithmetic unit ALU1, and an inverter I NV capable of inverting the selected output.
このインパー夕 INVは、 メモリのパターンテストにおいて、 アドレス 信号の切り換えノイズによる誤動作を試験する場合があり、 その際にアド レス信号の反転信号を出力する必要があるため設けられる。 このィンパー 夕 I NVを使用することで、 上記試験におけるァドレス信号の反転信号を 容易に形成することができる。  This impulse INV is provided in a memory pattern test because a malfunction due to switching noise of the address signal may be tested. In this case, it is necessary to output an inverted signal of the address signal. By using this impulse signal NV, an inverted signal of the address signal in the above test can be easily formed.
特に制限されないが、 この実施例では、 上記 Xアドレス演算部 441の 演算器 ALU 1, ALU 2で生成された Xアドレスを Yアドレス側へ、 ま た、 Yァドレス演算部 442で生成された Yァドレスを Xアドレス側へ出 力できるように、 それそれの第 3マルチプレクサ MUX 3が構成されてい る o  Although not particularly limited, in this embodiment, the X addresses generated by the arithmetic units ALU 1 and ALU 2 of the X address arithmetic unit 441 are sent to the Y address side, and the Y address generated by the Y address arithmetic unit 442 is The third multiplexer MUX 3 is configured to output the data to the X address side.o
これにより、 複数の種類のメモリ、 例えば、 アドレスマルチプレックス 方式のメモリおよびァドレスノンマルチプレックス方式のメモリのいずれ のテスト回路としても使用できるように構成されている。 つまり、 命令メ モリ 41 1に格納されるマイクロ命令を書き換えるだけで、 すべてのメモ リに対してそれに必要なテストパターンの発生乃至検査を行なうことがで さる。  Thus, it is configured to be used as a test circuit for any of a plurality of types of memories, for example, an address multiplex type memory and an addressless multiplex type memory. In other words, by simply rewriting the microinstruction stored in the instruction memory 411, it is possible to generate or check a test pattern required for all the memories.
なお、 上記 Xァドレス演算部 441と Yァドレス演算部 442の異なる 点は、 Xアドレス演算部 441の第 1演算器 ALU 1がオーバーフローし たときに Yアドレス演算部 442の第 1演算器 ALU 1に対してはボロー 信号 BRが供給されるようにされている点である。  The difference between the X address operation unit 441 and the Y address operation unit 442 is that the first operation unit ALU 1 of the Y address operation unit 442 overflows when the first operation unit ALU 1 of the X address operation unit 441 overflows. On the other hand, the borrow signal BR is supplied.
表 2には、 上記マイクロ命令内の演算コードフィールド MFeに記述乃 至定義格納されるところの上記 Yァドレス演算部 442の第 1演算器 A L U 1での Yアドレス演算 (ベース演算) に用いられる演算コードの種類と その内容が示されている。 Table 2 shows the description in the operation code field MFe in the above microinstruction. The types and contents of the operation codes used for the Y address operation (base operation) in the first arithmetic unit ALU 1 of the Y address operation unit 442 where the first definition is stored are shown.
【表 2】  [Table 2]
Figure imgf000031_0001
表 2において、 Ybase— 0は、 ペースレジスタ Ybase の値を 「0」 にす ることを指令する命令である。 Ybase— Yholdは、 初期値レジス夕 Yhold の内容をベースレジス夕 Ybase に入れることを指令する命令である。 Y base Y base + 1は、 ペースレジス夕 Ybase の値をインクリメント (+ 1) してレジスタ Ybase に戻すことを指令する命令である。 Ybase— Y base + 1 (BR) は、 ベースレジス夕 Xbase の値が最大値でなければ Y baseの値をそのままにし、 かつ、 Xbaseの値が最大値であれば Ybaseの値 をインクリメントしてレジスタ Ybase に戻すことを指令する命令である。 このとき、 第 1演算器 ALU 1から第 2演算器 ALU 2へポロ一信号 BR が供給される。
Figure imgf000031_0001
In Table 2, Ybase-0 is an instruction to set the value of the pace register Ybase to “0”. Ybase — Yhold is an instruction to put the contents of the initial register Yhold into the base register Ybase. Y base Y base + 1 is an instruction to increment (+1) the value of the pace register Y base and return it to the register Y base. Ybase — Y base + 1 (BR) is the base register. If the value of Xbase is not the maximum value, leave the value of Y base as it is, and if the value of Xbase is the maximum value, increment the value of Ybase and register This is an instruction to return to Ybase. At this time, the Porro signal BR is supplied from the first arithmetic unit ALU 1 to the second arithmetic unit ALU 2.
表 3には、 上記 Xアドレス演算部 441の第 1演算器 ALU 1でのアド レス演算に用いられる演算コードの種類とその内容が示されている。  Table 3 shows types and contents of operation codes used for the address operation in the first arithmetic unit ALU1 of the X address operation unit 441.
表 4には、 上記 Yアドレス演算部 442の第 2演算器 ALU 2での Yァ ドレス演算 (カレント演算) に用いられる演算コードの種類とその内容が 示されている。  Table 4 shows the types and contents of operation codes used for the Y address operation (current operation) in the second arithmetic unit ALU2 of the Y address operation unit 442.
表 5には、 上記 Xアドレス演算部 441の第 2演算器 ALU 2でのアド レス演算に用いられる演算コードの種類とその内容が示されている。 Table 5 shows the addresses of the XLU 441 It shows the types of operation codes used in the address operation and their contents.
表 4において、 左側の欄はテスタ言語を用いて記述された A L P G記述 で、 右側の欄はそれに対応した機能動作レベル記述である。 この記述を ハードウェア記述言語 (H D L記述) のルールに従い記述して機能を表現 できる。  In Table 4, the left column is the ALPG description described using the tester language, and the right column is the corresponding function operation level description. This description can be described according to the rules of the hardware description language (HDL description) to express the function.
【表 3】  [Table 3]
Xbase演算 動作 Xbase operation operation
Xbase<-Xbase on Operation  Xbase <-Xbase on Operation
Xbase<-0 0→Xbase  Xbase <-0 0 → Xbase
Xbase Xhold Xhold→Xbase  Xbase Xhold Xhold → Xbase
Xbase<-Xbase+1 Xbas9+1 -→Xbase  Xbase <-Xbase + 1 Xbas9 + 1-→ Xbase
Xbase<-Xbase-1 Xbase-1→Xbase Xbase <-Xbase-1 Xbase-1 → Xbase
Figure imgf000033_0001
Figure imgf000033_0001
【表 5】 [Table 5]
Figure imgf000034_0001
図 17には上記テストデ一夕生成回路 415の構成例が示されている。 この実施例のテストデータ生成回路 415は、 ライ トデータまたは期待 値の初期値を格納する初期値レジスタ Tphold と、 当該初期値レジス夕 T pholdの値を反転可能なインパー夕 INVERT1と、 出力すべきテストデータ または期待値の基準デ一夕を保持するベースデータレジスタ T pと、 ビヅ トシフト機能を有する演算器 ALUと、 演算器 ALUの出力を反転可能な インバー夕 INVERT2とから構成されている。 なお、 上記実施例では、 ビッ ト幅を 18ビッ トとしているが、 必要に応じてテストデ一夕回路を拡大し て、 所望のビット幅に構成できる。
Figure imgf000034_0001
FIG. 17 shows a configuration example of the test data generation circuit 415. The test data generation circuit 415 of this embodiment includes an initial value register Tphold for storing the initial value of write data or an expected value, an impeller INVERT1 capable of inverting the value of the initial value register Tphold, and a test to be output. It comprises a base data register Tp for holding data or a reference data of an expected value, an arithmetic unit ALU having a bit shift function, and an inverter INVERT2 capable of inverting the output of the arithmetic unit ALU. In the above embodiment, the bit width is set to 18 bits. However, if necessary, the test data circuit can be expanded to have a desired bit width.
表 6には、 上記マイクロ命令内のデータ生成コードフィールド MF f に 定義乃至は記述されるところの上記テストデータ生成回路 415での動作 制御に用いられる制御コードの種類とその内容が示されている。 表 6にお いて、 表 3〜表 5の命令と同一規則で表されている命令は、 ほぼ同様の命 令である。  Table 6 shows the types and contents of the control codes used for the operation control in the test data generation circuit 415 defined or described in the data generation code field MFf in the microinstruction. . In Table 6, instructions represented by the same rules as the instructions in Tables 3 to 5 are almost the same.
Tp Tp*2は、 レジス夕 Τρと演算器 A L Uを制御してレジス夕 T p内の 18ビッ トのデ一夕を演算器 ALUで処理してビッ ト列を MSB側 もしくは LSB側へ 1ビヅトシフトさせてレジス夕 Tpに戻す命令である。 この命令によって、 メモリ部が 1ワードあるいは 1パイ トのような単位で データのリード ·ライ トが行なわれるタイプのメモリであっても、 メモリ セルに対して 1ビットずつデータ 「1」 を書き込むためのテストデ一夕を 比較的容易に生成することができる。 【表 6】 Tp Tp * 2 controls the register bit and the arithmetic unit ALU, processes the 18-bit data in the register bit Tp with the arithmetic unit ALU, and shifts the bit string to the MSB side or LSB side by one bit. It is an order to return to Regis Tp. This instruction writes data “1” to memory cells one bit at a time, even if the memory unit is a type of memory that reads and writes data in units such as one word or one byte. The test data can be generated relatively easily. [Table 6]
Figure imgf000035_0001
表 7には、 メモリの試験方法の 1つであるところのマーチング試験に関 するマイクロ命令のリストの一例が示される。
Figure imgf000035_0001
Table 7 shows an example of a list of microinstructions for a marching test, one of the memory test methods.
マーチング試験は、 次のように行われる。 メモリアレイ 1内のメモリセ ルの全ビットにおいて、 その中の 1ビットが順番に選択される。 選択され たメモリセルには、 「0 j のデ一夕が書き込まれる。 その後、 書き込まれた 「0」 のデータの読み出しが行なわれる。 続いて、 全ビヅ トにおいて、 そ の中の 1 ビッ トが順番に選択される。 選択されたメモリセルには 「 1」 の デ一夕が書き込まれる。 その後、 書き込まれた 「 1」 のデータが読み出さ れて、 それそれ期待値と比較して欠陥の有無が判定される。  The marching test is performed as follows. Of all the bits of the memory cell in memory array 1, one bit is selected in order. The selected memory cell is written with the data of “0 j.” Then, the written data of “0” is read. Subsequently, of all the bits, one bit is selected in order. The data "1" is written to the selected memory cell. After that, the written “1” data is read out, and the presence or absence of a defect is determined by comparing the data with the expected value.
一例として、 Xアドレスが 4ビット、 Yアドレスが 4ビットで、 2 5 6 ビッ トの記憶容量を有するメモリアレイを想定したマーチング試験が説明 される。  As an example, a marching test assuming a memory array having a 4-bit X address and a 4-bit Y address and a storage capacity of 256 bits will be described.
【表 7】  [Table 7]
Figure imgf000035_0002
表 7において、 記号 Wおよび Rは、 制御フィールド M F dに記述乃至定 義されるところのメモリに対するリード/ライ トを指示する制御コードで ある。 この制御コードは、 Wに対応したビットと Rに対応したビット、 つ まり、 2ビットで表すようにされている。 「P Cアドレス」 の欄に記載され ている数字は、 飛び先番地を示すもので、 当該マイクロ命令実行後に P C の欄に記述されている番号のマイク口命令に移行してループもしくはジャ ンプすることを意味している。 また、 「制御命令等」 の欄に記載されている 記号 X«~Xbase, Y Ybase は、 それそれペースレジス夕 Xbase, Ybase の値を ドレス, Yァドレスとして出力することを意味している。
Figure imgf000035_0002
In Table 7, the symbols W and R are control codes that indicate read / write to the memory as described or defined in the control field MFd. This control code is represented by bits corresponding to W and bits corresponding to R, that is, two bits. The number described in the “PC address” column indicates the jump destination address. Means to shift to the microphone mouth instruction of the number described in the column and loop or jump. The symbols X «~ Xbase, Y Ybase described in the column of“ Control command etc. ”mean that the values of the pace registers Xbase, Ybase are output as dresses and Y addresses, respectively.
図 1 8および図 1 9には、 前記マイクロプログラム制御方式の制御部と 演算部とからなるテスト回路 (A L P G ) により S R AM 1 4 0のマーチ ング試験を行なう場合の表 7のマイクロ命令リストに従った処理フローの 一例を示す。 このうち図 1 8はマイク口命令内のォベコードとオペランド とによるシーケンス制御のフローを示す。 また、 図 1 9は、 図 1 8に示さ れるシーケンス制御のフローと並行して実行されるところのァドレス演算 コードとデ一夕生成コードによるテストアドレスおよびテストデ一夕 (ラ ィ トデ一夕、 期待値データ) の生成フローを示す。 これらの処理は、 前述 の表 1〜表 6に記述されている命令コードを用いてシーケンス制御回路 4 1 3およびァドレス演算回路 4 1 4、 デ一夕生成回路 4 1 5を動作させる ことにより実行することができる。  FIGS. 18 and 19 show the microinstruction list of Table 7 when the SRAM140 marching test is performed by the test circuit (ALPG) including the control unit and the arithmetic unit of the microprogram control method. An example of a processing flow according to this is shown. Among them, FIG. 18 shows the flow of sequence control using the obecode and operands in the microphone instruction. Also, FIG. 19 shows test addresses and test data (write data, expected data, etc.) based on address operation codes and data generation codes which are executed in parallel with the sequence control flow shown in FIG. The following figure shows the flow of generating value data. These processes are executed by operating the sequence control circuit 413, the address calculation circuit 414, and the data generation circuit 415 using the instruction codes described in Tables 1 to 6 described above. can do.
以下、 図 1 8と図 1 9の各ステップを対応させながら、 マーチング試験 の手順を説明する。  Hereinafter, the procedure of the marching test will be described while associating the steps of FIGS. 18 and 19 with each other.
外部からプログラムカウン夕 4 1 2にスタートアドレスとして、 表 7の リストに示される最初の命令の番地がセットされると、 図 1 8および図 1 9のフローが開始される。 先ず、 命令メモリ 4 1 1から表 7の最初のマイ クロ命令が読み出されると、 オペコードは 「n o p」 であるため、 シーケ ンス制御回路 4 1 3は何もせずただプログラムカウンタ 4 1 2を 1つだけ 進める (ステップ S 2 0 1 )。 一方、 ァドレス演算回路 4 1 4およびデ一夕 生成回路 4 1 5は、 初期値レジス夕 Xhold, Yhold, Thold に入っている 初期値 「0」 をべ一スレジスタ Xbase, Ybase, T pにそれそれ設定する (ステップ S 2 2 1 )。  When the address of the first instruction shown in the list of Table 7 is set as a start address in the program counter 4 12 from the outside, the flows in FIGS. 18 and 19 are started. First, when the first microinstruction in Table 7 is read from the instruction memory 4 11 1, the operation code is “nop”, so the sequence control circuit 4 1 3 does nothing and just adds 1 program counter 4 1 2 Proceed only (step S201). On the other hand, the address calculation circuit 4 14 and the data generation circuit 4 15 respectively store the initial value `` 0 '' in the initial value registers Xhold, Yhold and Thold in the base registers Xbase, Ybase and Tp. Set (Step S2 2 1).
次に、 上記ステップ S 2 0 1でプログラムカウン夕 4 1 2がインクリメ ントされているため、 表 7の 2番目のマイクロ命令が読み出される。 第 2 のマイクロ命令のオペコードは 「jindex l ι であるため、 シーケンス制御 回路 413ではオペランドの繰り返し回数がィンデヅクスレジス夕 i dx 1にセッ トされる (ステップ S 202)。 Next, the second microinstruction in Table 7 is read out because the program count 412 has been incremented in step S201. Since the opcode of the second microinstruction is "jindex l ι, In the circuit 413, the number of repetitions of the operand is set to the index register idx1 (step S202).
インデックスレジス夕 i dx 1の最初の設定値はメモリアレイ 1の容量 (バイ ト数もしくはワード数) に対応される。 一方、 アドレス演算回路 4 14では、 演算コード X— Xbase, Y Ybase によってベースレジスタ X base, Ybase の値を Xアドレス, Yアドレスとしてそれそれ出力する。 デ一夕生成回路 415からはレジスタ Tpの値 「0」 が出力される。 そし て、 このとき、 制御信号 W (書き込み) が出力される。 これによつて、 メ モリアレイ 1ではアドレス演算回路 414から出力された X, Υアドレス に対応したメモリセルが選択されてデータ 「0」 が書き込まれる (ステツ プ S 222)。  The first set value of the index register idx1 corresponds to the capacity (number of bytes or words) of memory array 1. On the other hand, the address operation circuit 414 outputs the values of the base registers Xbase and Ybase as the X address and the Y address, respectively, using the operation code X—Xbase and YYbase. The data generation circuit 415 outputs the value “0” of the register Tp. At this time, a control signal W (write) is output. As a result, in the memory array 1, the memory cell corresponding to the X, Υ address output from the address operation circuit 414 is selected and data “0” is written (step S222).
シーケンス制御回路 413はオペコード 「jindexlj によってインデッ クスレジス夕 i dx 1の値をデクリメントしてワーキングレジスタ i dx wに入れ、 それが 「0」 になるまで同一命令を繰り返す (ステップ S 20 3, S 204)。  The sequence control circuit 413 decrements the value of the index register idx1 by the operation code "jindexlj" and puts it into the working register idxw, and repeats the same instruction until it becomes "0" (steps S203 and S204). .
また、 ァドレス演算回路 4 14では演算コード Xbase Xbase+ 1に よってベースレジス夕 Xbaseの値すなわち Xァドレスをィンクリメントし、 Ybase Ybase + 1 (BR) によってベースレジス夕 Xbaseが最大値にな ると Yアドレスをインクリメントする。 上記ィンデックスレジス夕 i dx 1の最初の設定値はメモリアレイ 1の容量と同じであるので、 上記動作の 繰り返しによって、 メモリアレイ 1内のすべてのメモリセルに順番にデー 夕 「0」 が書き込まれる (ステップ S 223, S 224)o  In addition, the address calculation circuit 414 increments the value of the base register Xbase, that is, the X address, by the operation code Xbase Xbase + 1, and the Y address when the base register Xbase reaches the maximum value by Ybase Ybase + 1 (BR). Increment. Since the initial setting value of the index register idx1 is the same as the capacity of the memory array 1, by repeating the above operation, data `` 0 '' is written to all the memory cells in the memory array 1 in order. (Steps S223, S224) o
ワーキングレジスタ i dxwの値が 「0 j になると、 シーケンス制御回 路 413はプログラムカウン夕 412の値をィンクリメントして、 表 7の 3番目のマイクロ命令を読み出す。 そのオペコードは 「nop」 であるた め、 シーケンス制御回路 4 13は何もせずプログラムカウン夕 4 12を 1 つだけ進める (ステップ S 205 )。  When the value of the working register i dxw becomes “0 j”, the sequence control circuit 413 increments the value of the program counter 412 and reads the third microinstruction in Table 7. The opcode is “nop”. Therefore, the sequence control circuit 413 does nothing and advances the program counter 412 by one (step S205).
一方、 アドレス演算回路 414は、 3番目のマイクロ命令の演算コード に従って、 X, Yアドレスをインク リメントしてからペースレジス夕 X base, Ybase に入っている値を Xアドレス, Yアドレスとしてそれそれ出 力する。 このときべ一スレジスタ Xbase, Ybase の値は 「0」 に戻ってい る。 データ生成回路 4 1 5はこのとき 「 0」 を出力する。 また、 制御 フィールド M F dの制御コードに従って、 制御信号 R (読み出し) が出力 される。 これによつて、 当該アドレスのデータが読み出され、 期待値デー 夕 「0」 と比較される (ステップ S 2 2 5, S 2 2 6 )o On the other hand, the address operation circuit 414 increments the X and Y addresses according to the operation code of the third microinstruction, and then sets the pace register X The values stored in base and Ybase are output as X address and Y address, respectively. At this time, the values of the base registers Xbase and Ybase have returned to “0”. At this time, the data generation circuit 415 outputs “0”. Also, a control signal R (read) is output according to the control code of the control field MFd. As a result, the data at the address is read out and compared with the expected value data “0” (steps S225, S226) o
次に、 上記ステップ S 2 0 5でプログラムカウン夕 4 1 2がインクリメ ントされているため、 表 7の 4番目のマイクロ命令が読み出される。 第 4 のマイクロ命令のオペコードは 「jindex l」 であるため、 シーケンス制御 回路 4 1 3ではオペランドの繰り返し回数がィンデックスレジス夕 i d x 1にセッ トされる (ステップ S 2 0 6 )。 インデックスレジス夕 i d x 1の 最初の設定値はメモリアレイ 1の容量 (パイ ト数もしくはワード数) に対 応される。 ただし、 第 4命令の jindex 1命令コードは第 2命令の jindex l 命令コードと異なる P Cアドレス (飛び先番地) を有するため、 実行後に 第 3の命令 (オペコードが 「n o p」) に戻る。  Next, since the program counter 412 has been incremented in step S205, the fourth microinstruction in Table 7 is read. Since the operation code of the fourth microinstruction is “jindex l”, the sequence control circuit 413 sets the number of repetitions of the operand to the index register id x 1 (step S 206). The first set value of the index register id x 1 corresponds to the capacity of memory array 1 (number of bytes or words). However, since the jindex 1 instruction code of the fourth instruction has a different PC address (jump address) from the jindex l instruction code of the second instruction, it returns to the third instruction (opcode is “no op”) after execution.
—方、 アドレス演算回路 4 1 4では、 演算コード X Xbase, Y Y base によってペースレジス夕 Xbase, Ybase の値を Xアドレス, Yァドレ スとしてそれそれ出力する。 また、 データ生成コード D invert によって、 データ生成回路 4 1 5からはレジス夕 T pの値 「 0」 を反転したデータ 「 1」 が出力される。 そして、 このとき、 制御信号 W (書き込み) が出力 される。 これによつて、 メモリアレイ 1では出力された X, Υアドレスの メモリセルにデ一夕 「 1」 が書き込まれる (ステップ S 2 2 7 )。  On the other hand, the address arithmetic circuit 4 14 outputs the values of the pace registers Xbase and Ybase as the X address and the Y address, respectively, using the operation code X Xbase and Y Y base. In addition, the data generation code D invert outputs data “1” obtained by inverting the value “0” of the register Tp from the data generation circuit 415. Then, at this time, the control signal W (write) is output. As a result, in the memory array 1, "1" is written to the memory cell at the output X, Υ address (step S227).
シーケンス制御回路 4 1 3はオペコード 「jindex l」 によってインデッ クスレジス夕 i d x lの値をデクリメントしてワーキングレジスタ i d X wに入れ、 それが 「0」 になるまで 「n o p」 命令に戻って繰り返す (ス テツブ S 2 0 7, S 2 0 8 )o また、 アドレス演算回路 4 1 4では演算コー ド Xbase— Xbase+ 1によってベースレジス夕 Xbase の値すなわち Xァド レスをィンクリメントし、 Ybase— Ybase+ 1 ( B X )によってベースレジ ス夕 Xbase が最大値になると Yアドレスをインクリメントする。 上記イン デックスレジスタ i dx 1の最初の設定値はメモリアレイ 1の容量と同じ であるので、 上 3手順によって、 メモリアレイ 1内のすべてのメモリセル に対して順番に読み出しが行なわれ期待値と比較されてから当該ァドレス に 「 1」 が書き込まれる動作を繰り返す (ステップ S 227, S 228 )。 次に、 表 7の 5番目のマイクロ命令が読み出される。 第 5のマイクロ命 令のオペコードは 「jindexl」 であるため、 シーケンス制御回路 413で はオペランドの繰り返し回数がィンデックスレジス夕 i dx 1にセッ トさ れる (ステップ S 209 )。 インデックスレジスタ i dx 1の最初の設定値 はメモリアレイ 1の容量 (バイ ト数もしくはワード数) に対応される。 こ の第 5の jindexl命令コードは第 2の jindex 1命令コードと同じ P Cアド レスを有し、 同一命令を繰り返す命令とされる。 一方、 ア ドレス演算回路 414では、 演算コード X— Xbase, Y -Ybase によってベースレジスタ Xbase, Ybase の値を Xアドレス, Yアドレスとしてそれそれ出力する。 また、 デ一夕生成コード D invert によって、 データ生成回路 415からは レジスタ Tpの値 「0」 を反転したデータ 「lj が出力される。 そして、 このとき、 制御信号 R (書き込み) が出力される。 これによつて、 メモリ アレイ 1では出力された X, Yアドレスによって指定されたメモリセルか らデ一夕の読み出しが行われる (ステップ S 229)。 The sequence control circuit 4 13 decrements the value of the index register idxl by the operation code “jindex l” and puts it in the working register id Xw, and returns to the “nop” instruction and repeats until it becomes “0” (step S207, S208) o In the address operation circuit 414, the operation code Xbase—Xbase + 1 increments the value of the base register Xbase, ie, the X address, by the operation code Xbase—Xbase + 1, and Ybase—Ybase + 1 (BX) When the base register Xbase reaches the maximum value, the Y address is incremented. Above Inn Since the initial set value of the dex register i dx 1 is the same as the capacity of the memory array 1, all the memory cells in the memory array 1 are read out in order by the above three steps and compared with the expected value. Thereafter, the operation of writing "1" to the address is repeated (steps S227 and S228). Next, the fifth microinstruction in Table 7 is read. Since the operation code of the fifth microinstruction is "jindexl", the sequence control circuit 413 sets the number of repetitions of the operand to the index register idx1 (step S209). The first set value of index register idx1 corresponds to the capacity of memory array 1 (number of bytes or words). The fifth jindexl instruction code has the same PC address as the second jindex1 instruction code, and is an instruction that repeats the same instruction. On the other hand, the address operation circuit 414 outputs the values of the base registers Xbase and Ybase as the X address and the Y address, respectively, using the operation code X—Xbase and Y-Ybase. In addition, the data generation circuit 415 outputs data “lj” obtained by inverting the value “0” of the register Tp according to the data generation code D invert. At this time, the control signal R (write) is output. As a result, in the memory array 1, data is read out from the memory cell specified by the output X and Y addresses (step S229).
シーケンス制御回路 413はォペコード 「jindexl」 によってィンデッ クスレジス夕 i dx 1の値をデクリメントしてヮ一キングレジス夕 i dx wに入れ、 それが 「0」 になるまで 「jindexl」 命令を繰り返す (ステツ プ S 2 10, S 1 1 )。 また、 ァドレス演算回路 414では演算コード X base— Xbase+ 1によってベースレジスタ Xbase の値すなわち Xァドレス をインクリメントし、 Ybase— Ybase + 1 ( B R )によってベースレジス夕 Xbase が最大値になると Yアドレスをインクリメントする。 上記インデッ クスレジス夕 i dx lの最初の設定値はメモリアレイ 1の容量と同じであ るので、 上記動作の繰り返しによって、 メモリアレイ 1内のすべてのメモ リセルが順番に読み出しが行なわれて期待値 「1」 と比較される (ステツ プ S 230, S 231)。 次に、 表 7の 6番目のマイクロ命令が読み出される。 第 6のマイクロ命 令のォペコードは 「j xd」 であるため、 シーケンス制御回路 413では アドレスフィールド M F c内の P Cァドレスの示す飛び先番地へジャンプ する。 この実施例では、 表 7の第 2の命令 「jindexl」 へ戻るようにされ ている。 そして、 再び jindexl命令が読み出されたときにフラグ d f 1 g が 「lj にセットされる。 これにより、 2巡目のシーケン処理においては、 図 18のステップ S 2 12で 「YE S」 と判定して、 マーチング試験を終 了する。 The sequence control circuit 413 decrements the value of the index register idx1 by the opcode "jindexl" and puts it into the king register idxw, and repeats the "jindexl" instruction until it becomes "0" (step S2 10, S11). In addition, the address calculation circuit 414 increments the value of the base register Xbase, that is, the X address, by the operation code Xbase—Xbase + 1, and increments the Y address when the base register Xbase reaches the maximum value by Ybase—Ybase + 1 (BR). . Since the initial setting value of the index register i dxl is the same as the capacity of the memory array 1, by repeating the above operation, all the memory cells in the memory array 1 are sequentially read and the expected value is obtained. It is compared with "1" (steps S230, S231). Next, the sixth microinstruction in Table 7 is read. Since the operation code of the sixth microinstruction is “j xd”, the sequence control circuit 413 jumps to the jump address indicated by the PC address in the address field MFc. In this embodiment, the processing returns to the second instruction “jindexl” in Table 7. Then, when the jindexl instruction is read again, the flag df 1 g is set to “lj.” As a result, in the second sequence processing, “YE S” is determined in step S212 in FIG. To complete the marching test.
—方、 2巡目のマイクロ命令リストの実行に際しては、 図 19のステツ プ S 222〜S 231において、 データ生成回路 414によりライ トデー 夕と期待値データを 「1」 として全ビットへ連続して書き込みを行なって から、 書き込んだデ一夕を 1ビッ トずつ読み出してそこへ反転データ 「0」 を書き込み、 その後、 全ビッ トの連続した読み出しが行なわれるよ うにされている。 図 1 9のフローでは、 ステップ S 232で、 ステップ S 222〜S 231による上記のような 1巡目とは逆のデータの書き込み読 み出しが終了したか否かの判定 (裏データ終了判定) が行なわれるように されている。 なお、 上記裏データによる検査を行なうための裏データ生成 は図 17の Tholdの INVERTと df l gでコントロールして生成するように されている。  On the other hand, at the time of execution of the microinstruction list in the second cycle, in steps S222 to S231 in FIG. 19, the data generation circuit 414 sets the write data and the expected value data to “1”, and continuously writes all bits. After writing, the written data is read one bit at a time, inverted data “0” is written to it, and then all bits are read continuously. In the flow of FIG. 19, in step S232, it is determined whether the writing / reading of data opposite to the first cycle as described above in steps S222 to S231 has been completed (back data end determination). Is performed. Note that the back data generation for performing the inspection using the back data is controlled by Thold INVERT and dflg in FIG.
上述したように、 図 18および図 19のフローに従った制御は、 表 1〜 表 6に記述されている命令コードを用いて命令メモリ 41 1内のマイクロ 命令を次の表 7の命令リストのように記述することで、 僅か 6つのマイク 口命令によりマーチング試験を実行することができる。  As described above, the control in accordance with the flow charts of FIGS. 18 and 19 uses the instruction codes described in Tables 1 to 6 to store the microinstructions in the instruction memory 411 in the instruction list in Table 7 below. Thus, a marching test can be performed with only six microphone mouth commands.
さらに、 前記実施例のテスト回路 (ALPG) においては、 表 1〜表 6 に記述されている命令コードを用いることにより上記マーチング試験の他 に、 すべてのメモリセルに 「0」 または 「 1」 が書き込めるか検査する オール 「0」 判定試験またはオール 「 1」 判定試験や、 あるビッ トに 「1」 を書き込んでそれによつて他のビットが誤書込みされていないかす ベてのビットについて検査するいわゆる N2乗パターン試験 (もしくはギヤ ロッビング試験) 等も実行することができる。 Further, in the test circuit (ALPG) of the above embodiment, in addition to the marching test, “0” or “1” is set to all memory cells by using the instruction codes described in Tables 1 to 6. Check whether it can be written All "0" judgment test or all "1" judgment test, or write "1" to a certain bit and check all bits to make sure that other bits are not erroneously written. N 2 square pattern test (or gear Rocking test) can also be performed.
表 8に、 N2乗パターン試験のためのマイクロ命令リストを示す。 なお、 ixdは、 初期値レジス夕 Tpholdの下にあるフラグ df l gでコント口一 ルされるィンバ一夕 INVERTをコントロールして裏テス トパターンを 生成する命令である。 フラグ df 1 gが 0のときは初期値レジス夕 Tphold の値をそのままレジス夕 Tpに格納し、 フラグ df l gが 1のときはその 逆のパターンがレジス夕 T pに設定される。 Table 8 shows the microinstruction list for N 2 square pattern test. Note that ixd is an instruction to generate a back test pattern by controlling INVERT, which is controlled by a flag df lg below the initial value register Tphold. When the flag df1g is 0, the value of the initial value register Tphold is stored in the register Tp as it is, and when the flag dflg is 1, the reverse pattern is set in the register Tp.
【表 8】  [Table 8]
Figure imgf000041_0001
上記実施例においては、 プログラムカウン夕 4 12に最初に設定する値 を、 表 7や表 8に示される最初のマイクロ命令の命令番地に変更すること で、 マーチング試験や N2乗パターン試験を開始させることができる。
Figure imgf000041_0001
In the above embodiment, the value to be initially set in the program counter evening 4 12, by changing the instruction address of the first microinstruction shown in Table 7 and Table 8, start the marching test or N 2 square pattern test Can be done.
次に、 前記カスタム論理部 1 10および CPU 130の検査の際に FPG A 120内に構築されるロジックテス夕の詳細について説明する。  Next, the details of the logic test constructed in the FPG A 120 when the custom logic unit 110 and the CPU 130 are inspected will be described.
ロジックテスタは、 メモリのテストパターンを生成する図 1 2に示されて いる ALPGと類似の構成を有し、 例えば図 20に示されているように、 所 定のテストパターン生成アルゴリズムに従って記述された複数のマイクロ命 令群からなるマイクロプログラムが格納された命令メモリ 41 1と、 該命令 メモリ 411から読み出すべきマイクロ命令を指定するプログラムカウン夕 412、 命令メモリ 41 1から読み出されたマイクロ命令内の命令コードを 解読して上記プログラムカウンタ 412など制御部 400内の回路に対する 制御信号を形成する命令解読制御回路 430、 基準クロック 00に基づいて タイミング制御信号を形成するタイミング発生部 420、 マイクロ命令内の タイミング設定ビッ ト MF d (TSビット) に基づいてタイミング発生部 4 20に対する制御データを出力するデータレジス夕セヅト 4 1 7、 マイクロ 命令内のタイミング設定ビット MF d (TSビット) をデコードしてデータ レジスタセッ ト 4 1 7から制御データを読み出すデコーダ 4 1 8などを備え ている。 The logic tester has a configuration similar to the ALPG shown in Fig. 12 for generating a memory test pattern, and is described in accordance with a predetermined test pattern generation algorithm, for example, as shown in Fig. 20 An instruction memory 411 storing a microprogram consisting of a plurality of microinstructions, a program counter 412 for specifying a microinstruction to be read from the instruction memory 411, and a microinstruction read from the instruction memory 411. Decodes the instruction code and sends it to the circuit in the control unit 400 such as the program counter 412. A command decoding control circuit 430 for forming a control signal, a timing generator 420 for forming a timing control signal based on the reference clock 00, and a timing generator 420 based on a timing setting bit MF d (TS bit) in the microinstruction. Data register set 417 that outputs control data to the microcontroller, a decoder 418 that decodes the timing setting bit MF d (TS bit) in the micro instruction and reads control data from the data register set 417 ing.
また、 テスト対象となる論理回路の内、 その機能が特定されている回路 (例えば、 ALU: Arithmetic Logic Unit) の場合には、 すでに適切なテス トパターン形成方式が確立されている場合が多いので、 そのテストパターン の資産を利用することで、 効率の良いテストパターンの生成が可能である。 また、 組合せ論理回路に関しては、 故障仮定法および一つの回路には故障は 一つであるという単一故障という考えに基づく Dアルゴリズムと呼ばれる効 率の良いテス卜パターンの生成方法が知られている。 この手法を利用するこ とによって、 テストパターン生成のためのマイクロプログラムを短くするこ とができ、 命令メモリ 4 1 1の容量の増大を実現可能な程度まで抑えること ができる。  Also, among the logic circuits to be tested, circuits whose functions are specified (for example, ALU: Arithmetic Logic Unit) often have an appropriate test pattern formation method already established. By using the test pattern assets, it is possible to generate efficient test patterns. For combinational logic circuits, a fault assumption method and a method of generating an efficient test pattern called the D algorithm based on the idea of a single fault, where one circuit has one fault, are known. . By using this method, the microprogram for generating the test pattern can be shortened, and the capacity of the instruction memory 411 can be suppressed to an achievable level.
この実施例では、 特に制限されないが、 デコーダ 4 1 8でデコードされる タイミング設定ビッ ト T Sは 2ビッ トで構成され、 データレジスタセヅト 4 17には 7個の制御データが格納されている。 これらの制御データのうち一 つはテス ト ·サイクルを規定するデータ "RATE" 、 残りの 6個の制御 データは、 テス夕専用パスの各信号線ごとにハイレベルもしくはロウレペル の信号の出力タイミングを与える 2種類の制御データ "ACLK 1" , "A CLK 2" と、 パルス信号の立上がりタイミングを与える 2種類の制御デ一 夕 " B C LK 1" , "B C LK 2" と、 パルス信号の立下がりタイミングぉ よび期待値との比較出力タイミングを与える 2種類の制御データ "C CLK 1" , "CCLK 2" である。  In this embodiment, although not particularly limited, the timing setting bit TS decoded by the decoder 418 is composed of two bits, and seven control data are stored in the data register set 417. . One of these control data is the data "RATE" that defines the test cycle, and the remaining six control data determine the output timing of the high-level or low-level signal for each signal line of the test-only path. Two types of control data "ACLK 1" and "A CLK 2" to be given, and two types of control data "BC LK 1" and "BC LK 2" to give the rising timing of the pulse signal and the falling edge of the pulse signal There are two types of control data "CCLK1" and "CCLK2" which give the timing and the comparison output timing with the expected value.
これらの各制御データが、 タイミング発生部 420に供給されると、 制御 データ RATEに関しては予め規定されたタイミングの信号 RATEがプロ グラムカウン夕 4 12に供給されて命令メモリ 41 1からのマイクロ命令 コードの取り込みが行なうわれる。 また制御デ一夕として "ACLK 1"〜 "CCLK 2" が夕イミング発生部 420に供給されると、 タイミングク ロック ACLK 1〜CCLK2の中からその制御コードに対応するクロック が信号形成 ·比較部 300に出力される。 各クロックの使用のための接続や 選択は必要に応じて適宜実施される。 When each of these control data is supplied to the timing generation section 420, the control data RATE is converted into a signal RATE having a predetermined timing. The micro instruction code is supplied to the gram counter 412 and the micro instruction code from the instruction memory 411 is fetched. When "ACLK 1" to "CCLK 2" are supplied to the evening timing generator 420 as control data, a clock corresponding to the control code is generated from the timing clocks ACLK 1 to CCLK 2 and a comparator is generated. Output to 300. Connection and selection for use of each clock are appropriately performed as needed.
さらに、 ロジックテス夕には、 上記プログラムカウン夕 412の値を 「十 1」 にインクリメン卜するためのィンクリメン夕 42 1や、 上記インクリメ ン夕 421またはァドレスフィールド MF a内の飛び先番地のいずれかを選 択してプログラムカウンタ 412へ供給するマルチプレクサ 422、 オペラ ンドフィ一ルド MF c内の繰り返し数を保持するィンデックスレジスタ 42 3、 該インデックスレジス夕 423の値を 「一 1」 するためのデクリメン夕 424、 「一 1」 にデイクリメントされた値を保持するヮ一キングレジス夕 425、 所定の命令で用いられるオペランドのプログラムカウン夕 412へ の転送の有無を示すフラグ 427、 レジス夕 423, 425の値を選択的に 上記デクリメン夕 424に供給するマルチプレクサ 428、 デクリメン夕 4 24の値をワーキングレジス夕 425のいずれかのプレーンに分配するデマ ルチプレクサ 429などが設けられている。  Further, at the logic test evening, one of the increment address 421 for incrementing the value of the program count 412 to “11” and the jump address 421 in the increment evening 421 or the destination address in the address field MF a A multiplexer 422 for selecting the value of the index register 423 and supplying the same to the program counter 412, an index register 423 for holding the number of repetitions in the operand field MFc, and a decrement register for decrementing the value of the index register 423 to "1". 424, holds the value decremented to "1 1" キ ン グ King Register 425, Flag 427 indicating whether or not operands used in a given instruction are transferred to the program counter 412, Register 423, 425 Multiplexer 428, which selectively supplies the value to the above-mentioned decremen 424, decremen 424 A demultiplexer 429 for distributing to some plane is provided.
このロジックテスタでは、 マイクロ命令コードに命令の繰り返し数を格納 するオペランドフィールド MFcを設けるとともに、 その繰り返し数を保持 するインデックスレジス夕 423を設けているので、 同一テス ト信号を繰り 返し生成するような場合に、 必要なマイクロ命令数を減らしマイクロプログ ラムを短くすることができる。 また、 この実施例では、 インデックスレジス 夕 423ゃヮ一キングレジス夕 425、 フラグ 427が複数プレーン (図で は 4個) 設けられていることにより、 あるループ処理内におけるサブループ 処理、 さらにそのサブループ処理内におけるサブループ処理といったことを 容易に実行することができ、 マイクロプログラムを短くすることができる。 図 21には、 上記信号形成 ·比較部 300の実施例が示されている。 なお、 図 2 1の回路は、 テス夕専用バス 220を構成する信号線のうちの 1本に対 応するドライバ/コンパレータ回路のみが代表的に示されているが、 実際に はテス夕専用パス 220を構成する信号線の数だけ図 21に示す回路が設け られる。 This logic tester has an operand field MFc for storing the number of instruction repetitions in the micro-instruction code and an index register 423 for holding the number of repetitions, so that the same test signal can be repeatedly generated. In this case, the number of required microinstructions can be reduced and the microprogram can be shortened. Further, in this embodiment, since the index register 423 and the king register 425 and the flag 427 are provided in a plurality of planes (four in the figure), the sub-loop processing within a certain loop processing and the sub-loop processing are further performed. It is possible to easily execute sub-loop processing in the inside, and to shorten the microprogram. FIG. 21 shows an embodiment of the signal forming / comparing unit 300. Note that the circuit in FIG. 21 corresponds to one of the signal lines constituting the test bus 220. Although only the corresponding driver / comparator circuit is shown as a representative, actually, the circuits shown in FIG. 21 are provided for the number of signal lines constituting the test path 220.
図 21に示すように、 この実施例のドライバ/コンパレータ回路は、 テス 夕専用バスへ出力する信号を形成するドライバ回路 (信号形成回路) 340 と、 テスタ専用バス上の信号と期待値信号とを比較して一致/不一致を比較 するコンパレータ回路 (比較回路) 350と、 ドライバ回路 340とコンパ レー夕回路 350とを切り替える切替え回路 360とから構成される。 切替 え回路 360は、 ドライバ回路 340と入出力ノード N i oとの間に設けら れた伝送ゲート TG 1と、 入出力ノード N i 0とコンパレータ回路 50と間 に設けられた伝送ゲート TG2とから構成され、 上記制御部 400から供給 される入出力制御ビット IZOに応じていずれか—方が開かれ他方は遮断状 態とされる。  As shown in FIG. 21, the driver / comparator circuit of this embodiment includes a driver circuit (signal forming circuit) 340 that forms a signal to be output to a tester dedicated bus, and a signal on the tester dedicated bus and an expected value signal. It is composed of a comparator circuit (comparison circuit) 350 for comparing and comparing the match / mismatch, and a switching circuit 360 for switching between a driver circuit 340 and a comparator circuit 350. The switching circuit 360 includes a transmission gate TG1 provided between the driver circuit 340 and the input / output node Nio, and a transmission gate TG2 provided between the input / output node Ni0 and the comparator circuit 50. One of them is opened according to the input / output control bit IZO supplied from the control unit 400, and the other is shut off.
ドライバ回路 340は、 夕イミング発生部 420から供給されるタイミン グクロック ACLK iによって入出力制御ビット TPを取り込んで保持する エッジトリガ型フリップフロップ 341と、 タイミング発生部 420から供 給されるタイミングクロック BCLKiと CCLKiとの論理和をとる OR ゲート 342と、 この ORゲート 342の出力と上記エッジトリガ型フリッ プフロヅプ 341の出力を入力信号とする J /Kフリヅプフロップ 343と、 この JZKフリップフロップ 343の出力と制御部 400から供給される入 出力制御ビッ ト C ON Tとを入力信号とする ANDゲート 344と、 上記 エッジトリガ型フリップフロップ 341の出力と制御部 400から供給され る入出力制御ビット CON Tとを入力信号とする ANDゲート 345と、 こ れらの ANDゲート 344, 345の出力によってテス夕専用バスを駆動す るドライバ 346とから構成されている。  The driver circuit 340 includes an edge-triggered flip-flop 341 that captures and holds the input / output control bit TP with the timing clock ACLKi supplied from the evening timing generator 420, and a timing clock BCLKi supplied from the timing generator 420. An OR gate 342 for taking a logical sum with CCLKi; a J / K flip-flop 343 having an output of the OR gate 342 and an output of the edge-triggered flip-flop 341 as an input signal; an output of the JZK flip-flop 343 and a control unit An input and output control bit C ONT supplied from 400 and an AND gate 344 as an input signal, and an output of the edge trigger flip-flop 341 and an input / output control bit CON T supplied from the control unit 400 are input. An AND gate 345 used as a signal and a drive for driving a test bus dedicated to the output of these AND gates 344 and 345 And a 346 Metropolitan.
一方、 コンパレータ回路 350は、 タイミング発生部 420から供給され るタイミングクロック CCLK iと制御部 400から供給される入出力制御 ビット C ON Tとを入力信号とする ANDゲート 35 1と、 上記 D型フリッ プフロッブ 341の出力 (期待値) と伝送ゲート TG 2を介して供給される テスタ専用バス上の信号とを入力信号とするェクスクルーシブ ORゲート 3 52と、 このェクスクルーシブ ORゲート 352と上記 ANDゲート 35 1 との出力を入力信号とする ANDゲート 353と、 この ANDゲート 353 の出力をラッチするフリップフロップ 354とから構成されており、 すべて のコンパレータ回路 350の出力の回路の論理和をとつた信号がト一タル · フェイル信号 TFLとして出力される。 上記入出力制御ビット I/O、 TP、 CONTは、 上記制御信号に相当する。 On the other hand, the comparator circuit 350 is provided with an AND gate 351 using the timing clock CCLKi supplied from the timing generation section 420 and the input / output control bit CONT supplied from the control section 400 as input signals, and the D-type flip-flop. The output (expected value) of the Plobb 341 and supplied via the transmission gate TG 2 The exclusive OR gate 352 that receives the signal on the dedicated bus for the tester as an input signal, the AND gate 353 that receives the output of the exclusive OR gate 352 and the AND gate 351 as an input signal, and the output of the AND gate 353 A flip-flop 354 for latching is provided, and a signal obtained by calculating the logical sum of the output circuits of all the comparator circuits 350 is output as a total fail signal TFL. The input / output control bits I / O, TP, and CONT correspond to the control signals.
図 20に示されているように、 本実施例のテスト回路におけるマイクロ命 令は、 ジャンプ命令で使用する命令の飛び先番地を示す P Cァドレスが格納 されるアドレスフィールド MF aと、 シーケンス制御コードが格納されるォ ペコ一ドフィールド MF bと、 命令の繰り返し数などが格納されるオペラン ドフィールド MF cと、 上記データレジス夕セット 14から夕イミング発生 部 420に対する制御信号を読み出すためのタイミング設定ビット T Sが格 納されるタイミング設定フィールド MFdと、 上記信号形成 ·比較部 300 の入出力制御ビットが格納される入出力制御フィールド M F eとからなる。 上記タイミング設定フィールド MFdに格納されるタイミング設定ビッ ト TSは、 前述したようにこの実施例では 2ビッ トであるが、 3ビット以上設 けてもよい。 また、 上記入出力制御フィールド MFeに格納される入出力制 御ビッ トは、 テスタ専用パス 220の n本の信号線に対応して、 ドライバ ' ビット TPと I/Oビットとコントロール ' ビッ ト CONTの 3ビットを 1 セットとし、 nセッ トだけ設けられている。 これらのビットのうち、 I/O ビットは入力か出力かを指定する制御ビットで "1" のときは伝送ゲート T G 1を開きかつ TG 2を遮断してドライバの出力信号をテス夕専用パス 22 0の対応する信号線上へ出力し、 "0" のときは伝送ゲート TG 1を遮断し かつ TG 2を開いてテス夕専用パス 220の対応する信号線上の信号を比較 用のゲート 352へ入力させる。 ドライノ、 * · ビッ ト T Pおよびコントロー ル . ビット CONTは、 その組合せに応じてハイ出力またはロウ出力か、 正 パルスもしくは負パルスの出力か、 入力無効状態か、 出力ハイインビーダン ス状態かを指定する。 表 9には、 上記入出力制御ビット TP, I/O, CONTと信号形成 '比 較部 300の動作状態との関係が示されている。 As shown in FIG. 20, the microinstruction in the test circuit of the present embodiment includes an address field MFa storing a PC address indicating a jump address of an instruction used in a jump instruction, and a sequence control code. The stored opcode field MFb, the operand field MFc for storing the number of instruction repetitions, and the like, and the timing setting bits for reading the control signal from the data register set 14 to the setting unit 420. It comprises a timing setting field MFd in which the TS is stored, and an input / output control field MFe in which the input / output control bits of the signal forming / comparing section 300 are stored. The timing setting bit TS stored in the timing setting field MFd is 2 bits in this embodiment as described above, but may be 3 bits or more. The I / O control bits stored in the I / O control field MFe correspond to the driver's bit TP, I / O bit, and control 'bit CONT corresponding to the n signal lines of the tester dedicated path 220. These three bits are one set, and only n sets are provided. Of these bits, the I / O bit is a control bit that specifies whether it is an input or an output. When this bit is "1", the transmission gate TG1 is opened and TG2 is cut off to output the driver output signal to the dedicated test path. 0 is output on the corresponding signal line, and when it is "0", the transmission gate TG 1 is shut off and TG 2 is opened to input the signal on the corresponding signal line of the test path 220 to the comparison gate 352. . Dryno, * · Bit TP and Control. Bit CONT determines whether the output is high or low, positive or negative pulse output, input invalid state, or output high impedance state according to the combination. specify. Table 9 shows the relationship between the input / output control bits TP, I / O, and CONT and the operation state of the signal forming / comparing unit 300.
【表 9】  [Table 9]
Figure imgf000046_0001
表 9に示されているように、 入出力制御ビット TP, I/O, CONTが 「 1 1 1」 のときはドライバ回路 340がハイレベルの信号を出力し、 「0 1 1」 のときはドライバ回路 34 0がロウレベルの信号を出力し、 「 1 1 0 j のときはドライバ回路 340が正のパルス信号を出力し、 「 1 1 0」 の ときはドラィバ回路 340が負のパルス信号を出力するように制御が行なわ れる。 また、 入出力制御ビット TP, I/O, CONTが 「 1 0 1」 のとき はコンパレー夕回路 3 50がハイレペルの入力信号を期待し、 「0 0 1」 の ときはコンパレータ回路 3 5 0がロウレベルの入力信号を期待し、 「 1 0 0丄のときは入力信号を無効とするように制御が行なわれる。
Figure imgf000046_0001
As shown in Table 9, when the input / output control bits TP, I / O, and CONT are “1 1 1”, the driver circuit 340 outputs a high-level signal, and when it is “0 1 1”, The driver circuit 340 outputs a low-level signal, the driver circuit 340 outputs a positive pulse signal when “1 110 j”, and the driver circuit 340 outputs a negative pulse signal when “1 110”. The control is performed so that When the input / output control bits TP, I / O, and CONT are “101”, the comparator circuit 350 expects a high-level input signal, and when it is “001”, the comparator circuit 350 is activated. Expecting a low-level input signal, control is performed so that the input signal is invalidated when "100".
なお、 この実施例の信号形成 '比較部 30 0では、 制御ビッ ト TP, 1/ 0, CONTが 「000」 となる状態は何ら意味を持たないように構成され ている。 ただし、 制御ビット TP, I/O, CONTが 「000」 のときは、 例えば伝送ゲート T G 1を閉じて T G 2を開き、 かつェクスクル一シブ OR ゲート 3 52を上記ハイレベルとロウレベルの間にある 2つのレベルで動作 するシュミツト回路としてその 2つのレベル間にテスタ専用パス 2 2 0に接 続された入出力ノード N i oの電位が存在する状態 (ハイインピーダンス状 態) を比較できるように信号形成 ·比較部 3 0 0を構成しておくことも可能 Cめる。 図 22には上記実施例におけるタイミング発生部 420より供給される夕 イミングクロック ACLK 1〜CCLK 2と信号形成 ·比較部 300からテ ス夕専用パス 220上に出力される信号の一例が示されている。 図 22にお いて、 (a) は外部から供給される基準クロック 00を、 (b) 〜 (g) は タイミングクロック AC L K 1〜C CL K 2の波形を、 (h) は表 9の出力 テスト信号として 「1」 が指定されかつクロックとして ACLK 1が選択さ れた端子の出力信号の波形を示す。 また、 (i) は表 9の出力テスト信号と して 「0j が指定されかつクロックとして ACLK2が選択された端子の出 力信号の波形を示す。 また、 (j) は表 9の出力テスト信号として 「P」 が 指定されかつクロックとして BCLK 1, CCLK 1が選択された端子の出 力信号の波形を示す。 さらに、 (k) は表 9の出力テスト信号として 「N」 が指定されかつクロックとして BCLK2, CCLK2が選択された端子の 出力信号の波形を示す。 In the signal forming / comparing section 300 of this embodiment, the state in which the control bits TP, 1/0, and CONT are "000" has no meaning. However, when the control bits TP, I / O, and CONT are “000”, for example, the transmission gate TG 1 is closed and TG 2 is opened, and the exclusive OR gate 352 is between the high level and the low level. As a Schmitt circuit that operates at two levels, signal formation is performed so that the state where the potential of the input / output node Nio connected to the dedicated tester path 220 exists between the two levels (high impedance state) can be compared. · Comparison section 300 can be configured. FIG. 22 shows an example of the evening clocks ACLK1 to CCLK2 supplied from the timing generator 420 and the signals output from the comparator 300 on the test evening path 220 in the above embodiment. I have. In FIG. 22, (a) shows the reference clock 00 supplied from the outside, (b) to (g) show the waveforms of the timing clocks ACLK1 to CCLK2, and (h) shows the output of Table 9. Shows the waveform of the output signal from the pin where "1" is specified as the test signal and ACLK 1 is selected as the clock. (I) shows the waveform of the output signal of the terminal for which “0j” is specified as the output test signal of Table 9 and ACLK2 is selected as the clock. (J) shows the output test signal of Table 9. Shows the waveform of the output signal at the pin where “P” is specified as the clock and BCLK 1 and CCLK 1 are selected as the clock. Further, (k) shows the waveform of the output signal of the terminal where “N” is specified as the output test signal in Table 9 and BCLK2 and CCLK2 are selected as the clock.
図 22から分かるように、 入出力制御ビッ ト TP, I/O, CONTが 「1 1 1」 に設定されクロック ACLK 1が指定された端子からはクロック ACLK 1に従い図 22 (h) のようなハイレベルの信号が出力され、 TP, I/O, CONTが 「01 1」 に設定されクロック ACLK 2が指定された 端子からはクロック ACLK 2に従い図 22 ( i) のような口ウレペルの信 号が出力され、 TP, I/O, CONTが 「1 10」 に設定されクロック A CLK 1 , B CLK 1 , C C L K 1が指定された端子からはクロック A C L K 1でセットされたデータに従い B CL K 1, CCLK 1をエッジとする図 22 ( j ) のような正パルスが出力され、 TP, I/O, CONTが 「0 1 0 j に設定されクロック ACLK2, BCLK2, CCLK2が指定された 端子からはクロック A C L K 2でセットされたデータに従い B C L K 2, C CLK 2をエッジとする図 22 (k) のような負パルスが出力される。  As can be seen from Fig. 22, the input / output control bits TP, I / O, and CONT are set to “1 1 1” and the clock ACLK 1 is specified from the terminal designated by clock ACLK 1 as shown in Fig. 22 (h). A high-level signal is output, and TP, I / O, and CONT are set to “01 1” and the clock ACLK 2 is specified from the terminal designated by the clock ACLK 2 according to the clock ACLK 2, as shown in Figure 22 (i). Is output, and TP, I / O, and CONT are set to “1 10”, and the clocks A CLK 1, B CLK 1, and CCLK 1 are output from the specified pins according to the data set by the clock ACLK 1. , CCLK1 as an edge, a positive pulse is output as shown in Figure 22 (j), and TP, I / O, and CONT are set to “010j” and the clock ACLK2, BCLK2, and CCLK2 are specified from the specified terminal. According to the data set by the clock ACLK2, a negative pulse is output as shown in Fig. 22 (k) with BCLK2 and CCLK2 as edges.
また、 図示しないが、 入出力制御ビッ ト TP, I/O, CONTが 「10 1」 に設定されクロック CCLK 1が指定された端子では期待値をハイレぺ ルとして図 22 (f) のクロック CCLK 1をストローブ信号として比較が 行なわれ、 TP, I/O, CONTが 「001」 に設定されクロック CCL K 2が指定された端子では期待値をロウレベルとし図 22 (g) のクロック CCLK 2をストローブ信号として比較が行なわれる。 なお、 クロックの選 択は上記に限定されず任意の組合せとすることができる。 以上説明したように上記実施例においては、 半導体チップ上に複数の基本 論理セル (セル論理ブロック) からなり基本論理セルごとに回路が正常か異 常かを示す信号を出力可能でかつ任意の論理を構成可能な FP GA (Field Programmable Gate Array) のような可変論理回路を搭載するようにしたもの である。 これにより、 外部テス夕を使用することなく可変論理回路 (FPG A) 内に不良個所があることおよびその位置を知ることができる。 また、 不 良個所を回避して論理を構成することにより歩留まりを向上させるとともに、 この可変論理回路 (FPGA) を用いてテスト回路を構築して他の内部回路 をテストする場合にテスト回路自身の故障による誤ったテスト結果が出力さ れるのを回避することができるという効果がある。 Although not shown, the input / output control bits TP, I / O, and CONT are set to “10 1” and the clock CCLK 1 is specified at the pin where the expected value is set to the high level, and the clock CCLK in FIG. Comparison is performed using 1 as the strobe signal, TP, I / O, and CONT are set to “001” and the clock CCL At the terminal where K2 is specified, the expected value is set to the low level, and the comparison is performed using the clock CCLK2 in FIG. 22 (g) as the strobe signal. The selection of the clock is not limited to the above, and may be any combination. As described above, in the above embodiment, a plurality of basic logic cells (cell logic blocks) are provided on a semiconductor chip, and a signal indicating whether the circuit is normal or abnormal can be output for each of the basic logic cells and an arbitrary logic can be output. It is equipped with a variable logic circuit such as an FPGA (Field Programmable Gate Array) that can be configured. As a result, it is possible to know that there is a defective portion in the variable logic circuit (FPGA) and its location without using an external tester. In addition, the yield is improved by constructing logic while avoiding defective parts, and when a test circuit is constructed using this variable logic circuit (FPGA) to test other internal circuits, the test circuit itself is tested. There is an effect that it is possible to avoid outputting an incorrect test result due to a failure.
また、 本発明に係る半導体集積回路のテス ト方法は、 回路が正常か異常か を示す信号を出力可能でかつ任意の論理を構成可能な可変論理回路 (FP G A) と読出し書込み可能なメモリ回路とを内蔵した半導体集積回路において、 まず上記可変論理回路 (FPGA) により自己テストを行なわせ、 その結果 得られた不良個所を示す情報を用いて不良個所を除いた基本論理セルのみで 所定のァルゴリズムに従ってメモリ回路を検査するメモリテスト回路を構築 して上記メモリ回路を検査するようにした。 これによつて、 高機能の外部テ ス夕を用いることなく LS I内部のメモリ回路のテストを行なうことができ るという効果がある。  In addition, the method for testing a semiconductor integrated circuit according to the present invention includes a variable logic circuit (FPGA) that can output a signal indicating whether the circuit is normal or abnormal and that can configure an arbitrary logic, and a readable and writable memory circuit. First, a self-test is performed by the above-described variable logic circuit (FPGA) in a semiconductor integrated circuit having a built-in logic circuit. A memory test circuit for inspecting a memory circuit is constructed according to the above-mentioned method, and the memory circuit is inspected. This has the effect that the memory circuit inside the LSI can be tested without using a sophisticated external tester.
さらに、 本発明に係る半導体集積回路の他のテスト方法は、 半導体集積回 路がメモリ回路と共に CPU (中央処理ュニッ ト) やユーザが要求する論理 機能を構成したユーザ論理回路のようなカスタム論理回路を含むような場合 に、 上記 FPGAに所定のアルゴリズムに従って CPUやカスタム論理回路 のテスト信号および期待値信号を生成してテストを行なうテスト回路 (口 ジックテス夕) を構築するとともに、 既に前記テストにより正常と判定され たメモリ回路を使用して、 そのメモリ回路にテストパターンもしくはテス卜 パターン生成プログラムを格納し、 F P G Aに構築されたテスト回路を起動 して C P Uやカスタム論理回路のテストを行なうようにした。 これによつて、 高機能の外部テスタを用いることなく L S I内部の C P Uや論理回路のテス トを行なうことができるという効果がある。 Further, another test method of the semiconductor integrated circuit according to the present invention is a semiconductor integrated circuit in which a custom logic circuit such as a CPU (Central Processing Unit) or a user logic circuit in which a logic function required by a user is configured together with a memory circuit. In such a case, a test circuit (original test) that generates test signals and expected value signals for the CPU and custom logic circuits in the above-mentioned FPGA according to a predetermined algorithm and performs tests, Is determined The test circuit or test pattern generation program was stored in the memory circuit using the memory circuit, and the test circuit built in the FPGA was started to test the CPU and the custom logic circuit. This has the effect that the CPU and the logic circuit inside the LSI can be tested without using a sophisticated external tester.
さらに、 本発明に係る半導体集積回路の製造方法は、 まず上記可変論理回 路により自己テストを行なわせ、 その結果得られた不良個所を示す情報を用 いて該可変論理回路内に、 不良個所を除いた基本論理セルのみで所定のアル ゴリズムに従って第 1のメモリ回路を検査するメモリテスト回路を構築して、 上記第 1のメモリ回路を検査し、  Further, in the method of manufacturing a semiconductor integrated circuit according to the present invention, first, a self-test is performed by the above-described variable logic circuit, and a defective portion is identified in the variable logic circuit by using information indicating a defective portion obtained as a result. Constructing a memory test circuit for testing the first memory circuit according to a predetermined algorithm only with the removed basic logic cells, and testing the first memory circuit;
次に、 上記可変論理回路内に、 不良個所を除いた基本論理セルのみで所定 のアルゴリズムに従ってカスタム論理回路または中央処理ュニットを検査す るロジックテスト回路を構築するとともに上記第 1のメモリ回路内にテスト パターンもしくはテストパターン生成プログラムを格納して、 上記カスタム 論理回路または中央処理ュニットを検査し、  Next, in the variable logic circuit, a logic test circuit for testing a custom logic circuit or a central processing unit according to a predetermined algorithm only with the basic logic cells excluding the defective part is constructed, and the logic test circuit is also constructed in the first memory circuit. Storing a test pattern or a test pattern generation program to inspect the custom logic circuit or central processing unit,
しかる後、 上記可変論理回路内に、 不良個所を除いた基本論理セルのみで 所定のアルゴリズムに従って第 2のメモリ回路を検査するメモリテスト回路 を構築して、 上記第 2のメモリ回路を検査し、  Thereafter, in the variable logic circuit, a memory test circuit for inspecting the second memory circuit according to a predetermined algorithm only with the basic logic cells excluding the defective part is constructed, and the second memory circuit is inspected.
その後、 上記第 2のメモリ回路の検査結果に基づいて上記第 2のメモリ回 路に付随する宂長回路を用いて第 2のメモリ回路内の欠陥ビヅ トを予備の ビットと置き替えるビット救済処理を行なうようにしたので、 メモリ回路の ビット救済を自動的に行なうことができ、 半導体集積回路の歩留まりおよび 生産性を向上させることができるという効果がある。  Then, based on the inspection result of the second memory circuit, a bit rescue is performed by replacing a defective bit in the second memory circuit with a spare bit by using a long circuit associated with the second memory circuit. Since the processing is performed, the bit relief of the memory circuit can be performed automatically, and the yield and productivity of the semiconductor integrated circuit can be improved.
また、 本発明に係る半導体集積回路の製造方法は、 上記第 2のメモリ回路 のビット救済処理後に、 上記可変論理回路内に所望の論理を構成するように したので、 テスト終了後に L S Iチップ内には無駄な回路が残らないので、 テスト回路を L S I内部に設けることに伴うハードウエアのオーバーへッ ド を減らすことができるという効果がある。  In the method of manufacturing a semiconductor integrated circuit according to the present invention, the desired logic is configured in the variable logic circuit after the bit rescue processing of the second memory circuit. Since there is no useless circuit, there is an effect that it is possible to reduce hardware overhead due to providing a test circuit inside the LSI.
さらに、 本発明に係る半導体集積回路の製造方法は、 上記第 2のメモリ回 路の検査の際に欠陥ビットの位置を示す情報を上記第 1のメモリ回路内に記 憶するようにしたので、 上記第 1のメモリ回路内に記憶されている情報を読 み出すことにより不良解析を容易に行なうことができるという効果がある。 以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、 本発明は上記実施例に限定されるものではなく、 その要旨を逸脱しない範囲 で種々変更可能であることはいうまでもない。 例えば上記実施例においては、 セル論理プロヅク CLB内の回路が正常か否か検出して出力する排他的論理 和ゲート回路 LG 2の出力状態をクロスボイントスィツチ回路 C SW内のメ モリセル SMCに記憶させるようにしているが、 LS Iチップの外部へ出力 させるように構成してもよい。 Furthermore, the method for manufacturing a semiconductor integrated circuit according to the present invention is characterized in that: Since the information indicating the position of the defective bit is stored in the first memory circuit at the time of the path inspection, the information stored in the first memory circuit is read out to cause a failure. There is an effect that analysis can be easily performed. Although the invention made by the inventor has been specifically described based on the embodiments, the present invention is not limited to the above embodiments, and it is needless to say that various modifications can be made without departing from the gist of the invention. Nor. For example, in the above embodiment, the output state of the exclusive OR gate circuit LG2 which detects whether or not the circuit in the cell logic circuit CLB is normal and outputs it is stored in the memory cell SMC in the cross-point switch circuit CSW. However, it may be configured to output to the outside of the LSI chip.
また、 上記実施例においては、 DRAM 150〜 180のテストの際に欠 陥ビットの位置を記憶するフェールメモリを S RAM 140内に構成するよ うにしているが、 外部のテス夕内にフェールメモリを設けるようにしてもよ い。 さらに、 上記実施例ではテスト用のイン夕フェース回路として I E E E で規定されている TAPを利用しているが、 それに限定されるものでなく、 本実施例に適した専用のィン夕フェース回路を別途設計して設けるようにし ても良い。 産業上の利用可能性  Further, in the above embodiment, the fail memory for storing the position of the defective bit when testing the DRAMs 150 to 180 is configured in the SRAM 140, but the fail memory is stored in an external test memory. May be provided. Further, in the above embodiment, the TAP specified by the IEEE is used as the test interface circuit. However, the present invention is not limited to this, and a dedicated interface circuit suitable for this embodiment is used. It may be designed and provided separately. Industrial applicability
以上の説明では主として本発明者によってなされた発明をその背景となつ た利用分野である CPUと SRAM、 DRAMおよびカスタム論理回路を備 えたシステム LS Iにおける自己検証方法を例にとって説明したが、 この発 明はそれに限定されず、 C PUと SRAMおよびカスタム論理回路を備えた 論理 LS I、 CPUと DRAMおよびカスタム論理回路を備えた論理 L S I、 CPUとカスタム論理回路を備えた論理 L S I、 SRAMと DRAMおよび カスタム論理回路を備えた論理 L S Iさらには上記のようなディジ夕ル回路 の他にアナログ回路が搭載された半導体集積回路にも利用することができる。  In the above description, the invention made by the present inventor has been mainly described by taking as an example a self-verification method in a system LSI provided with a CPU, an SRAM, a DRAM, and a custom logic circuit, which is a field of application which is the background. However, the present invention is not limited to this.Logic LSI with CPU and SRAM and custom logic circuit, logic LSI with CPU and DRAM and custom logic circuit, logic LSI with CPU and custom logic circuit, SRAM and DRAM and The present invention can be used for a logic LSI having a custom logic circuit, and also for a semiconductor integrated circuit having an analog circuit in addition to the above-described digital circuit.

Claims

請求の範囲 The scope of the claims
1 . 半導体チップ上に複数の基本論理セルからなり各基本論理セルごとに回 路が正常か異常かを示す信号を出力可能でかつ任意の論理を構成可能な可変 論理回路が搭載されてなることを特徴とする半導体集積回路。 1. A variable logic circuit consisting of a plurality of basic logic cells on a semiconductor chip, capable of outputting a signal indicating whether the circuit is normal or abnormal for each of the basic logic cells, and arbitrarily configuring logic can be mounted. A semiconductor integrated circuit characterized by the above-mentioned.
2 . 上記可変論理回路は、 相補的な信号を出力可能な 2線ライ ンロジック回 路と該 2線ラインロジック回路の出力信号を比較して異常の有無を判定する 判定手段とからなる基本論理セルと、 これらの基本論理セル間の信号線の接 続を切り替え可能な複数の可変スィツチ回路とを備え、 上記可変スィツチ回 路による接続を切り替えることにより任意の論理を構成可能であって、 上記 2線ラインロジック回路から出力される信号が他の基本論理セル内の 2線ラ インロジック回路に供給され、 上記判定手段の出力信号が、 回路が正常か異 常かを示す信号として各基本論理セルから出力されるように構成されている ことを特徴とする請求項 1に記載の半導体集積回路。  2. The variable logic circuit is a basic logic cell comprising a two-line logic circuit capable of outputting a complementary signal and a determination means for comparing the output signal of the two-line logic circuit to determine the presence or absence of an abnormality. And a plurality of variable switch circuits capable of switching connection of signal lines between these basic logic cells. Arbitrary logic can be configured by switching connections by the variable switch circuits. The signal output from the line logic circuit is supplied to the two-line logic circuit in another basic logic cell, and the output signal of the determination means is used as a signal indicating whether the circuit is normal or abnormal. The semiconductor integrated circuit according to claim 1, wherein the semiconductor integrated circuit is configured to be output from the semiconductor integrated circuit.
3 . 上記可変スィッチ回路は、 互いに交差する信号線間を接続遮断可能なス ィツチ素子と、 該スィツチ素子の状態を制御する情報を記憶する書込み読出 し可能な記憶素子とからなり、 上記判定手段から出力される回路が正常か異 常かを示す信号が上記記憶素子に記憶されるように構成されていることを特 徴とする請求項 2に記載の半導体集積回路。 3. The variable switch circuit includes a switch element capable of disconnecting and connecting signal lines crossing each other, and a readable and writable storage element for storing information for controlling the state of the switch element. 3. The semiconductor integrated circuit according to claim 2, wherein a signal indicating whether the circuit output from the storage device is normal or abnormal is stored in the storage element.
4 . 少なくとも複数の基本論理セルからなり基本論理セルごとに回路が正常 か異常かを示す信号を出力可能でかつ任意の論理を構成可能な可変論理回路 と読出し書込み可能なメモリ回路とを内蔵した半導体集積回路の検査方法に おいて、 4. Built-in variable logic circuit consisting of at least a plurality of basic logic cells, capable of outputting a signal indicating whether the circuit is normal or abnormal for each basic logic cell, and configurable to any logic, and a readable and writable memory circuit In the inspection method of the semiconductor integrated circuit,
まず上記可変論理回路により自己テストを行なわせ、 その結果得られた不 良個所を示す情報を用いて該可変論理回路内に、 正常な基本論理セルのみで 所定のアルゴリズムに従って所定のテスト信号および期待値信号を発生して テスト信号を上記メモリ回路に供給し、 その結果メモリ回路から得られる出 力信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成し てチップ外部へ出力させるメモリテスト回路を構築して、 上記メモリ回路を 検査するようにしたことを特徴とする半導体集積回路の検査方法。 First, a self-test is performed by the above-described variable logic circuit, and a predetermined test signal and an expected value are obtained only in normal basic logic cells according to a predetermined algorithm in the variable logic circuit by using information indicating a defective portion obtained as a result. A value signal is generated and a test signal is supplied to the memory circuit. As a result, an output signal obtained from the memory circuit is compared with an expected value signal. Build a memory test circuit to output An inspection method for a semiconductor integrated circuit, wherein the inspection is performed.
5 . 上記メモリ回路は、 ス夕ティック型ランダム ·アクセス ·メモリである ことを特徴とする請求項 4に記載の半導体集積回路の検査方法。  5. The method according to claim 4, wherein the memory circuit is a static random access memory.
6 . 上記メモリ回路は、 ダイナミック型ランダム ·アクセス ·メモリである ことを特徴とする請求項 4に記載の半導体集積回路の検査方法。  6. The method according to claim 4, wherein the memory circuit is a dynamic random access memory.
7 . 少なくとも複数の基本論理セルからなり基本論理セルごとに回路が正常 か異常かを示す信号を出力可能でかつ任意の論理を構成可能な可変論理回路 と、 読出し書込み可能なメモリ回路と、 カスタム論理回路または中央処理ュ ニットとを内蔵した半導体集積回路の検査方法において、  7. A variable logic circuit comprising at least a plurality of basic logic cells and capable of outputting a signal indicating whether the circuit is normal or abnormal for each of the basic logic cells and capable of configuring an arbitrary logic; a readable and writable memory circuit; In a method of inspecting a semiconductor integrated circuit including a logic circuit or a central processing unit,
まず上記可変論理回路により自己テストを行なわせ、 その結果得られた不 良個所を示す情報を用いて該可変論理回路内に、 正常な基本論理セルのみで 所定のアルゴリズムに従って所定のテスト信号および期待値信号を発生して テスト信号を上記メモリ回路に供給しその結果メモリ回路から得られる出力 信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成して チップ外部へ出力させるメモリテスト回路を構築して、 該メモリテス夕回路 により上記メモリ回路を検査し、  First, a self-test is performed by the above-described variable logic circuit, and a predetermined test signal and an expected value are obtained only in normal basic logic cells according to a predetermined algorithm in the variable logic circuit by using information indicating a defective portion obtained as a result. A value signal is generated and a test signal is supplied to the memory circuit. As a result, an output signal obtained from the memory circuit is compared with an expected value signal, and when they do not match, a signal indicating a failure is formed and output to the outside of the chip. A memory test circuit is constructed, and the memory test circuit is used to inspect the memory circuit.
次に、 上記可変論理回路内に、 正常な基本論理セルのみで所定のアルゴリ ズムに従って所定のテスト信号および期待値信号を発生してテスト信号を上 記カスタム論理回路または中央処理ュニッ卜に供給しその結果カスタム論理 回路または中央処理ュニッ 卜から得られる出力信号と期待値信号とを比較し て一致しない場合に不良を示す信号を形成してチップ外部へ出力させる口 ジヅクテスト回路を構築し、 上記メモリ回路内にテストパターンもしくはテ ストパターン生成プログラムを格納して、 上記ロジックテスト回路を起動さ せて上記カスタム論理回路または中央処理ュニットを検査するようにしたこ とを特徴とする半導体集積回路の検査方法。  Next, in the variable logic circuit, a predetermined test signal and an expected value signal are generated by only a normal basic logic cell according to a predetermined algorithm, and the test signal is supplied to the custom logic circuit or the central processing unit. As a result, the output signal obtained from the custom logic circuit or the central processing unit is compared with the expected value signal, and if they do not match, a signal indicating a failure is formed and a port test circuit for outputting the signal to the outside of the chip is constructed. Inspection of a semiconductor integrated circuit characterized in that a test pattern or a test pattern generation program is stored in a circuit, and the logic test circuit is activated to inspect the custom logic circuit or the central processing unit. Method.
8 . 上記メモリ回路は、 スタティック型ランダム ·アクセス 'メモリである ことを特徴とする請求項 7に記載の半導体集積回路の検査方法。  8. The method according to claim 7, wherein the memory circuit is a static random access memory.
9 . 上記メモリ回路は、 ダイナミック型ランダム 'アクセス 'メモリである ことを特徵とする請求項 7に記載の半導体集積回路の検査方法。 9. The method for testing a semiconductor integrated circuit according to claim 7, wherein the memory circuit is a dynamic random 'access' memory.
1 0 . 少なくとも複数の基本論理セルからなり基本論理セルごとに回路が正 常か異常かを示す信号を出力可能でかつ任意の論理を構成可能な可変論理回 路と、 冗長回路を備えていない第 1のメモリ回路と、 冗長回路を備えている 第 2のメモリ回路と、 カスタム論理回路または中央処理ュニットとを内蔵し た半導体集積回路の製造方法において、 10. No variable logic circuit consisting of at least a plurality of basic logic cells and capable of outputting a signal indicating whether the circuit is normal or abnormal for each basic logic cell and capable of configuring any logic, and no redundant circuit A method for manufacturing a semiconductor integrated circuit including a first memory circuit, a second memory circuit including a redundant circuit, and a custom logic circuit or a central processing unit.
まず上記可変論理回路により自己テストを行なわせ、 その結果得られた不 良個所を示す情報を用いて該可変論理回路内に、 正常な基本論理セルのみで 所定のアルゴリズムに従って所定のテスト信号および期待値信号を発生して テスト信号を上記第 1のメモリ回路に供給しその結果第 1のメモリ回路から 得られる出力信号と期待値信号とを比較して一致しない場合に不良を示す信 号を形成してチップ外部へ出力させるメモリテスト回路を構築して、 該メモ リテス夕回路により上記第 1のメモリ回路を検査し、  First, a self-test is performed by the above-described variable logic circuit, and a predetermined test signal and an expected value are obtained only in normal basic logic cells according to a predetermined algorithm in the variable logic circuit by using information indicating a defective portion obtained as a result. A value signal is generated and a test signal is supplied to the first memory circuit. As a result, an output signal obtained from the first memory circuit is compared with an expected value signal to form a signal indicating a failure if they do not match. To construct a memory test circuit for outputting to the outside of the chip, inspecting the first memory circuit by the memory test circuit,
次に、 上記可変論理回路内に、 正常な基本論理セルのみで所定のアルゴリ ズムに従って所定のテスト信号および期待値信号を発生してテスト信号を上 記カスタム論理回路または中央処理ュニットに供給しその結果カスタム論理 回路または中央処理ュニッ トから得られる出力信号と期待値信号とを比較し て一致しない場合に不良を示す信号を形成してチップ外部へ出力させる口 ジックテスト回路を構築するとともに上記第 1のメモリ回路内にテストパ 夕一ンもしくはテス卜パターン生成プログラムを格納して、 上記ロジックテ スト回路を起動させて上記カスタム論理回路または中央処理ュニットを検査 し、  Next, in the variable logic circuit, a predetermined test signal and an expected value signal are generated according to a predetermined algorithm only in the normal basic logic cell, and the test signal is supplied to the custom logic circuit or the central processing unit. Result The output signal obtained from the custom logic circuit or the central processing unit is compared with the expected value signal, and if they do not match, a signal indicating a failure is formed and output to the outside of the chip. A test pattern or a test pattern generation program is stored in the memory circuit of Step 1, and the logic test circuit is activated to inspect the custom logic circuit or the central processing unit.
しかる後、 上記可変論理回路内に、 正常な基本論理セルのみで所定のアル ゴリズムに従って所定のテスト信号および期待値信号を発生してテスト信号 を上記第 2のメモリ回路に供給しその結果第 2のメモリ回路から得られる出 力信号と期待値信号とを比較して一致しない場合に不良を示す信号を形成し てチップ外部へ出力させるメモリテスト回路を構築して、 上記第 2のメモリ 回路を検査し、  Thereafter, a predetermined test signal and an expected value signal are generated according to a predetermined algorithm only in the normal basic logic cells in the variable logic circuit, and the test signal is supplied to the second memory circuit. By comparing the output signal obtained from the memory circuit and the expected value signal, if they do not match, a signal indicating a failure is formed and a memory test circuit for outputting the signal to the outside of the chip is constructed. Inspect,
その後、 上記第 2のメモリ回路の検査結果に基づいて上記第 2のメモリ回 路に付随する冗長回路を用いて第 2のメモリ回路内の欠陥ビッ トを予備の ビットと置き替えるビット救済処理を行なうようにしたことを特徴とする半 導体集積回路の製造方法。 After that, based on the inspection result of the second memory circuit, a defective bit in the second memory circuit is set as a spare using a redundant circuit associated with the second memory circuit. A method for manufacturing a semiconductor integrated circuit, wherein a bit rescue process for replacing a bit is performed.
1 1 . 上記第 1のメモリ回路はス夕ティック型ランダム ·アクセス ·メモリ であり、 上記第 2のメモリ回路は、 ダイナミック型ランダム 'アクセス 'メ モリであることを特徴とする請求項 1 0に記載の半導体集積回路の製造方法。  11. The device according to claim 10, wherein the first memory circuit is a static random access memory, and the second memory circuit is a dynamic random 'access' memory. The manufacturing method of the semiconductor integrated circuit described in the above.
1 2 . 上記第 2のメモリ回路のビット救済処理後に、 上記可変論理回路内に 所望の論理を構成するようにしたことを特徴とする請求項 1 0または 1 1に 記載の半導体集積回路の製造方法。  12. The manufacturing method of the semiconductor integrated circuit according to claim 10, wherein a desired logic is configured in the variable logic circuit after the bit rescue processing of the second memory circuit. Method.
1 3 . 上記第 2のメモリ回路の検査の際に欠陥ビットの位置を示す情報を上 記第 1のメモリ回路内に記憶するようにしたことを特徴とする請求項 1 0、 1 1または 1 2に記載の半導体集積回路の製造方法。  13. The information indicating the position of a defective bit at the time of inspection of the second memory circuit is stored in the first memory circuit. 3. The method for manufacturing a semiconductor integrated circuit according to 2.
PCT/JP1999/001974 1999-04-14 1999-04-14 Semiconductor integrated circuit, method for testing the same, and method for manufacturing the same WO2000062339A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000611314A JP4147005B2 (en) 1999-04-14 1999-04-14 Semiconductor integrated circuit, test method and manufacturing method thereof
PCT/JP1999/001974 WO2000062339A1 (en) 1999-04-14 1999-04-14 Semiconductor integrated circuit, method for testing the same, and method for manufacturing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1999/001974 WO2000062339A1 (en) 1999-04-14 1999-04-14 Semiconductor integrated circuit, method for testing the same, and method for manufacturing the same

Publications (1)

Publication Number Publication Date
WO2000062339A1 true WO2000062339A1 (en) 2000-10-19

Family

ID=14235462

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1999/001974 WO2000062339A1 (en) 1999-04-14 1999-04-14 Semiconductor integrated circuit, method for testing the same, and method for manufacturing the same

Country Status (2)

Country Link
JP (1) JP4147005B2 (en)
WO (1) WO2000062339A1 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6436741B2 (en) 2000-03-10 2002-08-20 Hitachi, Ltd. Semiconductor integrated circuit device
US6708319B2 (en) 2000-12-12 2004-03-16 Renasas Technology Corporation Manufacturing method of semiconductor integrated circuit device
JP2006252702A (en) * 2005-03-11 2006-09-21 Nec Electronics Corp Semiconductor integrated circuit apparatus and its inspection method
WO2007108400A1 (en) * 2006-03-22 2007-09-27 Advantest Corporation Testing apparatus, memory device and testing method
JP2011082566A (en) * 2011-01-07 2011-04-21 Renesas Electronics Corp Semiconductor apparatus and electronic equipment
WO2012070669A1 (en) * 2010-11-24 2012-05-31 日本電気株式会社 Method and system for generating circuit information for programmable logic device, circuit testing device and computer program therefor, device and computer program for creating circuit data, and computer readable storage medium
JP2012521123A (en) * 2009-03-17 2012-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Fault tolerance in integrated circuits.
JP2015111114A (en) * 2013-11-07 2015-06-18 株式会社半導体エネルギー研究所 Semiconductor device
JP2015111486A (en) * 2013-11-08 2015-06-18 株式会社半導体エネルギー研究所 Information processing device and method for manufacturing the same
WO2015104621A1 (en) * 2014-01-09 2015-07-16 Semiconductor Energy Laboratory Co., Ltd. Device
WO2015118435A1 (en) * 2014-02-07 2015-08-13 Semiconductor Energy Laboratory Co., Ltd. Device
US9379713B2 (en) 2014-01-17 2016-06-28 Semiconductor Energy Laboratory Co., Ltd. Data processing device and driving method thereof
US9515656B2 (en) 2013-11-01 2016-12-06 Semiconductor Energy Laboratory Co., Ltd. Reconfigurable circuit, storage device, and electronic device including storage device
TWI562289B (en) * 2011-05-31 2016-12-11 Semiconductor Energy Lab Co Ltd Programmable logic device
CN112255534A (en) * 2020-10-14 2021-01-22 天津津航计算技术研究所 IP core module debugging system based on FPGA
CN116400200A (en) * 2023-06-05 2023-07-07 中国汽车技术研究中心有限公司 Cross verification method for electromagnetic side channel information of vehicle-gauge security chip

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930052B (en) * 2010-07-21 2012-07-25 电子科技大学 Online detection fault-tolerance system of FPGA (Field programmable Gate Array) digital sequential circuit of SRAM (Static Random Access Memory) type and method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10241399A (en) * 1997-02-19 1998-09-11 Internatl Business Mach Corp <Ibm> Bist of processor base for built-in memory
JPH10242288A (en) * 1997-02-25 1998-09-11 Hitachi Ltd Semiconductor device and system
JPH10302499A (en) * 1997-04-24 1998-11-13 Sharp Corp Semiconductor integrated circuit with built-in memory testing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10241399A (en) * 1997-02-19 1998-09-11 Internatl Business Mach Corp <Ibm> Bist of processor base for built-in memory
JPH10242288A (en) * 1997-02-25 1998-09-11 Hitachi Ltd Semiconductor device and system
JPH10302499A (en) * 1997-04-24 1998-11-13 Sharp Corp Semiconductor integrated circuit with built-in memory testing method

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6436741B2 (en) 2000-03-10 2002-08-20 Hitachi, Ltd. Semiconductor integrated circuit device
US6601218B2 (en) 2000-03-10 2003-07-29 Hitachi, Ltd. Semiconductor integrated circuit device
US6708319B2 (en) 2000-12-12 2004-03-16 Renasas Technology Corporation Manufacturing method of semiconductor integrated circuit device
JP2006252702A (en) * 2005-03-11 2006-09-21 Nec Electronics Corp Semiconductor integrated circuit apparatus and its inspection method
WO2007108400A1 (en) * 2006-03-22 2007-09-27 Advantest Corporation Testing apparatus, memory device and testing method
JP2012521123A (en) * 2009-03-17 2012-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Fault tolerance in integrated circuits.
WO2012070669A1 (en) * 2010-11-24 2012-05-31 日本電気株式会社 Method and system for generating circuit information for programmable logic device, circuit testing device and computer program therefor, device and computer program for creating circuit data, and computer readable storage medium
JP2011082566A (en) * 2011-01-07 2011-04-21 Renesas Electronics Corp Semiconductor apparatus and electronic equipment
TWI562289B (en) * 2011-05-31 2016-12-11 Semiconductor Energy Lab Co Ltd Programmable logic device
US10418995B2 (en) 2013-11-01 2019-09-17 Semiconductor Energy Laboratory Co., Ltd. Reconfigurable circuit, storage device, and electronic device including storage device
US9515656B2 (en) 2013-11-01 2016-12-06 Semiconductor Energy Laboratory Co., Ltd. Reconfigurable circuit, storage device, and electronic device including storage device
JP2015111114A (en) * 2013-11-07 2015-06-18 株式会社半導体エネルギー研究所 Semiconductor device
US10197627B2 (en) 2013-11-07 2019-02-05 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device
JP2015111486A (en) * 2013-11-08 2015-06-18 株式会社半導体エネルギー研究所 Information processing device and method for manufacturing the same
US9385054B2 (en) 2013-11-08 2016-07-05 Semiconductor Energy Laboratory Co., Ltd. Data processing device and manufacturing method thereof
WO2015104621A1 (en) * 2014-01-09 2015-07-16 Semiconductor Energy Laboratory Co., Ltd. Device
US9594115B2 (en) 2014-01-09 2017-03-14 Semiconductor Energy Laboratory Co., Ltd. Device for generating test pattern
US9379713B2 (en) 2014-01-17 2016-06-28 Semiconductor Energy Laboratory Co., Ltd. Data processing device and driving method thereof
US9800247B2 (en) 2014-01-17 2017-10-24 Semiconductor Energy Laboratory Co., Ltd. Data processing device and driving method thereof
US9983265B2 (en) 2014-02-07 2018-05-29 Semiconductor Energy Laboratory Co., Ltd. Device including programmable logic element and programmable switch
WO2015118435A1 (en) * 2014-02-07 2015-08-13 Semiconductor Energy Laboratory Co., Ltd. Device
CN112255534A (en) * 2020-10-14 2021-01-22 天津津航计算技术研究所 IP core module debugging system based on FPGA
CN116400200A (en) * 2023-06-05 2023-07-07 中国汽车技术研究中心有限公司 Cross verification method for electromagnetic side channel information of vehicle-gauge security chip
CN116400200B (en) * 2023-06-05 2023-09-01 中国汽车技术研究中心有限公司 Cross verification method for electromagnetic side channel information of vehicle-gauge security chip

Also Published As

Publication number Publication date
JP4147005B2 (en) 2008-09-10

Similar Documents

Publication Publication Date Title
JP4147005B2 (en) Semiconductor integrated circuit, test method and manufacturing method thereof
US7225379B2 (en) Circuit and method for testing semiconductor device
JP3867862B2 (en) Semiconductor integrated circuit and memory inspection method
JP3980827B2 (en) Semiconductor integrated circuit device and manufacturing method
KR100858382B1 (en) Tester Architecture Construction Data Generating Method, Tester Architecture Constructing Method and Test Circuit
KR100714240B1 (en) Semiconductor integrated circuit and recording medium
JP4601737B2 (en) Memory embedded logic LSI
US8988956B2 (en) Programmable memory built in self repair circuit
US20020194558A1 (en) Method and system to optimize test cost and disable defects for scan and BIST memories
KR20060087430A (en) A semiconductor integlated circuit having test function and manufacturing method
US8780648B2 (en) Latch based memory device
JPS6231439B2 (en)
JP2002203398A (en) Method for preventing consumption of time to program address in defective column
JP3913413B2 (en) Semiconductor device
US7117406B2 (en) Semiconductor memory device and method of testing same
JP4176944B2 (en) Semiconductor integrated circuit and recording medium
US7299391B2 (en) Circuit for control and observation of a scan chain
JP3043871B2 (en) Semiconductor integrated circuit
US6973404B1 (en) Method and apparatus for administering inversion property in a memory tester
JP3538334B2 (en) Memory test method, memory test circuit, and semiconductor integrated circuit
JP2814032B2 (en) Scan path device and semiconductor integrated circuit device including the same
US6421810B1 (en) Scalable parallel test bus and testing method
JPH0682524A (en) Semiconductor integrated circuit device
JP2003156542A (en) Testing method and semiconductor device
WO1999030176A1 (en) Semiconductor integrated circuit and method for diagnosing logic circuit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref country code: JP

Ref document number: 2000 611314

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 09958354

Country of ref document: US

122 Ep: pct application non-entry in european phase