Dynamic impedance control for input/output buffers
10985757 · 2021-04-20
Assignee
Inventors
Cpc classification
International classification
Abstract
A system and method of performing off chip drive (OCD) and on-die termination (ODT) are provided. A common pull-up network composed of transistors and a common pull-down network composed of transistors are employed to implement both of these functions. In drive mode, the pull-up network is configured to produce a calibrated drive impedance when an “on” output is to be generated, and the pull-up network is configured to produce a calibrated drive impedance when an “off” output is to be generated. In termination mode, the pull-up network and the pull-down network are configured to produce a calibrated pull-up resistance and pull-down resistance respectively such that together, they form a split termination.
Claims
1. A memory device comprising: a first plurality of transistors connected in parallel between a first power supply and a data output terminal; a first plurality of Off-Chip Drive (OCD) configuration bits; a first plurality of On-Die Termination (ODT) configuration bits; logic for driving a gate of each of the first plurality of transistors based on the OCD and ODT configuration bits, the logic being configurable in an OCD mode to drive the gate of each of the first plurality of transistors based on a state of a respective one of the first plurality of OCD configuration bits to generate a first OCD impedance, and the logic being configurable in an ODT mode to drive the gate of each of the first plurality of transistors based on a state of a respective one of the first plurality of ODT configuration bits to generate a first ODT impedance; a termination enable signal to enable/disable the first ODT impedance when the memory device is not in the OCD mode; and a pad coupled to an external reference resistor (RZQ), the pad configured to be utilized for performing a calibration operation to calibrate the first OCD impedance and the first ODT impedance against an impedance reference of the external reference resistor.
2. The memory device of claim 1, wherein the calibration operation is carried out dynamically on a periodic basis to allow for adjustments under changing operating conditions of the memory device.
3. The memory device of claim 1, further comprising a replica of at least a portion of the first plurality of transistors and the logic for use in performing the calibration operation.
4. The memory device of claim 3, wherein an output of the replica is coupled to a first input of a comparator, the comparator having a second input coupled to a reference voltage.
5. The memory device of claim 1, wherein the first plurality of transistors are substantially equal in size.
6. The memory device of claim 1, further comprising: a second plurality of transistors connected in parallel between a second power supply and the data output terminal; a second plurality of OCD configuration bits; a second plurality of ODT configuration bits; and logic for driving the gate of each of the second plurality of transistors based on the OCD and ODT configuration bits, the logic being configurable in an OCD mode to drive a gate of each of the second plurality of transistors based on a state of a respective one of the second plurality of OCD configuration bits to generate a second OCD impedance, and the logic being configurable in an ODT mode to drive a gate of each of the second plurality of transistors based on a state of a respective one of the second plurality of ODT configuration bits to generate a second ODT impedance.
7. The memory device of claim 6, wherein the second plurality of transistors are substantially equal in size.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Embodiments of the invention will now be described with reference to the attached drawings in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) Referring now to
(14) Generally indicated at 32 is a cell architecture provided by an embodiment of the invention in which there is again a core 10, level translators and input buffer 12, pre-drivers 14, ESD 20 and pad 22. However in this embodiment, the on-die termination 16 and off-chip drive 18 are not separate components; rather a combined On-Die Termination/Off-Chip Drive (OCD/ODT) 34 is provided.
(15) While the cell I/O architecture 32 of
(16) Note that in the conventional architecture 30, there is a separate ODT and OCD; in an example set of possible implementation-specific dimensions, the total height is 260 μm and the width is 40 μm. The ODT 16 is typically implemented using resistors and the OCD 18 is typically implemented using transistors.
(17) For the new cell architecture 32, there is a merged ODT/OCD, and the result is that, in an example set of possible implementation specific dimensions, the cell architecture has a total height of 200 μm. The ODT and OCD are implemented using shared transistors.
(18)
(19) Referring now to
(20) To function in ODT mode, the first and second ON/OFF controls 41,43 turn ON the pull-up network 40 and the pull-down network 42 respectively. In addition, the impedance control inputs 48,53 are used to set the resistance of the pull-up network 40 and the pull-down network 42 to the calibrated values for termination. A received signal is input via the pad 46, passed through input buffer 51 and passed on to the remainder of the circuit (not shown). By concurrently turning on transistors in both the pull-up network and the pull-down network, the output driver can be used to create the impedance behaviour of a split termination resistor network. In other words, output transistors of the controller can be used to terminate an input signal.
(21) To function in OCD mode, when a logic high is to be output, the control inputs 41,43 turn ON the pull-up network 40, and turn OFF the pull-down network 42. In addition, the impedance control 48 is used to set the resistance of the pull-up network 40 to the calibrated value for the pull-up network for drive. When a logic low is to be output, the control inputs 41,43 turn ON the pull-down network 42 and turn OFF the pull-up network 40. In addition, impedance control input 53 is used to set the resistance of the pull-down network to the calibrated value for the pull-down network for drive. Note that the OCD and ODT functions are mutually exclusive.
(22) Quad Data Rate (QDR) SRAM (static random access memory) is a type of SRAM with independent input and output pads. The merged ODT/OCD can still find application for connecting to such a device because separate instances of a common I/O cell design can be used for both input and output, thereby simplifying design. In this case, a given merged ODT/OCD instance will be permanently configured to be either ODT or OCD.
(23) Output impedance varies inversely in relation to the number of transistors in the QDR output driver that are turned ON. Referring to
(24) Referring to
(25) In some embodiments, the analog comparator 206 is implemented using a DDR input buffer. Such buffers are specialized analog comparators that are designed for speed rather than accuracy or gain. The output of such an analog comparator is digital and is designed to switch abruptly from one logic level to another depending on the relative values of its analog inputs.
(26) For example, to calibrate the output impedance so that it matches the 50Ω resistance illustrated in
(27) The pull-up network and the pull-down network of
(28) In the examples of
(29) An example of an output driver for a DDR3 controller is illustrated in
(30) By concurrently turning on transistors in both the pull-up network and the pull-down network, the DDR3 output driver can be used to create the impedance behaviour of a split termination resistor network. In other words, output transistors of the DDR3 controller can be used to terminate an input signal.
(31) A detailed implementation of an I/O cell architecture consistent with the cell architecture 32 of
(32) The core logic 10 includes a circuit 64 that receives inputs 66 consisting of SJ, DO, DJ, OE, OJ, TE. The function of these inputs is as follows:
(33) SJ selects normal inputs (DO and OE) when low and selects test inputs (DJ and OJ) when high;
(34) DO is the normal data output to the pad when OE=1. Pad is high when DO=1, and pad is low when DO=0;
(35) DJ is the test data output to the pad when OJ=1. Pad is high when DJ=1 and pad is low when DJ=0;
(36) OE is the normal output enable. When OE=1 the Off-Chip Driver (OCD) is enabled and the On-Die Termination (ODT) is disabled. When OE=0, the OCD is disabled (tri-state) and the ODT is enabled if TE=1;
(37) OJ is the test output enable, and has the same functionality as OE; and
(38) TE is the termination enable. This allows the pad driver transistors to function as a split termination. When TE=1, the termination will turn ON when the OCD are tri-state (OE (or OJ)=1). This will usually be low for drive-only applications and high for data I/O applications.
(39) The outputs of the core logic 64 include DPU 68, TON 70 and DPD 72 which function as follows:
(40) DPU is a drive pull-up control. When this is high, it causes the drive pull-up transistor to turn ON. When low, the drive pull-up transistor turns OFF;
(41) DPD is a drive pull-down control. When this is high, it causes the drive pull-down transistor to turn ON. When low, the drive pull-down transistor turns OFF; and
(42) TON is a termination ON control. When high, both pull-up and pull-down transistors are enabled to turn ON together to form a split termination when OE or OJ goes low. When low, the termination function is completely disabled and cannot be influenced by the states of OE or OJ.
(43) The three outputs DPU 68, TON 70, and DPD 72 are input to level translators 12 which produce DPUH 78, TONH 80, DPDH 82 and TONH 84 which are the high voltage versions of DPU 68, TON 70, and DPD 72 used to drive the I/O pre-drivers 88,90.
(44) There is a 64 bit impedance control bus, referred to as ZIOH<63:0> that is used to control the pull-up transistors 110 and the pull-down transistors 112. The impedance control bus ZIOH is a specific example of how the impedance control inputs of
(45) 16 bits ZIOH<31:16> for controlling the pull-up transistors 110 in OCD mode, with one bit per transistor;
(46) 16 bits ZIOH<63:48> for controlling the pull-up transistors 110 in ODT mode, with one bit per transistor;
(47) 16 bits ZIOH<15:0> for controlling the pull-down transistors 112 in OCD mode, with one bit per transistor; and
(48) 16 bits ZIOH<47:32> for controlling the pull-down transistors 112 in ODT mode, with one bit per transistor.
(49) Each pre-driver 88 includes an AND gate 92 and an AND gate 94 having respective outputs connected to an OR gate 96 having an output fed through a respective inverting buffer 98 the output of which drives the gate of one of the pull-up transistors 110. AND gate 92 receives DPUH 78 (A1) and one of the bits of ZIOH<31:16> (A2). AND gate 94 receives TONH 80 (B1) and one of the bits of ZIOH<63:48> (B2).
(50) Similarly, each pre-driver 90 includes an AND gate 100 and an AND gate 102 having respective outputs connected to an OR gate 104 having an output fed through a respective non-inverting buffer 106 the output of which drives the gate of one of the pull-up transistors 120. AND gate 100 receives DPDH 82 (C1) and one of the bits of ZIOH<15:0> (C2). AND gate 102 receives TONH 84 (D1) and one of the bits of ZIOH<47:32> (D2).
(51) The AND-OR-AND logic, built into the pre-drivers 88,90, serve as high-speed multiplexers for independent control of driver and termination impedances. The AND-OR-AND logic allows any number of pull-up and pull-down transistors to turn ON and OFF alternately when driving, and any number of pull-up and pull-down transistors to turn ON and OFF together when terminating. The pre-driver logic turns OFF all OCD/ODT transistors 34 that are not selected by the ZIOH<63:0> bus 76 and prevents them from switching. Only the selected OCD/ODT transistors switch at high-speed.
(52) A detailed example implementation of the circuit 64 of
(53) Generally indicated at 214 in
(54) The pre-drivers 88, 90 operate as a function of the level translated DPUH, TONH, TPDH. Normal operation (SJ=0) will be described as opposed to test operation which would be similar.
(55) OCD Mode
(56) In OCD mode operation, OE will be high to enable the output. The state of TE is not relevant so long as OE is high. DO will be 0 or 1 at any given instant reflecting the output to be generated. If DO is 1 (rows 218, 219), then a respective one of pull-up transistors 110 is turned ON by the pre-drivers 88 for each ‘1’ in ZIOH<31:16>. Similarly, if DO is 0 (rows 216, 217), then a respective one of the pull-down transistors 112 is turned ON for each ‘1’ in ZIOH<15:0>.
(57) ODT Mode
(58) The only set of inputs that results in ODT mode being activated are: OE will be low to disable the output and TE=1 to enable ODT (TON=1). This is row 220 of the truth table 214. If TON is 1, then a respective one of pull-up transistors 110 is turned ON by the pre-drivers 88 for each ‘1’ in ZIOH<63:48> and a respective one of the pull-down transistors 112 is turned ON for each ‘1’ in ZIOH<47:32>.
(59) Calibration
(60) In some embodiments, a calibration mechanism is provided in order to identify appropriate numbers of transistors to use for ODT and OCD mode, and in particular to identify how many pull-up and/or pull-down transistors to turn on for each of these modes. In some embodiments, the calibration is carried out dynamically during device operation on a periodic basis to allow for adjustments under changing operating conditions.
(61) In some embodiments, a four stage calibration is performed as follows:
(62) 1) N device output impedance calibration—this determines how many of the n-type transistors 112 to enable for OCD mode when DO is 0;
(63) 2) P device output impedance calibration—this determines how many of the p-type transistors 110 to enable for OCD mode when DO is 1;
(64) 3) N device termination calibration—this determines how many of the n-type transistors 112 to enable for ODT; and
(65) 4) P device termination calibration—this determines how many of the p-type transistors 110 to enable for ODT mode.
(66) More generally, pull-up network calibration and pull-down network calibration can be performed in a similar manner. The circuits described are for the most part replicated on a per pin basis. However, in some embodiments, calibration is not performed on a per pin basis. Rather, calibration is performed once, with the expectation that the same calibration results can be applied to all pins. This expectation is reasonable given that the transistors being used for the combined OCD/ODT for multiple pins will be part of the same integrated circuit and hence have similar properties. In some embodiments, a replica of the combined OCD/ODT is used for the purpose of calibration of all of the I/Os.
(67) The number of transistors to include in the combined OCD/ODT can be selected as a function of a desired range of programmability, and a function of the resistance/drive characteristics of the transistors. In some embodiments, a set of transistors are used that provide a range of programmability from 30 ohms to 90 ohms, but this is of course implementation specific.
(68) In some embodiments, a controller encodes a resistance using a gray code, and this is then converted to a thermometer code output. Each codeword of a thermometer code has a single set of zero or more l's followed by a single set of zero or more 0's to fill up the codeword. Using such a thermometer code ensures that a set of consecutive transistors (pull-up or pull-down) is enabled. In a particular example, a 4-bit gray code is used to indicate one of 16 possible permutations, and this is translated to a 16 bit thermometer code containing a bit per transistor. A gray-to-thermometer decoding scheme can be used rather than a binary-to-thermometer scheme to prevent a glitch from occurring on the driver output while the impedance code (ZIOH<63:0>) is being changed.
(69) The illustrated examples all relate to a combined OCD/ODT circuit. More generally, a circuit that provides combined drive and termination is provided.
(70)
(71)
(72)
(73) The embodiments described refer to variable resistance pull-up networks, variable resistance pull-down networks, termination resistance, and resistance references. More generally, embodiments may employ variable impedance pull-up networks, variable impedance pull-down networks, termination impedance, and impedance references.
(74) Numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.