Data transmission code and interface
11169952 · 2021-11-09
Assignee
Inventors
Cpc classification
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
Abstract
The disclosure relates to a data transmission interface for use in a first integrated circuit (IC) for encoding and sending a data packet from the first IC to a second IC via a data bus having four data wires, the data transmission interface arranged to generate four time-dependent binary signals which jointly encode the data packet in signal edges thereof, each of the signals being associated with a unique wire of the data bus and spanning a temporal cycle T within which are defined four consecutive time stamps T.sub.1 . . . T.sub.4 at which edges can occur in the signals, 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.4 at least one of the four signals has an edge to enable clock recovery at the second IC.
Claims
1. A data transmission interface for use in a first integrated circuit (IC) for encoding and sending a data packet from the first IC to a second IC via a data bus having four data wires, the data transmission interface arranged to generate four time-dependent binary signals which jointly encode the data packet in signal edges thereof, each of the signals being associated with a unique wire of the data bus and spanning a temporal cycle T within which are defined four consecutive time stamps T.sub.1 . . . T.sub.4 at which edges can occur in the signals, 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 a data packet content, at each time stamp T.sub.1 . . . T.sub.4 at least one of the four signals has an edge to enable clock recovery at the second IC; a time difference between T.sub.2 and T.sub.3 is greater than both a time difference between T.sub.1 and T.sub.2 and also a time difference between T.sub.3 and T.sub.4; and no signal has edges at both T.sub.1 and T.sub.2 and no signal has edges at both T.sub.3 and T.sub.4.
2. The data transmission interface according to claim 1, comprising a lookup table which stores, for each possible data packet, a unique set of values corresponding to signal edges, the data transmission interface arranged to determine, from the lookup table, the set of values corresponding to said data packet.
3. The data transmission interface according to claim 2, further comprising four shift registers, one associated with each signal, the data transmission interface arranged to load said set of values into the shift registers and thereafter shift said set of values out of the shift registers in parallel using a common clock, thereby generating the four time-dependent binary signals jointly encoding the data packet.
4. The data transmission interface according to claim 1, wherein the time difference between T.sub.2 and T.sub.3 is at least twice the time difference between T.sub.1 and T.sub.2 and at least twice the time difference between T.sub.3 and T.sub.4.
5. The data transmission interface according to claim 4, wherein within the cycle T, times stamps T.sub.1 . . . T.sub.4 are given by:
T.sub.1=0.2*T;
T.sub.2=T.sub.1+0.1*T;
T.sub.3=T.sub.2+0.4*T; and
T.sub.4=T.sub.3+0.1*T.
6. The data transmission interface according to claim 1, wherein the data packet comprises 11 bits of data and the cycle T has a duration of less than 50 ns, such that a data transmission rate of at least 1 Gbit per second can be achieved.
7. A data transmission system comprising the first integrated circuit (IC) having the data transmission interface according to claim 1 connected to the second IC having a data receiving interface via the data bus having four data wires.
8. A data receiving interface for use in a second integrated circuit (IC) for receiving and decoding a data packet sent from a first IC to the second IC via a data bus having four data wires, the data receiving interface arranged to receive four time-dependent binary signals which jointly encode the data packet in signal edges thereof, each of the signals being associated with a unique wire of the data bus and spanning a temporal cycle T within which are defined four consecutive time stamps T.sub.1 . . . T.sub.4 at which edges can occur in the signals, the data receiving interface further arranged to decode the data packet from the four signals, wherein: irrespective of a data packet content, at each time stamp T.sub.1 . . . T.sub.4 at least one of the four signals has an edge to enable clock recovery at the data receiving interface; a time difference between T.sub.2 and T.sub.3 is greater than both a time difference between T.sub.1 and T.sub.2 and also a time difference between T.sub.3 and T.sub.4; and no signal has edges at both T.sub.1 and T.sub.2 and no signal has edges at both T.sub.3 and T.sub.4.
9. The data receiving interface according to claim 8, comprising a clock recovery circuit arranged to generate a clock signal which toggles its output whenever a signal edge occurs on any one of the four data wires.
10. The data receiving interface according to claim 9, wherein the clock recovery circuit comprises a finite state machine.
11. The data receiving interface according to claim 9, further comprising a data recovery circuit arranged to receive the clock signal and the four time-dependent binary signals as inputs and to decode the data packet therefrom.
12. The data receiving interface according to claim 11, wherein the data recovery circuit comprises: four shift registers, one associated with each of the four signals, the shift registers arranged to be populated with values corresponding to edges of the received signals and to be triggered from the clock signal; and a lookup table which stores, for each possible data packet, a unique set of values corresponding to signal edges, the lookup table arranged to convert output contents of the shift registers to thereby decode the data packet.
13. The data receiving interface according to claim 8, further comprising a data alignment module arranged to compensate offsets in travel times of the four signals from the first IC to the second IC.
14. The data receiving interface according to claim 8, wherein the time difference between T.sub.2 and T.sub.3 is at least twice the time difference between T.sub.1 and T.sub.2 and at least twice the time difference between T.sub.3 and T.sub.4.
15. The data receiving interface according to claim 14, wherein within the cycle T, times stamps T.sub.1 . . . T.sub.4 are given by:
T.sub.1=0.2*T;
T.sub.2=T.sub.1+0.1*T;
T.sub.3=T.sub.2+0.4*T; and
T.sub.4=T.sub.3+0.1*T.
16. The data receiving interface according to claim 8, wherein the data packet comprises 11 bits of data and the cycle T has a duration of less than 50 ns, such that a data transmission rate of at least 1 Gbit per second can be achieved.
17. A data receiving system comprising the second integrated circuit (IC) having the data receiving interface according to claim 8 connected to the first IC having a data transmitting interface via the data bus having four data wires.
18. A method of encoding and sending a data packet from a first integrated circuit (IC) to a second IC via a data bus having four data wires, the method comprising: generating, at a data transmission interface of the first IC, four time-dependent binary signals which jointly encode the data packet in signal edges thereof, each of the signals being associated with a unique wire of the data bus and spanning a cycle T within which are defined four consecutive time stamps T.sub.1 . . . T.sub.4 at which edges can occur in the signals; and transmitting the signals to the second IC substantially in parallel on their respective bus wires, wherein: irrespective of a data packet content, at each time stamp T.sub.1 . . . T.sub.4 at least one of the four signals has an edge to enable clock recovery at the second IC; a time difference between T.sub.2 and T.sub.3 is greater than both a time difference between T.sub.1 and T.sub.2 and also a time difference between T.sub.3 and T.sub.4; and no signal has edges at both T.sub.1 and T.sub.2 and no signal has edges at both T.sub.3 and T.sub.4.
19. A method of receiving and decoding a data packet sent from a first integrated circuit, IC, to a second IC via a data bus having four data wires, the method comprising: receiving, at a data receiving interface of the second IC, four time-dependent binary signals which jointly encode the data packet in signal edges thereof, each of the signals being associated with a unique wire of the data bus and spanning a cycle T within which are defined four consecutive time stamps T.sub.1 . . . T.sub.4 at which edges can occur in the signals; and decoding the data packet from the four signals at the data receiving interface, wherein: irrespective of a data packet content, at each time stamp T.sub.1 . . . T.sub.4 at least one of the plurality of signals has an edge to enable clock recovery at the second IC; a time difference between T.sub.2 and T.sub.3 is greater than both a time difference between T.sub.1 and T.sub.2 and also a time difference between T.sub.3 and T.sub.4; and no signal has edges at both T.sub.1 and T.sub.2 and no signal has edges at both T.sub.3 and T.sub.4.
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) 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
(12) According to the present disclosure, with reference to
(13) The signals in each cycle are transmitted to the receiver IC substantially in parallel on their respective bus data wires. The receiver IC comprises a data receiving interface 110 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 101′ to application logic 124 of the receiver IC. It should be appreciated that the data bus 106 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 or more ICs are capable of bi-directional communication of a data bus.
(14) The encoding scheme is chosen such that at each time stamp T.sub.1 . . . T.sub.4 at least one of the signals has an edge to enable clock recovery 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. In this manner, since the encoding scheme guarantees that, whatever the content of the data packet, at least one edge will always occur at each time stamp T.sub.1 . . . T.sub.4, it is always possible to recover a full clock signal at the receiver by monitoring when edges occur across the plurality of signals. 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.
(15) An exemplary encoding scheme according to the present disclosure is described with reference to
(16) In certain scenarios, e.g. to respect timing constraints of certain hardware, it may be beneficial to additionally require that no single signal have an edge at both T.sub.1 and T.sub.2 and that no signal has an edge at both T.sub.3 and T.sub.4. However, in such scenarios, if the time stamps are chosen such that the time difference between T.sub.2 and T.sub.3 is greater than the time difference between T.sub.1 and T.sub.2 and the time difference between T.sub.3 and T.sub.4 then a signal can still have edges at adjacent time stamps T.sub.2 and T.sub.3. In the example of
(17) Based on the above exemplary constraints (number of edges per cycle being 0, 1 or 2; edge at T.sub.1 vs. T.sub.2 and T.sub.3 vs. T.sub.4), a channel capacity of 11 bits per cycle can be reached. This is significantly greater than the capacity of 3 bits per cycle of 4-wire data busses with a dedicated clock wire and one active clock edge (e.g. serial peripheral interface) and 6 bits per cycle as obtainable in dual data-rate 4-wire busses. Based on the above exemplary constraints, there are 50 possible combinations, referred to as code words, for how signal edges can occur at the times T.sub.1 and T.sub.2 across the four data wires W.sub.1 . . . W.sub.4. These are listed in the table below where the meaning of the numbers is that e.g. “2012” means: the first data wire W.sub.1 has an edge at T.sub.2; the second data wire W.sub.2 has no edge, the third data wire W.sub.3 has an edge at T.sub.1; and the fourth data wire W.sub.4 has an edge at T.sub.2. For reading convenience, the table is grouped into three columns.
(18) TABLE-US-00001 Code word Edges 0 0012 1 0021 2 0102 3 0112 4 0120 5 0121 6 0122 7 0201 8 0210 9 0211 10 0212 11 0221 12 1002 13 1012 14 1020 15 1021 16 1022 17 1102 18 1112 19 1120 20 1121 21 1122 22 1200 23 1201 24 1202 25 1210 26 1211 27 1212 28 1220 29 1221 30 1222 31 2001 32 2010 33 2011 34 2021 35 2012 36 2201 37 2221 38 2210 39 2212 40 2211 41 2100 42 2102 43 2101 44 2120 45 2122 46 2121 47 2110 48 2112 49 2111
(19) A similar, corresponding set of 50 code words applies to the edges which can occur at the times T.sub.3 and T.sub.4 across the four data wires W.sub.1 . . . W.sub.4. Therefore, in total, according to this example, there are 50*50=2500 combinations within one cycle T which is more than the 2.sup.11=2048 combinations required to encode an 11-bit data packet in a single cycle.
(20) An exemplary data transmission interface 108 according to the present disclosure is described with reference to
(21) An exemplary data receiving interface 110 according to the present disclosure is described with reference to
(22) In the real world, the travel times of two signals from the first IC to the second IC are never precisely the same. Therefore, data alignment may be desirable, so that from a first received signal having an edge, a time ΔT is waited, and then the four signals are captured and form the output signals of the data alignment module 118. In this manner, the data alignment module compensates for differences/offsets in travel times of the four signals on the data bus from the first IC to the second IC. However, it will be appreciated that such data alignment is not essential to the operation of the data receiving interface, but may be desirable depending on the nature of the data bus, e.g. length, impedance etc. An example of input signals on data wires W.sub.1 . . . W.sub.4, having slightly different arrival times, with a time difference below a threshold ΔT, is shown in
(23) As the data bus need not have a dedicated clock wire, the clock should be recovered in the data receiving interface. An exemplary clock recovery circuit 120 is shown in
(24) The signal states at the circuit locations labelled A to E in
(25) An exemplary data recovery circuit 122 is shown in
(26) Communication between two ICs in the manner described herein is often used between a frontend IC, which senses or receives data, and a backend IC performing analysis of the data. Such transmission is often also often used for system self-test in the field, where the application mode is interrupted in regular intervals and a CPU, for example, accesses analogue or mixed-signal instruments of another IC for verifying correct operation, e.g. using an IEEE 1687-compliant infrastructure.
(27) 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.
(28) 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.
(29) 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.
(30) 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.