1. Field of the Invention
The present invention relates to multi-gigabit transceivers (MGTs) located on a programmable logic device (PLD), such as a field programmable gate array (FPGA). More specifically, the present invention relates to a method and apparatus for providing variable-width data paths for use in the operation of an MGT on a PLD.
2. Related Art
In the past, multi-gigabit transceivers (MGTs) have not been included on programmable logic devices (PLDs) for various reasons. However, commonly owned, copending U.S. patent application entitled “High Speed Configurable Transceiver Architecture” filed concurrently, describes the manner in which MGTs can be included on a PLD, such as a field programmable gate array (FPGA). It would therefore be desirable to optimize the data paths between the core logic of a PLD and the MGTs located on the PLD.
PLD commonly includes one or more data paths, or collections of digital signals routed through the system during processing. The size of a collection, called the “data width” or “data path width” herein, depends on a number of factors. One factor in determining the data path width is the significance of the signals (i.e., the information that the signals represent, and the format of the signals). Another factor is the required speed of operation of the design. Yet another factor is the size constraints introduced by the design. Other factors may also possibly affect the data path width.
In some cases, it may be desirable to modify the width of a data path at some point in the design, changing the extent to which data is propagated in parallel. This may be necessary, for example, because of: different operating speeds in different portions of the design, or different constraints on the data width in different portions of the design. It may also be beneficial for this data width modification to be programmable.
One way of modifying the data path width is to completely modify the design of a system. However, this is a costly manner of modifying the data path width.
PLDS, such as FPGAs, are typically able to implement variable-width data paths by configuring and reconfiguring the PLD. However, such an implementation constitutes an inefficient use of programmable resources that preferably would be reserved for more significant design functions.
It would therefore be desirable to have a PLD capable of implementing a variable-width data path between the core logic of the PLD and the MGTs on the PLD, without requiring use of the programmable resources of the PLD core.