Apparatus and methods of dynamic transmit equalization
One embodiment relates to an integrated circuit configured to perform dynamic transmit equalization of a bi-directional lane. The integrated circuit including an interface between the physical coding and media access control circuitry, and an equalization control circuit which is external to the physical coding circuitry and which is configured to perform the dynamic transmit equalization using said interface. Another embodiment relates to a transceiver circuit which includes physical coding circuitry and media access control circuitry. The transceiver circuit further includes an interface between the physical coding circuitry and the media access control circuitry and an equalization controller which is external to the physical coding circuitry and which is configured to perform dynamic transmit equalization using said interface. The interface is configured to provide transmit coefficient data in a time-multiplexed signal format from the media access control circuitry to the physical coding circuitry. Other embodiments, aspects, and features are also disclosed.
Latest Altera Corporation Patents:
The present application is a continuation of U.S. patent application Ser. No. 12/983,180, filed Dec. 31, 2010, entitled “Apparatus and Methods of Dynamic Transmit Equalization,” the disclosure of which is hereby incorporated by reference.
BACKGROUND1. Technical Field
The present invention relates generally to transceivers and integrated circuits. More particularly, the present invention relates to apparatus and methods of dynamic transmit equalization which may be applied to transceivers in integrated circuits.
2. Description of the Background Art
As the signaling speeds used for communications between integrated circuits continue to increase, signal degradation during transmission becomes increasingly problematic. The signal degradation may cause inter-symbol interference and crosstalk which result in unwanted transmission errors and losses. Equalization may be employed to compensate for the signal degradation and to reduce the error rate to within specified limits.
SUMMARYIt is desirable to improve the operation of embedded transceivers in integrated circuits. More particularly, it is desirable to improve apparatus and methods of equalization used by embedded transceivers.
One embodiment relates to an integrated circuit. The integrated circuit includes an interface between the physical coding and media access control circuitry, and an equalization control circuit which is external to the physical coding circuitry and which is operable to perform the dynamic transmit equalization using said interface.
Another embodiment relates to a method of dynamic transmit equalization performed at an upstream component. Preset data for equalization is applied in the upstream component, and preset data for equalization is transmitted to a downstream component for application therein. Receiver and transmitter coefficients at the upstream component are refined.
Another embodiment relates to a method of dynamic transmit equalization performed at a downstream component. Preset data for equalization is applied in the downstream component, and preset data for equalization is transmitted to an upstream component for application therein. Receiver and transmitter coefficients at the downstream component are refined.
Another embodiment relates to a transceiver circuit which includes physical coding circuitry and media access control circuitry. The transceiver circuit further includes an interface between the physical coding circuitry and the media access control circuitry and an equalization controller which is external to the physical coding circuitry and which is configured to perform dynamic transmit equalization using said interface. The interface is configured to provide transmit coefficient data in a time-multiplexed signal format from the media access control circuitry to the physical coding circuitry.
Other embodiments, aspects, and features are also disclosed.
As the next generation of serial protocols are developed to address data rates of 8 gigabits per second (Gbps) and higher per channel, achieving an optimal eye opening at the remote device's receiver becomes quite challenging. As such, rather than using constant equalization settings, it may be necessary to dynamically adjust the transceiver's transmit equalization settings based on a bit error rate (BER) determination by the remote receiver.
The present application discloses a circuit architecture for dynamic transmit equalization. In particular, the circuit architecture included dynamic transmit equalization control circuitry that resides in the physical layer and media access control layer (PhyMAC) circuitry and is independent from the physical coding sublayer (PCS) circuitry. A PCS-to-PhyMAC interface is structured with minimal signaling added per channel by using time-division multiplexing. This architecture advantageously reduces the area required in the PCS circuitry.
Each TX circuit may be configured to obtain data to be transmitted, scramble the data, encode the data, convert the data from parallel data to serial data, and transmit a differential signal carrying the serial data. For example, the encoding may comprise 8 bit-to-10 bit encoding or 128 bit-to-130 bit encoding.
Within each TX circuit, the TX equalizer circuitry may be configured to compensate for channel loss. For example, the TX equalizer circuitry may perform pre-emphasis by amplifying some (usually higher) frequency content in the signal to improve the signal-to-noise ratio at those frequencies.
Each differential pair (of wires) comprises a lossy communication channel in that there is a loss in signal quality as a result of transmission over the differential pair. For example, higher frequency signal components may be attenuated during the transmission.
Within the RX circuit, the RX equalizer circuitry may be configured to compensate for channel loss. For example, the RX equalizer circuitry may perform de-emphasis by attenuating some (usually higher) frequency content in the signal to remove distortion previously introduced by the pre-emphasis.
The RX circuit may also be configured to receive the differential signal, recover the clock and data signals from the received signal, convert the data from serial to parallel, decode the data, unscramble the data, and then output the data. For example, the decoding may comprise 10 bit-to-8 bit decoding or 130 bit-to-128 bit decoding.
Note that a data bus may be configured to use one or more lanes. For example, if two lanes are used by a bus, then the bus may be referred to as an x2 bus. More generally, if M lanes are used by a bus, then the bus may be referred to as an xM bus.
As seen in
Referring to
Meanwhile, per block 204 in Phase 0, the UC obtains the DC preset data and transmits it to the DC. The DC preset data may be obtained from firmware at the UC by the equalization controller. In particular, the DC preset data may include DC transmitter preset data (DCTxPreset in
Per block 206, the DC receives the DC preset data. The DC preset data may be received, for example, by the training sequence receiver (TS Rx) in the PhyMAC circuitry via the low-speed datapath at the DC.
Per block 208, the equalization controller at the DC may obtain and store the DC preset data. As described further below, the DC preset data (including the DCTxPreset and DCRxPresetHint discussed above) are to be used initially by the DC for equalization of transmitted and received signals at the high speed.
After Phase 0, the method 200 may go on to Phase 1. The Phase 1 operations are depicted in
Per block 212 of Phase 1, the UC applies the UC TX preset coefficient data and UC RX preset hint data to derive transmitter and receiver coefficients, respectively, so that they may be used by the equalizers of the Tx and Rx circuits, respectively, within the PMA of the UC. As shown in
Meanwhile, per block 214 of Phase 1, the DC applies the DC TX preset coefficients and RX preset hints to derive transmitter and receiver coefficients, respectively, so that they may be used by the equalizers of the Tx and Rx circuits, respectively, within the PMA of the DC during high speed operation. As shown in
After Phase 1 is completed, the method 200 may go on to Phase 2. The Phase 2 operations are depicted in
Per block 222 of Phase 2, commands may be generated by the TS Tx circuit in the PhyMAC circuitry of the DC. Subsequently, per block 223, the TS Tx circuit may cause transmission of the commands from the Tx circuit in the PMA circuitry of the DC to the Rx circuit in the PMA circuitry of the UC. In one implementation, the commands may be embedded in TS1 packets transmitted from the DC.
Per block 224, the TS Rx circuit in the PhyMAC circuitry of the UC may check the reception of the commands to determine if they were received without or with a bit error. Based on this, acknowledgement (ack) or no acknowledgement (nak) responses may be generated by the TS Rx circuit. Subsequently, per block 225, the responses may be transmitted from the Tx circuit in the PMA circuitry of the UC to the Rx circuit in the PMA circuitry of the DC. In one implementation, the responses may be embedded in PCI Express® TS1 packets transmitted from the UC.
Per block 226, the TS Rx circuit at the DC may then determine a bit error rate (BER) based on the responses received. Per block 227, the TS Rx circuit at the DC may then check as to whether or not the BER is sufficiently low to pass below a threshold error rate. For example, the threshold error rate may be 10−12.
If the BER does not pass below the threshold error rate, then the method 200 may perform block 228 in which the UC TX coefficient data and the DC RX coefficient data are adjusted (refined) in order to achieve a more optimal eye opening at the receiver. Thereafter, the method 200 loops back to block 222 and performs the command/response sequence so that the BER may again be checked. In one implementation, the DC may be allowed a limited time period to refine the UC TX and DC RX coefficient data. For example, the limited time period may be 24 milliseconds.
On the other hand, if the BER does pass below the threshold error rate, then Phase 2 is completed, and Phase 3 may begin. The Phase 3 operations are depicted in
Per block 232 of Phase 3, commands may be generated by the TS Tx circuit in the PhyMAC circuitry of the UC. Subsequently, per block 233, the TS Tx circuit may cause transmission of the commands from the Tx circuit in the PMA circuitry of the UC to the Rx circuit in the PMA circuitry of the DC. In one implementation, the commands may be embedded in TS1 packets transmitted from the UC.
Per block 234, the TS Rx circuit in the PhyMAC circuitry of the DC may check the reception of the commands to determine if they were received without or with a bit error. Based on this, acknowledgement (ack) or no acknowledgement (nak) responses may be generated by the TS Rx circuit. Subsequently, per block 235, the responses may be transmitted from the Tx circuit in the PMA circuitry of the DC to the Rx circuit in the PMA circuitry of the UC. In one implementation, the responses may be embedded in PCI Express TS1 packets transmitted from the DC.
Per block 236, the TS Rx circuit at the UC may then determine a bit error rate (BER) based on the responses received. Per block 237, the TS Rx circuit at the UC may then check as to whether or not the BER is sufficiently low to pass below a threshold error rate. For example, the threshold error rate may be 10−12.
If the BER does not pass below the threshold error rate, then the method 200 may perform block 238 in which the DC TX coefficient data and the UC RX coefficient data are adjusted (refined) in order to achieve a more optimal eye opening at the receiver. Thereafter, the method 200 loops back to block 232 and performs the command/response sequence so that the BER may again be checked. In one implementation, the UC may be allowed a limited time period to refine the DC TX and UC RX coefficient data. For example, the limited time period may be 24 milliseconds.
Once the BER passes below the threshold error rate, then the equalization for the bi-directional lane is complete per block 240. Thereafter, the lane may be used to transmit data bi-directionally at the high speed.
Each coefficient data block may transport various types of equalization-related data in a time-multiplexed manner. For example, as shown in
FPGA 800 includes within its “core” a two-dimensional array of programmable logic array blocks (or LABs) 802 that are interconnected by a network of column and row interconnect conductors of varying length and speed. LABs 802 include multiple (e.g., 10) logic elements (or LEs).
An LE is a programmable logic block that provides for efficient implementation of user defined logic functions. An FPGA has numerous logic elements that can be configured to implement various combinatorial and sequential functions. The logic elements have access to a programmable interconnect structure. The programmable interconnect structure can be programmed to interconnect the logic elements in almost any desired configuration.
FPGA 800 may also include a distributed memory structure including random access memory (RAM) blocks of varying sizes provided throughout the array. The RAM blocks include, for example, blocks 804, blocks 806, and block 808. These memory blocks can also include shift registers and FIFO buffers.
FPGA 800 may further include digital signal processing (DSP) blocks 810 that can implement, for example, multipliers with add or subtract features. Input/output elements (IOEs) 812 located, in this example, around the periphery of the chip support numerous single-ended and differential input/output to standards. Each IOE 812 is coupled to an external terminal (i.e., a pin) of FPGA 800.
An array of PMA and PCS circuitry 820 may be included as shown, for example. The PCS circuitry generally provides digital logic functions which implement data communication protocols, while the PMA circuitry generally provides mixed (analog/digital) signal functionality for the data communications. For example, for certain protocols, the PCS circuitry may be configured to perform, among other functions, 8 bit-to-10 bit and/or 128 bit-to-130 bit encoding for data to be sent to the PMA circuitry and 10 bit-to-8 bit and/or 130 bit-to-128 bit decoding for data received from the PMA circuitry. The PMA circuitry may be configured to perform, among other functions, serialization of data to be transmitted (conversion from parallel to serial) and de-serialization of received data (conversion from serial to parallel).
A subset of the LABs 802 coupled to modules in the PMA/PCS array 820 may be configured to implement the PhyMAC circuitry and the equalization and link control circuitry described above. Alternatively, the PhyMAC circuitry and the equalization and link control circuitry may be implemented as hardwired circuitry, or part configured LABs 802 and part hardwired circuitry.
It is to be understood that FPGA 800 is described herein for illustrative purposes only and that the present invention can be implemented in many different types of PLDs, FPGAs, and ASICs.
The present invention can also be implemented in a system that has a FPGA as one of several components.
System 900 includes a processing unit 902, a memory unit 904, and an input/output (I/O) unit 906 interconnected together by one or more buses. According to this exemplary embodiment, FPGA 908 is embedded in processing unit 902. FPGA 908 can serve many different purposes within the system 900. FPGA 908 can, for example, be a logical building block of processing unit 902, supporting its internal and external operations. FPGA 908 is programmed to implement the logical functions necessary to carry on its particular role in system operation. FPGA 908 can be specially coupled to memory 904 through connection 910 and to I/O unit 906 through connection 912.
Processing unit 902 may direct data to an appropriate system component for processing or storage, execute a program stored in memory 904, receive and transmit data via I/O unit 906, or other similar function. Processing unit 902 may be a central processing unit (CPU), microprocessor, floating point coprocessor, graphics coprocessor, hardware controller, microcontroller, field programmable gate array programmed for use as a controller, network controller, or any type of processor or controller. Furthermore, in many embodiments, there is often no need for a CPU.
For example, instead of a CPU, one or more FPGAs 908 may control the logical operations of the system. As another example, FPGA 908 acts as a reconfigurable processor that may be reprogrammed as needed to handle a particular computing task. Alternately, FPGA 908 may itself include an embedded microprocessor. Memory unit 904 may be a random access memory (RAM), read only memory (ROM), fixed or flexible disk media, flash memory, tape, or any other storage means, or any combination of these storage means.
In the above description, numerous specific details are given to provide a thorough understanding of embodiments of the invention. However, the above description of illustrated embodiments of the invention is not intended to be exhaustive or to limit the invention to the precise forms disclosed. One skilled in the relevant art will recognize that the invention can be practiced without one or more of the specific details, or with other methods, components, etc.
In other instances, well-known structures or operations are not shown or described in detail to avoid obscuring aspects of the invention. While specific embodiments of, and examples for, the invention are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. These modifications may be made to the invention in light of the above detailed description.
Claims
1. An integrated circuit comprising:
- physical coding circuitry for encoding data bytes for transmission and decoding received data bytes;
- media access control circuitry for controlling link initialization and training;
- an interface between the physical coding and the media access control circuitry;
- an equalization control circuit, external to the physical coding circuitry, wherein the equalization control circuit performs dynamic transmit equalization using said interface to refine receiver coefficients during a phase where the integrated circuit operates as a slave and refine transmitter coefficients during a phase where the integrated circuit operates as a master; and
- a preset-to-coefficient converter in the media access control circuitry which converts transmitter preset data to transmitter coefficient data.
2. The integrated circuit of claim 1, wherein the equalization control circuit applies preset data for equalization in an upstream component, and wherein the equalization control circuit transmits the preset data to a downstream component for application therein.
3. The integrated circuit of claim 1, wherein the equalization control circuit refines receiver coefficients at an upstream component.
4. The integrated circuit of claim 1, wherein the equalization control circuit refines transmitter coefficients at an upstream component.
5. The integrated circuit of claim 1, wherein the integrated circuit comprises an upstream component, and wherein the upstream component receives commands transmitted from a downstream component, checks reception of the commands, generates acknowledgment and no acknowledgement responses based on the reception, and transmits the responses to the downstream component.
6. The integrated circuit of claim 1, wherein the integrated circuit comprises an upstream component, and wherein the upstream component generates and transmits commands to a downstream component, receives acknowledgment and no acknowledgement responses from the downstream component, and determines a bit error rate based on the responses.
7. The integrated circuit of claim 1, wherein the integrated circuit comprises a downstream component, and wherein the downstream component generates and transmits commands to an upstream component, receives acknowledgment and no acknowledgement responses from the upstream component, and determines a bit error rate based on the responses.
8. The integrated circuit of claim 1, wherein the integrated circuit comprises a downstream component, and wherein the downstream component receives commands transmitted from an upstream component to the downstream component, checks reception of the commands and generate acknowledgment and no acknowledgement responses based on the reception, and transmits the responses to the upstream component.
9. The integrated circuit of claim 1, further comprising:
- a training sequence transmitter in the media access control circuitry that causes transmission of commands to a training sequence receiver in another integrated circuit.
10. The integrated circuit of claim 1, further comprising:
- a training sequence receiver in the media access control circuitry which receives responses from a training sequence transmitter in another integrated circuit, wherein the training sequence receiver determines a bit error rate based on the responses.
11. The integrated circuit of claim 1, wherein the preset-to-coefficient converter outputs the transmitter coefficient data using said interface to the physical coding circuitry.
12. The integrated circuit of claim 11, further comprising:
- a look-up-table in the physical coding circuitry that translates the transmitter coefficient data to analog coefficient levels.
13. The integrated circuit of claim 1, wherein the integrated circuit comprises a field programmable gate array.
14. The integrated circuit of claim 1, wherein the equalization control circuit and the media access control circuit comprise programmable logic which performs the dynamic transmit equalization using said interface.
15. A method of dynamic transmit equalization performed at an upstream component, the method comprising:
- applying preset data for equalization in the upstream component, wherein applying the preset data includes a step of converting transmitter preset data to a coefficient data signal using a preset-to-coefficient converter;
- transmitting said preset data for equalization to a downstream component for application therein;
- refining receiver coefficients at the upstream component during a first refining phase where the downstream component operates as a master and the upstream component operates as a slave; and
- refining transmitter coefficients at the upstream component during a second refining phase where the upstream component operates as the master and the downstream component operates as the slave.
16. The method of claim 15, further comprising:
- receiving commands transmitted from the downstream component to the upstream component;
- checking reception of the commands and generating acknowledgment and no acknowledgement responses based on the reception; and
- transmitting the responses to the downstream component.
17. The method of claim 16, wherein the refining of transmitter coefficients at the upstream component comprises:
- generating and transmitting commands to the downstream component;
- receiving acknowledgment and no acknowledgement responses from the downstream component; and
- determining a bit error rate based on the responses.
18. A method of dynamic transmit equalization performed at a downstream component, the method comprising:
- receiving preset data for equalization from an upstream component;
- applying the preset data for equalization in the downstream component wherein applying the preset data includes a step of converting transmitter preset data to a coefficient data signal using a preset-to-coefficient converter;
- refining transmitter coefficients at the downstream component during a first refining phase where the downstream component operates as a master and the upstream component operates as a slave; and
- refining receiver coefficients at the downstream component during a second refining phase where the upstream component operates as the master and the downstream component operates as the slave.
19. The method of claim 18, further comprising:
- generating and transmitting commands to an upstream component;
- receiving acknowledgment and no acknowledgement responses from the upstream component; and
- determining a bit error rate based on the responses.
20. The method of claim 18, further comprising:
- receiving commands transmitted from the upstream component to the downstream component;
- checking reception of the commands and generating acknowledgment and no acknowledgement responses based on the reception; and
- transmitting the responses to the upstream component.
21. A transceiver circuit with dynamic transmit equalization, the transceiver circuit comprising:
- physical coding circuitry;
- media access control circuitry;
- an interface between the physical coding circuitry and the media access control circuitry; and
- an equalization controller which is external to the physical coding circuitry and which performs dynamic transmit equalization using said interface to refine receiver coefficients during a phase where the integrated circuit operates as a slave and refines transmitter coefficients during a phase where the transceiver circuit operates as a master,
- wherein a preset-to-coefficient converter is used to convert transmit preset data to transmit coefficient data
- wherein the interface provides the transmit coefficient data in a time-multiplexed signal format from the media access control circuitry to the physical coding circuitry.
22. The transceiver circuit of claim 21, wherein the media access control circuitry comprises:
- a training sequence transmitter that causes transmission of commands to a training sequence receiver in another transceiver circuit; and
- a training sequence receiver that receives responses from a training sequence receiver in the another transceiver circuit and determines a bit error rate based on the responses.
23. The transceiver circuit of claim 21, wherein the equalization controller comprises programmable logic that performs dynamic transmit equalization using said interface.
24. The transceiver circuit of claim 21, wherein the media access control circuitry comprises programmable logic causes transmission of commands to a training sequence receiver in another transceiver circuit, receives responses from the training sequence receiver in the other transceiver circuit, and determines a bit error rate based on the responses.
20060067387 | March 30, 2006 | Ahmed et al. |
20080285453 | November 20, 2008 | Connolly et al. |
20090028234 | January 29, 2009 | Zhu |
20100329325 | December 30, 2010 | Mobin et al. |
- PHY interface for PCI express architecture PCI express 3.0 Rev 0.5 Aug. 2008 Intel corporation.
Type: Grant
Filed: Dec 13, 2013
Date of Patent: Feb 23, 2016
Assignee: Altera Corporation (San Jose, CA)
Inventors: Divya Vijayaraghavan (Los Altos, CA), Gopi Krishnamurthy (Tracy, CA), Ning Xue (San Jose, CA), Chong H. Lee (San Ramon, CA)
Primary Examiner: Chirag Shah
Assistant Examiner: Rina Pancholi
Application Number: 14/106,485