Data transmission code and interface
11145340 · 2021-10-12
Assignee
Inventors
Cpc classification
G01R31/31727
PHYSICS
H04L43/106
ELECTRICITY
G11C7/222
PHYSICS
Y02D10/00
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
G11C7/22
PHYSICS
G11C7/10
PHYSICS
Abstract
A data transmission interface for use in a first integrated circuit, for encoding and sending a data packet from the first IC to a second IC via a data bus having three data wires, the data transmission interface being arranged to generate three time-dependent binary signals which jointly encode the data packet, each of the signals being associated with a unique data wire of the data bus and spanning a temporal cycle T within which are defined six consecutive time stamps T.sub.1 . . . T.sub.6 at which the signals are allowed to change logical state, the data transmission interface further arranged to transmit the signals to the second IC substantially in parallel on their respective data wires, wherein, irrespective of the data packet content: at each time stamp T.sub.1 . . . T.sub.6 exactly one of the signals changes logical state; each signal changes logical state twice during the cycle; and in the first half of the cycle, all signals change from a logical low state to a logical high state or all signals change from a logical high state to a logical low state.
Claims
1. A data transmission interface in a first integrated circuit, IC, the data transmission interface module configured to encode and send a data packet from the first IC to a second IC via a data bus having three data wires, the data transmission interface being arranged to generate three time-dependent binary signals which jointly encode the data packet, each of the signals being associated with a unique data wire of the data bus and spanning a temporal cycle T within which are defined six consecutive time stamps T1 . . . T6 at which the signals are allowed to change logical state, the data transmission interface further arranged to transmit the signals to the second IC substantially in parallel on their respective data wires, wherein, irrespective of the data packet content: at each time stamp T1 . . . T6 exactly one of the signals changes logical state; each signal changes logical state twice during the cycle T; and in the first half of the cycle T, all signals change from a logical low state to a logical high state or all signals change from a logical high state to a logical low state.
2. The data transmission interface according to claim 1, comprising a lookup table which stores, for each possible data packet, a set of values corresponding to the logical states of the three signals at each of the time stamps T1 . . . T6, the data transmission interface being arranged to determine, from the lookup table, the set of values corresponding to said data packet.
3. The data transmission interface according to claim 1, comprising three 6-bit shift registers, one associated with each signal, the data transmission interface being arranged to load a set of values into the shift registers corresponding to the logical states of the three signals at each of the time stamps T1 . . . T6, and thereafter shift said set of values out of the shift registers in parallel, thereby generating the three time-dependent binary signals.
4. The data transmission interface according to claim 3, comprising a clock generation circuit arranged to generate a transmitter clock signal that has rising or falling edges at each of the time stamps T1 . . . T6.
5. The data transmission interface according to claim 4, wherein the clock generation circuit is arranged to provide the transmitter clock signal to the shift registers to shift said set of values out of the three shift registers in parallel at time stamps T1 . . . T6.
6. The data transmission interface according to claim 1, wherein the time interval between time stamps T3 and T4 is at least one quarter of duration of the cycle T, preferably substantially one third of the duration of the cycle T.
7. A data receiving interface for use in a second integrated circuit, IC, configured to receive and decode a data packet sent from a first IC to the second IC via a data bus having three data wires, the data receiving interface arranged to receive three time-dependent binary signals which jointly encode the data packet, each of the signals being associated with a unique wire of the data bus and spanning a temporal cycle T within which are defined six consecutive time stamps T1 . . . T6 at which the signals are allowed to change logical state, the data receiving interface further arranged to decode the data packet from the three signals, wherein, irrespective of the data packet content: at each time stamp T1 . . . T6 exactly one of the signals changes logical state; each signal changes logical state twice during the cycle T; and in the first half of the cycle T, all signals change from a logical low state to a logical high state or all signals change from a logical high state to a logical low state.
8. The data receiving interface according to claim 7, comprising a clock recovery circuit arranged to receive the three signals and to generate a receiver clock signal which contains a clock edge or pulse at each of the time stamps T1 to T6.
9. The data receiving interface according to claim 8, wherein the clock recovery circuit comprises a first XOR gate, a second XOR gate and a delay module, which together are arranged to generate the receiver clock signal.
10. The data receiving interface according to claim 8, wherein the clock recovery circuit is further arranged to generate a system clock signal which contains exactly one clock pulse per the cycle T.
11. The data receiving interface according to claim 8, wherein the data receiving interface further comprises a data recovery circuit arranged to receive the receiver clock signal and the three signals and to decode the data packet therefrom.
12. The data receiving interface according to claim 11, wherein the data recovery circuit comprises three 6-bit shift registers, one associated with each signal, the three shift registers arranged to be populated with values corresponding to the logical states of the three signals at each of the time stamps T1 . . . T6, and further arranged to be triggered from the receiver clock signal.
13. The data receiving interface according to claim 12, further comprising a lookup table which stores, for each possible data packet, a set of values corresponding to the logical states of the three signals at each of the time stamps T1 . . . T6 spanning the cycle T, the lookup table arranged to receive and convert the output contents of the shift registers to thereby decode the data packet.
14. The data receiving interface according to claim 7, wherein the time interval between time stamps T3 and T4 is at least one quarter of the cyclo duration of the cycle T, preferably substantially one third of the cycle duration of the cycle T.
15. A system comprising a first device, a second device and a data bus comprising three data wires, the first device and the second device being connected to the data bus, the first device comprising a data transmission interface operable to generate three time-dependent binary signals which jointly encode a data packet, each of the signals spanning a temporal cycle T within which are defined six consecutive time stamps T1 . . . T6 at which the signals are allowed to change logical state, the data transmission interface being operable to transmit the three signals to the second device substantially in parallel on respective data wires of the data bus, the second device comprising a data receiving interface operable to receive the three signals on the data bus and to decode the data packet from the three signals, wherein, irrespective of the data packet content: at each time stamp T1 . . . T6 exactly one of the signals changes logical state; each signal changes logical state twice during the cycle T; and in the first half of the cycle T, all signals change from a logical low state to a logical high state or all signals change from a logical high state to a logical low state.
16. The system according to claim 15, wherein the first device is a production tester and the second device is an integrated circuit, IC, under test.
17. The system according to claim 16, wherein the production tester is arranged to perform a scan test of the IC under test.
18. The system according to claim 16, wherein the production tester comprises a pattern memory and a driver module.
19. The system according to claim 16, wherein the IC under test comprises a TAP controller.
20. The system according to claim 16, wherein the IC under test comprises a data encoding circuit operable to transmit recovered output scan data back to the production tester.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) Embodiments will be described, by way of example only, with reference to the drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12) It should be noted that the Figures are diagrammatic and not drawn to scale. Relative dimensions and proportions of parts of these Figures have been shown exaggerated or reduced in size, for the sake of clarity and convenience in the drawings. The same reference signs are generally used to refer to corresponding or similar feature in modified and different embodiments.
DETAILED DESCRIPTION OF EMBODIMENTS
(13) According to the present disclosure, with reference to
(14) The signals are transmitted to the receiver IC substantially in parallel on their respective data bus wires. The receiver IC comprises a data receiving interface 112 which is arranged to receive the signals from the transmitter interface via the data bus and decode the original data packet to provide a recovered data packet 114 to application logic 116 of the receiver IC. It should be appreciated that the data bus 108 could have more than one receiving IC connected to it, each of which is capable of monitoring the data bus and ‘listening’ for a specific addressing signal, for example. Therefore, whilst the embodiments described herein describe a first IC in communication with a second IC over a data bus, it is to be understood that the disclosure also extends to a first IC in communication with two or more ICs over a data bus. Further, it should be appreciated that one or more ICs may have both a data transmission and a data receiving interface, as disclosed herein, such that said one or more ICs are capable of bi-directional communication of a data bus. Furthermore, it should be appreciated that data receiving and transmitting interfaces according to the present disclosure can be used in other devices/circuits, such as production testers and the like.
(15)
(16) Additionally, each signal changes logical state twice during the cycle, again irrespective of the data packet content. This means that each signal begins and ends a cycle in the same logical state. In one embodiment, illustrated in
(17) Because at each time stamp T.sub.1 . . . T.sub.6 exactly one of the signals changes logical state, it is always possible to recover a clock signal locally at the receiver IC, thereby not requiring a dedicated clock signal to be transmitted from to the transmitter IC to the receiver IC over a dedicated clock wire. This allows all wires of the data bus to be used for transmitting data without needing a dedicated clock wire and hence maximizes the possible data bandwidth over the three-wire bus.
(18) In the illustrated embodiment, time intervals ΔT between time stamps T.sub.1 and T.sub.2; T.sub.2 and T.sub.3; T.sub.4 and T.sub.5; and T.sub.5 and T.sub.6 are all substantially one twelfth of the cycle duration T In the illustrated example, the time interval between time stamps T.sub.3 and T.sub.4 is one third of the cycle duration T. Therefore, a duration of one sixth the cycle duration T occurs at the beginning and end of the cycle where no signal state changes occur, e.g. to act as a buffer between adjacent cycles. It should be appreciated that variations on these timing intervals may be made without departing from the scope of the present disclosure. However, in general it is desirable that the time interval between time stamps T.sub.3 and T.sub.4 is at least twice the time interval ΔT between the other time stamps, e.g. three or four times said time interval. The duration at the beginning and end of the cycle where no signal state changes occur is modified accordingly and, in general, the duration at the beginning of the cycle where no signal state changes occur will be the same as the duration at the end of the cycle where no signal state changes occur. Furthermore, it is desirable that ΔT is greater than 5% of the cycle duration T, e.g. one twelfth of the cycle duration.
(19) Based on the above exemplary encoding scheme, a data transfer capacity of the three-wire data bus of 5 bits per cycle can be achieved. This can be understood by considering the different combinations of signal state changes that can occur (i.e. code words) whilst still respecting the constraints set out above. For the rising or falling edges at T.sub.1 . . . T.sub.3 there are six possible combinations. These are summarized in Table 1 below where e.g. row 1 of the table means that the signal on wire 1 changes state at T.sub.1, the signal on wire 2 changes at T.sub.2 and the signal on wire 3 changes at T.sub.3.
(20) TABLE-US-00001 TABLE 1 T.sub.1 T.sub.2 T.sub.3 W.sub.1 W.sub.2 W.sub.3 W.sub.1 W.sub.3 W.sub.2 W.sub.2 W.sub.1 W.sub.3 W.sub.2 W.sub.3 W.sub.1 W.sub.3 W.sub.1 W.sub.2 W.sub.3 W.sub.2 W.sub.1
(21) Likewise, for the falling or rising edges at T.sub.4 . . . T.sub.6 there are also six possible combinations. These are summarized in Table 2 below where e.g. row 1 of the table means that the signal on wire 1 changes state at T.sub.4, the signal on wire 2 changes at T.sub.5 and the signal on wire 3 changes at T.sub.6.
(22) TABLE-US-00002 TABLE 2 T.sub.4 T.sub.5 T.sub.6 W.sub.1 W.sub.2 W.sub.3 W.sub.1 W.sub.3 W.sub.2 W.sub.2 W.sub.1 W.sub.3 W.sub.2 W.sub.3 W.sub.1 W.sub.3 W.sub.1 W.sub.2 W.sub.3 W.sub.2 W.sub.1
(23) Therefore, overall there are 6*6=36 possible combinations for how signal states can change within one cycle, according to the rules of the encoding scheme set out above. Using only 32 of these 36 possible combinations enables a 5 bit data packet to be transmitted in a single cycle. Hence the data transfer capacity of the 3-wire data bus according to the present disclosure is 5 bits per cycle. This is greater than the capacity of 4 bits per cycle which is achievable using a serial peripheral interface when employing a dual data rate code, where one wire of the three-wire bus is dedicated for transmitting a clock signal and the other two wires are used as data wires.
(24) An exemplary data transmission interface 110 according to the present disclosure is now described with reference to
(25) As the bus 108 has no dedicated clock wire, since it does not need one according to the present disclosure, one or more clock signals are recovered locally in the receiving IC 106. This can be achieved by the exemplary clock recovery circuit 122 shown in
(26) In some embodiments, the clock recovery circuit 122 is further arranged to generate a system clock signal clock_SYS which contains exactly one clock pulse per cycle. The system clock signal is used by the application logic 116 of the receiver IC. The system clock signal may, for example, always have a rising edge at T.sub.1 and always have a falling edge at T.sub.4, irrespective of the data packet content, and hence can provide a clean, reliable clock with a 50% duty cycle for use by the application logic. To generate the system clock signal, the clock recovery circuit 122 also comprises an OR gate 130, an AND gate 132, a third XOR gate 134 and a delay flip-flop 136, which together are arranged to generate the system clock signal.
(27) In the clock recovery circuit 122, the first XOR gate 124 changes its output state every time one of its three input signals changes state. Hence, at each of the time stamps T.sub.1 . . . T.sub.6, this output changes its state. The output signal from the first XOR gate 124 and a delayed version of it are both fed to OR gate 128 which hence has its output at logic 1 in the time interval from a signal change of the output of first XOR gate 124 until the time interval r later. Then, the output of second XOR gate 128 stays at logic 0 until the next time stamp. The output of second XOR gate 128 hence has rising edges at each of the time stamps T.sub.1 . . . T.sub.6, and falling edges that occur a time r after each time stamp.
(28) The OR gate 130 has an output logic 1 in the whole time between T.sub.1 and T.sub.6 (as in this time interval, at least one of the signals is logic 1). The AND gate 132 has an output logic 1 in the whole time between T.sub.3 and T.sub.4 (as in this time interval, all three signals are logic 1). The output of the third XOR gate 134 is hence 1 between T.sub.1 and T.sub.3, and between T.sub.4 and T.sub.6. It has thus rising edges at T.sub.1 and T.sub.4. Using this signal as a clock signal for the delay flip-flop 136 yields a clock signal clock_sys as shown in
(29) An exemplary data receiving interface 112 according to the present disclosure is now described with reference to
(30)
(31) In addition to data transmission from a first IC to a second IC, the present disclosure also covers the transmission from a production tester to an IC, such as a device under test (DUT), over a 3-wire data bus. This may be used to perform a scan test of ICs with limited pin count but where a high data rate is nevertheless desirable. Although a scan test is usually performed prior to device delivery using a production tester, a scan test may also be performed in the course of functional safety, e.g. during every start-up of a system containing the device. In many implementations of scan test design for testing (DFT) logic, the information as to whether the scan test is e.g. a transition test or a stuck-at test is transferred to the IC under test in an initialization sequence prior to transmission the actual scan patterns. A scan shift enable (SE) bit is often fed into the IC under test on a separate wire. Hence typically 5 scan channels require 11 IC pins: 5 for scan in, 5 for scan out and 1 for SE. According to the present disclosure, the SE bit can be generated internally within the IC under test and therefore it is advantageously possible to encode 11 internal scan bits (5 input, 1 scan control, 5 scan out) using only 6 external wires (3 input wires and 3 output wires).
(32) As set out above, e.g. with reference to Tables 1 and 2, according to encoding schemes of the present disclosure, 36 combinations exist for how signal logical states can be distributed across the three wires of a bus. In the examples of data transmission from a first IC to a second IC, outlined above, only 32 of these 36 combinations were used, to encode a 5-bit data packet. The additional 4 combinations have utility in performing a scan test as will now be described. The data word output by the lookup table in the production tester splits into the scan_in data to be shifted into the scan chain, and the shift-enable bit. Table 3 below shows how, for the purpose of production testing, the 36 possible code words can be used to encode 5 scan input bits of data, in addition to encoding some internal scan control signals.
(33) TABLE-US-00003 TABLE 3 Code Word Meaning 0-31 Encoding scan input bits 1-5. 32 Following cycle is a dead cycle, without clock. 33 Following cycle is a stuck-at test normal mode, SE = 0. 34 Following cycle is a transition test normal mode, SE = 0. 35 TAP controller reset
(34) A coarse overview of the hardware for performing a scan test of an IC using a production tester as transmitter is shown in
(35)
(36) It should be appreciated that the above-described production test setup, which effectively transfers 5 internal wires using 3 external bus wires, is independent of the specific test access and test control mechanisms being employed. It hence does not bundle JTAG connections and is not necessarily intended to convey JTAG control data. A possible interaction of the 3-wire data bus logic and an on-chip test access port (TAP) controller, according to the present disclosure, is outlined with reference to
(37) It should be appreciated that embodiments disclosed herein can be realised either in positive or in negative logic. In positive logic, which is the most common form, logic 0 corresponds to a lower voltage, while logic 1 corresponds to a higher voltage. In negative logic, logic 0 corresponds to a higher voltage. It should also be appreciated that whilst certain exemplary circuits have been disclosed which are arranged to encode and decode signals encoding a data packet according to the encoding scheme disclosed herein, alternative circuits could also perform the function of encoding and decoding data packets according to the disclosed encoding scheme utilizing three time-dependent binary signals.
(38) Although the appended claims are directed to particular combinations of features, it should be understood that the scope of the disclosure of the present invention also includes any novel feature or any novel combination of features disclosed herein either explicitly or implicitly or any generalisation thereof, whether or not it relates to the same invention as presently claimed in any claim and whether or not it mitigates any or all of the same technical problems as does the present invention.
(39) Features which are described in the context of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable sub-combination. The applicant hereby gives notice that new claims may be formulated to such features and/or combinations of such features during the prosecution of the present application or of any further application derived therefrom.
(40) For the sake of completeness it is also stated that the term “comprising” does not exclude other elements or steps, the term “a” or “an” does not exclude a plurality and reference signs in the claims shall not be construed as limiting the scope of the claims.