# Multi-gigabit transceiver

A multi-gigabit transceiver (MGT) is a SerDes capable of operating at serial bit rates above 1 Gigabit/second. MGTs are used increasingly for data communications because they can run over longer distances, use fewer wires, and thus have lower costs than parallel interfaces with equivalent data throughput.

## Functions

Like other SerDes, the primary function of the MGT is to transmit parallel data as stream of serial bits, and convert the serial bits it receives to parallel data. The most basic performance metric of an MGT is its serial bit rate, or line rate, which is the number of serial bits it can transmit or receive per second. Although there is no strict rule, MGTs can typically run at line rates of 1 Gigabit/second or more. MGTs have become the 'data highways' for data processing systems that demand a high in/out raw data input and output (e.g. video processing applications). They are becoming very common on FPGA - such programmable logic devices being especially well fitted for parallel data processing algorithms.
Beyond serialization and de-serialization, MGTs must incorporate a number of additional technologies to allow them to operate at high line rates. Some of these are listed below:
| Technology | Function |
| Differential signaling | MGTs use differential signaling to transmit and receive serial data. Differential signaling allows faster switching, because the change in signal level required to switch from 1 to 0 or 0 to 1 is halved. In addition, as long as the skew between the two lines of each differential pair is minimized, differential signals have increased immunity to Electromagnetic Interference (EMI), crosstalk, and noise. |
| MOS current mode logic (MCML) | MCML refers to current mode logic implemented using MOSFET instead of Bipolar transistors. MCML uses differential amplifiers to drive and receive data at high speeds using low voltages |
| Emphasis | At high line rates, the lines carrying serial data tend to behave like low-pass filters. This causes the high frequency components of the serial data to lose power more quickly than the low frequency components, distorting the signal and causing Intersymbol Interference (ISI). One way to counter this problem is to use Preemphasis or Deemphasis to shape the transmitted signal to compensate for the expected losses. |
| Receive equalization | An alternative to emphasis is Equalization, where the high frequency parts of a received signal's spectrum are amplified more than the low frequency parts, to compensate for the low-pass behavior of the line. |
| Termination impedance matching | At high line rates, the wires used to carry serial data have many of the properties of Transmission lines. One important property is that signals on the line can be distorted if the impedance of the MGT at the transmitter and receiver does not match the impedance of the line. To counter this, MGTs are typically designed to match the impedance of the wires that connect them as closely as possible. A commonly used impedance value is 100Ω (differential, roughly equivalent to 50Ω single ended impedance for each wire). |
| Phase-locked loops (PLLs) | To serialize data at high speeds, the serial clock rate must be an exact multiple of the clock for the parallel data. Most MGTs use a PLL to multiply a reference clock running at the desired parallel rate to the required serial rate. |
| Clock data recovery (CDR) | When serial data are received, the MGT must use the same serial clock that serialized the data to deserialize it. At high line rates, providing the serial clock with a separate wire is very impractical because even the slightest difference in length between the data line and the clock line can cause significant clock skew. Instead, MGTs recover the clock signal from the data directly, using transitions in the data to adjust the rate of their local serial clock so it is locked to the rate used by the other MGT. Systems that use CDR can operate over much longer distances at higher speeds than their non-CDR counterparts. |
| Encoding/decoding | The pattern of data transmitted serially between MGTs can impact their performance. If the data has too few transitions, the receiving MGT will not be able to use CDR. If the data are too repetitive, at high rates the lines will create strong fields and cause EMI. If the data has too many more 1s than 0s or vice versa, AC coupled MGTs will experience Data Dependent Jitter caused by the charging and discharging of capacitances on the line. Most communication protocols for MGTs use a data encoding system to avoid these problems. An additional advantage of encoding is that it allows control information to be transmitted along with data. This is important for functions such as error detection, alignment, clock correction, and channel bonding. Some popular encodings are: 8b/10b: each octet of data is mapped to a 10-bit sequence 64b/66b: data are grouped into sets of 64 bits, scrambled, then prefixed with a 2-bit header 64b/67b: like 64b/66b, but a 3-bit header is used instead. The extra bit indicates whether the 64 bits are inverted or not, to allow MGTs to ensure the number of 0s and 1s transmitted is roughly balanced SONET/SDH: not an encoding but a group of related standards that group data into fixed size blocks, scramble it, and add a frame which includes an alignment character |
| Error detection | Most systems require some form of error detection. The most common forms of error detection in MGTs are: Encoding-based error detection: most encodings define a set of legal characters and legal sequences of characters. MGTs can detect errors by looking for data that is illegal in the encoding used. Cyclic redundancy check (CRC): to use CRC, data are broken up into frames (or packets), and a CRC function is applied to each frame. The result of the function is appended to the frame when it is transmitted - the receiver can recalculate the same function on the data it receives and compare it to the result from the transmitter to determine if the data in the frame (or the transmitter's CRC result) was corrupted during transmission. |
| Alignment | When an MGT receives serial data, it needs to determine the byte boundaries of the data before it can present the data as parallel bits. This function is typically performed by an alignment block. The exact method used for alignment depends on the type of encoding used for the data: Comma alignment (8b/10b): the receiver searches the incoming serial stream for commas (8b/10b control characters that cannot be created by concatenating other characters). When it finds a comma, lines up the comma boundary to its byte boundary, so that all the data that follows is aligned. Block synchronization (64b/66b & 64b/67b): the receiver searches the incoming data stream for the 2-bit (or 3-bit, in the case of 64b/67b) header for each 64-bit block. A1/A2 alignment (SONET/SDH): SONET frames include a header and a scrambled payload. MGTs receiving SONET data look for repeated match to the alignment characters in the header (called A1 and A2) to determine byte boundaries. |
| Clock correction | There is always a small frequency difference (typically ~+/-100 ppm) between reference clock sources, even if they are nominally the same frequency. As a result, in systems where each MGT uses its own reference clock, each MGT uses a slightly different frequency for its transmit datapath (TX), and its receive datapath (RX). Many protocols simplify the clocking by using clock correction. In clock correction, each MGT includes an asynchronous FIFO. RX data are written to the FIFO using the serial clock from the CDR, and read from the FIFO using the parallel clock from the rest of the system (the local clock), usually the same parallel clock as was used for TX. Since the CDR clock and the local clock are not exactly the same, the FIFO will eventually overflow or underflow unless it is corrected. To allow correction, each MGT periodically transmits one or more special characters which the receiver is allowed to remove or replicate in the FIFO as necessary. By removing characters when the FIFO is too full, and replicating characters when the FIFO is too empty, the receiver can prevent overflow/underflow. These special characters are commonly known as SKIP. |
| Channel bonding | Many protocols combine multiple MGT connections to create a single higher throughput channel (e.g. XAUI, PCI Express). Unless each of the serial connections is exactly the same length, skew between the lanes can cause data transmitted at the same time to arrive at different times. Channel bonding allows the MGTs to compensate for skew between multiple connections. The MGTs all transmit a channel bonding character (or sequence of characters) simultaneously. When the sequence is received, the receiving MGTs can determine the skew between them, then adjust the latency of FIFOs in their receive datapaths to compensate. |
| Electrical idle/out-of-band signaling | Some protocols use the absence of a differential voltage over a specified threshold value to send messages. For example, PCI Express uses Electrical Idle signals to indicate when endpoints should go in and out of low power modes. Similarly, serial ATA uses COM signals for power management. To support these features, MGTs must include circuits capable of generating and detecting electrical idle/OOB signals on the serial lines. |

## Signal integrity and jitter

Signal integrity is critical for MGTs due to their high line rates. The quality of a given high-speed link is characterized by the bit error ratio (BER) of the connection (the ratio of bits received in error to total bits received), and jitter.
BER and jitter are functions of the entire MGT connection, including the MGTs themselves, their serial lines, their reference clocks, their power supplies, and the digital systems that create and consume their parallel data. As a result, MGTs are often measured by how little jitter they transmit (Jitter Transfer/Jitter Generation), and how much jitter they can tolerate before their BER is too high (Jitter Tolerance). These measurements are commonly taken using a BERT, and analyzed using an eye diagram.

## Other considerations

Some other metrics for MGTs include:
* Maximum run length before loss of CDR lock
* Power consumption
* Flexibility (e.g. multiple line rates, multiple encodings)
* Differential swing (max differential signal the MGT can drive)
* Receiver sensitivity (min differential signal the MGT can detect)
* Common-mode rejection ratio

## Protocols that use MGTs

MGTs are used in the implementation of the following serial protocols:
* 2.5GBASE-T and 5GBASE-T
* 10 Gigabit Ethernet
* Aurora
* CEI-6G
* CPRI
* Fibre Channel
* Gigabit Ethernet
* GPON
* HD-SDI
* CoaXPress
* Infiniband
* Interlaken
* OBSAI
* PCI Express
* SAS (Serial Attached SCSI)
* Serial ATA
* SerialLite
* Serial RapidIO
* SFI-5
* SONET/SDH
* XAUI