The field of the invention is that of testing integrated circuits, in particular testing logic circuits structurally using clock signals that are operated at functional speed.
In the standard methods of testing ASIC integrated circuits, the circuit contains test structures that supply a scan vector to the operating components, which process that data. The result of the processing of the scan vector is then compared against the expected values to see if the part passes or fails.
In addition, to supplying a scan vector of data for the circuit to operate on, the testing setup also supplies a set of clock signals. In various test modes, non-standard clock pulses may be required. The required clock signal may be a short pulse train, a single pulse, a single edge of a clock pulse (rising or falling) or a DC level, high or low.
Integrated circuits often have different clock domains that use clock signals that may differ in phase and/or frequency. The invention enables an at speed structural test of logic using the functional clock. The invention does not depend on a particular scan style such as Mux-Scan or LSSD.
In typical design practices, the components of the clock distribution signals for test clocks are not as fast as the comparable distribution system for functional (those used in normal operation) clocks, so that it is not possible to perform an “at speed” test; i.e. at normal operating speed. Evidently, there may be a problem in a circuit that operates correctly at a reduced test speed, but not at the nominal operating speed.
For typical structural test of an integrated circuit, a slow test clock is brought in and replaces the functional clocks. This clock is slow enough that all the logic in multiple clock domains can be tested using this single clock. In addition functional clock manipulation circuits such as clock selection, phase shifting, and clock gating can be bypassed and ignored. As the test clock speed is increased towards the functional clock speeds problems appear with the clock manipulation circuits rendering the tests invalid.
The art could use a flexible system for performing a test at the functional speed. In addition the art could use a flexible system for testing using clocks approaching or at functional clock speeds. This system should be able to correctly handle commonly used clock manipulation circuits. The invention enables a method of testing correctly such clock manipulation circuits.
The invention relates to a clock selection circuit for selectively passing one or more clocks into portions of an integrated circuit for testing.
A feature of the invention is that the selection circuit contains stored data for selecting which clock is to be passed or blocked into a domain of the circuit for test.
Another feature of the invention is the ability to pass a functional clock into a section of logic for an at speed test under test program control.
Another feature of the invention is the ability to pass a clock other than the functional clock into the logic in a test mode.
When testing an ASIC using functional clocks, additional control of clock structures are needed to permit selection of the necessary clock configuration in a multiclock domain environment. A key element of control involves clock gating.
Clock gating is a structure often used by designers for power control, clock selection, etc. In traditional stuck fault testing, this control is not a problem as the design is flattened to a single clock domain and the test clock timing is very slow compared to the functional clock operation. When a design is to be tested using clocks at functional speeds, test vectors are scanned in using the slow test clock and then the design is un-flattened for test and clocks at functional speeds are used for a highly parallel but non-functional test. Not having clock gating controllable under test can lead to low coverage when the clock gating is not enabled (clock passed through) or the wrong gate is enabled often causing the logic behind the clock gate not to be tested adequately. Also not having clock gating controllable under test can lead to test failures where mutually exclusive clock gates were enabled in a design employing tradition hard wired clock gating for test.
When testing an ASIC using functional clocks, additional control of clock structures are needed to permit selection of the necessary clock configuration or modification of clock operation in a multilink domain environment. A key element of such control involves basic clock selection.
Clock selection is a structure often used by designers to select between different clock frequencies or clock phases, etc. In traditional stuck fault testing, this control is not a problem as the design is flattened to a single clock domain and timing is very slow compared to the functional clock operation. When a design is to be tested using clocks at functional speeds, test vectors are scanned in using the slow test clock and then the design is un-flattened for test and clocks at functional speeds are used for a highly parallel but non-functional test. Not having clock selection controllable under test can lead to low coverage when the clock selection is not enabled for the fastest or most demanding clock causing the logic behind the clock selection not to be tested adequately. Also not having clock selection controllable under test can lead to test failures where mutually exclusive clock selections are enabled. When the test vectors are being generated for targeted faults, the software can work to overcome these difficulties with increased test generation time and larger test vector volume. However when there have been no structural provisions to fix mutually exclusive clock selections, no such solutions exist. The structure described below overcomes these obstacles. This proposal is independent of test style (LSSD or Mux-Scan).
According to the present invention, to achieve testability objectives, it is required to be able to selectively enable or disable a clock gate. If all clock gating was enabled, (the clock is allowed to propagate through the circuit), then the sum of the phase shifts would result in a clock output which would be unacceptable for an at speed functional test. If all the clock gates were turned off (clock not allowed to propagate through) then the logic that is activated or exposed by this clock circuit would not be testable, resulting in a loss of coverage. This invention allows a method of control to permit test ability and coverage.
Clock gates such as 317, 327 and 337 would be handled by the following method. First, during functional synthesis or during Design For Test Synthesis (DFTS), Clock gates such as 317, 327 and 337 would be replaced by the invention as illustrated by
The following circuit shown in
Here Gate 505 is the customer's gating logic. Logic gates 501-504 and 506-510 are the added logic to provide tester control. The ASST signal is low for functional usage as well as for Stuck At Fault testing. When switching modes to an At Speed Structural Test, the ASST signal would go high after scan is completed (or earlier). This transfers the gate control from the ASIC designer's logic to tester control. The Flip-Flops 509 & 510 then select how clock gating is to be handled. These flip-flops are either part of the general scan chains or could be special test control registers (advantageous for LBIST).
For normal operation, (mission mode) the ASST signal and MUXSCAN signals are low. This removes AND 508, Inverter 501, OR 507 and NAND 503 from control. The ‘Clock Gating signal’ 512 passes through NAND 502 and NAND 504 and is applied in its true state to NAND 505. The other inputs to NANDS 502 and NAND 504 have been forced high by the control signals 513 and 514 being low.
For test purposes, the method of operation needs to be broken into two modes of operation. The first is the SCAN load of the scan latches. The second is the At Speed Test of the logic.
For scan load of scannable latches in a MuxScan environment, the MuxScan signal (this could be the SE Scan Enable typically used or a unique signal as a design dictates) goes high forcing the input to clock gate NAND 505 allowing the clock 515 to propagate through to output 511. When MuxScan signal 514 is high, the state of the ASST signal 513 is a don't care. The MuxScan signal input into OR gate 507 and OR gate 506 forces both inputs of NAND 503 high in turn forces one input of NAND 504 low. With one input of NAND 504 low, its output goes high allowing the clock to propagate through NAND 505. The scan flip-flops of the design as well as flip-flops 510 and 509 are loaded with the appropriate test values. In a LSSD environment, the MuxScan control signal is not required and could be omitted, OR 507 and OR 506 are removed and the Test Override Flip-flop 509 being directly wired to NAND 503.
For the At Speed Test, the MuxScan Control signal 514 goes low, the ASST signal 513 goes high and the operation is now dependent on the state of the ASST signal and the contents of the scan flip-flop 509 and 510 which determine the desired mode during test.
If the clock gating signal path is to be tested, the Gate Path Check flip-flop 510 is loaded with a “0” and the circuit behaves as it would in a functional mode. The “0” on input of AND 508 forces its output low which in turn forces inputs to NAND 502 and NAND 504 high. This allows the Clock Gating Signal 512 to propagate through to the input of NAND 505. The contents of the Test override flip-flop 509 is a don't care. If it is not desired to test the clock gate generation logic, the flip-flop 510 and NAND 508 can be omitted and the ASST control signal 513 can go directly to INVERTER 501.
If the state of the clock gate is to be changed by test control, then the Gate Path Check flip-flop 510 is loaded with a “1” that combined with ASST control signal 513 being high forces the input to NAND 502 low and removes control of Clock Gating Signal from NAND 502. The contents of the Test Override flip-flop determine the operation of the clock gate NAND 505. If the Test Override flip-flop 509 is loaded with a 1, the input to NAND 505 is forced high and the clock gate NAND 505 is enabled (the clock is passed through). If the Test Override flip-flop is loaded with a 0, the input to NAND 505 is forced low and the clock gate NAND 505 is disabled (the clock is blocked from propagating through).
The flow chart in
The process starts in block 405, then the first decision point is in block 410. If ASST is low and MuxScan is low, then the normal test or high speed test modes are not operative and the circuit behaves functionally.
The second decision point is block 420. When it is desired to scan data for testing, the MuxScan control is high and the ASST control signal is a don't care. and then all the clock gates are forced on (clocks propagated through). This allows the scan of scannable flip-flops and a test vector can be loaded.
The third decision point 430 is during the ASST test mode (ASST is high). Here a decision is made if the Gating logic is to be tested. If the test is desired, then the Gate Path Check flip-flop is loaded with a “0” and the ASST signal is invalidated and the circuit performs functionally.
The fourth Decision point is block 440. Here the propagation of the clock is under tester control, the ASST signal is high and the Gate Path Check Flip-flop is a one. The output of the Test Overide flip-flop controls the clock gate.
If the clock is blocked functionally then the logic fed by the clock is inactivated or that path for clock manipulation is not selected. If the path is blocked under test then the logic fed by the clock is not tested (intentionally) or that path for clock manipulation is not selected. It could be that a different path is selected.
The preceding discussion has used terms for various control signals that are common in the art. Other designers, however, may use different terms for a signal performing the same function. For purposes of the following claims, the signal referred to by the abbreviation ASST will be referred to as the first test control signal; the signal referred to as MuxScan will be referred to as the second test control signal; and the signal referred to as the Clock Gating Signal will be referred to as the third test control signal.
While the invention has been described in terms of a single preferred embodiment, those skilled in the art will recognize that the invention can be practiced in various versions within the spirit and scope of the following claims.