This invention relates to a high-speed serial interface, especially in a programmable logic device (PLD), which may operate at different data rates.
It has become common for PLDs to incorporate high-speed serial interfaces to accommodate high-speed (i.e., greater than 1 Gbps) serial I/O standards—e.g., the XAUI (Extended Attachment Unit Interface) standard. In accordance with the XAUI standard, a high-speed serial interface includes transceiver groups known as “quads,” each of which includes four transceivers and some central logic.
In one implementation, each transceiver is divided into a physical medium attachment (PMA) portion or module which communicates with outside devices, and a physical coding sublayer (PCS) portion or module which performs serial processing of data, for transmission to, or that is received from, those outside devices. Currently available PMA modules and PCS modules overlap in terms of the data rates that each will support, but the maximum data rate of available PMA modules typically exceeds the maximum data rate of available PCS modules.
Commonly-assigned U.S. Pat. No. 6,888,376, hereby incorporated by reference herein in its entirety, discloses a serial interface in which, at higher data rates, two PCS modules are used with each PMA module. However, that solution leaves a PMA module corresponding to one of the two PCS modules unused, and reduces the number of channels in the interface by up to half, if all of the channels used in the device require higher data rates.
It would be desirable to be able to support currently available data rates in a programmable logic device serial interface without wasting up to half the capacity of the serial interface.
The present invention provides a high-speed serial interface of the type described, in a PLD, in which each PMA module is supported by a PCS module capable of handling the maximum data rate of the PMA module. However, because the maximum data rate is not always used, and because supporting different data rates may involve different blocks and settings in the interface, the invention provides a PCS module that may be configured for different data rates, notwithstanding those differences. In addition, the configurability of the PCS module may allow it to be configured for different standards, including the aforementioned XAUI standard, as well as the PCI-Express standard and other standards.
It is known to include within the PCS module, on the receiver side, one or more, as necessary, of word or byte alignment circuitry, de-skew circuitry, rate compensation or matching circuitry, a padded protocol decoder (e.g., an 8B/10B decoder or a 64B/66B decoder), byte deserializer circuitry, byte reorder circuitry, and phase compensation circuitry. These are used in appropriate combinations to process an incoming serial data stream that may be asynchronous and from which a clock may have been recovered, to break the serial data into properly aligned words or bytes which may then be processed, preferably in parallel, by the logic core of a programmable logic device.
Similarly, it is known to include in a PCS module, on the transmitter side, phase compensation circuitry, byte deserializer circuitry, and padded protocol encoder (e.g., an 8B/10B encoder or a 64B/66B encoder).
The specific structure of a particular PCS module is determined by the particular protocol or standard (e.g., XAUI, PCI-Express, or other) with which it is to be used. In accordance with the present invention, a PCS module preferably has at least one of each a plurality of different ones of the types of circuitry described above, and possibly other types of circuitry. Appropriate selector circuitry, preferably including multiplexers and bypass conductors, is provided to allow the PCS module to be configured for any of a number of protocols, preferably including the aforementioned XAUI and PCI-Express protocols and others.
In some cases, there may be more than one of the aforementioned types of circuitry in the configurable PCS module. For example, there may be two (or more) padded protocol decoders or encoders. Similarly, there may be more than one byte alignment circuit, or more than one rate match circuit. When there is more than one instance of a kind of circuitry, the different instances may be identical or different. In different configurations, only one instance might be used, or both might be used in parallel, or they may be cascaded together.
For example, in one embodiment there may be two identical padded protocol decoders (in the receiver) or encoders (in the transmitter), and on the receiver side there could be two identical rate match circuits. Also, there may be two word align circuits that in one embodiment could be identical, or in another embodiment could be different. For example, in the latter embodiment, the different word align circuits could process different word widths—e.g., one circuit might handle a word width that is twice that handled by the other circuit.
The various circuits preferably are interconnected in a way that allows the user to programmably select which of the circuits is used in a particular logic design for the programmable logic device. In a preferred embodiment, a multiplexer downstream of each particular circuit can programmably select, as the input to the next circuit, either an output of the particular circuit or a bypass path around the particular circuit. In that way, each circuit may be included or excluded from the user logic design. In a case where more than one instance of a certain type of circuit is provided, the bypass path may be of a first data width, while the path through each instance is of a second data width (e.g., half the first data width), particularly where the two instances are identical. In a case where the two instances are different, such as the aforementioned case of word alignment circuits of different widths, the paths through the two instances preferably would be different.
Thus, in accordance with the present invention there is provided a configurable serial interface receiver for use in a programmable logic device. The serial interface receiver includes a plurality of stages, at least some of which are selected from the group consisting of a word alignment stage having at least one block providing word-aligned output, a de-skew stage having at least one block providing de-skewed output, a rate matching stage having at least one block providing rate-matched output, a padded protocol decoder stage having at least one block providing decoded output, a byte deserializer stage having at least one block providing deserialized output, a byte reorder stage having at least one block providing reordered output and a phase compensation stage having at least one block providing phase-compensated output. There is bypass circuitry around each said stage, and selector circuitry associated with each said stage selects, with respect to that stage, between output of that stage and the bypass circuitry around that stage. As a result, any one of the plurality of stages is programmably includable in the configurable serial interface receiver.
There is also provided configurable serial interface transmitter for use in a programmable logic device. The serial interface transmitter includes a plurality of stages, at least some of which are selected from the group consisting of a phase compensation stage having at least one block providing phase-compensated output, a byte serializer stage having at least one block providing serialized output, and a padded protocol encoder stage having at least one block providing encoded output. Bypass circuitry is provided around each said stage. Selector circuitry associated with each stage allows selection, with respect to that stage, between output of that stage and the bypass circuitry around that stage, whereby any one of the plurality of stages is programmably includable in the configurable serial interface transmitter.
A programmable logic device incorporating an interface having such a receiver or transmitter is also provided.
The above and other advantages of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
As described above, the present invention provides a high-speed serial interface that serves a wide range of data rates by providing a PCS module that can be configured for different protocols depending on the requirements of the particular user logic design. Thus, rather than having to use multiple PCS modules as described above to support a single PMA module, or having to support the maximum data rate in each PCS module where such a PCS module might not function well at lower data rates, the configurable PCS module according to the invention can be configured by the user, as part of the logic design of the programmable logic device of which the configurable interface is a part, for the protocol that matches the data rate requirements of the design.
The invention will now be described with reference to
PLD 10, shown schematically in
PLD 10 also includes a plurality of other input/output (“I/O”) regions 13. I/O regions 13 preferably are programmable, allowing the selection of one of a number of possible I/O signaling schemes, which may include differential and/or non-differential signaling schemes. Alternatively, I/O regions 13 may be fixed, each allowing only a particular signaling scheme. In some embodiments, a number of different types of fixed I/O regions 13 may be provided, so that while an individual region 13 does not allow a selection of signaling schemes, nevertheless PLD 10 as a whole does allow such a selection.
For example, as shown in
Preferably, PCS module 35 includes PCS receiver portion 350 and PCS transmitter portion 370. Receiver portion 350 preferably receives up to twenty bits on bus 32 from receiver PMA portion 360. PCS receiver portion 350 preferably includes a word or byte alignment stage 321 including single word align circuit 351, double word alignment circuit 352, and multiplexer 353 which allows user-controlled selection of bypass conductor 354 or one of word alignment circuits 351, 352.
Next, at the output of multiplexer 353, PCS receiver portion 350 preferably includes deskew stage 322 including deskew FIFO circuit 3221 and multiplexer 3222 which allows user-controlled selection of bypass conductor 3223. In the embodiment shown, the output of mutliplexer 353 is twenty bits wide, as is bypass conductor 3223, while deskew FIFO 3221 is ten bits wide. Thus, in this embodiment, deskew FIFO 3221 preferably is used only for ten-bit-wide data.
Next, at the output of multiplexer 3222, PCS receiver portion 350 preferably includes rate match stage 323 including two rate matching FIFO circuits 3230, 3231, and multiplexer 3232 which allows user-controlled selection of bypass conductor 3233 or the outputs of one or both of rate matching FIFO circuits 3230, 3231. Thus in a case of twenty-bit-wide data, the data can bypass the rate matching stage 323 or be processed by the two rate matching FIFOs 3230, 3231, while in the case of ten-bit-wide data, the data can bypass the rate matching stage 323 or be processed by one of the two rate matching FIFOs 3230, 3231.
Next, at the output of multiplexer 3232, PCS receiver portion 350 preferably includes padded protocol decoding stage 324 including two padded protocol decoders 3240, 3241 (in the illustration, two 8B/10B decoders). The output of one decoder 3240 preferably can be diverted at 3242 to additional XAUI circuitry (not shown, but preferably located in central channel 27) whence it returns at 3243 to XAUI-mode selection multiplexer 3244 which allows selection of either the raw output of decoder 3240 or the output of the additional XAUI circuitry. A multiplexer 3245 preferably allows selection of bypass conductor 3246, or one or both of XAUI-mode selection multiplier 3244 and decoder 3241.
Next, at the output of multiplexer 3245, PCS receiver portion 350 preferably includes byte deserializer stage 325 including byte deserializer circuit 3250, as well as multiplexer 3251 allowing selection of bypass conductor 3252 or the output of byte deserializer circuit 3250.
Next, at the output of multiplexer 3251, PCS receiver portion 350 preferably includes byte reorder stage 326 including byte reorder circuit 3260, as well as multiplexer 3261 allowing selection of bypass conductor 3262 or the output of byte reorder circuit 3260.
Next, at the output of multiplexer 3261, PCS receiver portion 350 preferably includes phase compensation stage 327 including phase compensation FIFO circuit 3270, as well as multiplexer 3271 allowing selection of bypass conductor 3272 or the output of phase compensation FIFO 3270.
PCS transmitter portion 370 preferably includes a phase compensation stage 371 including phase compensation FIFO circuit 3710, as well as multiplexer 3711 allowing selection of bypass conductor 3712 or the output of phase compensation FIFO 3710.
Next, at the output of multiplexer 3711, PCS transmitter portion 370 preferably includes a byte serialization stage 372 including byte serializer 3720, as well as multiplexer 3721 allowing selection of bypass conductor 3722 or the output of byte serializer 3720. At the output of multiplexer 3721 is an additional XAUI-mode selection multiplexer 3723, which allows the selection of the output of multiplexer 3721 or that same output after diversion to additional XAUI circuitry (not shown) in XAUI mode.
Next, at the output of multiplexer 3723, PCS transmitter portion 370 preferably includes a padded-protocol encoding stage 373 including two padded protocol encoders 3730, 3731 (in the illustration, two 8B/10B encoders). A multiplexer 3732 preferably allows selection of bypass conductor 3733, or one or both of encoders 3730, 3731, as the output of PCS transmitter portion 370 to PMA transmitter portion 361.
Transmitter portion 811 of configuration 800 includes phase compensation FIFO circuit 3710, byte serializer circuit 3720, and cascaded 8B/10B encoder 812 (a cascade of encoders 3730, 3731). The clock derived by the transmitter phase-locked loop (PLL) in central logic 27 is used as the clock for byte serializer circuit 3720, and encoder 812. One-half that clock, as divided by divider 813, is used as one clock input to phase compensation FIFO circuit 3710. That same divided clock, processed through the PLD core logic, is used as another clock input to phase compensation FIFO circuit 3710.
The depiction of configuration 800 in
A PLD 10 incorporating interfaces 20 according to the present invention may be used in many kinds of electronic devices. One possible use is in a data processing system 900 shown in
System 120 can be used in a wide variety of applications, such as computer networking, data networking, instrumentation, video processing, digital signal processing, or any other application where the advantage of using programmable or reprogrammable logic is desirable. PLD 10 can be used to perform a variety of different logic functions. For example, PLD 10 can be configured as a processor or controller that works in cooperation with processor 901. PLD 10 may also be used as an arbiter for arbitrating access to a shared resources in system 900. In yet another example, PLD 10 can be configured as an interface between processor 901 and one of the other components in system 900. It should be noted that system 900 is only exemplary, and that the true scope and spirit of the invention should be indicated by the following claims.
Various technologies can be used to implement PLDs 10 as described above and incorporating this invention.
It will be understood that the foregoing is only illustrative of the principles of the invention, and that various modifications can be made by those skilled in the art without departing from the scope and spirit of the invention, and the present invention is limited only by the claims that follow.
This claims the benefit of copending, commonly-assigned U.S. Provisional Patent Application No. 60/672,433, filed Apr. 18, 2005, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
60672433 | Apr 2005 | US |