1. Field of the Invention
The present invention relates to field-programmable gate arrays, and more particularly, to a low voltage differential signaling driver for field programmable gate arrays.
2. Description of the Related Art
A field-programmable gate array (FPGA) is an integrated circuit (IC) that includes a two-dimensional array of general-purpose logic circuits, called cells or logic blocks, whose functions are programmable. The cells are linked to one another by programmable buses. The cell types may be small multifunction circuits (or configurable functional blocks or groups) capable of realizing all Boolean functions of a few variables. The cell types are not restricted to gates. For example, configurable functional groups typically include memory cells and connection transistors that may be used to configure logic functions such as addition, subtraction, etc., inside of the FPGA. A cell may also contain one or two flip-flops. Two types of logic cells found in FPGAs are those based on multiplexers and those based on programmable read only memory (PROM) table-lookup memories. Erasable FPGAs can be reprogrammed many times. This technology is especially convenient when developing and debugging a prototype design for a new product and for small-scale manufacture.
Almost all integrated circuits use input/output (I/O) buffers to connect internal circuit nodes to other circuits external to the integrated circuit. These I/O buffers can be input, output or bi-directional I/O buffers. Further, each I/O buffer may be designed to meet electrical specifications dictated by industry standards such as TTL, LVTTL, LVCMOS, GTL. It is also common for circuit designers to design each I/O buffer with multiple transistors in parallel. For example, 2–4 P-type transistors may be connected in parallel to form the pull-up section of the buffer, while 2–4 N-type transistors may be connected in parallel to form the pull down section of the buffer. Designers may then decide to use some or all of the transistors as needed by the circuit application to meet performance criteria, a particular I/O standard and noise considerations.
The selection of the transistors connected into the circuit is usually done by masking options such as metal, vias and contacts. Moreover, some FPGAs have used similar techniques to select one or more transistors into the I/O buffer to provide slew control. A user may configure his I/O buffer to have either fast slew or slow slew by programming an appropriate antifuse element. This feature allows the user control over speed and noise that is induced into the circuit by the switching I/O buffers.
Different types of FPGAs designed by various manufacturers also feature configurable I/O buffers. These FPGAs may feature highly configurable input and output buffers, which provide support for a wide variety of I/O standards. Input buffers can be configured as either a simple buffer or as a differential amplifier input. Output buffers can be configured as either a push-pull output or as an open drain output. Selection of the desired standard is done by configuration memory bits. Further, different power supplies are provided to the I/O buffer as needed by the standard.
Hence, there is a need for an I/O that has an output buffer which can function as a low voltage differential signaling driver when used together with an adjacent output buffer.
The present system provides a low voltage differential signaling (LVDS) driver for a field programmable gate array (FPGA). The FPGA includes a first FPGA tile, and the first FPGA tile includes a plurality of input/output cells. Adjacent positive input/output cells and negative input/output cells are used to form the low voltage signaling differential driver of the present invention.
A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description of the invention and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilized.
Those of ordinary skill in the art will realize that the following description of the present invention is illustrative only and not in any way limiting. Other embodiments of the invention will readily suggest themselves to such skilled persons.
Referring first to
As shown in
Such a “sea of gates” architecture is known in the art and is exemplified by U.S. Pat. No. 5,132,571 to McCollum et al. and permits the fabrication of a more dense array than an architecture in which the interconnect conductors run only between the logic function circuits. While such a “sea of gates” architecture is preferred, those of ordinary skill in the art will recognize that the principles of the present invention apply equally to any type of programmable array architecture.
In order to provide for a rich potential of interconnect choices, the intersections of selected ones of the individual conductors horizontal and vertical interconnect channels are populated with user programmable interconnect elements which may be programmed by the user to make electrical connections between selected ones of them to implement connections nets between the inputs and outputs of the logic function circuits. Groups of such user programmable interconnect elements at the intersections of the horizontal and vertical interconnect channels are shown, as an example, at intersection 18. Inputs and outputs of logic function circuits are also connected to selected ones of the interconnect conductors in the channels by user-programmable interconnect elements disposed at the intersections of the individual inputs and outputs and selected ones of the interconnect conductors in the channels as shown schematically by squares 19.
There are a number of available user-programmable interconnect technologies that may be employed in the architecture of the present invention. These include such elements as antifuse and active devices such as pass transistors. Such devices, their implementation, and the circuitry necessary to program them, are well known to those of ordinary skill in the art. The details of these known devices will not be set forth herein to avoid overcomplicating the disclosure and thus obscuring the nature of the present invention. As shown in greater detail below, an LDVS driver is formed by using two adjacent output buffers. Each adjacent output buffer has a multiplexer associated with it. A multiplexer control element is used to determine whether the adjacent I/O buffers will function independently or together as a low voltage differential signaling driver. The ability of the I/O buffer to act as either a single ended output or a low voltage differential signaling driver provides for an extremely flexible device.
The core architecture of FPGA 10 communicates off chip by means of a plurality of input/output (I/O) modules 20. Illustrative I/O modules 20 are shown coupled between I/O pads 60 and horizontal interconnect channels 14 and vertical interconnect channels 16. As will be appreciated by those of ordinary skill in the art, I/O modules each comprise an input buffer, an output buffer and input/output selection circuitry, as will be disclosed in more detail herein with respect to the present invention.
Low voltage differential signaling (LVDS) drivers can be used in an FPGA architecture to enhance its performance. Low voltage differential signaling drivers are high speed and low noise point to point links. For example, in instances when the output wire from the I/O buffer of the integrated circuit to the external component or components is of an extended length, a low voltage differential signal driver is used for its ability to drive the signal along a transmission line for long distances at a high speed. In addition, the use of a differential driver reduces the noise inherent with a single signal input. Thus, low voltage differential signaling results in fast data transmission, common mode noise rejection and low power consumption over a broad frequency range.
Positive I/O cell 22 also includes delay circuit 38 and multiplexer 40. Positive output data line 28 is coupled directly to multiplexer 40 or coupled indirectly to multiplexer 40 through delay circuit 38 by programming programmable element 37. Programmable element 37 may be any programmable element known to those of ordinary skill in the art. Also included in positive I/O cell 22 is boundary scan register 46. Boundary scan register 46 is only used in testing mode to determine whether the I/O circuitry is functioning as programmed. In normal mode boundary scan register 46 is bypassed. An output buffer 50 is used to drive the signal received by output buffer 50 from multiplexer 40 to positive I/O pad 60. Delay circuit 38, multiplexer 40 and output buffer 50 form the low voltage signaling driver (LVDS) driver of the present invention. The LVDS driver is discussed in greater detail below.
Also shown is positive input data line 30 which carries signals between positive I/O pad 60 and the FPGA core. Positive data input line 30 is coupled to positive I/O pad 60 through a first two-input multiplexer 66 and a second two-input multiplexer 72. Positive data input line 30 is coupled directly to a first input of two-input multiplexer 66 and coupled to a second input of two-input multiplexer 66 through the positive side of two-input differential amplifier 64. The negative side of differential amplifier 64 may be connected to a reference voltage 84 or negative I/O pad data line 68. The output of differential amplifier 64 is coupled to a second input of two-input multiplexer 66. The output of multiplexer 66 is coupled to a first input of two-input multiplexer 72 and to a second input of two-input multiplexer 72 through delay circuit 70. The output of multiplexer 72 forms positive data input line 30 that provides data input to the FPGA core.
Negative I/O cell 24 includes an inverter 42 which provides a signal line to multiplexer 44. Multiplexer 44 selects a signal to be routed to negative output buffer 52 via boundary scan register 48. As set forth above, boundary scan register 48 is only used in testing mode to test the I/O circuitry. In normal mode boundary scan register 48 is bypassed. Output buffer 52 is used to drive the signal received by buffer 52 from multiplexer 44 to negative I/O pad 62. The LVDS driver is discussed in greater detail below.
Also shown is negative input data line 36 which carries signals between negative I/O pad 62 to the FPGA core. Negative data input line 36 is coupled to negative I/O pad 62 through a first two-input multiplexer 76 and a second two-input multiplexer 80. Negative data input line 36 is coupled directly to a first input of two-input multiplexer 76 and coupled to a second input of two-input multiplexer 76 through the positive side of two-input differential amplifier 74. The negative side of differential amplifier 74 may be connected to a reference voltage 82. The output of differential amplifier 74 is coupled to a second input of two-input multiplexer 76. The output of multiplexer 76 is coupled to a first input of two-input multiplexer 80 and to a second input of two-input multiplexer 80 through delay circuit 78. The output of multiplexer 80 forms negative data input line 36 that provides data input to the FPGA core.
When the A inputs of multiplexers 240 and 242 are selected a LVDS driver is formed. If the LVDS driver is formed by choosing the A inputs of multiplexers 240 and 242, negative output data line 230 is not used. Positive data output line 228 is used to control LVDS driver 200. Positive data output line 228 is coupled to the A input of multiplexer 240 through delay circuit 232. The output of multiplexer 240 is coupled to the input of output buffer 244. The output of output buffer 244 is coupled to the input of positive I/O pad 248. Positive data output line 228 is also coupled to the A input of multiplexer 242 through programmable element 229 and inverter 238. The output of multiplexer of multiplexer 242 is coupled to the input of output buffer 246. The output of output buffer 246 is coupled to the input of negative I/O pad 250.
As shown in
From this disclosure, it will be apparent to persons of ordinary skill in the art that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is intended that the following claims define the scope of the invention and that structures and methods within the scope of these claims and their equivalents be covered thereby.
This application is a continuation of U.S. patent application Ser. No. 10/163,096, filed Jun. 4, 2002 is now a U.S. Pat. No. 6,891,394, which is hereby incorporated by reference as if set forth herein.
Number | Name | Date | Kind |
---|---|---|---|
4255748 | Bartlett | Mar 1981 | A |
4625313 | Springer | Nov 1986 | A |
4638187 | Boler et al. | Jan 1987 | A |
4638243 | Chan | Jan 1987 | A |
4684830 | Tsui et al. | Aug 1987 | A |
4700130 | Bloemen | Oct 1987 | A |
4706216 | Carter | Nov 1987 | A |
4713557 | Carter | Dec 1987 | A |
4717912 | Harvey et al. | Jan 1988 | A |
4718042 | Moll et al. | Jan 1988 | A |
4742252 | Agrawal | May 1988 | A |
4758745 | Elgamal et al. | Jul 1988 | A |
4772812 | Desmarais | Sep 1988 | A |
4800176 | Kakumu et al. | Jan 1989 | A |
4857774 | ElAyat et al. | Aug 1989 | A |
4870300 | Nakaya et al. | Sep 1989 | A |
4870302 | Freeman | Sep 1989 | A |
4873459 | El Gamal et al. | Oct 1989 | A |
4928023 | Marshall | May 1990 | A |
4930097 | Ledenbach et al. | May 1990 | A |
4935645 | Lee | Jun 1990 | A |
4959561 | McDermott et al. | Sep 1990 | A |
4978905 | Hoff et al. | Dec 1990 | A |
5008855 | Eltoukhy et al. | Apr 1991 | A |
5046035 | Jigour et al. | Sep 1991 | A |
5083083 | El Ayat et al. | Jan 1992 | A |
5121394 | Russell | Jun 1992 | A |
5122685 | Chan et al. | Jun 1992 | A |
5126282 | Chiang et al. | Jun 1992 | A |
5132571 | McCollum et al. | Jul 1992 | A |
5144166 | Camarota et al. | Sep 1992 | A |
5187392 | Allen | Feb 1993 | A |
5191241 | McCollum et al. | Mar 1993 | A |
5198705 | Galbraith et al. | Mar 1993 | A |
5208491 | Ebeling et al. | May 1993 | A |
5208530 | El Ayat et al. | May 1993 | A |
5220213 | Chan et al. | Jun 1993 | A |
5220215 | Douglas et al. | Jun 1993 | A |
5221865 | Phillips et al. | Jun 1993 | A |
5222066 | Grula et al. | Jun 1993 | A |
5223792 | El Ayat et al. | Jun 1993 | A |
5258319 | Inuishi et al. | Nov 1993 | A |
5272388 | Bakker | Dec 1993 | A |
5286922 | Curtiss | Feb 1994 | A |
5293133 | Birkner et al. | Mar 1994 | A |
5294846 | Paivinen | Mar 1994 | A |
5300830 | Hawes | Apr 1994 | A |
5300832 | Rogers | Apr 1994 | A |
5304871 | Dharmarajan et al. | Apr 1994 | A |
5309091 | El Ayat et al. | May 1994 | A |
5317698 | Chan | May 1994 | A |
5341092 | El Ayat et al. | Aug 1994 | A |
5365165 | El Ayat et al. | Nov 1994 | A |
5365485 | Ward et al. | Nov 1994 | A |
5367207 | Goetting et al. | Nov 1994 | A |
5375089 | Lo | Dec 1994 | A |
5394033 | Tsui et al. | Feb 1995 | A |
5394034 | Becker et al. | Feb 1995 | A |
5396128 | Dunning et al. | Mar 1995 | A |
5397939 | Gordon et al. | Mar 1995 | A |
5399920 | Van Tran | Mar 1995 | A |
5400262 | Mohsen | Mar 1995 | A |
5430335 | Tanoi | Jul 1995 | A |
5430687 | Hung et al. | Jul 1995 | A |
5432441 | El Ayat et al. | Jul 1995 | A |
5451887 | El Avat et al. | Sep 1995 | A |
5455525 | Ho et al. | Oct 1995 | A |
5469003 | Kean | Nov 1995 | A |
5469396 | Eltoukhy | Nov 1995 | A |
5473268 | Declercq et al. | Dec 1995 | A |
5485103 | Pedersen et al. | Jan 1996 | A |
5486775 | Veenstra | Jan 1996 | A |
5495181 | Kolze | Feb 1996 | A |
5526312 | Eltoukhy | Jun 1996 | A |
5537057 | Leong et al. | Jul 1996 | A |
5546019 | Liao | Aug 1996 | A |
5559464 | Orii et al. | Sep 1996 | A |
5572476 | Eltoukhy | Nov 1996 | A |
5594363 | Freeman et al. | Jan 1997 | A |
5600262 | Kolze | Feb 1997 | A |
5600264 | Duong et al. | Feb 1997 | A |
5666322 | Conkle | Sep 1997 | A |
5670905 | Keeth et al. | Sep 1997 | A |
5742181 | Rush | Apr 1998 | A |
5744979 | Goetting | Apr 1998 | A |
5744980 | McGowan et al. | Apr 1998 | A |
5801547 | Kean | Sep 1998 | A |
5809281 | Steele et al. | Sep 1998 | A |
5815003 | Pedersen | Sep 1998 | A |
5815004 | Trimberger et al. | Sep 1998 | A |
5821776 | McGowan | Oct 1998 | A |
5825200 | Kolze | Oct 1998 | A |
5825201 | Kolze | Oct 1998 | A |
5825202 | Tavana et al. | Oct 1998 | A |
5825662 | Trimberger | Oct 1998 | A |
5828230 | Young | Oct 1998 | A |
5828538 | Apland et al. | Oct 1998 | A |
5831448 | Kean | Nov 1998 | A |
5832892 | Yaoita | Nov 1998 | A |
5835165 | Keate et al. | Nov 1998 | A |
5835998 | Pedersen | Nov 1998 | A |
5838167 | Erickson et al. | Nov 1998 | A |
5838584 | Kazarian | Nov 1998 | A |
5838954 | Trimberger | Nov 1998 | A |
5847441 | Cutter et al. | Dec 1998 | A |
5847557 | Fincher et al. | Dec 1998 | A |
5848005 | Cliff et al. | Dec 1998 | A |
5848006 | Nagata | Dec 1998 | A |
5850151 | Cliff et al. | Dec 1998 | A |
5850152 | Cliff et al. | Dec 1998 | A |
5850564 | Ting et al. | Dec 1998 | A |
5852608 | Csoppenszky et al. | Dec 1998 | A |
5854763 | Gillingham et al. | Dec 1998 | A |
5859542 | Pedersen | Jan 1999 | A |
5859543 | Kolze | Jan 1999 | A |
5859544 | Norman | Jan 1999 | A |
5861761 | Kean | Jan 1999 | A |
5869981 | Agrawal et al. | Feb 1999 | A |
5870327 | Gitlin et al. | Feb 1999 | A |
5870586 | Baxter | Feb 1999 | A |
5880492 | Duong et al. | Mar 1999 | A |
5880512 | Gordon et al. | Mar 1999 | A |
5880597 | Lee | Mar 1999 | A |
5880598 | Duong | Mar 1999 | A |
5883526 | Reddy et al. | Mar 1999 | A |
5883850 | Lee et al. | Mar 1999 | A |
5949719 | Clinton et al. | Sep 1999 | A |
5952847 | Plants et al. | Sep 1999 | A |
5994934 | Yoshimura et al. | Nov 1999 | A |
6011744 | Sample et al. | Jan 2000 | A |
6034677 | Noguchi et al. | Mar 2000 | A |
6038627 | Plants | Mar 2000 | A |
6049487 | Plants et al. | Apr 2000 | A |
6100715 | Agrawal et al. | Aug 2000 | A |
6111448 | Shibayama | Aug 2000 | A |
6157213 | Voogel | Dec 2000 | A |
6181174 | Fujieda et al. | Jan 2001 | B1 |
6216258 | Mohan et al. | Apr 2001 | B1 |
6242943 | El Ayat | Jun 2001 | B1 |
6260182 | Mohan et al. | Jul 2001 | B1 |
6289068 | Hassoun et al. | Sep 2001 | B1 |
6292016 | Jefferson et al. | Sep 2001 | B1 |
6292925 | Dellinger et al. | Sep 2001 | B1 |
6329839 | Pani et al. | Dec 2001 | B1 |
6353334 | Schultz et al. | Mar 2002 | B1 |
6418059 | Kreifels et al. | Jul 2002 | B1 |
6430088 | Plants et al. | Aug 2002 | B1 |
6437650 | Sung et al. | Aug 2002 | B1 |
6480026 | Andrews et al. | Nov 2002 | B1 |
6496887 | Plants | Dec 2002 | B1 |
6501295 | Burr | Dec 2002 | B1 |
6734702 | Ikeoku et al. | May 2004 | B1 |
6891394 | Yu et al. | May 2005 | B1 |
Number | Date | Country |
---|---|---|
0 415 542 | Mar 1991 | EP |
0 415 542 | Oct 1991 | EP |
0 889 593 | Jan 1999 | EP |
1 137 188 | Sep 2001 | EP |
Number | Date | Country | |
---|---|---|---|
20050206407 A1 | Sep 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10163096 | Jun 2002 | US |
Child | 11123734 | US |