This patent application is related to commonly-assigned, co-pending U.S. patent application Ser. No. 11/040,343, filed Jan. 20, 2005, by Chang et al., which is incorporated by reference herein.
The present invention relates to techniques for controlling on-chip termination resistance using calibrated drive strength, and more particularly, to techniques for monitoring an effective resistance of on-chip transistors to control the drive strength provided to an input/output pin to provide on-chip termination impedance matching.
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 crucial in digital design because 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.
It is desirable therefore to implement the termination resistance on-chip to reduce the number of external components. It is also desirable to provide on-chip termination for an I/O pin that matches an external resistor provided by a user.
The present invention provides techniques for controlling an on-chip termination resistance in an input or output (IO) buffer using calibration circuits. Each calibration circuit monitors the voltage between an external resistor and a group of on-chip transistors. When the effective resistance of the group of on-chip transistors matches the external resistance, the calibration circuit causes the termination resistance of drive transistors in the IO buffer to match the effective resistance of the group of on-chip transistors.
Other objects, features, and advantages of the present invention will become apparent upon consideration of the following detailed description and the accompanying drawings, in which like reference designations represent like features throughout the figures.
The transistors in groups 120 and 121 are binary-weighted, parallel-connected transistors. For example, transistor groups 120 and 121 can each have 7 transistors with channel width-to-length (W/L) ratios of 1×, 2×, 4×, 8×, 16×, 32×, and 64×. The transistors in groups 120 and 121 are controlled by configurable RAM (CRAM) bits or by calibration signals from circuits 101 and 102. The total drive current strength provided to pin 125 equals the sum of the transistor currents in driver 100. The impedance of driver 100 is inversely proportional to the driver strength.
PMOS calibration circuit 101 has a calibration pin 110, and NMOS calibration circuit 102 has a calibration pin 130. A user can couple an external resistor 111 to pin 110 to select the series termination resistance for the pull-up PMOS transistors in group 120. The user can couple an external resistor 131 to pin 130 to select the series termination resistance for the pull-down NMOS transistors in group 121.
The calibration circuits 101 and 102 cause the termination resistance of transistor groups 120 and 121 to match external resistors 111 and 131, respectively. For example, if a user couples 50 Ohm external resistors to calibration pins 110 and 130 as shown in
PMOS calibration block 101 has a group of PMOS transistors 103 that are coupled in parallel between pin 110 and supply voltage VCCIO. PMOS group 103 can have any desired number of transistors (e.g., 7). Transistors in group 103 have different channel width-to-length ratios (e.g., 1×, 2×, 4×, 8×, 16×, 32×, and 64×). Each transistor in PMOS group 103 is typically equivalent in size (channel W/L ratio) to a corresponding pull-up PMOS drive transistor in group 120.
The effective resistance of transistor group 103 can be varied by turning on different combinations of the PMOS transistors. The transistors in group 103 and external resistor 111 form a resistor divider. The positive input of comparator 104 is coupled to this resistor divider. Thus, comparator 104 receives the voltage Vin+ of the resistor divider at its positive input.
The effective resistance of transistor group 103 and resistor 111 control the voltage level at the positive input (Vin+) of comparator 104. Voltage Vin+ varies in response to turning on different combinations of the transistors in group 103. The negative input (Vin−) of comparator 104 receives a reference voltage that equals half the supply voltage VCCIO/2. The reference voltage is generated by resistors 112 and 113. The output of comparator 104 is coupled to an input of 7-bit up/down counter 105 and an input of pattern detect circuit 106. Counter 105 generates 7 digital count signals 109 at its outputs.
When the voltage Vin+ at the positive input of comparator 104 is less than the voltage at the negative input of comparator 104 (VCCIO/2), the output voltage of comparator 104 is low. When the output of comparator 104 is low, counter 105 causes the digital binary value of the 7 count signals 109 to decrease. For example, when the output of comparator 104 is low, the digital value of count signals 109 may decrease from 1111111 to 1111110 to 1111101, to 1111100, etc., where the ones and zeros correspond to digital high and low voltages, respectively.
The 7 count signals 109 control the gate voltages of the 7 transistors in PMOS transistor group 103. Typically, the least significant bit of the count signals controls the smallest sized transistor in group 103, and the most significant bit controls the largest transistor in group 103. When the binary value of the 7 count signals 109 decreases, the effective resistance of PMOS group 103 decreases.
If the voltage Vin+ at the positive input of comparator 104 exceeds the voltage at the negative input of comparator 104 (VCCIO/2), the output voltage of comparator 104 is high. When the output of comparator 104 is high, counter 105 causes the digital binary value of count signals 109 to increase. When the binary value of count signals 109 increases, the effective resistance of PMOS group 103 increases, as more of the transistors turn off.
The voltage Vin+ at the positive input of comparator 104 increases until it rises above half the supply voltage VCCIO/2. After Vin+ initially rises above VCCIO/2, the calibration becomes stable, and voltage Vin+ oscillates across the VCCIO/2 threshold level as shown in the graph of
A pattern detect circuit 106 in calibration circuit 101 detects the toggling output voltage of comparator 104 and enables register 108 to latch the values of count signals 109.
Serially coupled flip-flops 311–314 store the voltages at their D inputs on rising edges of the clock signal. The D input of flip-flop 311 is coupled to the output of comparator 104. The output voltages of flip-flops 311–314 are Q1–Q4, respectively. Block 320 contains logic gates that implement the logic function, (Q1·B(Q2)·Q3·B(Q4))+(B(Q1)·Q2·B(Q3)·Q4), where · refers to an AND function, + refers to an OR function, and B( ) refers to an inverse function.
The output signal OUT of pattern detect circuit 106 transitions from low to high when it detects the output voltage of comparator 104 satisfies the logic function of logic block 320. The output of circuit 106 is coupled to the enable input of register 108. Register 108 includes 7 serially coupled flip-flops that store the 7 count signals OCTCALP[6:0] on a rising edge of the output signal of pattern detect circuit 106. Count signals OCTCALP[6:0] can be transmitted through multiplexer 118 to IO buffer 100 to control the termination resistance of transistors in PMOS group 120.
The inputs of multiplexer 118 are coupled to the Q outputs of register 108 and 7 CRAM bits. The output signals of multiplexer 118 are transmitted to transistors in PMOS group 120 within IO buffer 100. A CRAM bit ROCTCAL determines whether multiplexer 118 selects signals OCTCALP[6:0] or the 7 CRAM bits to control the termination resistance of PMOS group 120.
Multiplexer 118 can be set to select the OCTCALP[6:0] signals when a user wants the termination resistance of PMOS group 120 to match the resistance of external resistor 111. When multiplexer 118 selects signals OCTCALP[6:0], PMOS group 120 has the same effective resistance as PMOS group 103, which is set to match resistor 111. When matching the resistance of PMOS group 120 to resistor 111, calibration circuit 101 compensates for silicon process, voltage, and temperature (PVT) variations on the integrated circuit. As a result, calibration circuit 101 can achieve a very accurate termination resistance (e.g., a +/− 10% variation).
The OCTCALP[6:0] signals can be used to control the termination resistance of pull-up transistors that are coupled to multiple pins. For example, the OCTCALP[6:0] signals can control the pull-up termination resistance for all of the IO pins in an IO bank.
Alternatively, multiplexer 118 can be set to select 7 CRAM bits to control the termination resistance of PMOS group 120. A user can set the CRAM bits to any desired value. The CRAM bits set the drive strength of PMOS group 120 in order to achieve a desired pull-up termination resistance (e.g., 25 Ohm or 50 Ohm). The CRAM termination control technique does not need a dedicated control circuit, and has zero cost in terms of die size.
To achieve a desired termination resistance (Rs) for PMOS group 120 (or NMOS group 121), a corresponding drive current is calculated at a pin voltage of ½ the supply voltage VCCIO using the equation: I=VCCIO/(2×Rs). For example, I=25 mA if VCCIO=2.5 volts and Rs=50 Ohm (i.e., set the driver strength to 25 mA at Vpin=½ VCCIO). This technique achieves a reasonably accurate termination resistance (+/−30% variation). The transistor resistance is calculated at VCCIO, because a signal of half the output voltage swing travels from the output buffer and is reflected at an open ended transmission line. The reflected waveform returns to the output buffer, and results in the full output swing, preventing the output signal from reflecting back-and-forth in the transmission line
Alternatively, multiplexer 119 can select 7 CRAM bits to control the termination resistance of NMOS group 121. Multiplexer 119 is control by CRAM bit ROCTCAL. A user can set the CRAM bits to any desired value. The CRAM bits set the drive strength of NMOS group 121 in order to achieve a desired pull-down termination resistance.
NMOS calibration circuit 102 operates in a similar manner to PMOS calibration circuit 101. NMOS calibration block 102 has a group of NMOS transistors 133 that are coupled in parallel between pin 130 and ground. An external resistor 131 can be coupled to pin 130.
Transistor group 133 can have any number of transistors (e.g., 7). Transistors in group 133 have different channel width-to-length ratios (e.g., 1×, 2×, 4×, 8×, 16×, 32×, and 64×). Each transistor in NMOS group 133 is typically equivalent in size (channel W/L ratio) to a corresponding pull-down NMOS drive transistor in group 121.
The positive input of comparator 134 is coupled to pin 130 and transistors 133. The negative input of comparator 134 is coupled between resistors 142 and 143. If the voltage Vin+ at the positive input of comparator 134 is higher than the voltage at the negative input of comparator 134 (VCCIO/2), the output voltage of comparator 134 is high.
When the output voltage of comparator 134 is high, 7-bit up/down counter 135 causes its 7 output count signals 139 to count up. The count signals 139 control the gate voltages of the 7 transistors in NMOS transistor group 133. When the binary value of the 7 count signals 139 increases, the effective resistance of NMOS transistor group 133 decreases.
If the voltage Vin+ at the positive input of comparator 134 is less than the voltage at the negative input of comparator 134 (VCCIO/2), the output voltage of comparator 134 is low. When the output voltage of comparator 134 is low, the binary value of count signals 139 decreases, causing the effective resistance of NMOS group 133 to increase.
The voltage Vin+ eventually oscillates across the VCCIO/2 threshold level as discussed above with respect to circuit 101. A pattern detect circuit 136 detects the toggling output voltage of comparator 134 and enables register 138 to latch the values of count signals 139.
The output signal of pattern detect circuit 136 transitions from low to high when it detects the output voltage of comparator 134 satisfies the logic function of logic block 320. The output of circuit 136 is coupled to the enable input of register 138. Register 138 includes 7 serially coupled flip-flops that store the 7 count signals OCTCALN[6:0] on a rising edge of the output signal of pattern detect circuit 136. Count signals OCTCALN[6:0] can be transmitted through multiplexer 119 to IO buffer 100 to control the termination resistance of transistors in NMOS group 121, as discussed above.
Multiplexer 119 can be set to select the OCTCALN[6:0] signals when a user wants the termination resistance of NMOS group 121 to match the resistance of external resistor 131. When multiplexer 119 selects OCTCALN[6:0], NMOS group 121 has the same effective resistance as NMOS group 133, which is set to match resistor 131. When matching the resistance of NMOS group 121 to resistor 131, calibration circuit 102 compensates for silicon process, voltage, and temperature (PVT) variations on the integrated circuit. As a result, calibration circuit 102 can achieve a very accurate termination resistance (e.g., a 10% variation).
By default, the on-chip termination is calibrated after the PLD CRAM bit configuration is completed, but before the PLD enters user mode. The on-chip termination (OCT) is also controlled by OCTDONE counter 401. Counter 401 usually counts 256 cycles, and sets the OCTDONE signal to high to indicate OCT calibration is finished.
When the OCTDONE signal is high, multiplexer 402 selects CLKUSR signal, multiplexer 403 selects the CLKENUSR signal, and multiplexer 404 selects the nCLRUSR signal. The core PLD logic disables the OCT calibration circuits 101/102 by causing the CLKENUSR signal to transition low and the nCLRUSR signal to transition low. Multiplexer 403 couples CLKENUSR to the CLKEN inputs of the calibration circuits. When CLKEN is low, counters 105 and 135 as well as pattern detect circuits 106 and 136 turn off. Multiplexer 404 couples nCLRUSR to the nCLR inputs of the calibration circuits. When nCLR is low, the output signals of the counters and pattern detect circuits are cleared to default values.
If CRAM bit ROCTUSR is low, AND gate 405 blocks the OCTDONE signal from changing the signal at the select inputs of multiplexers 402–404. Also, when ROCTUSR is low and OCTDONE is high, a low voltage is sent to CLKEN, disabling calibration circuits 101 and 102.
The OCTDONE signal is also sent to a PLD control block to enable the PLD to enter user mode. When PLD is in user mode, the user is given the choice to recalibrate OCT if he needs to, because temperature and voltage may drift from the levels when OCT is calibrated during PLD configuration. To calibrate the OCT in user mode, the user needs to provide the CLKUSR, CLKENUSR, and nCLRUSR signals, and set the CRAM bit ROCTUSR to high during PLD configuration. A user may continuously calibrate OCT for as long as needed. To stop calibration, simply stop CLKUSR clock, or set CLKENUSR to low.
PLD 500 is an example of a programmable logic integrated circuit in which techniques of the present invention can be implemented. PLD 500 includes a two-dimensional array of programmable logic array blocks (or LABs) 502 that are interconnected by a network of column and row interconnects of varying length and speed. LABs 502 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. 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 500 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 504, 4K blocks 506, and a block 508 providing 512K bits of RAM. These memory blocks can also include shift registers and FIFO buffers.
PLD 500 further includes digital signal processing (DSP) blocks 510 that can implement, for example, multipliers with add or subtract features. I/O elements (IOEs) 512 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 500 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 600 includes a processing unit 602, a memory unit 604 and an I/O unit 606 interconnected together by one or more buses. According to this exemplary embodiment, a programmable logic device (PLD) 608 is embedded in processing unit 602. PLD 608 can serve many different purposes within the system in
Processing unit 602 can direct data to an appropriate system component for processing or storage, execute a program stored in memory 604 or receive and transmit data via I/O unit 606, or other similar function. Processing unit 602 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 608 can control the logical operations of the system. In an embodiment, PLD 608 acts as a reconfigurable processor, which can be reprogrammed as needed to handle a particular computing task. Alternately, programmable logic device 608 can itself include an embedded microprocessor. Memory unit 604 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. 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 |
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 |
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 |
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 |
6281687 | Shepston | Aug 2001 | B1 |
6307791 | Otsuka et al. | Oct 2001 | B1 |
6329836 | Drost et al. | Dec 2001 | B1 |
6356106 | Greeff et al. | Mar 2002 | B1 |
6362644 | Jeffery et al. | Mar 2002 | B1 |
6366128 | Ghia et al. | Apr 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 |
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 |
6549036 | Lee | Apr 2003 | B1 |
6573747 | Radhakrishnan | Jun 2003 | B2 |
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 |
6636821 | Lawson | Oct 2003 | B2 |
6639397 | Roth et al. | Oct 2003 | B2 |
6642741 | Metz et al. | Nov 2003 | B2 |
6700823 | Rahman et al. | Mar 2004 | B1 |
6710618 | Murray | Mar 2004 | B1 |
6747475 | Yuffe et al. | Jun 2004 | B2 |
6766155 | Salcido et al. | Jul 2004 | B2 |
6788101 | Rahman | Sep 2004 | B1 |
6836144 | Bui et al. | Dec 2004 | B1 |
6919738 | Kushida | Jul 2005 | B2 |
6947336 | Kim et al. | Sep 2005 | B2 |
7038486 | Aoyama et al. | May 2006 | 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 |
20040008054 | Lesea et al. | Jan 2004 | A1 |