The present invention relates to techniques for controlling on-chip termination resistance, and more particularly, to techniques for precision biasing output drivers for controlling an on-chip termination resistance.
When transmitting signals over distances that are appreciable with respect to the signal period, mismatches between the impedance of the transmission line and that of the receiver cause signal reflection. The reflected signal interferes with the transmitted signal and causes distortion and degrades the overall signal integrity. To minimize or eliminate the unwanted reflection, transmission lines are resistively terminated by a matching impedance. In the case of integrated circuits that are in communication with other circuitry on a circuit board, termination is often accomplished by coupling an external termination resistor to the relevant input/output (I/O) pins.
For many of today's high speed integrated circuits, and particularly those that have large I/O pin counts, external termination poses a number of problems. A termination resistor is typically coupled to every I/O pin receiving an input signal from a transmission line. Often hundreds of termination resistors are needed for an integrated circuit. Numerous external termination resistors can consume a substantial amount of board space. The use of external components for termination purposes can be cumbersome and costly, especially in the case of an integrated circuit with numerous I/O pins.
Signal integrity is critical in digital design as system speeds and clock edge rates continue to increase. To improve signal integrity, both single-ended and differential signals should be properly terminated. Termination can be implemented with external termination resistors on a board or with on-chip termination technology. On-chip termination eliminates the need for external resistors and simplifies the design of a circuit board.
There is some degree of flexibility provided by circuits such as field programmable gate arrays (FPGAs) wherein a user may be provided the option of programmable changing the output driver settings. To reduce die size, an FPGA design may be converted to a structured application specific integrated circuit (ASIC) using a mask field programmable gate array (MFPGA) that fixes the switch settings. This conversion which removes the programmability of the switches and routing become economically desirable at higher volumes. In a structured ASIC design, therefore, the user may loses the option to change the output driver settings. The output drive strength is set according to the user's FPGA design, and the setting is hardwired in the structured ASIC.
A circuit designer can map a user's I/O drive strength settings from an FPGA to a structured ASIC through simulation or test chip correlation. However, process, voltage, and temperature (PVT) variations and other parasitic effects can complicate the mapping effort. Therefore, such a mapping process is not desirable, because the FPGA-to-structured ASIC conversion process typically has a short turn-around time.
One of the objectives when converting an FPGA design into a structured ASIC design is to reduce the die size and the chip production cost. One way to reduce die size is to reduce the number of user drive strength options in the I/O drivers of the structured ASIC design. However, removing user drive strength options compromises the I/O drive strength resolution. As a result, the user may have to settle for a drive strength setting that is different from the FPGA. The user typically wants to keep the same drive strength setting so that the structured ASIC can interface with neighboring chips with the same drive strength settings used in the FPGA.
It would therefore be desirable to implement termination resistance on-chip to reduce the number of external components. It would also be desirable to provide accurate control of an on-chip termination resistance. It would further be desirable to provide the user with the flexibility to adjust the drive strength setting of an I/O driver in a structured ASIC.
The present invention provides techniques for controlling an on-chip termination (OCT) circuit in an output driver. An OCT control circuit of the present invention calibrates the effective resistance of transistors in the output driver to match an external resistor using a feedback loop. The OCT control circuit can compensate for process, voltage, and temperature variations on the integrated circuit that can effect the OCT.
The present invention also allows additional control over the amount of drive current strength in the output driver by disabling one or more of a set of parallel coupled drive transistors in the output driver. The drive current strength of the output driver can also be controlled by adding or subtracting the digital value of count signals generated by a counter circuit. The count signals are then converted into an analog signal that is used to control the amount of current that flows through the drive transistors. These features of the present invention allow the output drive current of a structured ASIC to be more accurately matched to the drive current setting in a user's FPGA design.
Other objects, features, and advantages of the present invention will become apparent upon consideration of the following detailed description and the accompanying figures, in which like reference designations represent like features throughout the figures.
According to one embodiment of the present invention series on-chip termination (OCT) is provided by controlling the drive current strength of the transistors in an input/output (IO) driver, to achieve a desired effective resistance.
Transistor group 120 includes a group of parallel coupled NMOS field effect transistors that couple an output terminal 121 to a low power supply rail or ground. The transistors in group 120 can have the same or different channel width-to-length ratios. Transistor group 120 can have any number of transistors with any suitable channel W/L ratios. For example, transistor group 120 can have 7 parallel coupled transistors that have the following channel W/L ratios, 1×, 2×, 4×, 8×, 16×, 32×, and 64×. Different combinations of the NMOS transistors are turned on (enabled) to vary the effective drive and resistance of transistor group 120.
Transistors in group 120 are coupled to an output pin 121 as shown. A user can couple an external resistor 122 to terminal 121 to select the series termination resistance for the pull-down NMOS transistors in transistor group 120. Resistor 122 can be any desired value (e.g., 50 ohms). Details are now discussed regarding how the control circuitry of
During the OCT calibration process, the DATA signal is high so that the selected transistors in transistor group 120 can be turned on. The selection of transistors in transistor group 120 is based on the user's output drive requirements and will be described further below. The transistors in group 120 and external resistor 122 implement a resistor divider at output terminal 121. The OCT auto-calibration circuit of
If the voltage at the positive input of comparator 104 (i.e., voltage at terminal 121) is higher than the voltage at the negative input of comparator 104 (VCCIO/2), the output voltage of the comparator is high. The output of comparator 104 connects to an up/down counter circuit 105. When the output of comparator 104 is high, up/down counter 105 counts up in response to a clock signal CLK. Counter 105 is an M-bit counter, where M is a positive integer selected based on the resolution of the calibration required by the design. For example, if up/down counter 105 is a 7-bit counter (i.e., M=7), a 7-bit value of the count signals may increase from 0000001 to 0000010 to 0000011, across three clock cycles, where the ones and zeros correspond to digital high and low voltages, respectively.
The M-bit output of counter 105 is fed into an adder circuit 102. As will be described in greater detail below, adder circuit 102 is optional and when included in the circuit it provides an additional level of control to the user through user-controllable signals UP and DOWN. Once adjusted by adder circuit 102, the M-bit count signal is fed into a biasing circuit 106. Biasing circuit 106 essentially performs a digital to analog conversion (DAC), converting the M-bit binary signal into one of multiple discrete analog calibration signals at its output.
The analog output Vbias of biasing circuit 106 is applied to one input of a group of multiplexers 110-1 to 110-N. In this example, multiplexers 110 are selection circuits that selectively couple signals at one of two inputs to their output in response to a control signal. The second input of each multiplexer 110 couples to logic low signal or ground. The number of multiplexers 110-0 to 110-N corresponds to the number of transistors in the group of transistors 120. In response to control signals PLDN_0 to PLDN_N, multiplexers 110-0 to 110-N selectively couple Vbias to gate terminals of pass transistors 130-0 to 130-N. The analog signal Vbias thus controls the channel resistance of transistors 130-0 to 130-N. When turned on, the channel resistance of transistors 130-0 to 130-N and resistive elements R-0 to R-N form resistive voltage dividers that can vary the voltage at the gate terminal of transistors 120, an therefore the output impedance of transistors 120. It is to be understood that resistive elements R-0 to R-N have been shown here as simple resistors to facilitate understanding of the circuit, and that these resistive elements can be implemented in a variety of ways including by transistors.
Accordingly, feedback circuit 101 along with calibration circuit 103 form a feedback loop that automatically regulates the effective resistance of the transistors in group 120 by controlling the level of the signal that drives transistors 120. The circuit operates to adjust the effective termination resistance of transistor group 120 to match the resistance of external resistor 122. The feedback loop can be enabled throughout the operation of the circuit such that calibration of the OCT resistance occurs continuously (“on-the-fly”). Such dynamic OCT calibration will correct for undesirable deviations in the termination resistance of transistor group 120 caused by process, voltage, and temperature variations on the integrated circuit and other parasitic effects. Alternatively, the calibration process can be performed on a one-time basis upon initialization or power-up, or any other one-time trigger by the user.
The operation of the circuit of
The feedback loop described above will operate until the output voltage at terminal 121 reaches VCCIO/2. At this point, the output impedance of transistor group 120 (OCT) and the external resistor 122 are matched. To maintain this condition, once comparator 104 switches state, up/down counter 105 can be locked to maintain Vbias at a constant value. This provides a one-time calibration that can be triggered by the user at any desired time. Alternatively, the circuit may allow comparator 104 to continuously switch states as the output voltage V121 moves above and below VCCIO/2 to provide real-time and dynamic impedance matching. A variation on this embodiment can build a small amount of hysteresis into comparator 104 which will require the output voltage V121 to deviate from VCCIO/2 by a small percentage before the state of the comparator switches. This will avoid on-going oscillation of the comparator output in those applications where the auto-calibration circuit is enabled continuously.
The function of adder circuit 102 will now be described. The count signals generated by up/down counter 105 are provided to an adder circuit 102. Adder circuit 102 also receives two sets of UP and DOWN control signals. Adder circuit 102 receives a K-bit UP signal and an L-bit down signal, where K and L are positive integers that are designed based on the user's requirements. Adder circuit 102 is a digital adder that can add or subtract values from the M-bit count signal. The UP and DOWN signals represent digital codes that indicate how much to increase or decrease the value of the M-bit count signal (e.g., by 1, 2, 3, 4, 5, etc.). The UP and DOWN count signals are mutually exclusive in the sense that adder circuit 102 can increase or decrease the count signals, but it cannot do both at the same time.
The inclusion of adder circuit 102 is optional and it provides a user with added flexibility to adjust the drive current strength of the transistors in group 120 by placing signals UP and DOWN under the control of the user. For example, a user can increase the digital value of the count signals by setting the UP signals to a desired level. Increasing the digital value of the count signals causes biasing circuit 106 to increase its analog output signal, which increases the drive voltage for transistor group 120. Also, a user can decrease the digital value of the count signals by setting the DOWN signals to a desired level. Decreasing the digital value of the count signals causes biasing circuit 106 to decrease its analog output signal, which decreases the drive voltage for transistor group 120.
As described above, multiplexers 110-0 to 110-N couple gate terminals of transistors 130-0 to 130-N either to ground or to bias voltage Vbias in response to control signals PLDN_0 to PLDN_N. The number of multiplexers and transistors 130-0 to 130-N correspond to the number of transistors in group 120. Signals PLDN_0, PLDN_1, . . . PLDN_N can be control signals that are set by the user (e.g., by configuration data in an FPGA), generated by other circuitry on the integrated circuit, or generated by an external source. When a given PLDN_i signal couples ground to the gate terminal of its respective transistor 130-i, that transistor is turned off disconnecting the data path from its respective output transistor 120-i. The complement of signals PLDN_0, PLDN_1, . . . PLDN_N are applied to gate terminals of transistors 115-0 to 115-N, respectively, as shown. Thus, when a given transistor 130-i is turned off by PLDN_i, its corresponding pull-down transistor 115-i is turned on to couple the gate terminal of the respective output transistor 120-i to ground. For example, a user can set PLDN_0 low to cause multiplexer 110-0 to couple the gate of transistor 130-0 to ground, causing transistor 130-0 to turn off. Setting PLDN_0 low also causes transistor 115-0 to turn on, coupling the gate terminal of its corresponding output transistor 120-i to ground and turning off that transistor. By controlling the signals PLDN_0 to PLDN_N the user can not only selectively enable a desired number of output transistors 120 that drive the output terminal 121, but can also control their output impedance via the OCT calibration circuit.
The OCT calibration circuit of the present invention can be implemented in a variety of integrated circuits. For example, one class of integrated circuits that can benefit from the present invention is programmable logic devices (PLDs) and structured ASICs that are derived from PLDs. In a PLD or FPGA, automatic calibration of an OCT circuit can be performed while the integrated circuit is being programmed (configured). As described above, however, in a structured ASIC, the programming phase is removed, leaving very little time for the automatic calibration process for the OCT circuit. To compensate for the reduced time, a delayed instant-on mode can be introduced during the start-up of a structured ASIC to allow time for the OCT to calibrate. The instant-on mode fills the period of time between power-up and normal operation of the circuit. However, in many applications it is desirable to reduce the duration of the instant-on mode as much as possible. To speed up the OCT calibration time in a structured ASIC, a designer can pre-load counter 105 with an initial count value that corresponds to the I/O drive current settings in the user's FPGA design.
As discussed above, the conversion of an FPGA design into a structured ASIC design may require the designer to sacrifice some of the user's FPGA drive current strength options to reduce die size. The present invention helps add increased drive current strength flexibility by allowing the drive current to be adjusted using adder circuit, as described in detail above. These features provide a fine degree of controllability over the driver current allowing an I/O driver to be precisely biased to improve the impedance matching accuracy. At the same time, the die size of the integrated circuit can be reduced to meet the requirements of a structured ASIC.
The present invention also helps to speed up the turn-around time for conversion from a FPGA design to a structured ASIC/MFPGA design. The present invention can also achieve a high OCT calibration speed when initial count values corresponding to a user's FPGA drive current settings are pre-loaded into counter 105.
Comparator 204 compares the voltage at pin 221 to VCCIO/2 and controls up/down counter 205. An analog calibration signal is generated by biasing circuit 206 in response to the count signal at the output of counter 205. In a similar manner as in the circuit of
An LE is a programmable logic block that provides for efficient implementation of user defined logic functions. A PLD 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.
PLD 400 also includes a distributed memory structure including RAM blocks of varying sizes provided throughout the array. The RAM blocks include, for example, 512 bit blocks 404, 4K blocks 406, and a block 408 providing 512K bits of RAM. These memory blocks can also include shift registers and FIFO buffers.
PLD 400 further includes digital signal processing (DSP) blocks 410 that can implement, for example, multipliers with add or subtract features. I/O elements (IOEs) 412 located, in this example, around the periphery of the device support numerous single-ended and differential I/O standards. It is to be understood that PLD 400 is described herein for illustrative purposes only and that the present invention can be implemented in many different types of PLDs, FPGAs, and the like.
While PLDs of the type shown in
System 500 includes a processing unit 502, a memory unit 504 and an I/O unit 506 interconnected together by one or more buses. According to this exemplary embodiment, a programmable logic device (PLD) 508 is embedded in processing unit 502. PLD 508 can serve many different purposes within the system in
Processing unit 502 can direct data to an appropriate system component for processing or storage, execute a program stored in memory 504 or receive and transmit data via I/O unit 506, or other similar function. Processing unit 502 can be a central processing unit (CPU), microprocessor, floating point coprocessor, graphics coprocessor, hardware controller, microcontroller, programmable logic device programmed for use as a controller, network controller, and the like. Furthermore, in many embodiments, there is often no need for a CPU.
For example, instead of a CPU, one or more PLDs 508 can control the logical operations of the system. In an embodiment, PLD 508 acts as a reconfigurable processor, which can be reprogrammed as needed to handle a particular computing task. Alternately, programmable logic device 508 can itself include an embedded microprocessor. Memory unit 504 can be a random access memory (RAM), read only memory (ROM), fixed or flexible disk media, PC Card flash disk memory, tape, or any other storage means, or any combination of these storage means.
While the present invention has been described herein with reference to particular embodiments thereof, a latitude of modification, various changes, and substitutions are intended in the present invention. For example, transistor polarities, such as those for pass transistors 130/230 and 115/215 can be modified without departing from the invention. In some instances, features of the invention can be employed without a corresponding use of other features, without departing from the scope of the invention as set forth. Therefore, many modifications may be made to adapt a particular configuration or method disclosed, without departing from the essential scope and spirit of the present invention. It is intended that the invention not be limited to the particular embodiments disclosed, but that the invention will include all embodiments and equivalents falling within the scope of the claims.
Number | Name | Date | Kind |
---|---|---|---|
4719369 | Asano et al. | Jan 1988 | A |
4954729 | Urai | Sep 1990 | A |
5111081 | Atallah | May 1992 | A |
5134311 | Biber et al. | Jul 1992 | A |
5164663 | Alcorn | Nov 1992 | A |
5179300 | Rolandi et al. | Jan 1993 | A |
5359235 | Coyle et al. | Oct 1994 | A |
5374861 | Kubista | Dec 1994 | A |
5592510 | Van Brunt et al. | Jan 1997 | A |
5602494 | Sundstrom | Feb 1997 | A |
5623216 | Penza et al. | Apr 1997 | A |
5656953 | Whetsel | Aug 1997 | A |
5721548 | Choe et al. | Feb 1998 | A |
5726582 | Hedberg | Mar 1998 | A |
5726583 | Kaplinsky | Mar 1998 | A |
5764080 | Huang et al. | Jun 1998 | A |
5864715 | Zani et al. | Jan 1999 | A |
5939896 | Hedberg | Aug 1999 | A |
5955894 | Vishwanthaiah et al. | Sep 1999 | A |
5955911 | Drost et al. | Sep 1999 | A |
5970255 | Tran et al. | Oct 1999 | A |
6008665 | Kalb et al. | Dec 1999 | A |
6020760 | Sample et al. | Feb 2000 | A |
6026456 | Ilkbahar | Feb 2000 | A |
6037798 | Hedberg | Mar 2000 | A |
6049255 | Hagberg et al. | Apr 2000 | A |
6060907 | Vishwanthaiah et al. | May 2000 | A |
6064224 | Esch, Jr. et al. | May 2000 | A |
6087847 | Mooney et al. | Jul 2000 | A |
6097208 | Okajima et al. | Aug 2000 | A |
6100713 | Kalb et al. | Aug 2000 | A |
6118310 | Esch | Sep 2000 | A |
6147520 | Kothandaraman et al. | Nov 2000 | A |
6154060 | Morriss | Nov 2000 | A |
6157206 | Taylor et al. | Dec 2000 | A |
6181157 | Fiedler | Jan 2001 | B1 |
6236231 | Nguyen | May 2001 | B1 |
6252419 | Sung et al. | Jun 2001 | B1 |
6329836 | Drost et al. | Dec 2001 | B1 |
6356105 | Volk | Mar 2002 | B1 |
6356106 | Greef et al. | Mar 2002 | B1 |
6362644 | Jeffrey et al. | Mar 2002 | B1 |
6366128 | Ghia et al. | Apr 2002 | B1 |
6384621 | Gibbs et al. | May 2002 | B1 |
6411126 | Tinsley et al. | Jun 2002 | B1 |
6414512 | Moyer | Jul 2002 | B1 |
6424169 | Partow et al. | Jul 2002 | B1 |
6433579 | Wang et al. | Aug 2002 | B1 |
6445245 | Schultz et al. | Sep 2002 | B1 |
6445316 | Hsu et al. | Sep 2002 | B1 |
6448813 | Garlepp et al. | Sep 2002 | B2 |
6466063 | Chen | Oct 2002 | B2 |
6489837 | Schultz et al. | Dec 2002 | B2 |
6504397 | Hart et al. | Jan 2003 | B1 |
6509756 | Yu et al. | Jan 2003 | B1 |
6586964 | Kent et al. | Jul 2003 | B1 |
6590413 | Yang | Jul 2003 | B1 |
6603329 | Wang et al. | Aug 2003 | B1 |
6605958 | Bergman et al. | Aug 2003 | B2 |
6639397 | Roth et al. | Oct 2003 | B2 |
6642741 | Metz et al. | Nov 2003 | B2 |
6683482 | Humphrey et al. | Jan 2004 | B2 |
6700823 | Rahman et al. | Mar 2004 | B1 |
6710618 | Murray | Mar 2004 | B1 |
6747475 | Yuffe et al. | Jun 2004 | B2 |
6756810 | Mughal et al. | Jun 2004 | B2 |
6762620 | Jang et al. | Jul 2004 | B2 |
6766155 | Salcido et al. | Jul 2004 | B2 |
6788101 | Rahman | Sep 2004 | B1 |
6828820 | Ohno | Dec 2004 | B2 |
6836144 | Bui et al. | Dec 2004 | B1 |
6947859 | To et al. | Sep 2005 | B2 |
6980020 | Best et al. | Dec 2005 | B2 |
7002367 | Yu et al. | Feb 2006 | B2 |
7084662 | Om et al. | Aug 2006 | B1 |
7148721 | Park | Dec 2006 | B2 |
7196567 | Nguyen | Mar 2007 | B2 |
7368951 | Iwasaki | May 2008 | B2 |
20020010853 | Trimberger et al. | Jan 2002 | A1 |
20020060602 | Ghia et al. | May 2002 | A1 |
20020101278 | Schultz et al. | Aug 2002 | A1 |
20030062922 | Douglass et al. | Apr 2003 | A1 |
20030218477 | Jang et al. | Nov 2003 | A1 |
20040008054 | Lesea et al. | Jan 2004 | A1 |
20040090239 | Ikeoku et al. | May 2004 | A1 |
20060158213 | Allan | Jul 2006 | A1 |