The present invention relates generally to integrated circuits and methods of testing integrated circuits and, more particularly, to testing integrated circuits that include asynchronous paths.
Integrated circuits undergo testing before being deemed fit for operation. One such type of testing involves using Automatic Test Equipment (ATE) to check the integrated circuit's input/output (I/O) interface signal timing with respect to a reference signal. Typically, test patterns are used to configure the functional circuits of the integrated circuit to output actual data at the I/O interface in defined cycles, and the ATE is configured to expect the same data on the I/O interfaces in same cycles. If the output data captured by the ATE does not match the expected test data, the integrated circuit is considered faulty. Some integrated circuits, for example certain core-based system on chip (SOC) devices, are designed to contain many asynchronous paths in order to achieve high speed timings at low power. Consequently, due to the asynchronous nature of the data transfers, the times at which outputs appear at the I/O interfaces are indeterminate. Many factors and process variations are known to introduce this variance, such as process, temperature, and voltage (PVT) variation, for example. Changes in these factors may impact the data transfer timings and lead to cycle-shifted outputs at the I/O interfaces. The ATE would consider such cycle-shifted outputs as erroneous and thus the device would fail the test and result in yield loss. Hence, this presents a challenge when testing an SOC using cycle-based testers such as are found in typical automated test equipment (ATE). Even though the functionality of an interface may be met by the design under testing, the cycle accuracy is compromised. So it can be extremely difficult and sometimes impossible to stabilize tester patterns across different PVT conditions.
Thus it would be advantageous to eliminate indeterminate behavior in semiconductor devices during testing.
The invention, together with objects and advantages thereof, may best be understood by reference to the following description of preferred embodiments together with the accompanying drawings in which:
The detailed description set forth below in connection with the appended drawings is intended as a description of presently preferred embodiments of the invention, and is not intended to represent the only forms in which the present invention may be practised. It is to be understood that the same or equivalent functions may be accomplished by different embodiments that are intended to be encompassed within the spirit and scope of the invention. In the drawings, like numerals are used to indicate like elements throughout. Furthermore, terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that module, circuit, device components, structures and method steps that comprises a list of elements or steps does not include only those elements but may include other elements or steps not expressly listed or inherent to such module, circuit, device components or steps. An element or step proceeded by “comprises . . . a” does not, without more constraints, preclude the existence of additional identical elements or steps that comprises the element or step.
In one embodiment, the present invention provides a circuit for enabling deterministic launch of a test transaction in an integrated circuit that includes a functional module. The circuit comprises a gate module for receiving a trigger signal and a test transaction, and is arranged to gate or enable the test transaction, for application to an interface of the functional module, dependent on a logical state of the trigger signal.
In another embodiment, the present invention provides a method for enabling deterministic launch of a test transaction in an integrated circuit that includes a functional module. The method comprises: generating a test transaction and applying the test transaction to the integrated circuit via a test port; generating a trigger signal; and inhibiting or enabling the test transaction from reaching an interface of the functional module, dependent on a logical state of the trigger signal.
In one example, test mode bus transactions are gated and on-board synchronizers are by-passed at the functional (IP) module interface. The gated bus transactions are released using an external trigger in order to control loss of cycle accuracy caused by on-board synchronizers during functional testing. The invention may, advantageously, make use of the conventional General Purpose Input-Output (GPIO) interfaces provided on the semiconductor device which are driven from external ATE during a test procedure. The GPIOs can be controlled in order to account for PVT variations and achieve deterministic and stable behavior of the device while being tested.
Advantageously, no modifications to any of the functional (IP) modules comprising the device need to be made. The method in accordance with the invention may be used in any SOC testing procedure independent of the type of IP modules included in the SOC design.
Referring now to
During a test mode of the device, test mode transactions are launched from the device periphery through the test port 101. These transactions are converted by the test port 101 to internal bus protocol signals (AXI in this example), which are then routed to the multiplexer 102. Typically, these transactions pass through various protocol converters for example magenta, AXI, AHB and IP bus before they reach a destination register interface of a functional module. Through the interface 108 associated with a particular functional module, these transactions write into a register inside the functional module resulting in launch of the transactions on the device interface. The synchronizers 102, 105, 107 present between the various protocol converters represent the asynchronous interfaces which are typically present in the SOC device 100. Owing to the presence of the asynchronous interfaces, the time of launch of test mode transactions relative to receipt of a transaction at the test port 101 can vary depending on the prevailing PVT conditions. Current ATE testing requirements stipulate that this variation should be within one ATE clock cycle. The known arrangement of
An integrated circuit such as a system on chip (SOC) device that includes a circuit for enabling the device to achieve determinism in launching of a test signal, as required by the ATE testing procedure, will now be described with reference to
The latch module 202 comprises three flip-flops 208, 209, 210 arranged in series. A first flop-flop 208 receives the divided clock output from the clock divider module 201 at its clock input and receives the external trigger on line 207 from the ATE at its signal input. The second flip flop 209 receives the clock signal generated by the clock generator 109 at its clock input and an output from the first flip-flop 208 at its signal input. The third flip flop 210 receives the clock signal generated by the clock generator 109 at its clock input and an output from the second flip-flop 209 at its signal input. An output of the third flip-flop 210 is operably coupled to the gating module 203.
The gating module 203 in this embodiment is configured to support IP bus protocol and comprises an AND gate 212 and an OR gate 211. The AND gate receives the output from the protocol converter 106 via the third synchronizer 107 at a first input and an inverted version of the output from the third flip-flop of the latch module 202 at a second input. The output of the AND gate 211 is fed to the interface 108. The OR gate receives an output from the interface 108 and the output from the third flip-flop 210. An output of the OR gate is fed to the protocol converter 106 via the third synchronizer 107. In another embodiment, the gating module 203 is configured to support the AXI protocol by replacing the OR gate 212 with a second AND gate (not shown). In this alternative embodiment, the signal received from the output of the third flip-flop 210 is inverted before being applied to the second AND gate.
The purpose of the gating module 203 is to gate “IPS” module enable signals (e.g., read/write transactions) under the control of the ATE and more specifically, to gate and enable the handshaking signals of the interface 108 that are used in a read/write operation on registers of a functional module of the SOC 200. In the embodiment of
The purpose of the latch module 202 is to generate the gating signal by propagating the received external trigger from the ATE on line 207 under the control of clock signals from the clock divider module 201. In order to gate a transaction appearing at the gating module 203, the external trigger supplied by the ATE on line 207 is held at a logical ‘high.’ To launch the transaction, the external trigger is de-asserted and is latched by the first flip-flop 208 on the slower clock signal from the clock divider module 201. It then passes through the second and third flip-flops 209, 210 on the faster clock signal supplied by the clock generator 109. The two additional flip-flops ease timing requirements and eliminate meta-stability on the propagated signal.
The output of the clock divider module 201 serves to capture the external trigger provided by the ATE. Providing a lower frequency for this purpose than would be provided by the clock generator 109 has the advantage of easing the timing requirements on the signal path between an SOC pad receiving the external trigger and the first flip-flop 208. The clock divider module 201 is controlled by the divider enable signal received on line 206 from the ATE and generated by the ATE at some specific time during a test cycle.
Referring now to
The connections as discussed herein may be any type of connection suitable to transfer signals from or to the respective nodes, units or devices, for example via intermediate devices. Accordingly, unless implied or stated otherwise, the connections may for example be direct connections or indirect connections. The connections may be illustrated or described in reference to being a single connection, a plurality of connections, unidirectional connections, or bidirectional connections. However, different embodiments may vary the implementation of the connections. For example, separate unidirectional connections may be used rather than bidirectional connections and vice-versa. Also, plurality of connections may be replaced with a single connection that transfers multiple signals serially or in a time multiplexed manner. Likewise, single connections carrying multiple signals may be separated out into various different connections carrying subsets of these signals. Therefore, many options exist for transferring signals.
Each signal described herein may be designed as positive or negative logic. In the case of a negative logic signal, the signal is active low where the logically true state corresponds to a logic level zero. In the case of a positive logic signal, the signal is active high where the logically true state corresponds to a logic level one. Note that any of the signals described herein can be designed as either negative or positive logic signals. Therefore, in alternate embodiments, those signals described as positive logic signals may be implemented as negative logic signals, and those signals described as negative logic signals may be implemented as positive logic signals. Furthermore, the terms “assert” or “set” and “negate” (or “de-assert” or “clear”) are used herein when referring to the rendering of a signal, status bit, or similar apparatus into its logically true or logically false state, respectively. If the logically true state is a logic level one or ‘high’, the logically false state is a logic level zero or ‘low’ and if the logically true state is a logic level zero or ‘low’, the logically false state is a logic level one or ‘high’.
Those skilled in the art will recognize that the boundaries between logic blocks are merely illustrative and that alternative embodiments may merge logic blocks or circuit elements or impose an alternate decomposition of functionality upon various logic blocks or circuit elements. Thus, it is to be understood that the architectures depicted herein are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality.
Any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermediate components. Likewise, any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality.
Furthermore, those skilled in the art will recognize that boundaries between the above described operations merely illustrative. The multiple operations may be combined into a single operation, a single operation may be distributed in additional operations and operations may be executed at least partially overlapping in time. Moreover, alternative embodiments may include multiple instances of a particular operation, and the order of operations may be altered in various other embodiments.
Also for example, in one embodiment, the illustrated examples may be implemented as circuitry located on a single integrated circuit or within a same device. Further, the entire functionality of the modules shown in
The description of the preferred embodiments of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or to limit the invention to the forms disclosed. It will be appreciated by those skilled in the art that changes could be made to the embodiments described above without departing from the broad inventive concept thereof. It is understood, therefore, that this invention is not limited to the particular embodiment disclosed, but covers modifications within the spirit and scope of the present invention as defined by the appended claims.