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.
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 deserialization, MGTs must incorporate a number of additional technologies to allow them to operate at high line rates. Some of these are listed below:
|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.
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:
|Error Detection||Most systems require some form of error detection. The most common forms of error detection in MGTs are:
|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:
|Clock Correction||There is always a small frequency difference (typically ~+/-100ppm) 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 parallel 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.
|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.
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:
- 10G Ethernet
- Fibre Channel
- Gigabit Ethernet
- PCI Express
- SAS (Serial Attached SCSI)
- Serial ATA
- Serial RapidIO
- Xilinx Aurora (Xilinx Inc.)
- Serial Multi-Protocol Transmission with the LatticeSC FPGA (Lattice Semiconductor)
- Virtex-5 RocketIO GTP Transceiver User Guide (Xilinx Inc.)
- Stratix II GX Transceiver User Guide (Altera Inc.)