Circuit and method for scan testing
11714131 · 2023-08-01
Assignee
Inventors
- Venkata Narayanan SRINIVASAN (Greater Noida, IN)
- Manish SHARMA (Gurgaon, IN)
- Shiv Kumar Vats (Greater Noida, IN)
- Umesh Chandra Srivastava (Greater Noida, IN)
Cpc classification
G01R31/318533
PHYSICS
G01R31/31725
PHYSICS
G01R31/318558
PHYSICS
International classification
Abstract
In an embodiment, a method for performing scan testing includes: generating first and second scan clock signals; providing the first and second scan clock signals to first and second scan chains, respectively, where the first and second scan clock signals includes respective first shift pulses when a scan enable signal is asserted, and respective first capture pulses when the scan enable signal is deasserted, where the first shift pulse of the first and second scan clock signals correspond to a first clock pulse of a first clock signal, where the first capture pulse of the first scan clock signal corresponds to a second clock pulse of the first clock signal, and where the first capture pulse of the second scan clock signal corresponds to a first clock pulse of a second clock signal different from the first clock signal.
Claims
1. A method for performing scan testing of an integrated circuit, the method comprising: receiving a first clock signal from a first pin or pad of the integrated circuit, the first clock signal having a first frequency; receiving a scan enable signal from a second pin or pad of the integrated circuit; generating a second clock signal, the second clock signal having a second frequency at least one order of magnitude higher than the first frequency; generating a first scan clock signal based on the first clock signal and the scan enable signal; generating a second scan clock signal based on the first clock signal, the second clock signal, and the scan enable signal, wherein the first and second scan clock signals are generated in parallel; providing the first scan clock signal to a first scan chain, wherein the first scan clock signal comprises a first shift pulse when the scan enable signal is asserted, and a first capture pulse when the scan enable signal is deasserted, wherein the first shift pulse of the first scan clock signal corresponds to a first clock pulse of the first clock signal, and wherein the first capture pulse of the first scan clock signal corresponds to a second clock pulse of the first clock signal; providing the scan enable signal to a second scan chain; and providing the second scan clock signal to a second scan chain, wherein the second scan clock signal comprises a first shift pulse when the scan enable signal is asserted, and a first capture pulse when the scan enable signal is deasserted, wherein the first shift pulse of the second scan clock signal corresponds to the first clock pulse of the first clock signal, and wherein the first capture pulse of the second scan clock signal corresponds to a first clock pulse of the second clock signal.
2. The method of claim 1, wherein the first clock signal comprises a third clock pulse, the third clock pulse of the first clock signal occurring after the second clock pulse of the first clock signal and while the scan enable signal is deasserted, the method further comprising keeping the first scan clock signal at the same level from a last edge of the first capture pulse of the first scan clock signal and until the scan enable signal is asserted.
3. The method of claim 1, wherein the first clock signal comprises a third clock pulse and a fourth clock pulse following the third clock pulse, the third clock pulse of the first clock signal occurring after the scan enable signal transitions from being deasserted to being asserted, the method further comprising: keeping the first scan clock signal at the same level from a last edge of the first capture pulse of the first scan clock signal and until a first edge of the fourth clock pulse of the first clock signal; and keeping the second scan clock signal at the same level from a last edge of the first capture pulse of the second scan clock signal and until the first edge of the fourth clock pulse of the first clock signal.
4. The method of claim 1, wherein generating the first scan clock signal comprises using a clock control circuit comprising: a first flip-flop having an input coupled to the second pin or pad; a first inverter having an input coupled to the second pin or pad; a second flip-flop having an input coupled to an output of the first inverter; a first logic circuit having a first input coupled to an output of the first flip-flop, and a second input coupled to an output of the second flip-flop; and a first clock gating circuit having an enable input coupled to an output of the first logic circuit, a clock input coupled to the first pin or pad, and an output generating the first scan clock signal.
5. The method of claim 4, further comprising receiving a test mode signal indicative of whether the integrated circuit is in scan mode, wherein the first logic circuit comprises: a first OR gate having a first input coupled to the output of the first flip-flop, and a second input coupled to the output of the second flip-flop; an XNOR gate having a first input coupled to the second pin or pad or to a first node receiving an internal scan enable signal, and a second input coupled to an output of the first OR gate, wherein the internal scan enable signal is based on the scan enable signal; and a first AND gate having a first input receiving the test mode signal, a second input coupled to an output of the XNOR gate, and an output coupled to the enable input of the first clock gating circuit, and wherein the clock control circuit further comprises: a second inverter having an input receiving the test mode signal, a second clock gating circuit having an enable input coupled to an output of the second inverter, and a second OR gate having a first input coupled to the output of the first clock gating circuit, a second input coupled to an output of the second clock gating circuit, and an output coupled to the first scan chain.
6. The method of claim 4, wherein generating the second scan clock signal comprises using an on-chip clock controller, and wherein the output of the first logic circuit is coupled to the on-chip clock controller.
7. The method of claim 6, wherein the clock control circuit further comprises a third flip-flop having an input coupled to the output of first logic circuit, a clock input coupled to the first pin or pad, and an output coupled to the on-chip clock controller.
8. The method of claim 4, wherein the clock control circuit further comprises: a third flip-flop having a data input coupled to the second pin or pad, and a clock input coupled to the first pin or pad; and a first OR gate having a first input coupled to the second pin or pad, a second input coupled to an output of the third flip flop, and an output coupled to the input of the first inverter, to the input of the first flip-flop, and to the first scan chain.
9. The method of claim 1, wherein a duty cycle of the second clock pulse of the first clock signal is the same or lower than a duty cycle of the first clock pulse of the first clock signal.
10. The method of claim 9, wherein the duty cycle of the second clock pulse of the first clock signal is 50% or lower than 10%.
11. The method of claim 10, wherein the duty cycle of the first clock pulse of the first clock signal is 50%.
12. The method of claim 1, further comprising providing the scan enable signal to the first scan chain.
13. The method of claim 1, further comprising: generating an internal scan enable signal based on the scan enable signal and first clock signal, wherein the internal scan enable signal is asserted simultaneously with the scan enable signal, and wherein the internal scan enable signal is deasserted after the scan enable signal based on a clock edge of the first clock signal; and providing the internal scan enable signal to the first scan chain.
14. The method of claim 1, wherein the scan enable signal being asserted comprises the scan enable signal being high, and wherein the scan enable signal being deasserted comprises the scan enable signal being low.
15. The method of claim 1, wherein the first frequency is lower than 10 MHz, and wherein the second frequency is higher than 100 MHz.
16. A method comprising: receiving a first clock signal from a first pin or pad of an integrated circuit; receiving a scan enable signal from a second pin or pad of the integrated circuit; generating a first scan clock signal based on the first clock signal and the scan enable signal; generating a second scan clock signal based on the first clock signal and the scan enable signal, wherein the first and second scan clock signals are generated in parallel; providing the scan enable signal and the first scan clock signal to a first scan chain to check transition faults in a first circuit of the integrated circuit using launch-on-shift (LOS) mode, wherein: when the scan enable signal is asserted, each clock pulse of the first clock signal has a corresponding pulse in the first scan clock signal, and each clock pulse of the first clock signal has a corresponding pulse in the second scan clock signal; and when the scan enable signal is deasserted, each clock pulse of the first clock signal has a corresponding pulse in one of the first and second scan clock signals and does not have a corresponding pulse in the other of the first and second scan clock signals.
17. The method of claim 16, wherein generating the first and second scan clock signals comprises generating the first and second scan clock signals during a first scan test, wherein, the first clock signal has a first frequency during the first scan test, the method further comprising, during a second scan test, generating a second clock signal, the second clock signal having a second frequency at least one order of magnitude higher than the first frequency; generating a third scan clock signal based on the first clock signal, the second clock signal, and the scan enable signal; and providing the scan enable signal and the third scan clock signal to a second scan chain to check transition faults in the first circuit of the integrated circuit using launch-on-capture (LOC) mode, wherein the second scan test is performed before or after the first scan test.
18. An integrated circuit comprising: a first pin or pad configured to receive a first clock signal, the first clock signal having a first frequency; a second pin or pad configured to receive a scan enable signal; a phase-locked loop (PLL) configured to generate, at an output of the PLL, a second clock signal, the second clock signal having a second frequency at least one order of magnitude higher than the first frequency; a clock control circuit having a first input coupled to the first pin or pad, a second input coupled to the second pin or pad, and an output; an on-chip clock controller having a first input coupled to the first pin or pad, a second input coupled to the second pin or pad, and a third input coupled the output of the PLL, and an output; a first scan chain having a first input coupled to the output of the clock control circuit, and a second input coupled to the second pin or pad; a first circuit coupled to the first scan chain; a second scan chain having a first input coupled to the output of the on-chip clock controller, and a second input coupled to the second pin or pad; and a second circuit coupled to the second scan chain, wherein the clock control circuit is configured to generate, at the output of the clock control circuit, a first scan clock signal based on the first clock signal and the scan enable signal to check transition faults in the first circuit using launch-on-shift (LOS) mode or pipeline LOS mode, wherein the on-chip clock controller is configured to generate, at the output of the on-chip clock controller, a second scan clock signal based on the first clock signal, the second clock signal, and the scan enable signal to check transition faults in the second circuit using launch-on-capture (LOC) mode, and wherein the clock control circuit and the on-chip clock controller are configured to generate the first and second scan clock signals in parallel.
19. The integrated circuit of claim 18, wherein: the first scan clock signal comprises a first shift pulse when the scan enable signal is asserted, and a first capture pulse when the scan enable signal is deasserted, wherein the first shift pulse of the first scan clock signal corresponds to a first clock pulse of the first clock signal, and wherein the first capture pulse of the first scan clock signal corresponds to a second clock pulse of the first clock signal; and the second scan clock signal comprises a first shift pulse when the scan enable signal is asserted, and a first capture pulse when the scan enable signal is deasserted, wherein the first shift pulse of the second scan clock signal corresponds to the first clock pulse of the first clock signal, and wherein the first capture pulse of the second scan clock signal corresponds to a first clock pulse of the second clock signal.
20. The integrated circuit of claim 18, wherein the clock control circuit comprises: a first flip-flop having an input coupled to the second pin or pad; a first inverter having an input coupled to the second pin or pad; a second flip-flop having an input coupled to an output of the first inverter; a first logic circuit having a first input coupled to an output of the first flip-flop, and a second input coupled to an output of the second flip-flop; and a first clock gating circuit having an enable input coupled to an output of the first logic circuit, a clock input coupled to the first pin or pad, and an output generating the first scan clock signal.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15) Corresponding numerals and symbols in different figures generally refer to corresponding parts unless otherwise indicated. The figures are drawn to clearly illustrate the relevant aspects of the preferred embodiments and are not necessarily drawn to scale.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
(16) The making and using of the embodiments disclosed are discussed in detail below. It should be appreciated, however, that the present invention provides many applicable inventive concepts that can be embodied in a wide variety of specific contexts. The specific embodiments discussed are merely illustrative of specific ways to make and use the invention, and do not limit the scope of the invention.
(17) The description below illustrates the various specific details to provide an in-depth understanding of several example embodiments according to the description. The embodiments may be obtained without one or more of the specific details, or with other methods, components, materials and the like. In other cases, known structures, materials or operations are not shown or described in detail so as not to obscure the different aspects of the embodiments. References to “an embodiment” in this description indicate that a particular configuration, structure or feature described in relation to the embodiment is included in at least one embodiment. Consequently, phrases such as “in one embodiment” that may appear at different points of the present description do not necessarily refer exactly to the same embodiment. Furthermore, specific formations, structures or features may be combined in any appropriate manner in one or more embodiments.
(18) Embodiments of the present invention will be described in specific contexts, e.g., a circuit and method for scan testing circuits in a low-frequency domain in parallel with scan testing circuits in a high-frequency domain. Embodiments of the present invention may be used, e.g., without scan testing in parallel a high-frequency domain. Some embodiments may perform scan testing of more than one low-frequency domain (e.g., where each low-frequency domain may be checked in parallel with different scan passes of the high-frequency domain).
(19) In an embodiment of the present invention, at-speed scan testing of circuits in a high-frequency domain is performed in parallel with at-speed scan testing of circuits in a low-frequency domain. An OCC generates a first scan clock for at-speed testing the circuits in the high-frequency domain based on an ATE clock (for shift pulses) received from an ATE, an internal PLL (for at-speed pulses), and a scan enable signal received from the ATE. A clock control circuit generates a second scan clock for at-speed testing the circuits in the low-frequency domain based on the same ATE clock (used for shift and at-speed pulses) and the same scan enable signal received from the ATE. In some embodiments, pulses of the ATE clock that are not to be propagated to the first or second scan clocks are masked.
(20) In some embodiments, at-speed scan testing of circuits in the low-frequency domain is performed in parallel with stuck-at scan testing of circuits in the high-frequency domain by using a single ATE clock and scan enable signal received from the ATE.
(21) Some ICs, such as some system-on-chip (SoCs), such as some microcontrollers, include multiple clock domains.
(22) In some embodiments, during scan testing, IC 500 receives a scan enable signal scan_en (e.g., from ATE 550) and a slow clock signal CLK.sub.slow (e.g., from the ATE 550). In some embodiments, the scan enable signal scan_en and clock signal CLK.sub.slow received from ATE 550 are designed for OCC 512 so that OCC 512 generates scan clock CLK.sub.scan_hf for scan testing circuits 516 in the high-frequency domain using scan chains 514.
(23) In some embodiments, clock control circuit 522 generates scan clock CLK.sub.scan_lf for scan testing circuits 526 in the low-frequency domain using scan chains 524. In some embodiments, clock control circuit 522 generates scan clock CLK.sub.scan_lf reusing the same scan enable signal scan_en and clock signal CLK.sub.slow designed for OCC 512 to generate, in parallel with scan clock CLK.sub.scan_hf, scan clock CLK.sub.scan_lf. By generating in parallel the slow and fast scan clocks (e.g., CLK.sub.scan_lf and CLK.sub.scan_hf, respectively) from the same scan enable signal (e.g., scan_en) and ATE clock signal (e.g., CLK.sub.slow), some embodiments advantageously achieve lower test times compared with implementations that perform scan testing of the circuit(s) (e.g., 516) of the high-frequency domain and the circuit(s) (e.g., 526) of the low-frequency domain sequentially (e.g., using different ATPG passes). In some embodiments, such advantages are achieved without using an additional OCC for generating the slow scan clock and/or without using large frequency dividers (e.g., to divide the OCC clock CLK.sub.scan_hf), which may advantageously result in a smaller circuit and lower silicon area.
(24) In some embodiments, there is at least one order of magnitude between the functional operating frequencies (e.g., functional clock frequencies) of the high-frequency clock domain (which includes circuit(s) 516) and the low-frequency clock domain (which includes circuit(s) 526). For example, in some embodiments, the high-frequency clock domain has a functional operating frequency of, e.g., 100 MHz, 200 MHz, 400 MHz, 1 GHz, or higher). In some embodiments, the low-frequency clock domain has a functional operating frequency of, e.g., 40 MHz, 10 MHz, 1 MHz, 100 KHz, 32 kHz, 10 kHz, or lower. Other functional operating frequencies may also be used.
(25) In some embodiments, the functional clock signal (e.g., CLK.sub.RC, e.g., shown in
(26) In some embodiments, scan chain(s) 514 and 524 may be implemented in any way known in the art, such as shown, e.g., in
(27) In some embodiments, PLL 506 provides in a known manner fast clock signal CLK.sub.fast. In some embodiments, PLL 506 may be implemented in any way known in the art.
(28) In some embodiments, OCC 512 generates scan clock CLK.sub.scan_hf for use in LOC mode by scan chain(s) 514. For example, with respect to
(29) As shown in
(30) In some embodiments, OCC 512 may be implemented in any way known in the art. For example, in some embodiments, OCC 512 may be implemented using an OCC from a commercial vendor. In some embodiments, OCC 512 may be implemented in a custom manner.
(31) In some embodiments, clock control circuit 522 generates scan clock CLK.sub.scan_lf for use in LOS mode by scan chain(s) 524. For example, with respect to
(32) In some embodiments, clock control circuit 522 generates scan clock CLK.sub.scan_lf for use in pipeline LOS mode by scan chain(s) 524. For example, with respect to
(33) As shown in
(34) In some embodiments, clock control circuit 522 is implemented with combinatorial logic and flip-flops.
(35) In some embodiments, IC 500 may be, e.g., a microcontroller, power management IC (PMIC), application-specific IC (ASIC), field-programmable gate array (FPGA), etc. In some embodiments, IC 500 may be a different type of IC, such as other types of IC that includes a scan chain.
(36)
(37) Curves 648, 650, 652, 654, 656, 658, and 660 include dashed lines to indicate that portions are not illustrated. For example, curve 652 (and similarly curves 656 and 658) shows dashed lines between pulses 602 and 604 to illustrate that additional pulses 602 may occur. Similarly, curve 654 shows dashed lines to indicate that additional pulses of clock CLK.sub.fast occur during the time portions not shown in
(38) As shown by curve 656, the scan clock CLK.sub.scan_hf generated by OCC 512 corresponds to LOC mode. As shown by curve 656, shift pulses of fast scan clock CLK.sub.scan_hf correspond to pulses 602 and 604 of clock CLK.sub.slow. The first pulse (606) of the clock CLK.sub.slow occurring after the transition of scan enable signal scan_en from high to low causes OCC 512 to begin the process of generation of the launch and capture pulses using clock CLK.sub.fast. As shown in
(39) After a predetermined number of pulses 608 of the clock CLK.sub.slow, OCC 512 allows a predetermined number of pulses (e.g., 2) from clock CLK.sub.fast to propagate to scan clock CLK.sub.scan_hf. As illustrated in
(40) The first pulse (610) of the clock CLK.sub.slow occurring after the transition of scan enable signal scan_en from low to high causes OCC 512 to resume propagating clock CLK.sub.slow to scan clock CLK.sub.scan_hf. As shown in
(41) In some embodiments, pulse 606 is a pulse that is used for configuring OCC 512, does not have a strict timing requirement, and is not propagated to scan clock CLK.sub.scan_hf, and may be characterized as a dummy pulse for purposes of scan testing of circuit(s) 516. In some embodiment, pulse 606 may be used as a capture pulse for scan clock CLK.sub.scan_lf operating in LOS mode.
(42) As shown by curve 658, the scan clock CLK.sub.scan_lf generated by clock control circuit 522 corresponds to LOS mode. As shown by curve 658, shift pulses of scan clock CLK.sub.scan_lf correspond to pulses 602 of clock CLK.sub.slow. The first pulse (606) of the clock CLK.sub.slow occurring after the transition of scan enable signal scan_en from high to low is propagated to scan clock CLK.sub.scan_lf and is used as the capture clock. By controlling the time t.sub.lf (e.g., by ATE 550) between pulses 604 and 606 of clock CLK.sub.slow to match the functional operating frequency of circuit(s) 526, some embodiments are advantageously capable of performing at-speed testing of circuit(s) 526 using scan chain(s) 524 using LOS mode by reusing signals scan_en and CLK.sub.slow.
(43) As shown in
(44) In some embodiments, the number of predetermined pulses 608 are between 0 and 10. Other values may also be used.
(45) In some embodiments, the number of pulses 609 are between 0 and 10. Other values may also be used.
(46) In some embodiments, any or all of pulses 602, 604, 606, 608, 609, and 610 may have a duty cycle lower than 50%, such as 20%, 10%, 5% or less. For example, in some embodiments, time t.sub.lf between the rising edge of pulses 604 and 606 is 1000 ns while time t.sub.h606 corresponding of the time in which pulse 606 is high is 20 ns. In some embodiments, any or all of pulses 602, 604, 606, 608, 609, and 610 may have a duty cycle of 50%. For example, in some embodiments, pulses 602 and 604 may have a duty cycle of 50% while pulse 606 may have a duty cycle lower than 10%.
(47)
(48) As can be seen in
(49) During shift pulses 602 and 604 of clock CLK.sub.slow, scan enable signal scan_en is high, thereby keeping D flip-flop 704 in reset and keeping the output of D flip-flop 702 high, thereby causing the output of OR gate 714 to be high, thereby causing the output of XNOR gate 720 to be high, thereby causing clock gating circuit 710 to be enabled, thereby causing clock CLK.sub.slow to propagate to scan clock signal CLK.sub.scan_lf, as illustrated by curve 658.
(50) After the transition of scan enable signal scan_en from high to low and before pulse 606, D flip-flop 702 is placed in reset, and D flip-flop 704 is taken out of reset. Since D flip-flop 704 comes out of reset at a default state of low, the output of D flip-flop 704 is low, which causes the output of OR gate 714 to be low. Since scan enable signal scan_en is also low, the output of XNOR gate 720 is high, thereby causing the output of AND gate 718 to remain high, keeping enabled clock gating circuit 710.
(51) Since clock gating circuit 710 is enabled when pulse 606 of clock CLK.sub.slow occurs, pulse 606 is propagated to scan clock CLK.sub.scan_lf, as illustrated by curve 658. Pulse 606 of slow clock CLK.sub.slow, however, causes D flip-flop 704 to transition from low to high, which causes the output of OR gate 714 to be high, which causes the output of XNOR gate 720 to be low, which causes the output of AND gate 718 to be low, which disables clock gating circuit 710. Since clock gating circuit 710 is disabled after pulse 606, pulses 608 and 609 are not propagated to scan clock CLK.sub.scan_lf, as illustrated by curve 658.
(52) After the transition of scan enable signal scan_en from low to high and before pulse 610, D flip-flop 704 is placed in reset, and D flip-flop 702 is taken out of reset. Since D flip-flop 702 comes out of reset at a default state of low, the output of D flip-flop 702 is low, which causes the output of OR gate 714 to be low. Since scan enable signal scan_en is high, the output of XNOR gate 720 is low, thereby causing the output of AND gate 718 to remain low, keeping disabled clock gating circuit 710. Since clock gating circuit 710 is disabled during pulse 610, pulse 610 is not propagated to scan clock CLK.sub.scan_lf, as illustrated by curve 658. Pulse 610 of slow clock CLK.sub.slow, however, causes D flip-flop 702 to transition from low to high, which causes the output of OR gate 714 to be high, which causes the output of XNOR gate 720 to be high, which causes the output of AND gate 718 to be high, which enables clock gating circuit 710. Since clock gating circuit 710 is enabled after pulse 610, shift pulses 602 are propagated to scan clock CLK.sub.scan_lf, as illustrated by curve 658.
(53)
(54) As can be seen in
(55) When scan enable signal scan_en is high, AND gate 840 outputs low, which causes D flip-flop 842 to output low, which causes AND gate 850 to output low, thereby causing scan clock CLK.sub.scan_hf to follow the output of AND gate 826. Since the output of D flip-flop 842 is low when scan enable signal scan_en is high, the output of AND gate 810 is high, which causes the output D flip-flop 812 to be high, which causes the output of AND gate 814 to be high, which causes the output of AND gate 822 to follow clock CLK.sub.slow while the output of AND gate 820 is low, which causes the output of OR gate 824 to follow clock CLK.sub.slow, which causes the output of AND gate 826 to follow clock CLK.sub.slow, which causes scan clock CLK.sub.scan_hf to follow clock CLK.sub.slow, as shown by curve 656.
(56) When scan enable signal scan_en transitions from high to low, the output of AND gate 814 becomes low, which causes the output of AND gate 818 to transition low. AND gate 820 remains low as one of its inputs is tied low, which causes the output of OR gate 824 to remain low. Since AND gate 850 receives at one input clock CLK.sub.fast, AND gate 850 operates as a gating circuit based on the output of OR gate 848. Since the output of D flip-flop 812 is low when scan enable signal scan_en is low, the output of D flip-flop 842, and thus the output of OR gate 848 is based on signal pipeline_or_tree, which may be selectively switched to allow, e.g., 2 pulses (e.g., 622 and 624) to propagate to scan clock CLK.sub.scan_hf, and without propagating any of pulses 606 and 609 of clock CLK.sub.slow, as illustrated by curve 656.
(57) When scan enable signal scan_en transitions from low to high, AND gate 850 outputs low, thereby causing scan clock CLK.sub.scan_hf to follow the output of AND gate 826. Before pulse 610 of clock CLK.sub.slow, the output of D flip-flop 812 remains low. Pulse 610 of clock CLK.sub.slow causes D flip-flop 812 to transition from low to high, but pulse 610 is not propagated to scan clock CLK.sub.scan_hf, as illustrated by curve 656.
(58)
(59) OCC 870 operates in a similar manner as OCC 800. OCC 870, however, uses clock gating circuits 871 and 875 in the clock path instead of using AND/OR gates 820, 822, 824 and uses positive-edge triggered flip-flops 892 and 894 instead of negative-edge triggered flip-flops 812 and 842.
(60) As shown in
(61) As shown in
(62) In some embodiments, OCC 1012 operates in a similar manner as OCC 912. OCC 1012, however, uses signal V.sub.1002 to control the transition between propagating the clock CLK.sub.slow to scan clock CLK.sub.scan_hf to propagating at-speed pulses from clock CLK.sub.fast to scan clock CLK.sub.scan_hf instead of using signal V.sub.710_EN. In some embodiments, signal V.sub.1002 is similar to signal V.sub.710_EN, except that signal V.sub.1002 transitions at the falling edge of clock CLK.sub.slow (e.g., at the falling edge of pulses 606 and 610) instead of at the rising edge of clock CLK.sub.slow.
(63) In some embodiments, clock control circuit 1022 operates in a similar manner as clock control circuit 722. Clock control circuit 1022 includes D flip-flop 1002 and inverter 1004 for generating signal V.sub.1002.
(64)
(65) For example, clock control circuit 1122 operates in a similar manner as clock control circuit 722. Clock control circuit 1122, however, drives the D input of D flip-flop 702, the input of inverter 706, and the scan enable of scan chain(s) 524 with internal scan enable signal internal_scan_en instead of driving the D input of D flip-flop 702, the input of inverter 706, and the scan enable of scan chain(s) 524 with scan enable signal scan_en.
(66) As shown in
(67) When scan enable signal scan_en is high, internal scan enable signal internal_scan_en is identical to scan enable signal scan_en. When scan enable signal scan_en transitions from high to low, internal scan enable signal internal_scan_en remains high until the first pulse of clock CLK.sub.slow.
(68)
(69) As shown in
(70) In some embodiments, pulse 606 and the first pulse 608 have 50% duty cycle. By using 50% duty cycles for pulses 606 and the first pulse 608, some embodiments are advantageously capable of using pipeline LOS mode in scan chains/circuits having, e.g., the launch event triggered by the positive edge of clock CLK.sub.slow, and the capture event triggered by the negative edge of clock CLK.sub.slow, and vice versa, without overdesigning the clock path to meet timing constraints (with the duration of the pulses matching the functional operation frequency of circuit(s) 526). In some embodiments, the duty cycle of pulses 602, 604, 606, 608 and 609 is 50% while the frequency of pulses 606, 608 and 609 is lower than the frequency of pulses 602 and 604.
(71) In some embodiments, IC 1100 may be implemented with OCC 912 (e.g., with clock control circuit 1122 providing signal V.sub.710_EN to OCC 912. In some embodiments, IC 1100 may be implemented with OCC 1012, with clock control circuit 1122 generating signal V.sub.1002 in a similar manner as clock control circuit 1022 (e.g., by including D flip-flop 1002 and inverter 1004 connected, e.g., as shown in
(72) In some embodiments, it may be sufficient to check one or more circuit paths (e.g., non-functional paths) using stuck-at mode (using scan testing to check for stuck-at faults) without checking such circuit path in at-speed mode (using scan testing to check transition faults). Since stuck-at faults are frequency independent, a stuck-at mode scan pass to test the circuit(s) 516 of the high-frequency domain is performed in parallel with an at-speed mode scan pass of circuit(s) 526 of the low-frequency domain. By performing at least some stuck-at fault checks of the circuit(s) 516 during the at-speed mode scan, some embodiments advantageously reduce the pattern count of a subsequent stuck-at mode scan of the circuit(s) 516 without sacrificing stuck-at coverage.
(73)
(74)
(75)
(76) As shown by curve 1456, in some embodiments, circuit(s) 1326 are tested using LOS mode.
(77) As shown in
(78) As shown in
(79) In some embodiments, clock control circuit 1322 may be implemented with combinatorial logic and flip-flops.
(80) In some embodiments, signal SEL.sub.CLK is generated by ATE 550 and propagated to clock control circuit 1322 via a pin or pad (not shown) of IC 1300. In some embodiments, signal SEL.sub.CLK may be generated inside IC 1300. For example, in some embodiments, signal SEL.sub.CLK may be generated using a scan flip-flop (e.g., 102), e.g., acting as a one hot decoder. Other implementations are also possible.
(81) In some embodiments, IC 1300 and IC 500 are part of the same IC, where pins or pads 502 and 1302 are the same pin or pad, where pins or pads 504 and 1304 are the same pin or pad, where circuit(s) 1316 are the same as circuit(s) 516 or additional to circuit(s) 516, where circuit(s) 1326 are the same as circuit(s) 526 or additional to circuit(s) 526, where scan chain(s) 1314 are the same as scan chain(s) 514 or additional to scan chain(s) 514, and where scan chain(s) 1324 are the same as scan chain(s) 524 or additional to scan chain(s) 524.
(82)
(83) As can be seen in
(84) When scan enable signal transitions from high to low, the output of D flip-flop 1502 (producing signal SEL.sub.CLK) depends on the last shift value from the input of scan flip-flop 1502 before transition of scan enable signal from high to low. When signal SEL.sub.CLK is high after the transition of the scan enable signal scan_en from high to low, the output of OR gate 1504 is high while the output of OR gate 1510 is low, which causes the pulse from clock signal CLK.sub.slow to propagate to clock signal CLK.sub.scan_sa and not to clock signal CLK.sub.scan_lf, as illustrated by curves 1450, 1452, 1454, 1456, and 1460. When signal SEL.sub.CLK is low after the transition of the scan enable signal scan_en from high to low, the output of OR gate 1510 is high while the output of OR gate 1504 is low, which causes the pulse from clock signal CLK.sub.slow to propagate to clock signal CLK.sub.scan_lf and not to clock signal CLK.sub.scan_sa, as illustrated by curves 1450, 1452, 1454, 1456, and 1460.
(85) As shown in
(86)
(87) During step 1602, at-speed scan testing of circuit(s) in a high-frequency domain (e.g., 516, 1316) is performed, e.g., using LOC mode. In some embodiments, the at-speed scan testing of the circuit(s) in the high-frequency domain is performed by using an OCC (e.g., 512, 912).
(88) During step 1604, at-speed scan testing of circuit(s) in a low-frequency domain (e.g., 526, 1326) is performed, e.g., using LOS mode, while performing, in parallel, stuck-at scan testing of the circuit(s) in the high-frequency domain. In some embodiments, step 1504 is performed in a similar manner as described with respect to
(89) During step 1606, stuck-at scan testing of the circuit(s) in the high-frequency domain is performed. In some embodiments, since some stuck-at scan testing has already been performed during step 1604, the stuck-at scan testing performed during step 1606 advantageously has a reduced scan pattern count.
(90)
(91) During step 1702, at-speed scan testing of circuit(s) in a high-frequency domain (e.g., 516, 1316) is performed, e.g., using LOC mode, in parallel with at-speed scan testing of circuit(s) in a low-frequency domain (e.g., 526, 1326), e.g., using LOS mode or pipeline LOS mode. In some embodiments, the at-speed scan testing performed during step 1702 is performed according to an embodiment described with respect to
(92) During step 1704, at-speed scan testing of circuit(s) in a low-frequency domain (e.g., 526, 1326) is performed, e.g., using LOS mode, while performing, in parallel, stuck-at scan testing of the circuit(s) in the high-frequency domain. In some embodiments, step 1704 is performed in a similar manner as described with respect to
(93) Step 1606 may be performed in a similar manner as described with respect to
(94) Advantages of some embodiments include performing, in parallel, at-speed scan testing of a high-frequency domain using an OCC and a low-frequency domain without using an OCC, while using a single pin or pad for receiving an ATE clock. Some embodiments advantageously allow for better controllability and debug by testing low frequency domains from an external (e.g., ATE) clock received in a pin or pad in a low pin count test environment and allow for test time reduction by running the at-speed scan testing of the low frequency domain in LOS (or pipeline LOS) mode and in parallel with performing at-speed testing of the high-frequency domain.
(95) Advantages of some embodiments include performing at-speed scan testing of a low-frequency domain in parallel with performing stuck-at scan testing of a high-frequency domain while using a single pin or pad for receiving an ATE clock. Some embodiments advantageously allow for test time reduction by checking non-functional paths of the high-frequency domain using stuck-at scan testing along with performing at-speed scan testing of the low-frequency domain using LOS mode.
(96) Example embodiments of the present invention are summarized here. Other embodiments can also be understood from the entirety of the specification and the claims filed herein.
(97) Example 1. A method for performing scan testing of an integrated circuit, the method including: receiving a first clock signal from a first pin or pad of the integrated circuit, the first clock signal having a first frequency; receiving a scan enable signal from a second pin or pad of the integrated circuit; generating a second clock signal, the second clock signal having a second frequency at least one order of magnitude higher than the first frequency; generating a first scan clock signal based on the first clock signal and the scan enable signal; generating a second scan clock signal based on the first clock signal, the second clock signal, and the scan enable signal, where the first and second scan clock signals are generated in parallel; providing the first scan clock signal to a first scan chain, where the first scan clock signal includes a first shift pulse when the scan enable signal is asserted, and a first capture pulse when the scan enable signal is deasserted, where the first shift pulse of the first scan clock signal corresponds to a first clock pulse of the first clock signal, and where the first capture pulse of the first scan clock signal corresponds to a second clock pulse of the first clock signal; providing the scan enable signal to a second scan chain; and providing the second scan clock signal to a second scan chain, where the second scan clock signal includes a first shift pulse when the scan enable signal is asserted, and a first capture pulse when the scan enable signal is deasserted, where the first shift pulse of the second scan clock signal corresponds to the first clock pulse of the first clock signal, and where the first capture pulse of the second scan clock signal corresponds to a first clock pulse of the second clock signal.
(98) Example 2. The method of example 1, where the first clock signal includes a third clock pulse, the third clock pulse of the first clock signal occurring after the second clock pulse of the first clock signal and while the scan enable signal is deasserted, the method further including keeping the first scan clock signal at the same level from a last edge of the first capture pulse of the first scan clock signal and until the scan enable signal is asserted.
(99) Example 3. The method of one of examples 1 or 2, where the first clock signal includes a third clock pulse and a fourth clock pulse following the third clock pulse, the third clock pulse of the first clock signal occurring after the scan enable signal transitions from being deasserted to being asserted, the method further including: keeping the first scan clock signal at the same level from a last edge of the first capture pulse of the first scan clock signal and until a first edge of the fourth clock pulse of the first clock signal; and keeping the second scan clock signal at the same level from a last edge of the first capture pulse of the second scan clock signal and until the first edge of the fourth clock pulse of the first clock signal.
(100) Example 4. The method of one of examples 1 to 3, where generating the first scan clock signal includes using a clock control circuit including: a first flip-flop having an input coupled to the second pin or pad; a first inverter having an input coupled to the second pin or pad; a second flip-flop having an input coupled to an output of the first inverter; a first logic circuit having a first input coupled to an output of the first flip-flop, and a second input coupled to an output of the second flip-flop; and a first clock gating circuit having an enable input coupled to an output of the first logic circuit, a clock input coupled to the first pin or pad, and an output generating the first scan clock signal.
(101) Example 5. The method of one of examples 1 to 4, further including receiving a test mode signal indicative of whether the integrated circuit is in scan mode, where the first logic circuit includes: a first OR gate having a first input coupled to the output of the first flip-flop, and a second input coupled to the output of the second flip-flop; an XNOR gate having a first input coupled to the second pin or pad or to a first node receiving an internal scan enable signal, and a second input coupled to an output of the first OR gate, where the internal scan enable signal is based on the scan enable signal; and a first AND gate having a first input receiving the test mode signal, a second input coupled to an output of the XNOR gate, and an output coupled to the enable input of the first clock gating circuit, and where the clock control circuit further includes: a second inverter having an input receiving the test mode signal, a second clock gating circuit having an enable input coupled to an output of the second inverter, and a second OR gate having a first input coupled to the output of the first clock gating circuit, a second input coupled to an output of the second clock gating circuit, and an output coupled to the first scan chain.
(102) Example 6. The method of one of examples 1 to 5, where generating the second scan clock signal includes using an on-chip clock controller, and where the output of the first logic circuit is coupled to the on-chip clock controller.
(103) Example 7. The method of one of examples 1 to 6, where the clock control circuit further includes a third flip-flop having an input coupled to the output of first logic circuit, a clock input coupled to the first pin or pad, and an output coupled to the on-chip clock controller.
(104) Example 8. The method of one of examples 1 to 7, where the clock control circuit further includes: a third flip-flop having a data input coupled to the second pin or pad, and a clock input coupled to the first pin or pad; and a first OR gate having a first input coupled to the second pin or pad, a second input coupled to an output of the third flip flop, and an output coupled to the input of the first inverter, to the input of the first flip-flop, and to the first scan chain.
(105) Example 9. The method of one of examples 1 to 8, where a duty cycle of the second clock pulse of the first clock signal is the same or lower than a duty cycle of the first clock pulse of the first clock signal.
(106) Example 10. The method of one of examples 1 to 9, where the duty cycle of the second clock pulse of the first clock signal is 50% or lower than 10%.
(107) Example 11. The method of one of examples 1 to 10, where the duty cycle of the first clock pulse of the first clock signal is 50%.
(108) Example 12. The method of one of examples 1 to 11, further including providing the scan enable signal to the first scan chain.
(109) Example 13. The method of one of examples 1 to 12, further including: generating an internal scan enable signal based on the scan enable signal and first clock signal, where the internal scan enable signal is asserted simultaneously with the scan enable signal, and where the internal scan enable signal is deasserted after the scan enable signal based on a clock edge of the first clock signal; and providing the internal scan enable signal to the first scan chain.
(110) Example 14. The method of one of examples 1 to 13, where the scan enable signal being asserted includes the scan enable signal being high, and where the scan enable signal being deasserted includes the scan enable signal being low.
(111) Example 15. The method of one of examples 1 to 14, where the first frequency is lower than 10 MHz, and where the second frequency is higher than 100 MHz.
(112) Example 16. A method including: receiving a first clock signal from a first pin or pad of an integrated circuit; receiving a scan enable signal from a second pin or pad of the integrated circuit; generating a first scan clock signal based on the first clock signal and the scan enable signal; generating a second scan clock signal based on the first clock signal and the scan enable signal, where the first and second scan clock signals are generated in parallel; providing the scan enable signal and the first scan clock signal to a first scan chain to check transition faults in a first circuit of the integrated circuit using launch-on-shift (LOS) mode, where: when the scan enable signal is asserted, each clock pulse of the first clock signal has a corresponding pulse in the first scan clock signal, and each clock pulse of the first clock signal has a corresponding pulse in the second scan clock signal; and when the scan enable signal is deasserted, each clock pulse of the first clock signal has a corresponding pulse in one of the first and second scan clock signals and does not have a corresponding pulse in the other of the first and second scan clock signals.
(113) Example 17. The method of example 16, where generating the first and second scan clock signals includes generating the first and second scan clock signals during a first scan test, where, the first clock signal has a first frequency during the first scan test, the method further including, during a second scan test, generating a second clock signal, the second clock signal having a second frequency at least one order of magnitude higher than the first frequency; generating a third scan clock signal based on the first clock signal, the second clock signal, and the scan enable signal; and providing the scan enable signal and the third scan clock signal to a second scan chain to check transition faults in the first circuit of the integrated circuit using launch-on-capture (LOC) mode, where the second scan test is performed before or after the first scan test.
(114) Example 18. An integrated circuit including: a first pin or pad configured to receive a first clock signal, the first clock signal having a first frequency; a second pin or pad configured to receive a scan enable signal; a phase-locked loop (PLL) configured to generate, at an output of the PLL, a second clock signal, the second clock signal having a second frequency at least one order of magnitude higher than the first frequency; a clock control circuit having a first input coupled to the first pin or pad, a second input coupled to the second pin or pad, and an output; an on-chip clock controller having a first input coupled to the first pin or pad, a second input coupled to the second pin or pad, and a third input coupled the output of the PLL, and an output; a first scan chain having a first input coupled to the output of the clock control circuit, and a second input coupled to the second pin or pad; a first circuit coupled to the first scan chain; a second scan chain having a first input coupled to the output of the on-chip clock controller, and a second input coupled to the second pin or pad; and a second circuit coupled to the second scan chain, where the clock control circuit is configured to generate, at the output of the clock control circuit, a first scan clock signal based on the first clock signal and the scan enable signal to check transition faults in the first circuit using launch-on-shift (LOS) mode or pipeline LOS mode, where the on-chip clock controller is configured to generate, at the output of the on-chip clock controller, a second scan clock signal based on the first clock signal, the second clock signal, and the scan enable signal to check transition faults in the second circuit using launch-on-capture (LOC) mode, and where the clock control circuit and the on-chip clock controller are configured to generate the first and second scan clock signals in parallel.
(115) Example 19. The integrated circuit of example 18, where: the first scan clock signal includes a first shift pulse when the scan enable signal is asserted, and a first capture pulse when the scan enable signal is deasserted, where the first shift pulse of the first scan clock signal corresponds to a first clock pulse of the first clock signal, and where the first capture pulse of the first scan clock signal corresponds to a second clock pulse of the first clock signal; and the second scan clock signal includes a first shift pulse when the scan enable signal is asserted, and a first capture pulse when the scan enable signal is deasserted, where the first shift pulse of the second scan clock signal corresponds to the first clock pulse of the first clock signal, and where the first capture pulse of the second scan clock signal corresponds to a first clock pulse of the second clock signal.
(116) Example 20. The integrated circuit of one of examples 18 or 19, where the clock control circuit includes: a first flip-flop having an input coupled to the second pin or pad; a first inverter having an input coupled to the second pin or pad; a second flip-flop having an input coupled to an output of the first inverter; a first logic circuit having a first input coupled to an output of the first flip-flop, and a second input coupled to an output of the second flip-flop; and a first clock gating circuit having an enable input coupled to an output of the first logic circuit, a clock input coupled to the first pin or pad, and an output generating the first scan clock signal.
(117) While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention, will be apparent to persons skilled in the art upon reference to the description. It is therefore intended that the appended claims encompass any such modifications or embodiments.