US20150270838A1 - Programmable equalization with compensated impedance - Google Patents

Programmable equalization with compensated impedance Download PDF

Info

Publication number
US20150270838A1
US20150270838A1 US14/727,685 US201514727685A US2015270838A1 US 20150270838 A1 US20150270838 A1 US 20150270838A1 US 201514727685 A US201514727685 A US 201514727685A US 2015270838 A1 US2015270838 A1 US 2015270838A1
Authority
US
United States
Prior art keywords
pull
equalizer
driver
impedance
equalization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/727,685
Inventor
Hong H. Chan
Jayson D. Strayer
My M. Hua
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US14/727,685 priority Critical patent/US20150270838A1/en
Publication of US20150270838A1 publication Critical patent/US20150270838A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0005Modifications of input or output impedance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1048Data bus control circuits, e.g. precharging, presetting, equalising
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0278Arrangements for impedance matching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0298Arrangement for terminating transmission lines

Definitions

  • termination impedance of pull-up and/or pull-down
  • signal integrity issues may result in incorrect date reception and sampling at a receiver end.
  • FIG. 1A is a processor with programmable equalization and compensated impedance for an input-output (I/O) driver, according to one embodiment of the disclosure.
  • FIG. 1B is an illustration of the operation of equalization segment of the equalizer and non-equalization segment of the pull-down during equalization mode and non-equalization mode, according to one embodiment.
  • FIG. 2 is an I/O driver with decoupled pull-up/pull-down and equalizer circuit modules to provide fine granularity (e.g., 1%) of equalization, according to one embodiment of the disclosure.
  • FIG. 3A is a pull-up compensation unit to program the equalizer with fine granularity of equalization while also compensating the pull-up impedance of the I/O driver, according to one embodiment of the disclosure.
  • FIG. 3B is a pull-down compensation unit to program the equalizer with fine granularity of equalization while also compensating the pull-down impedance of the I/O driver, according to one embodiment of the disclosure.
  • FIG. 4 is flowchart showing the method of programming the equalizer with a fine programmable equalizing code while maintaining the impedances of the pull-up and pull-down drivers substantially constant, according to one embodiment of the disclosure.
  • FIG. 5 is a system-level diagram of a smart device comprising the processor or circuits of FIG. 1A , according to one embodiment of the disclosure.
  • equalization lacks the ability to provide finer granularity to equalization levels than presently possible.
  • fine granularity generally refers to small equalization levels e.g., 1% of ground or supply levels.
  • Granularity for de-emphasis can also be expressed in dB because it is relative to signal swing. For example, a granularity of 0.2 dB.
  • One reason for that lack of ability is the modulation of termination impedances (pull-up and/or pull-down) of the I/O drivers when the I/O drivers are operating in equalization and/or non-equalization modes.
  • the embodiments provide an apparatus and method for training I/O driver impedances to accomplish a wide range of programmable finer granularity of equalization, for a signal driven by the I/O driver, while maintaining termination impedances of the I/O driver substantially constant.
  • the term “equalization” generally refers to a process of modulating amplitude of a signal driven by a driver.
  • de-emphasis generally refers to decreasing a voltage level of a signal.
  • de-emphasizing V OH level of a signal refers to reducing the V OH level relative to ground.
  • de-emphasizing V OL level of a signal refers to increasing the V OL level relative to ground.
  • scaling refers to converting a design (schematic and layout) from one process technology to another process technology.
  • the terms “substantially,” “close,” “approximately,” “near,” “about,” refer to being within +/ ⁇ 20% of a target value.
  • a novel method and apparatus for training pull-down and pull-up impedances are disclosed that are decoupled from the training of an equalizer of the I/O driver.
  • impedance of the pull-up driver is independently controllable from impedance of the pull-down driver.
  • a two-dimensional impedance training algorithm (with first and second loops) is applied to train the pull-up and pull-down drivers and the equalizer.
  • equalizer (part of the I/O driver) is decoupled from the pull-up and pull-down drivers in that the equalizer is controllable by a code (one or more signals) which is separate from the code used to control the impedance of the pull-up and pull-down I/O drivers.
  • impedances of the pull-up and pull-down drivers of the I/O are trained to have specific target (or desired) impedances while the equalizer of the I/O driver is disabled. After training the pull-up and pull-down driver impedances, equalizer is enabled and trained to have a specific target (or desired) equalization level granularity. In one embodiment, during the process of training the equalizer, pull-up and pull-down drivers of the I/O are trained again to maintain their impedances (i.e., to keep their impedances at the trained target level) while the equalizer is being trained.
  • This process forms a two-dimensional training process that trains pull-up and pull-down impedances of the I/O driver in the first loop of the training process, and trains the granularity code of the equalizer in the second loop of the training process.
  • closed-loop impedance training of the pull-up and pull-down drivers is performed by incrementing granularity code of the equalizer by one (or another small number e.g., two).
  • training process is initiated by the BIOS (Basic Input/Output System) associated with the chip/processor having the I/O driver with equalizer.
  • BIOS Basic Input/Output System
  • signals are represented with lines. Some lines may be thicker, to indicate more constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction. Such indications are not intended to be limiting. Rather, the lines are used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit or a logical unit. Any represented signal, as dictated by design needs or preferences, may actually comprise one or more signals that may travel in either direction and may be implemented with any suitable type of signal scheme.
  • connection means a direct electrical connection between the things that are connected, without any intermediary devices.
  • coupled means either a direct electrical connection between the things that are connected, or an indirect connection through one or more passive or active intermediary devices.
  • circuit means one or more passive and/or active components that are arranged to cooperate with one another to provide a desired function.
  • signal means at least one current signal, voltage signal or data/clock signal.
  • the transistors are metal oxide semiconductor (MOS) transistors, which include drain, source, gate, and bulk terminals. Source and drain terminals may be identical terminals and are interchangeably used herein.
  • MOS metal oxide semiconductor
  • Source and drain terminals may be identical terminals and are interchangeably used herein.
  • BJT PNP/NPN Bi-polar junction transistors
  • BiCMOS BiCMOS
  • CMOS complementary metal oxide semiconductor
  • eFET eFET
  • MN indicates an n-type transistor (e.g., NMOS, NPN BJT, etc.)
  • MP indicates a p-type transistor (e.g., PMOS, PNP BJT, etc.).
  • FIG. 1A illustrates a system 100 with a processor 101 with programmable equalization and compensated impedance for an input-output (I/O) driver, according to one embodiment of the disclosure.
  • processor 101 comprises a driver coupled to a pad 108 .
  • the driver includes a pull-up driver 102 , a pull-down driver 103 , and an equalizer 104 .
  • processor 101 further comprises a pull-up compensation unit 105 , pull-down compensation unit 106 , and a training control unit 107 .
  • processor 101 is coupled to another device (e.g., another processor) via a transmission media 109 .
  • transmission media 109 is a transmission line.
  • equalizer 104 and the pull-up/pull-down drivers ( 102 and 103 ) are part of a parallel I/O link.
  • a parallel I/O link of 32 bits there are 32 I/Os to transfer data in one clock cycle.
  • parallel I/O link include Double-Data-Rate busses (DDR2, DDR3, DDR4, etc).
  • pull-up/pull-down drivers ( 102 and 103 ) are part of a serial I/O link.
  • serial I/O link Generally, in a serial I/O link of 8 bits, one serial I/O will transfer data in eight clock cycles.
  • Serial links are operated with higher clock rates than parallel links, in general. Examples of serial I/O link include Peripheral Component Interconnect Express (PCIe) I/O link.
  • PCIe Peripheral Component Interconnect Express
  • equalizer 104 comprises a pull-up section 104 a (also referred as equalizer pull-up section) and a pull-down section 104 b (also referred to as equalizer pull-down section).
  • equalizer 104 is decoupled from the pull-up and pull-down drivers ( 102 and 103 ) in that the control signals 110 a and 110 b for the equalizer 104 are different than and separate from the control signals 111 and 112 of the pull-up/pull-down drivers ( 102 and 103 ).
  • control signal 110 a (which may be a bus with one or more bits) turns on/off one or more pull-up devices of the equalizer pull-up section 104 a .
  • control signal 110 b (which may be a bus with one or more bits) turns on/off one or more pull-down devices of the equalizer pull-down section 104 b.
  • impedance of the pull-up driver 102 (also called first impedance) is controlled by signal 111 which is used to turn on/off one or more pull-up devices of the pull-up driver 102 .
  • impedance of the pull-down driver 103 (also called second impedance) is controlled by signal 112 which is used to turn on/off one or more pull-down devices of the pull-down driver 103 .
  • the bit values of the control signals 110 a , 111 , 112 , and 110 b are also called a code or bus.
  • pull-up compensation unit 105 trains the pull-up driver 102 (via code 111 ) and the equalizer pull-up section 104 a (via code 110 a ) to have particular impedances.
  • pull-down compensation unit 106 trains pull-down driver 103 (via code 112 ) and equalizer pull-down section 104 b (via code 110 b ) to have particular impedances.
  • impedances of pull-up/pull-down drivers 102 and 103 , and equalizer pull-up/pull-down sections 104 a and 104 b are programmable by software or hardware.
  • impedances can be programmed by BIOS or any other operating system, and/or by fuses.
  • pull-up and pull-down compensation units 105 and 106 determine impedance codes 110 a , 111 , 112 , and 110 b by using reference impedance (which may be an external resistor).
  • training control unit 107 controls the compensation process performed by pull-up and pull-down compensation units 105 and 106 so that granularity of equalizer 104 may be set (to any level) while maintaining impedances of pull-up and pull-down drivers 102 and 103 substantially constant. In one embodiment, training control unit 107 controls the flow of the method discussed with reference to FIG. 4 .
  • pull-up driver compensation unit 105 is operable to determine code 111 for setting the first impedance for pull-up driver 102 .
  • pull-up driver compensation unit 105 is operable to determine code 110 a for setting pull-up granularity for equalizer pull-up section 104 a for de-emphasizing the signal driven on pad 108 by equalizer 104 .
  • pull-down driver compensation unit 106 is operable to determine code 112 for setting the second impedance for pull-down driver 103 .
  • pull-up driver compensation unit 105 is operable to determine code 110 b for setting pull-down granularity for equalizer pull-down section 104 b for de-emphasizing the signal driven on pad 108 by equalizer 104 .
  • equalizer 104 is disabled when pull-up driver compensation unit 105 is determining code 111 for setting the first impedance for pull-up driver 102 . In one embodiment, equalizer 104 is disabled when pull-down driver compensation unit 106 is determining code 112 for setting the second impedance for pull-down driver 103 . In one embodiment, pull-up driver compensation unit 105 and pull-down driver compensation unit 106 determine codes 111 and 112 for setting the first and second impedances prior to setting codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108 , by equalizer 104 . As discussed, codes 111 , 110 a , 112 , and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108 , by equalizer 104 are programmable.
  • pull-up driver compensation unit 105 and pull-down driver compensation unit 106 are operable to determine codes 111 and 112 again for setting the first and second impedances after setting codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal by equalizer 104 .
  • codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108 by equalizer 104 are different when equalizer 104 is in equalization mode than codes 110 a and 110 b for the pull-up and pull-down granularities when equalizer 104 is in non-equalization mode.
  • codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108 , by the equalizer 104 are same when equalizer 104 is in equalization mode than codes 110 a and 110 b for the pull-up and pull-down granularities when equalizer 104 is in non-equalization mode.
  • equalization mode generally refers to the circuit configuration/operation when the equalizer 104 is enabled to equalize (e.g., de-emphasize) the signal on pad 108 .
  • non-equalization mode generally refers to the circuit configuration/operation when the equalizer 104 is enabled but is not set to emphasize the signal on pad 108 .
  • first and second impedances are substantially constant during a period when equalizer 104 is in non-equalization mode or equalization mode.
  • equalizer 104 can be set to enable equalization mode or to disable equalization mode.
  • equalizer 104 in enable equalization mode, turns off one of the equalization segments (e.g., equalizer pull-up section 104 a ) and turns off another equalization segment (e.g., equalizer pull-down section 104 b ). For example, when driver 200 is driving a zero on pad 108 , equalizer 104 will turn off equalizer pull-down section 104 b but turn on equalizer pull-up section 104 a . In another example, when driver 200 is driving a one on pad 108 , equalizer 104 turns off equalizer pull-up section 104 a but turns on equalizer pull-down section 104 b . Equalization code is labeled as 110 a and 110 b , while non-equalization codes are labeled as 111 and 112 .
  • codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108 by equalizer 104 are same when equalizer 104 is in equalization mode than codes 110 a and 110 b for the pull-up and pull-down granularities when equalizer 104 is in non-equalization mode.
  • FIG. 1B is an illustration 120 of the operation of equalization segment 104 (e.g., 104 b ) of the equalizer 104 and non-equalization segment of the pull-down (e.g., 103 ) during equalization mode and non-equalization mode, according to one embodiment. While the embodiment of FIG. 1B illustrates the behavior of pull-down segments (e.g., 103 and 104 b ), the same explanation also applies to pull-up segments (e.g., 102 and 104 a ).
  • FIG. 1B shows two tables, table 121 and table 122 .
  • Table 121 illustrates the on-die termination code (ODT) for the pull-down driver 103 and equalizer pull-down section 104 b when equalization code 110 b is the same as non-equalization code 112 .
  • Table 122 illustrates ODT code for pull-down driver 103 and equalizer pull-down section 104 b when equalization code 110 b is different from non-equalization code 112 .
  • the entire pull-down section i.e., pull-down driver 103 and equalizer pull-down section 104 b
  • the first four segments (R 1 _seg) form pull-down section 103 while the fourth segment (R 4 _seg) forms equalization pull-down section 104 b .
  • the term “Zo” stands for impedance of the entire pull-down section (i.e., pull-down driver 103 and equalizer pull-down section 104 b ).
  • 110 b is “equalization segment code,” and 112 is the “non-equalization segment code.”
  • Each of these segments has codes from 0 to 64, i.e., code 0 results in the highest impedance and code 64 results in the lowest impedance.
  • “Equalization segment” is 1 out of total 5 segments of the driver and “non eq seg” is 4 out of total 5. So when a two dimensional (2-D) sweep of these two codes is performed, one combination of these two codes will give the total impedance (“equalization segment” in parallel to “non-equalization segment”) as ⁇ 36 Ohm when equalization is set to off and the equalization coefficient is at desired value when equalization is turned on.
  • Table 121 is the result of a single sweep of the 2-D sweep.
  • code 110 b is 36 and code 112 is 36, which results in impedance of pull-down driver ( 103 and 104 b ) of 36.5 Ohms and equalization coefficient to be ⁇ 20%.
  • Table 122 shows another 2-D sweep result. In this case, code 110 b is 20 and code 112 is 40, which results in impedance of 36.5 Ohms but equalization coefficient of ⁇ 12.1%.
  • coefficient (which refers to equalization granularity) codes of 110 b and 112 for pull-down driver 103 are the same regardless of equalization (i.e., equalizer pull-down section 104 b ) being on or off.
  • the function of equalizer 104 is that when it is on, it will turn off “equalization segment” and turn on opposite direction of “equalization segment” to maintain constant driver impedance. For example, when driver is driving a zero on pad 108 , equalizer 104 will turn off equalizer pull-down section 104 b but turn on equalizer pull-up section 104 a .
  • equalizer 104 when driver is driving a one on pad 108 , equalizer 104 turns off equalizer pull-up section 104 a but turns on equalizer pull-down section 104 b .
  • equalizer 104 is set to be in off state, the “equalization segment” is turned on resulting in a total of five segments being used for transmission of data on pad 108 . In such an embodiment, there will be no de-emphasis and so the equalization coefficient is 0.
  • FIG. 2 is an I/O driver 200 with decoupled pull-up/pull-down and equalizer circuit modules to provide fine granularity of equalization, according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 2 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • I/O driver 200 is shown with five segments—the first four segments (from the left) forming pull-up and pull-down drivers 102 and 103 , while the fifth segment forms equalizer 104 ( 104 a and 104 b ). In other embodiments, other number of segments may be used for the pull-up/pull-down drivers 102 and 103 , and equalizer 104 .
  • the embodiment of FIG. 2 illustrates that the equalizer 104 (sections 104 a and 104 b ) is controlled independent of the pull-up and pull-down drivers 102 and 103 . In such an embodiment, the granularity of equalizer 104 can be independently programmed to any level while maintaining the impedances of pull-up driver 102 and pull-down driver 103 substantially constant.
  • pull-up driver 102 comprises four segments of pull-up drivers 201 a , 202 a , 203 a , and 204 a which are controllable by code 111 , where each pull-up driver 102 (e.g., 201 a ) may receive its own bit from the code 111 to turn on/off its respective transistor to adjust the first impedance.
  • each pull-up driver e.g., 201 a
  • each pull-up driver comprises one or more p-type device(s) coupled in series with one or more resistor(s).
  • pull-up driver 201 a comprises MP 1 coupled to R 1
  • pull-up driver 202 a comprises MP 2 coupled in series to R 2
  • pull-up driver 203 a comprises MP 3 coupled in series to R 3
  • pull-up driver 204 a comprises MP 4 coupled in series to R 4
  • the resistors R 1 -R 4 may be implemented with any known resistor technology including transistors biased in linear region to form a resistor.
  • the pull-up drivers 201 a , 202 a , 203 a , and 204 a are coupled to the pad 108 via the resistors R 1 -R 4 .
  • each segment of pull-up driver 102 is of different weight i.e., size.
  • transistors MP 1 -MP 4 are binary weighted. In another embodiment, transistors MP 1 -MP 4 are thermometer weighted. In other embodiments, other weighting techniques may be used for transistors forming MP 1 -MP 4 .
  • each segment of the pull-up driver 102 is of equal weight i.e., size. So as not to obscure the embodiments of this disclosure, other components (e.g., electrostatic discharge unit, pre-drivers, etc.) of the I/O driver are not shown.
  • pull-down driver 103 comprises four segments of pull-down drivers 201 b , 202 b , 203 b , and 204 b which are controllable by code 112 , where each pull-down driver 103 (e.g., 201 b ) may receive its own bit from the code 112 to turn on/off its respective transistor to adjust the second impedance.
  • each pull-down driver e.g., 201 b
  • each pull-down driver comprises one or more n-type device(s) coupled in series with one or more resistor(s).
  • pull-down driver 201 b comprises MN 1 coupled to R 6
  • pull-down driver 202 b comprises MN 2 coupled in series to R 7
  • pull-down driver 203 b comprises MN 3 coupled in series to R 8
  • pull-down driver 204 b comprises MN 4 coupled in series to R 9
  • the resistors R 6 -R 9 may be implemented with any known resistor technology including transistors biased in linear region to form a resistor.
  • pull-down drivers 201 b , 202 b , 203 b , and 204 b are coupled to pad 108 via resistors R 6 -R 8 .
  • each segment of pull-down driver 103 is of different weight i.e., size.
  • transistors MN 1 -MN 4 are binary weighted. In another embodiment, transistors MN 1 -MN 4 are thermometer weighted. In other embodiments, other weighting techniques may be used for transistors forming MN 1 -MN 4 . In one embodiment, each segment of the pull-down driver 103 is of equal weight i.e., size.
  • equalizer pull-up section 104 a of equalizer 104 comprises a p-type device MP 5 coupled in series with a resistor R 5 which in turn is coupled to pad 108 . As discussed herein the equalizer 104 is decoupled from pull-up and pull-down drivers 102 and 103 .
  • gate terminal of MP 5 is controlled by code 110 a . While the embodiment of FIG. 2 shows a single pull-up transistor MP 5 for equalizer pull-up section 104 a of equalizer 104 , multiple transistors may be used in parallel to one another and controllable by bits of code 110 a .
  • the multiple transistors of MP 5 are binary weighted.
  • the multiple transistors of MP 5 are thermometer weighted. In other embodiments, other weighting techniques may be used for transistors forming MP 5 .
  • equalizer pull-down section 104 b of the equalizer 104 comprises an n-type device MN 5 coupled in series with a resistor R 10 which in turn is coupled to the pad 108 . As discussed herein the equalizer 104 is decoupled from the pull-up and pull-down drivers 102 and 103 respectively.
  • the gate terminal of MN 5 is controlled by code 110 b . While the embodiment of FIG. 2 shows a single transistor MN 5 for the equalizer pull-down section 104 b , multiple transistors may be used in parallel to one another and controllable by bits of code 110 b .
  • multiple transistors of MN 5 are binary weighted. In one embodiment, multiple transistors of MN 5 are thermometer weighted. In other embodiments, other weighting techniques may be used for transistors forming MN 5 .
  • FIG. 3A is a pull-up compensation unit 300 (e.g., 105 ) to program the equalizer (e.g., 104 ) with fine granularity of equalization while also compensating the pull-up impedance (e.g., of pull-up driver 102 ) of the I/O driver (e.g., 200 ), according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 3A having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • pull-up compensation unit 300 (e.g., 105 ) comprises a voltage reference unit 301 , a comparator 302 , a dummy pull-up driver 303 , a reference (e.g., reference impedance) 304 , a finite state machine (FSM) 305 , and training control unit 107 . While the embodiment of FIG. 3A shows several components as distinct components, they may be lumped together in a single component or fewer or more components than shown.
  • FSM finite state machine
  • Vref unit 301 comprises one or more voltage references that are selectable by a Vref select signal and provided as Vref to comparator 302 .
  • Vref unit 301 comprises an analog multiplexer that receives Vref select signal to select between two or more voltage references from any source (e.g., voltage/resistor divider, bandgap reference, external reference, etc.) and provide Vref as the reference signal to comparator 302 .
  • voltage level of Vref corresponds to impedance setting for the pull-up driver 102 . For example, Vref is set to 0.5V and reference 304 is set to the target impedance of pull-up driver 102 . In another example, Vref is set to another voltage that corresponds to the granularity of equalizer pull-up section 104 a of equalizer 104 .
  • comparator 302 is a differential amplifier. In another embodiment, comparator 302 is a multi-stage operational amplifier (OPAMP). In one embodiment, comparator 302 receives a reference voltage Vref from the Vref unit 301 and another signal from the node coupled between reference 304 and dummy pull-up driver 303 . In one embodiment, output of comparator 302 is received by FSM 305 . In one embodiment, output of comparator 302 trips (i.e., changes its state from low to high or high to low when the inputs of the comparator are substantially equal) indicating to FSM 305 that inputs of comparator 302 are substantially equal. In such an embodiment, impedance of dummy pull-up driver 303 is substantially equal to impedance of reference 304 (if Vref is set to half of the power supply level).
  • OPAMP multi-stage operational amplifier
  • reference 304 is an external resistor. In one embodiment, reference 304 is a highly precise resistor with resistance tolerance of 1% or less. In one embodiment, value of the reference resistance of resistor 304 is used to determine the impedance codes 111 / 110 a . In one embodiment, reference 304 is coupled between ground supply and node 306 of dummy pull-up diver 303 , where node 306 represents pad node 108 .
  • FSM 305 comprises a filter (e.g., a low pass filter), a counter, and other logic units to generate a code that is received by the dummy pull-up driver 303 .
  • the filter (not shown) is used to filter glitches from the output of the comparator 302 .
  • the counter (not shown) is used to count the number of legs/segments of pull-up driver 102 that are turned on/off.
  • dummy pull-up driver 303 is identical to the pull-up driver 102 and the equalizer pull-up section 104 a of the equalizer 104 .
  • FSM 305 turns on or off one dummy pull-up driver ( 303 ) leg or segment or transistor at a time (or collectively) to adjust the impedance of dummy pull-up driver 303 till the voltage on node 306 , coupled between reference 304 and dummy pull-up driver 303 , is substantially equal to the voltage of Vref.
  • final code 111 / 110 a of FSM 305 for which the inputs of comparator 302 are substantially equal to one another, is sent to pull-up driver 102 or equalizer 104 .
  • training control unit 107 provides Vref select signal for Vref unit 301 to select the Vref for generating codes 111 / 110 a . In one embodiment, training control unit 107 selects Vref level to determine codes 111 for pull-up driver 102 . In one embodiment, training control unit 107 selects a Vref level to determine codes 110 a for the equalizer pull-up section 104 a of the equalizer 104 . In one embodiment, training control unit 107 selects the Vref levels according to a method described with reference to FIG. 4 .
  • FIG. 3B is a pull-down compensation unit 320 (e.g., 106 ) to program the equalizer (e.g., 104 ) with fine granularity of equalization while also compensating the pull-down impedance of the I/O driver, according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 3B having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such. FIG. 3B is described with reference to FIGS. 1-2 .
  • pull-down compensation unit 106 / 320 comprises a voltage reference unit 321 , a comparator 322 , a dummy pull-down driver 323 , a reference (e.g., reference impedance) 324 , FSM 325 , and training control unit 107 . While the embodiment of FIG. 3B shows several components as distinct components, they may be lumped together in a single component or fewer or more components than shown.
  • Vref unit 321 comprises one or more voltage references that are selectable by a Vref select signal and provided as Vref to comparator 322 .
  • Vref unit 321 comprises an analog multiplexer that receives Vref select signal to select between two or more voltage references from any source (e.g., voltage/resistor divider, bandgap reference, external reference, etc.) and to provide Vref as the reference signal to the comparator 322 .
  • voltage level of Vref corresponds to impedance setting for pull-down driver 103 .
  • Vref is set to 0.5V and the reference 324 is set to the target impedance of pull-down driver 103 .
  • Vref is set to another voltage that corresponds to the granularity of equalizer pull-down section 104 b of equalizer 104 .
  • comparator 322 is a differential amplifier. In another embodiment, comparator 322 is a multi-stage OPAMP. In one embodiment, comparator 322 receives a reference voltage Vref from the Vref unit 321 and another signal from the node coupled between reference 324 and dummy pull-down driver 323 . In one embodiment, output of comparator 322 is received by FSM 325 . In one embodiment, output of comparator 322 trips (i.e., changes its state from low to high or high to low when the inputs of the comparator are substantially equal) indicating to FSM 325 that the inputs of the comparator 322 are substantially equal. In such an embodiment, the impedance of dummy pull-down driver 323 is substantially equal to the impedance of reference 324 (if Vref is set to half of the power supply level).
  • reference 324 is an external resistor. In one embodiment, reference 324 is highly precise resistor with resistance tolerance of 1% or less. In one embodiment, value of the reference resistance of resistor 324 is used to determine impedance codes 112 / 110 b . In one embodiment, reference 324 is coupled between power supply and node 326 of dummy pull-down diver 323 , where node 326 represents pad node 108 .
  • FSM 325 comprises a filter (e.g., a low pass filter), a counter, and other logic units to generate a code that is received by the dummy pull-down driver 323 .
  • the filter (not shown) is used to filter glitches from the output of the comparator 322 .
  • the counter (not shown) is used to count the number of legs/segments of dummy pull-down driver 323 that are turned on/off.
  • dummy pull-down driver 323 is identical to pull-down driver 103 and equalizer pull-down section 104 b of equalizer 104 .
  • FSM 325 turns on or off one dummy pull-down driver ( 323 ) leg or segment or transistor at a time (or collectively) to adjust the impedance of dummy pull-down driver 323 till the voltage on node 326 , coupled between reference 324 and dummy pull-down driver 323 , is substantially equal to the voltage of Vref.
  • final code 112 / 110 b of FSM 325 for which the inputs of comparator 322 are substantially equal to one another, is sent to pull-down driver 103 or equalizer 104 .
  • training control unit 107 provides Vref select signal to Vref unit 321 to select the Vref for generating codes 112 / 110 b . In one embodiment, training control unit 107 selects Vref level to determine codes 112 for pull-down driver 103 . In one embodiment, training control unit 107 selects a Vref level to determine codes 110 b for pull-down section 104 b of equalizer 104 . In one embodiment, training control unit 107 selects the Vref levels according to a method described with reference to FIG. 4 .
  • FIG. 3A and FIG. 3B are coupled together such that a single comparator, FSM, Vref unit, and training control unit is used to reduce overall circuit area.
  • the circuits of FIG. 3A and FIG. 3B are separate and distinct.
  • FIG. 4 is flowchart 400 showing the method of programming the equalizer (e.g., 104 ) with a fine equalizing code while maintaining the impedances of pull-up and pull-down drivers 102 and 103 substantially constant, according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 4 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • FIG. 4 Although blocks in the flowcharts with reference to FIG. 4 are shown in a particular order, the order of the actions can be modified. Thus, the illustrated embodiments can be performed in a different order, and some actions/blocks may be performed in parallel.
  • the flowchart of FIG. 4 is illustrated with reference to the embodiments of FIGS. 1-3 . Some of the blocks and/or operations listed in FIG. 4 are optional in accordance with certain embodiments. The numbering of the blocks presented is for the sake of clarity and is not intended to prescribe an order of operations in which the various blocks must occur. Additionally, operations from the various flows may be utilized in a variety of combinations.
  • equalization codes 110 a / 110 b are initialized.
  • the equalization codes 110 a and 110 b are initialized so that all devices of equalizer 104 are turned off.
  • equalization codes 110 a and 110 b are initialized so that all devices, but one, of equalizer 104 is turned off.
  • dummy or replicate circuits i.e., replicate of driver 200 circuits
  • the actual driver 200 and its components are not used directly.
  • training control unit 107 sets the Vref Select signal to select a reference level Vref from Vref units 301 / 321 .
  • Vref level indicates the impedance for dummy pull-up driver 303 and dummy pull-down driver 323 . Accordingly, Vref level is used to set the impedances of pull-up driver 102 , pull-down driver 103 , equalizer pull-up section 104 a of equalizer 104 , and equalizer pull-down section 104 b of the equalizer 104 .
  • training control unit 107 selects the Vref level for desired (i.e., target) impedance of the pull-up driver 102 .
  • dummy equalizer i.e., replica of equalizer 104
  • compensation units 300 and 320 of FIGS. 3A-B include dummy equalizer sections 104 a and 104 b in the dummy pull-up driver 303 and dummy pull-down driver 323 respectively.
  • dummy equalizer sections 104 a and 104 b in compensation units 300 and 320 are disabled.
  • actual driver 200 does not participate in the training.
  • the training flowchart 400 begins using compensation units 300 and 320 .
  • codes 111 , 110 a , 112 , and 110 b are stored in a storage medium (e.g., registers, non-volatile memory, or volatile memory) and distributed to all I/Os before normal operation begins.
  • a storage medium e.g., registers, non-volatile memory, or volatile memory
  • equalization code is initially set by training control 107 (or the FSMs 305 / 325 ) to the initialization code (as done at block 401 ) and is set to increment by one (or any predetermined number) when block 404 is revisited during an execution of the flowchart.
  • FSMs 305 / 325 initialize the non-equalization codes for dummy pull-up and dummy pull-down drivers 303 and 323 .
  • the transistors or legs of dummy pull-up and dummy pull-down drivers 303 and 323 are initialized so that some are on and some are off.
  • non-equalization codes for dummy pull-up and dummy pull-down drivers 303 and 323 are incremented from their initialized value.
  • the transistors or legs of dummy pull-up and dummy pull-down drivers 303 and 323 are turned on or off one at a time with reference to the initialized code to change (increase or decrease) the impedance of the dummy pull-up and dummy pull-down drivers 303 and 323 .
  • the term “++” indicates that the code is being incremented by 1 when the block (which has “++”) is executed again.
  • the process proceeds to block 408 .
  • dummy pull-up and dummy pull-down drivers 303 and 323 are trained for the target pull-up and pull-down impedances for pull-up and pull-down drivers 102 and 103 respectively i.e., codes 111 and 112 are determined for the desired target impedance for pull-up and pull-down drivers 102 and 103 .
  • training control unit 107 sets Vref (via Vref Select) to correspond to desired equalization impedance for equalizer 104 .
  • previously disabled equalizer 104 section of the dummy pull-up and pull-down drivers 303 and 323 ) is enabled.
  • Block 408 begins the process of the second loop of the two-dimensional loops of the flowchart 400 .
  • the granularity level of equalizer 104 is determined by enabling equalizer 104 (equalizer up section of the dummy pull-up and pull-down drivers 303 and 323 ) using the already trained for codes ( 111 and 112 ) for the impedances for pull-up and pull-down drivers 102 and 103 .
  • Vref is again set by training control unit 107 to correspond to the target impedance of pull-up and pull-down drivers 102 and 103 .
  • the process explained in blocks 403 to 407 is repeated again so that codes 111 and 112 for pull-up and pull-down drivers 102 and 103 are determined again that match the target (or desired) impedances for the for pull-up and pull-down drivers 102 and 103 while using the updated equalization code.
  • the updated equalization code is the incremented equalization code (incremented at block 404 ).
  • the equalizer section (section of dummy pull-up and pull-down drivers 303 and 323 ) is enabled by training control unit 107 .
  • training control unit 107 sets Vref to correspond to the target impedance for equalizer 104 .
  • comparators 302 and 322 determine whether the desired equalization is achieved. The process proceeds back to block 402 till codes 110 a and 110 b for the equalizer section (section of dummy pull-up and pull-down drivers 303 and 323 ) achieves the target granularity for equalization. Once the codes 110 a and 110 b for the equalizer section (section of dummy pull-up and pull-down drivers 303 and 323 ) achieves the target granularity for equalization, the process ends at block 410 .
  • dummy four segments for pull-up and pull-down drivers 102 and 103 and dummy one segment for equalizer are used in the compensation units 105 and 106 during the first loop (indicated by block 402 to block 407 of FIG. 4 ) to train (following the process 400 of FIG. 4 ) for desired impedances of the pull-up driver 102 and pull-down driver 103 with equalization disabled.
  • desired impedance for pull-up and pull-down drivers 102 and 103 includes equalization pull-up and pull-down sections 104 a and 104 b .
  • “disable equalization” generally refers to turning on equalization pull-up and pull-down sections 104 a and 104 b i.e., all five segments are turned on to achieve the desired impedance.
  • equalization segment codes 110 a and 110 b are merged with codes 111 and 112 respectively and used for setting the desired impedance. For example, codes 112 and 110 b are combined to train pull-down section to have 36 Ohms, and codes 111 and 110 a are combined to train pull-up section to have 36 Ohms.
  • the first loop of FIG. 4 trains the impedance of pull-up driver 102 and pull-down driver 103 to desired impedances with a constant equalization code and with the equalizer section of the dummy pull-up and pull-down drives 303 and 323 being disabled.
  • code 111 of pull-up driver 102 is trained to generate 36 Ohms impedance for pull-up driver 102 .
  • the five segments which include the equalization pull-up and pull-down sections 104 a / 104 b
  • the 2-D flowchart 400 begins with equalization code of one.
  • the desired impedance for pull-up and pull-down drivers 102 and 103 includes equalization pull-up and pull-down sections 104 a and 104 b.
  • equalization code is incremented (at block 404 because the process proceeds from block 409 to block 402 ) and the impedance for pull-up and pull-down drivers 102 and 103 are again determined using the new equalization code.
  • equalizer pull-up section 104 a is turned off and the overall dummy pull-up driver 303 (which includes the pull-up driver 102 and the equalizer pull-up section 104 a ) is trained again to achieve the target impedance for pull-up driver 102 .
  • equalizer pull-down section 104 b is turned off and the overall dummy pull-down driver 323 (which includes pull-down section 103 and equalizer pull-down section 104 b ) is trained again to achieve the target impedance for pull-down driver 103 .
  • the process is repeated till the desired equalization granularity for the equalizer 104 is achieved.
  • the first loop of process 400 maintains the impedances of pull-up and pull-down drivers 102 and 103 substantially constant to their target impedance levels.
  • the impedance of pull-up and pull-down drivers 102 and 103 is kept substantially constant.
  • One technical effect of having the impedance of the pull-up and pull-down drivers 102 and 103 kept substantially constant is that the equalization (i.e., de-emphasis of the signal on pad 108 ) does not cause signal integrity issues that may be caused if the impedances of the pull-up and pull-down drivers 102 and 103 are allowed to vary during the de-emphasis of the signal on pad 108 .
  • the impedance of the equalization segment is a fraction of total impedance of the driver i.e., 1 ⁇ 5 with reference to 5 segments of FIG. 2 . Accordingly, the embodiments of this disclosure allow the granularity of equalizer 104 to be controlled in finer increments (i.e., finer granularity) while maintaining the impedances of pull-up and pull-down drivers 102 and 103 substantially constant.
  • flowchart 400 is implemented as computer executable instructions to be executed by processor 101 .
  • the computer executable instructions are stored on a machine storage medium.
  • the computer executable instructions are part of an operating system.
  • FIG. 5 is a system-level diagram of a smart device 1600 comprising the processor or circuits of FIG. 1A , according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 5 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • FIG. 5 also illustrates a block diagram of an embodiment of a mobile device in which flat surface interface connectors could be used.
  • computing device 1600 represents a mobile computing device, such as a computing tablet, a mobile phone or smart-phone, a wireless-enabled e-reader, or other wireless mobile device. It will be understood that certain components are shown generally, and not all components of such a device are shown in device 1600 .
  • computing device 1600 includes a first processor 1610 with the components of processor 101 of FIG. 1A , and a second processor 1690 with the components of processor 101 of FIG. 1A , according to the embodiments discussed herein.
  • Other blocks of the computing device with I/O drivers may also include the components of processor 101 of FIG. 1A .
  • the various embodiments of the present disclosure may also comprise a network interface within 1670 such as a wireless interface so that a system embodiment may be incorporated into a wireless device, for example, cell phone or personal digital assistant.
  • processor 1610 can include one or more physical devices, such as microprocessors, application processors, microcontrollers, programmable logic devices, or other processing means.
  • the processing operations performed by processor 1610 include the execution of an operating platform or operating system on which applications and/or device functions are executed.
  • the processing operations include operations related to I/O (input/output) with a human user or with other devices, operations related to power management, and/or operations related to connecting the computing device 1600 to another device.
  • the processing operations may also include operations related to audio I/O and/or display I/O.
  • computing device 1600 includes audio subsystem 1620 , which represents hardware (e.g., audio hardware and audio circuits) and software (e.g., drivers, codecs) components associated with providing audio functions to the computing device. Audio functions can include speaker and/or headphone output, as well as microphone input. Devices for such functions can be integrated into device 1600 , or connected to the computing device 1600 . In one embodiment, a user interacts with the computing device 1600 by providing audio commands that are received and processed by processor 1610 .
  • audio subsystem 1620 represents hardware (e.g., audio hardware and audio circuits) and software (e.g., drivers, codecs) components associated with providing audio functions to the computing device. Audio functions can include speaker and/or headphone output, as well as microphone input. Devices for such functions can be integrated into device 1600 , or connected to the computing device 1600 . In one embodiment, a user interacts with the computing device 1600 by providing audio commands that are received and processed by processor 1610 .
  • Display subsystem 1630 represents hardware (e.g., display devices) and software (e.g., drivers) components that provide a visual and/or tactile display for a user to interact with the computing device.
  • Display subsystem 1630 includes display interface 1632 , which includes the particular screen or hardware device used to provide a display to a user.
  • display interface 1632 includes logic separate from processor 1610 to perform at least some processing related to the display.
  • display subsystem 1630 includes a touch screen (or touch pad) device that provides both output and input to a user.
  • I/O controller 1640 represents hardware devices and software components related to interaction with a user. I/O controller 1640 is operable to manage hardware that is part of audio subsystem 1620 and/or display subsystem 1630 . Additionally, I/O controller 1640 illustrates a connection point for additional devices that connect to device 1600 through which a user might interact with the system. For example, devices that can be attached to the computing device 1600 might include microphone devices, speaker or stereo systems, video systems or other display device, keyboard or keypad devices, or other I/O devices for use with specific applications such as card readers or other devices.
  • I/O controller 1640 can interact with audio subsystem 1620 and/or display subsystem 1630 .
  • input through a microphone or other audio device can provide input or commands for one or more applications or functions of the computing device 1600 .
  • audio output can be provided instead of, or in addition to display output.
  • display subsystem includes a touch screen
  • the display device also acts as an input device, which can be at least partially managed by I/O controller 1640 .
  • I/O controller 1640 manages devices such as accelerometers, cameras, light sensors or other environmental sensors, or other hardware that can be included in the computing device 1600 .
  • the input can be part of direct user interaction, as well as providing environmental input to the system to influence its operations (such as filtering for noise, adjusting displays for brightness detection, applying a flash for a camera, or other features).
  • computing device 1600 includes power management 1650 that manages battery power usage, charging of the battery, and features related to power saving operation.
  • Memory subsystem 1660 includes memory devices for storing information in device 1600 .
  • Memory can include nonvolatile (state does not change if power to the memory device is interrupted) and/or volatile (state is indeterminate if power to the memory device is interrupted) memory devices.
  • Memory 1660 can store application data, user data, music, photos, documents, or other data, as well as system data (whether long-term or temporary) related to the execution of the applications and functions of the computing device 1600 .
  • Elements of embodiments are also provided as a machine-readable medium (e.g., memory 1660 ) for storing the computer-executable instructions (e.g., instructions to implement any other processes discussed herein).
  • the machine-readable medium e.g., memory 1660
  • the machine-readable medium may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or other type of machine-readable media suitable for storing electronic or computer-executable instructions.
  • embodiments of the disclosure may be downloaded as a computer program (e.g., BIOS) which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals via a communication link (e.g., a modem or network connection).
  • BIOS a computer program
  • a remote computer e.g., a server
  • a requesting computer e.g., a client
  • a communication link e.g., a modem or network connection
  • Connectivity 1670 includes hardware devices (e.g., wireless and/or wired connectors and communication hardware) and software components (e.g., drivers, protocol stacks) to enable the computing device 1600 to communicate with external devices.
  • the device 1600 could be separate devices, such as other computing devices, wireless access points or base stations, as well as peripherals such as headsets, printers, or other devices.
  • Connectivity 1670 can include multiple different types of connectivity.
  • the computing device 1600 is illustrated with cellular connectivity 1672 and wireless connectivity 1674 .
  • Cellular connectivity 1672 refers generally to cellular network connectivity provided by wireless carriers, such as provided via GSM (global system for mobile communications) or variations or derivatives, CDMA (code division multiple access) or variations or derivatives, TDM (time division multiplexing) or variations or derivatives, or other cellular service standards.
  • Wireless connectivity 1674 refers to wireless connectivity that is not cellular, and can include personal area networks (such as Bluetooth, Near Field, etc.), local area networks (such as Wi-Fi), and/or wide area networks (such as WiMax), or other wireless communication.
  • Peripheral connections 1680 include hardware interfaces and connectors, as well as software components (e.g., drivers, protocol stacks) to make peripheral connections. It will be understood that the computing device 1600 could both be a peripheral device (“to” 1682 ) to other computing devices, as well as have peripheral devices (“from” 1684 ) connected to it.
  • the computing device 1600 commonly has a “docking” connector to connect to other computing devices for purposes such as managing (e.g., downloading and/or uploading, changing, synchronizing) content on device 1600 . Additionally, a docking connector can allow device 1600 to connect to certain peripherals that allow the computing device 1600 to control content output, for example, to audiovisual or other systems.
  • the computing device 1600 can make peripheral connections 1680 via common or standards-based connectors.
  • Common types can include a Universal Serial Bus (USB) connector (which can include any of a number of different hardware interfaces), DisplayPort including MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire, or other type.
  • USB Universal Serial Bus
  • MDP MiniDisplayPort
  • HDMI High Definition Multimedia Interface
  • Firewire or other type.
  • first embodiment may be combined with a second embodiment anywhere the particular features, structures, functions, or characteristics associated with the two embodiments are not mutually exclusive.
  • chip comprises: a pull-up driver with a first impedance, the pull-up driver coupled to a node; a pull-down driver with a second impedance, the pull-down driver coupled to the node; and an equalizer coupled to the pull-up and pull-down drivers, wherein the equalizer is operable to be trained to deemphasize a signal driven on the node while maintaining the first and second impedances substantially constant.
  • the equalizer is part of a parallel input-output (I/O) link.
  • the first impedance is independently controllable from control of the second impedance.
  • the chip further comprises: a pull-up driver compensation unit which is operable to determine a code for setting the first impedance for the pull-up driver, and a code for setting a pull-up granularity for de-emphasizing the signal by the equalizer.
  • the chip further comprises: a pull-down driver compensation unit which is operable to determine a code for setting the second impedance for the pull-down driver, and a code for setting a pull-down granularity for de-emphasizing the signal by the equalizer.
  • the equalizer is disabled when the pull-up driver compensation unit is determining the code for setting the first impedance for the pull-up driver. In one embodiment, the equalizer is disabled when the pull-down driver compensation unit is determining the code for setting the second impedance for the pull-up driver.
  • the pull-up driver compensation unit and the pull-down driver compensation unit determine the codes for setting the first and second impedances prior to setting the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer, and wherein the codes, for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer, are programmable.
  • the pull-up driver compensation unit and the pull-down driver compensation unit are operable to determine codes again for setting the first and second impedances after setting the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer.
  • the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer are different when the equalizer is in equalization mode than codes for the pull-up and pull-down granularities when the equalizer is in non-equalization mode.
  • the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode.
  • the equalizer comprises: a pull-up section coupled to the node; and a pull-down section coupled to the node, wherein the pull-up and pull-down sections are controllable with control signals different from control signals for controlling the first and second impedances of the pull-up and pull-down drivers.
  • a processor comprises: a transmitter of a parallel input-output (I/O) link, the transmitter having a pull-up driver, a pull-down driver, and an equalizer coupled to the pull-up and pull-down drivers; and pull-up driver and pull-down driver compensation units to determine codes for first impedance of the pull-up driver and a second impedance of the pull-down driver respectively, wherein the equalizer is disabled when the pull-up driver and pull-down driver compensation units are determining codes for the first and second impedances.
  • I/O parallel input-output
  • the first impedance is independently controllable from control of the second impedance.
  • the equalizer is operable to be trained to deemphasize a signal driven on a node, coupled to the pull-up driver, pull-down driver, and the equalizer, while maintaining the first and second impedances substantially constant.
  • the pull-up driver compensation unit is operable to determine a code for setting a pull-up granularity for de-emphasizing the signal by the equalizer, wherein the code, for setting a pull-up granularity for de-emphasizing the signal by the equalizer, is programmable; and the pull-down driver compensation unit is operable to determine a code for setting a pull-down granularity for de-emphasizing the signal by the equalizer, wherein the code, for setting a pull-down granularity for de-emphasizing the signal by the equalizer, is programmable.
  • the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode.
  • a method comprises: initializing non-equalization codes for a pull-up driver and a pull-down driver respectively; setting a reference signal to correspond to a target impedance value for the pull-up and pull-down drivers; incrementing the initialized non-equalization codes for the pull-up and pull-down drivers to adjust impedances of the pull-up and pull-down drivers; determining whether the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value; setting the reference signal to correspond to an equalization granularity level for an equalizer which coupled to the pull-up and pull-down drivers; and incrementing equalization codes for the equalizer when it is determined that the equalization granularity level for the equalizer is not met.
  • the equalizer is disabled when determining whether the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value, and wherein the equalizer is enabled after determining that the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value.
  • a system comprises: a memory unit; a processor, coupled to the memory unit, the processor including: a pull-up driver with a first impedance, the pull-up driver coupled to a node; a pull-down driver with a second impedance, the pull-down driver coupled to the node; and an equalizer coupled to the pull-up and pull-down drivers, wherein the equalizer is operable to be trained to deemphasize a signal driven on the node while maintaining the first and second impedances substantially constant; a wireless interface to allow the processor to communicate with another device; and a display unit.
  • the equalizer is part of a parallel input-output (I/O) link.
  • the first impedance is independently controllable from control of the second impedance.
  • the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode.

Abstract

Described is a chip comprising: a pull-up driver with a first impedance, the pull-up driver coupled to a node; a pull-down driver with a second impedance, the pull-down driver coupled to the node; and an equalizer coupled to the pull-up and pull-down drivers, wherein the equalizer is operable to be trained to deemphasize a signal driven on the node while maintaining the first and second impedances substantially constant.

Description

  • The present application is a Continuation of, and claims priority to, and incorporates by reference in its entirety the corresponding U.S. patent application Ser. No. 13/712,574, filed on Dec. 12, 2012, and entitled “PROGRAMMABLE EQUALIZATION WITH COMPENSATED IMPEDANCE”.
  • BACKGROUND
  • Typically, when equalization is performed by an input-output (I/O) driver to adjust the VOL and/or VOH levels of a signal driven by the I/O driver, termination impedance (of pull-up and/or pull-down) of the driver is modulated. Such modulation of the termination impedance may cause signal integrity issues e.g., over-shoot, under-shoot, ringing, unexpected signal reflections, etc. Signal integrity issues may result in incorrect date reception and sampling at a receiver end.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Embodiments of the disclosure will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the disclosure, which, however, should not be taken to limit the disclosure to the specific embodiments, but are for explanation and understanding only.
  • FIG. 1A is a processor with programmable equalization and compensated impedance for an input-output (I/O) driver, according to one embodiment of the disclosure.
  • FIG. 1B is an illustration of the operation of equalization segment of the equalizer and non-equalization segment of the pull-down during equalization mode and non-equalization mode, according to one embodiment.
  • FIG. 2 is an I/O driver with decoupled pull-up/pull-down and equalizer circuit modules to provide fine granularity (e.g., 1%) of equalization, according to one embodiment of the disclosure.
  • FIG. 3A is a pull-up compensation unit to program the equalizer with fine granularity of equalization while also compensating the pull-up impedance of the I/O driver, according to one embodiment of the disclosure.
  • FIG. 3B is a pull-down compensation unit to program the equalizer with fine granularity of equalization while also compensating the pull-down impedance of the I/O driver, according to one embodiment of the disclosure.
  • FIG. 4 is flowchart showing the method of programming the equalizer with a fine programmable equalizing code while maintaining the impedances of the pull-up and pull-down drivers substantially constant, according to one embodiment of the disclosure.
  • FIG. 5 is a system-level diagram of a smart device comprising the processor or circuits of FIG. 1A, according to one embodiment of the disclosure.
  • DETAILED DESCRIPTION
  • Typical, equalization lacks the ability to provide finer granularity to equalization levels than presently possible. The term “fine granularity” generally refers to small equalization levels e.g., 1% of ground or supply levels. Granularity for de-emphasis can also be expressed in dB because it is relative to signal swing. For example, a granularity of 0.2 dB. One reason for that lack of ability is the modulation of termination impedances (pull-up and/or pull-down) of the I/O drivers when the I/O drivers are operating in equalization and/or non-equalization modes. The embodiments provide an apparatus and method for training I/O driver impedances to accomplish a wide range of programmable finer granularity of equalization, for a signal driven by the I/O driver, while maintaining termination impedances of the I/O driver substantially constant.
  • The term “equalization” generally refers to a process of modulating amplitude of a signal driven by a driver. The term “de-emphasis” generally refers to decreasing a voltage level of a signal. For example, de-emphasizing VOH level of a signal refers to reducing the VOH level relative to ground. Likewise, de-emphasizing VOL level of a signal refers to increasing the VOL level relative to ground. The term “scaling” refers to converting a design (schematic and layout) from one process technology to another process technology. The terms “substantially,” “close,” “approximately,” “near,” “about,” refer to being within +/−20% of a target value.
  • In one embodiment, a novel method and apparatus for training pull-down and pull-up impedances are disclosed that are decoupled from the training of an equalizer of the I/O driver. In such an embodiment, impedance of the pull-up driver is independently controllable from impedance of the pull-down driver. In one embodiment, a two-dimensional impedance training algorithm (with first and second loops) is applied to train the pull-up and pull-down drivers and the equalizer. In one embodiment, equalizer (part of the I/O driver) is decoupled from the pull-up and pull-down drivers in that the equalizer is controllable by a code (one or more signals) which is separate from the code used to control the impedance of the pull-up and pull-down I/O drivers.
  • In one embodiment, impedances of the pull-up and pull-down drivers of the I/O are trained to have specific target (or desired) impedances while the equalizer of the I/O driver is disabled. After training the pull-up and pull-down driver impedances, equalizer is enabled and trained to have a specific target (or desired) equalization level granularity. In one embodiment, during the process of training the equalizer, pull-up and pull-down drivers of the I/O are trained again to maintain their impedances (i.e., to keep their impedances at the trained target level) while the equalizer is being trained. This process forms a two-dimensional training process that trains pull-up and pull-down impedances of the I/O driver in the first loop of the training process, and trains the granularity code of the equalizer in the second loop of the training process. In one embodiment, closed-loop impedance training of the pull-up and pull-down drivers is performed by incrementing granularity code of the equalizer by one (or another small number e.g., two). In one embodiment, training process is initiated by the BIOS (Basic Input/Output System) associated with the chip/processor having the I/O driver with equalizer.
  • In the following description, numerous details are discussed to provide a more thorough explanation of embodiments of the present disclosure. It will be apparent, however, to one skilled in the art, that embodiments of the present disclosure may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring embodiments of the present disclosure.
  • Note that in the corresponding drawings of the embodiments, signals are represented with lines. Some lines may be thicker, to indicate more constituent signal paths, and/or have arrows at one or more ends, to indicate primary information flow direction. Such indications are not intended to be limiting. Rather, the lines are used in connection with one or more exemplary embodiments to facilitate easier understanding of a circuit or a logical unit. Any represented signal, as dictated by design needs or preferences, may actually comprise one or more signals that may travel in either direction and may be implemented with any suitable type of signal scheme.
  • Throughout the specification, and in the claims, the term “connected” means a direct electrical connection between the things that are connected, without any intermediary devices. The term “coupled” means either a direct electrical connection between the things that are connected, or an indirect connection through one or more passive or active intermediary devices. The term “circuit” means one or more passive and/or active components that are arranged to cooperate with one another to provide a desired function. The term “signal” means at least one current signal, voltage signal or data/clock signal. The meaning of “a”, “an”, and “the” include plural references. The meaning of “in” includes “in” and “on.”
  • As used herein, unless otherwise specified, the use of the ordinal adjectives “first,” “second,” and “third,” etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking or in any other manner.
  • For purposes of the embodiments, the transistors are metal oxide semiconductor (MOS) transistors, which include drain, source, gate, and bulk terminals. Source and drain terminals may be identical terminals and are interchangeably used herein. Those skilled in the art will appreciate that other transistors, for example, Bi-polar junction transistors—BJT PNP/NPN, BiCMOS, CMOS, eFET, etc., may be used without departing from the scope of the disclosure. The terms “MN” herein indicates an n-type transistor (e.g., NMOS, NPN BJT, etc.) and the term “MP” indicates a p-type transistor (e.g., PMOS, PNP BJT, etc.).
  • FIG. 1A illustrates a system 100 with a processor 101 with programmable equalization and compensated impedance for an input-output (I/O) driver, according to one embodiment of the disclosure. In one embodiment, processor 101 comprises a driver coupled to a pad 108. In one embodiment, the driver includes a pull-up driver 102, a pull-down driver 103, and an equalizer 104. In one embodiment, processor 101 further comprises a pull-up compensation unit 105, pull-down compensation unit 106, and a training control unit 107. In one embodiment, processor 101 is coupled to another device (e.g., another processor) via a transmission media 109. In one embodiment, transmission media 109 is a transmission line.
  • In one embodiment, equalizer 104 and the pull-up/pull-down drivers (102 and 103) are part of a parallel I/O link. Generally, in a parallel I/O link of 32 bits there are 32 I/Os to transfer data in one clock cycle. Examples of parallel I/O link include Double-Data-Rate busses (DDR2, DDR3, DDR4, etc). In one embodiment, pull-up/pull-down drivers (102 and 103) are part of a serial I/O link. Generally, in a serial I/O link of 8 bits, one serial I/O will transfer data in eight clock cycles. Serial links are operated with higher clock rates than parallel links, in general. Examples of serial I/O link include Peripheral Component Interconnect Express (PCIe) I/O link.
  • In one embodiment, equalizer 104 comprises a pull-up section 104 a (also referred as equalizer pull-up section) and a pull-down section 104 b (also referred to as equalizer pull-down section). In one embodiment, equalizer 104 is decoupled from the pull-up and pull-down drivers (102 and 103) in that the control signals 110 a and 110 b for the equalizer 104 are different than and separate from the control signals 111 and 112 of the pull-up/pull-down drivers (102 and 103). In one embodiment, control signal 110 a (which may be a bus with one or more bits) turns on/off one or more pull-up devices of the equalizer pull-up section 104 a. In one embodiment, control signal 110 b (which may be a bus with one or more bits) turns on/off one or more pull-down devices of the equalizer pull-down section 104 b.
  • In one embodiment, impedance of the pull-up driver 102 (also called first impedance) is controlled by signal 111 which is used to turn on/off one or more pull-up devices of the pull-up driver 102. In one embodiment, impedance of the pull-down driver 103 (also called second impedance) is controlled by signal 112 which is used to turn on/off one or more pull-down devices of the pull-down driver 103. The bit values of the control signals 110 a, 111, 112, and 110 b, are also called a code or bus.
  • In one embodiment, pull-up compensation unit 105 trains the pull-up driver 102 (via code 111) and the equalizer pull-up section 104 a (via code 110 a) to have particular impedances. In one embodiment, pull-down compensation unit 106 trains pull-down driver 103 (via code 112) and equalizer pull-down section 104 b (via code 110 b) to have particular impedances. In one embodiment, impedances of pull-up/pull-down drivers 102 and 103, and equalizer pull-up/pull-down sections 104 a and 104 b are programmable by software or hardware.
  • For example, impedances can be programmed by BIOS or any other operating system, and/or by fuses. In one embodiment, pull-up and pull- down compensation units 105 and 106 determine impedance codes 110 a, 111, 112, and 110 b by using reference impedance (which may be an external resistor).
  • In one embodiment, training control unit 107 controls the compensation process performed by pull-up and pull- down compensation units 105 and 106 so that granularity of equalizer 104 may be set (to any level) while maintaining impedances of pull-up and pull-down drivers 102 and 103 substantially constant. In one embodiment, training control unit 107 controls the flow of the method discussed with reference to FIG. 4.
  • Referring back to FIG. 1A, in one embodiment pull-up driver compensation unit 105 is operable to determine code 111 for setting the first impedance for pull-up driver 102. In such an embodiment, pull-up driver compensation unit 105 is operable to determine code 110 a for setting pull-up granularity for equalizer pull-up section 104 a for de-emphasizing the signal driven on pad 108 by equalizer 104. In one embodiment, pull-down driver compensation unit 106 is operable to determine code 112 for setting the second impedance for pull-down driver 103. In such an embodiment, pull-up driver compensation unit 105 is operable to determine code 110 b for setting pull-down granularity for equalizer pull-down section 104 b for de-emphasizing the signal driven on pad 108 by equalizer 104.
  • In one embodiment, equalizer 104 is disabled when pull-up driver compensation unit 105 is determining code 111 for setting the first impedance for pull-up driver 102. In one embodiment, equalizer 104 is disabled when pull-down driver compensation unit 106 is determining code 112 for setting the second impedance for pull-down driver 103. In one embodiment, pull-up driver compensation unit 105 and pull-down driver compensation unit 106 determine codes 111 and 112 for setting the first and second impedances prior to setting codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108, by equalizer 104. As discussed, codes 111, 110 a, 112, and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108, by equalizer 104 are programmable.
  • In one embodiment, pull-up driver compensation unit 105 and pull-down driver compensation unit 106 are operable to determine codes 111 and 112 again for setting the first and second impedances after setting codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal by equalizer 104. In one embodiment, codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108 by equalizer 104, are different when equalizer 104 is in equalization mode than codes 110 a and 110 b for the pull-up and pull-down granularities when equalizer 104 is in non-equalization mode. In one embodiment, codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108, by the equalizer 104, are same when equalizer 104 is in equalization mode than codes 110 a and 110 b for the pull-up and pull-down granularities when equalizer 104 is in non-equalization mode.
  • The term “equalization mode” generally refers to the circuit configuration/operation when the equalizer 104 is enabled to equalize (e.g., de-emphasize) the signal on pad 108. The term “non-equalization mode” generally refers to the circuit configuration/operation when the equalizer 104 is enabled but is not set to emphasize the signal on pad 108. In one embodiment, first and second impedances are substantially constant during a period when equalizer 104 is in non-equalization mode or equalization mode. In one embodiment, equalizer 104 can be set to enable equalization mode or to disable equalization mode. In one embodiment, in enable equalization mode, equalizer 104 turns off one of the equalization segments (e.g., equalizer pull-up section 104 a) and turns off another equalization segment (e.g., equalizer pull-down section 104 b). For example, when driver 200 is driving a zero on pad 108, equalizer 104 will turn off equalizer pull-down section 104 b but turn on equalizer pull-up section 104 a. In another example, when driver 200 is driving a one on pad 108, equalizer 104 turns off equalizer pull-up section 104 a but turns on equalizer pull-down section 104 b. Equalization code is labeled as 110 a and 110 b, while non-equalization codes are labeled as 111 and 112.
  • In one embodiment, codes 110 a and 110 b for the pull-up and pull-down granularities for de-emphasizing the signal, driven on pad 108 by equalizer 104, are same when equalizer 104 is in equalization mode than codes 110 a and 110 b for the pull-up and pull-down granularities when equalizer 104 is in non-equalization mode.
  • FIG. 1B is an illustration 120 of the operation of equalization segment 104 (e.g., 104 b) of the equalizer 104 and non-equalization segment of the pull-down (e.g., 103) during equalization mode and non-equalization mode, according to one embodiment. While the embodiment of FIG. 1B illustrates the behavior of pull-down segments (e.g., 103 and 104 b), the same explanation also applies to pull-up segments (e.g., 102 and 104 a).
  • FIG. 1B shows two tables, table 121 and table 122. Table 121 illustrates the on-die termination code (ODT) for the pull-down driver 103 and equalizer pull-down section 104 b when equalization code 110 b is the same as non-equalization code 112. Table 122 illustrates ODT code for pull-down driver 103 and equalizer pull-down section 104 b when equalization code 110 b is different from non-equalization code 112. In this example, the entire pull-down section (i.e., pull-down driver 103 and equalizer pull-down section 104 b) are divided into five segments. The first four segments (R1_seg) form pull-down section 103 while the fourth segment (R4_seg) forms equalization pull-down section 104 b. The term “Zo” stands for impedance of the entire pull-down section (i.e., pull-down driver 103 and equalizer pull-down section 104 b).
  • With reference to table 121, in the pull-down case, 110 b is “equalization segment code,” and 112 is the “non-equalization segment code.” Each of these segments has codes from 0 to 64, i.e., code 0 results in the highest impedance and code 64 results in the lowest impedance. “Equalization segment” is 1 out of total 5 segments of the driver and “non eq seg” is 4 out of total 5. So when a two dimensional (2-D) sweep of these two codes is performed, one combination of these two codes will give the total impedance (“equalization segment” in parallel to “non-equalization segment”) as ˜36 Ohm when equalization is set to off and the equalization coefficient is at desired value when equalization is turned on.
  • Table 121 is the result of a single sweep of the 2-D sweep. In this example, code 110 b is 36 and code 112 is 36, which results in impedance of pull-down driver (103 and 104 b) of 36.5 Ohms and equalization coefficient to be −20%. Table 122 shows another 2-D sweep result. In this case, code 110 b is 20 and code 112 is 40, which results in impedance of 36.5 Ohms but equalization coefficient of −12.1%.
  • So, given a desired impedance (e.g., 36.5 Ohm) and equalization, coefficient (which refers to equalization granularity) codes of 110 b and 112 for pull-down driver 103 are the same regardless of equalization (i.e., equalizer pull-down section 104 b) being on or off. In one embodiment, the function of equalizer 104 is that when it is on, it will turn off “equalization segment” and turn on opposite direction of “equalization segment” to maintain constant driver impedance. For example, when driver is driving a zero on pad 108, equalizer 104 will turn off equalizer pull-down section 104 b but turn on equalizer pull-up section 104 a. In another example, when driver is driving a one on pad 108, equalizer 104 turns off equalizer pull-up section 104 a but turns on equalizer pull-down section 104 b. When equalizer 104 is set to be in off state, the “equalization segment” is turned on resulting in a total of five segments being used for transmission of data on pad 108. In such an embodiment, there will be no de-emphasis and so the equalization coefficient is 0.
  • FIG. 2 is an I/O driver 200 with decoupled pull-up/pull-down and equalizer circuit modules to provide fine granularity of equalization, according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 2 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • In this exemplary embodiment, I/O driver 200 is shown with five segments—the first four segments (from the left) forming pull-up and pull-down drivers 102 and 103, while the fifth segment forms equalizer 104 (104 a and 104 b). In other embodiments, other number of segments may be used for the pull-up/pull-down drivers 102 and 103, and equalizer 104. The embodiment of FIG. 2 illustrates that the equalizer 104 ( sections 104 a and 104 b) is controlled independent of the pull-up and pull-down drivers 102 and 103. In such an embodiment, the granularity of equalizer 104 can be independently programmed to any level while maintaining the impedances of pull-up driver 102 and pull-down driver 103 substantially constant.
  • In one embodiment, pull-up driver 102 comprises four segments of pull-up drivers 201 a, 202 a, 203 a, and 204 a which are controllable by code 111, where each pull-up driver 102 (e.g., 201 a) may receive its own bit from the code 111 to turn on/off its respective transistor to adjust the first impedance. In one embodiment, each pull-up driver (e.g., 201 a) comprises one or more p-type device(s) coupled in series with one or more resistor(s).
  • For example, pull-up driver 201 a comprises MP1 coupled to R1, pull-up driver 202 a comprises MP2 coupled in series to R2, pull-up driver 203 a comprises MP3 coupled in series to R3, and pull-up driver 204 a comprises MP4 coupled in series to R4. The resistors R1-R4 may be implemented with any known resistor technology including transistors biased in linear region to form a resistor. The pull-up drivers 201 a, 202 a, 203 a, and 204 a are coupled to the pad 108 via the resistors R1-R4. In one embodiment, each segment of pull-up driver 102 is of different weight i.e., size. For example in one embodiment, transistors MP1-MP4 are binary weighted. In another embodiment, transistors MP1-MP4 are thermometer weighted. In other embodiments, other weighting techniques may be used for transistors forming MP1-MP4. In one embodiment, each segment of the pull-up driver 102 is of equal weight i.e., size. So as not to obscure the embodiments of this disclosure, other components (e.g., electrostatic discharge unit, pre-drivers, etc.) of the I/O driver are not shown.
  • In one embodiment, pull-down driver 103 comprises four segments of pull-down drivers 201 b, 202 b, 203 b, and 204 b which are controllable by code 112, where each pull-down driver 103 (e.g., 201 b) may receive its own bit from the code 112 to turn on/off its respective transistor to adjust the second impedance. In one embodiment, each pull-down driver (e.g., 201 b) comprises one or more n-type device(s) coupled in series with one or more resistor(s).
  • For example, pull-down driver 201 b comprises MN1 coupled to R6, pull-down driver 202 b comprises MN2 coupled in series to R7, pull-down driver 203 b comprises MN3 coupled in series to R8, and pull-down driver 204 b comprises MN4 coupled in series to R9. The resistors R6-R9 may be implemented with any known resistor technology including transistors biased in linear region to form a resistor. In one embodiment, pull-down drivers 201 b, 202 b, 203 b, and 204 b are coupled to pad 108 via resistors R6-R8. In one embodiment, each segment of pull-down driver 103 is of different weight i.e., size. For example in one embodiment, transistors MN1-MN4 are binary weighted. In another embodiment, transistors MN1-MN4 are thermometer weighted. In other embodiments, other weighting techniques may be used for transistors forming MN1-MN4. In one embodiment, each segment of the pull-down driver 103 is of equal weight i.e., size.
  • In one embodiment, equalizer pull-up section 104 a of equalizer 104 comprises a p-type device MP5 coupled in series with a resistor R5 which in turn is coupled to pad 108. As discussed herein the equalizer 104 is decoupled from pull-up and pull-down drivers 102 and 103. In one embodiment, gate terminal of MP5 is controlled by code 110 a. While the embodiment of FIG. 2 shows a single pull-up transistor MP5 for equalizer pull-up section 104 a of equalizer 104, multiple transistors may be used in parallel to one another and controllable by bits of code 110 a. In one embodiment, the multiple transistors of MP5 are binary weighted. In one embodiment, the multiple transistors of MP5 are thermometer weighted. In other embodiments, other weighting techniques may be used for transistors forming MP5.
  • In one embodiment, equalizer pull-down section 104 b of the equalizer 104 comprises an n-type device MN5 coupled in series with a resistor R10 which in turn is coupled to the pad 108. As discussed herein the equalizer 104 is decoupled from the pull-up and pull-down drivers 102 and 103 respectively. In one embodiment, the gate terminal of MN5 is controlled by code 110 b. While the embodiment of FIG. 2 shows a single transistor MN5 for the equalizer pull-down section 104 b, multiple transistors may be used in parallel to one another and controllable by bits of code 110 b. In one embodiment, multiple transistors of MN5 are binary weighted. In one embodiment, multiple transistors of MN5 are thermometer weighted. In other embodiments, other weighting techniques may be used for transistors forming MN5.
  • FIG. 3A is a pull-up compensation unit 300 (e.g., 105) to program the equalizer (e.g., 104) with fine granularity of equalization while also compensating the pull-up impedance (e.g., of pull-up driver 102) of the I/O driver (e.g., 200), according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 3A having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • FIG. 3A is described with reference to FIGS. 1-2. In one embodiment, pull-up compensation unit 300 (e.g., 105) comprises a voltage reference unit 301, a comparator 302, a dummy pull-up driver 303, a reference (e.g., reference impedance) 304, a finite state machine (FSM) 305, and training control unit 107. While the embodiment of FIG. 3A shows several components as distinct components, they may be lumped together in a single component or fewer or more components than shown.
  • In one embodiment, Vref unit 301 comprises one or more voltage references that are selectable by a Vref select signal and provided as Vref to comparator 302. In one embodiment, Vref unit 301 comprises an analog multiplexer that receives Vref select signal to select between two or more voltage references from any source (e.g., voltage/resistor divider, bandgap reference, external reference, etc.) and provide Vref as the reference signal to comparator 302. In one embodiment, voltage level of Vref corresponds to impedance setting for the pull-up driver 102. For example, Vref is set to 0.5V and reference 304 is set to the target impedance of pull-up driver 102. In another example, Vref is set to another voltage that corresponds to the granularity of equalizer pull-up section 104 a of equalizer 104.
  • In one embodiment, comparator 302 is a differential amplifier. In another embodiment, comparator 302 is a multi-stage operational amplifier (OPAMP). In one embodiment, comparator 302 receives a reference voltage Vref from the Vref unit 301 and another signal from the node coupled between reference 304 and dummy pull-up driver 303. In one embodiment, output of comparator 302 is received by FSM 305. In one embodiment, output of comparator 302 trips (i.e., changes its state from low to high or high to low when the inputs of the comparator are substantially equal) indicating to FSM 305 that inputs of comparator 302 are substantially equal. In such an embodiment, impedance of dummy pull-up driver 303 is substantially equal to impedance of reference 304 (if Vref is set to half of the power supply level).
  • In one embodiment, reference 304 is an external resistor. In one embodiment, reference 304 is a highly precise resistor with resistance tolerance of 1% or less. In one embodiment, value of the reference resistance of resistor 304 is used to determine the impedance codes 111/110 a. In one embodiment, reference 304 is coupled between ground supply and node 306 of dummy pull-up diver 303, where node 306 represents pad node 108.
  • In one embodiment, FSM 305 comprises a filter (e.g., a low pass filter), a counter, and other logic units to generate a code that is received by the dummy pull-up driver 303. In one embodiment, the filter (not shown) is used to filter glitches from the output of the comparator 302. In one embodiment, the counter (not shown) is used to count the number of legs/segments of pull-up driver 102 that are turned on/off. In one embodiment, dummy pull-up driver 303 is identical to the pull-up driver 102 and the equalizer pull-up section 104 a of the equalizer 104.
  • In one embodiment, FSM 305 turns on or off one dummy pull-up driver (303) leg or segment or transistor at a time (or collectively) to adjust the impedance of dummy pull-up driver 303 till the voltage on node 306, coupled between reference 304 and dummy pull-up driver 303, is substantially equal to the voltage of Vref. In one embodiment, final code 111/110 a of FSM 305, for which the inputs of comparator 302 are substantially equal to one another, is sent to pull-up driver 102 or equalizer 104.
  • In one embodiment, training control unit 107 provides Vref select signal for Vref unit 301 to select the Vref for generating codes 111/110 a. In one embodiment, training control unit 107 selects Vref level to determine codes 111 for pull-up driver 102. In one embodiment, training control unit 107 selects a Vref level to determine codes 110 a for the equalizer pull-up section 104 a of the equalizer 104. In one embodiment, training control unit 107 selects the Vref levels according to a method described with reference to FIG. 4.
  • FIG. 3B is a pull-down compensation unit 320 (e.g., 106) to program the equalizer (e.g., 104) with fine granularity of equalization while also compensating the pull-down impedance of the I/O driver, according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 3B having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such. FIG. 3B is described with reference to FIGS. 1-2.
  • In one embodiment, pull-down compensation unit 106/320 comprises a voltage reference unit 321, a comparator 322, a dummy pull-down driver 323, a reference (e.g., reference impedance) 324, FSM 325, and training control unit 107. While the embodiment of FIG. 3B shows several components as distinct components, they may be lumped together in a single component or fewer or more components than shown.
  • In one embodiment, Vref unit 321 comprises one or more voltage references that are selectable by a Vref select signal and provided as Vref to comparator 322. In one embodiment, Vref unit 321 comprises an analog multiplexer that receives Vref select signal to select between two or more voltage references from any source (e.g., voltage/resistor divider, bandgap reference, external reference, etc.) and to provide Vref as the reference signal to the comparator 322. In one embodiment, voltage level of Vref corresponds to impedance setting for pull-down driver 103. For example, Vref is set to 0.5V and the reference 324 is set to the target impedance of pull-down driver 103. In another example, Vref is set to another voltage that corresponds to the granularity of equalizer pull-down section 104 b of equalizer 104.
  • In one embodiment, comparator 322 is a differential amplifier. In another embodiment, comparator 322 is a multi-stage OPAMP. In one embodiment, comparator 322 receives a reference voltage Vref from the Vref unit 321 and another signal from the node coupled between reference 324 and dummy pull-down driver 323. In one embodiment, output of comparator 322 is received by FSM 325. In one embodiment, output of comparator 322 trips (i.e., changes its state from low to high or high to low when the inputs of the comparator are substantially equal) indicating to FSM 325 that the inputs of the comparator 322 are substantially equal. In such an embodiment, the impedance of dummy pull-down driver 323 is substantially equal to the impedance of reference 324 (if Vref is set to half of the power supply level).
  • In one embodiment, reference 324 is an external resistor. In one embodiment, reference 324 is highly precise resistor with resistance tolerance of 1% or less. In one embodiment, value of the reference resistance of resistor 324 is used to determine impedance codes 112/110 b. In one embodiment, reference 324 is coupled between power supply and node 326 of dummy pull-down diver 323, where node 326 represents pad node 108.
  • In one embodiment, FSM 325 comprises a filter (e.g., a low pass filter), a counter, and other logic units to generate a code that is received by the dummy pull-down driver 323. In one embodiment, the filter (not shown) is used to filter glitches from the output of the comparator 322. In one embodiment, the counter (not shown) is used to count the number of legs/segments of dummy pull-down driver 323 that are turned on/off. In one embodiment, dummy pull-down driver 323 is identical to pull-down driver 103 and equalizer pull-down section 104 b of equalizer 104.
  • In one embodiment, FSM 325 turns on or off one dummy pull-down driver (323) leg or segment or transistor at a time (or collectively) to adjust the impedance of dummy pull-down driver 323 till the voltage on node 326, coupled between reference 324 and dummy pull-down driver 323, is substantially equal to the voltage of Vref. In one embodiment, final code 112/110 b of FSM 325, for which the inputs of comparator 322 are substantially equal to one another, is sent to pull-down driver 103 or equalizer 104.
  • In one embodiment, training control unit 107 provides Vref select signal to Vref unit 321 to select the Vref for generating codes 112/110 b. In one embodiment, training control unit 107 selects Vref level to determine codes 112 for pull-down driver 103. In one embodiment, training control unit 107 selects a Vref level to determine codes 110 b for pull-down section 104 b of equalizer 104. In one embodiment, training control unit 107 selects the Vref levels according to a method described with reference to FIG. 4.
  • In one embodiment, FIG. 3A and FIG. 3B are coupled together such that a single comparator, FSM, Vref unit, and training control unit is used to reduce overall circuit area. In other embodiments, the circuits of FIG. 3A and FIG. 3B are separate and distinct.
  • FIG. 4 is flowchart 400 showing the method of programming the equalizer (e.g., 104) with a fine equalizing code while maintaining the impedances of pull-up and pull-down drivers 102 and 103 substantially constant, according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 4 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • Although blocks in the flowcharts with reference to FIG. 4 are shown in a particular order, the order of the actions can be modified. Thus, the illustrated embodiments can be performed in a different order, and some actions/blocks may be performed in parallel. The flowchart of FIG. 4 is illustrated with reference to the embodiments of FIGS. 1-3. Some of the blocks and/or operations listed in FIG. 4 are optional in accordance with certain embodiments. The numbering of the blocks presented is for the sake of clarity and is not intended to prescribe an order of operations in which the various blocks must occur. Additionally, operations from the various flows may be utilized in a variety of combinations.
  • So as not to obscure the embodiments of the disclosure, the operations/controls of the embodiments of FIG. 3A and FIG. 3B are discussed together when explaining the flowchart 400. At block 401, equalization codes 110 a/110 b are initialized. For example, the equalization codes 110 a and 110 b are initialized so that all devices of equalizer 104 are turned off. In one embodiment, equalization codes 110 a and 110 b are initialized so that all devices, but one, of equalizer 104 is turned off. In the training flowchart 400, dummy or replicate circuits (i.e., replicate of driver 200 circuits) are used and the actual driver 200 and its components are not used directly.
  • At block 402, training control unit 107 sets the Vref Select signal to select a reference level Vref from Vref units 301/321. As discussed herein, Vref level indicates the impedance for dummy pull-up driver 303 and dummy pull-down driver 323. Accordingly, Vref level is used to set the impedances of pull-up driver 102, pull-down driver 103, equalizer pull-up section 104 a of equalizer 104, and equalizer pull-down section 104 b of the equalizer 104. At block 402, training control unit 107 selects the Vref level for desired (i.e., target) impedance of the pull-up driver 102.
  • At block 403, dummy equalizer (i.e., replica of equalizer 104) is disabled. In one embodiment, compensation units 300 and 320 of FIGS. 3A-B include dummy equalizer sections 104 a and 104 b in the dummy pull-up driver 303 and dummy pull-down driver 323 respectively. At block 403, dummy equalizer sections 104 a and 104 b in compensation units 300 and 320 are disabled. In one embodiment, during the training flowchart 400, actual driver 200 does not participate in the training. In one embodiment, when processor 101 turns on, the training flowchart 400 begins using compensation units 300 and 320. In such an embodiment, when training flowchart 400 completes, codes 111, 110 a, 112, and 110 b are stored in a storage medium (e.g., registers, non-volatile memory, or volatile memory) and distributed to all I/Os before normal operation begins.
  • At block 404, equalization code is initially set by training control 107 (or the FSMs 305/325) to the initialization code (as done at block 401) and is set to increment by one (or any predetermined number) when block 404 is revisited during an execution of the flowchart.
  • At block 405, FSMs 305/325 initialize the non-equalization codes for dummy pull-up and dummy pull-down drivers 303 and 323. For example, the transistors or legs of dummy pull-up and dummy pull-down drivers 303 and 323 are initialized so that some are on and some are off.
  • At block 406, non-equalization codes for dummy pull-up and dummy pull-down drivers 303 and 323 are incremented from their initialized value. For example, the transistors or legs of dummy pull-up and dummy pull-down drivers 303 and 323 are turned on or off one at a time with reference to the initialized code to change (increase or decrease) the impedance of the dummy pull-up and dummy pull-down drivers 303 and 323. The term “++” indicates that the code is being incremented by 1 when the block (which has “++”) is executed again.
  • At block 407, a determination is made by the comparators 302 and 322 whether the desired impedance is achieved for the dummy pull-up and dummy pull-down drivers 303 and 323 respectively. If the desired (or target) impedance is not achieved for the dummy pull-up and dummy pull-down drivers 303 and 323, then the flowchart proceeds back to block 406 and the non-equalization code for dummy pull-up and dummy pull-down drivers 303 and 323 is incremented by 1. The process continues till the desired (or target) impedance for dummy pull-up and dummy pull-down drivers 303 and 323 is achieved. In one embodiment, the desired (or target) impedance is programmable.
  • When the desired (or target) impedance for dummy pull-up and dummy pull-down drivers 303 and 323 is achieved, the process proceeds to block 408. When the desired (or target) impedance for the dummy pull-up and dummy pull-down drivers 303 and 323 is achieved, dummy pull-up and dummy pull-down drivers 303 and 323 are trained for the target pull-up and pull-down impedances for pull-up and pull-down drivers 102 and 103 respectively i.e., codes 111 and 112 are determined for the desired target impedance for pull-up and pull-down drivers 102 and 103.
  • At block 408, training control unit 107 sets Vref (via Vref Select) to correspond to desired equalization impedance for equalizer 104. At block 408, previously disabled equalizer 104 (section of the dummy pull-up and pull-down drivers 303 and 323) is enabled. Block 408 begins the process of the second loop of the two-dimensional loops of the flowchart 400. In the second loop, the granularity level of equalizer 104 is determined by enabling equalizer 104 (equalizer up section of the dummy pull-up and pull-down drivers 303 and 323) using the already trained for codes (111 and 112) for the impedances for pull-up and pull-down drivers 102 and 103.
  • At block 409, a determination is made whether the desired equalization impedance is achieved. If it is determined that the desired equalization impedance is not achieved, the process proceeds to block 402 i.e., the first loop of the two-dimensional loop. At block 402, Vref is again set by training control unit 107 to correspond to the target impedance of pull-up and pull-down drivers 102 and 103. The process explained in blocks 403 to 407 is repeated again so that codes 111 and 112 for pull-up and pull-down drivers 102 and 103 are determined again that match the target (or desired) impedances for the for pull-up and pull-down drivers 102 and 103 while using the updated equalization code. The updated equalization code is the incremented equalization code (incremented at block 404).
  • At block 408, after the codes 111 and 112 for pull-up and pull-down drivers 102 and 103 are determined again that match the target (or desired) impedances for pull-up and pull-down drivers 102 and 103, the equalizer section (section of dummy pull-up and pull-down drivers 303 and 323) is enabled by training control unit 107. At block 408, training control unit 107 sets Vref to correspond to the target impedance for equalizer 104.
  • At block 409, comparators 302 and 322 determine whether the desired equalization is achieved. The process proceeds back to block 402 till codes 110 a and 110 b for the equalizer section (section of dummy pull-up and pull-down drivers 303 and 323) achieves the target granularity for equalization. Once the codes 110 a and 110 b for the equalizer section (section of dummy pull-up and pull-down drivers 303 and 323) achieves the target granularity for equalization, the process ends at block 410.
  • With reference to the embodiment of FIGS. 2-3, dummy four segments for pull-up and pull-down drivers 102 and 103 and dummy one segment for equalizer (104 a and 104 b) are used in the compensation units 105 and 106 during the first loop (indicated by block 402 to block 407 of FIG. 4) to train (following the process 400 of FIG. 4) for desired impedances of the pull-up driver 102 and pull-down driver 103 with equalization disabled.
  • In one embodiment, desired impedance for pull-up and pull-down drivers 102 and 103 includes equalization pull-up and pull-down sections 104 a and 104 b. To “disable equalization” generally refers to turning on equalization pull-up and pull-down sections 104 a and 104 b i.e., all five segments are turned on to achieve the desired impedance. In one embodiment, equalization segment codes 110 a and 110 b are merged with codes 111 and 112 respectively and used for setting the desired impedance. For example, codes 112 and 110 b are combined to train pull-down section to have 36 Ohms, and codes 111 and 110 a are combined to train pull-up section to have 36 Ohms.
  • The first loop of FIG. 4 trains the impedance of pull-up driver 102 and pull-down driver 103 to desired impedances with a constant equalization code and with the equalizer section of the dummy pull-up and pull-down drives 303 and 323 being disabled. For example, code 111 of pull-up driver 102 is trained to generate 36 Ohms impedance for pull-up driver 102. In this embodiment, when the five segments (which include the equalization pull-up and pull-down sections 104 a/104 b) use the same codes 111 and 112, 20% equalization is achieved. In one embodiment, the 2-D flowchart 400 begins with equalization code of one. In one embodiment, the desired impedance for pull-up and pull-down drivers 102 and 103 includes equalization pull-up and pull-down sections 104 a and 104 b.
  • In one embodiment, in the second loop (from 408 to 407 of FIG. 4) if it is determined that the desired equalization is greater or less than 20%, then the equalization code is incremented (at block 404 because the process proceeds from block 409 to block 402) and the impedance for pull-up and pull-down drivers 102 and 103 are again determined using the new equalization code. In such an embodiment, equalizer pull-up section 104 a is turned off and the overall dummy pull-up driver 303 (which includes the pull-up driver 102 and the equalizer pull-up section 104 a) is trained again to achieve the target impedance for pull-up driver 102. In such an embodiment, equalizer pull-down section 104 b is turned off and the overall dummy pull-down driver 323 (which includes pull-down section 103 and equalizer pull-down section 104 b) is trained again to achieve the target impedance for pull-down driver 103.
  • The process is repeated till the desired equalization granularity for the equalizer 104 is achieved. During this process, the first loop of process 400 maintains the impedances of pull-up and pull-down drivers 102 and 103 substantially constant to their target impedance levels. With the closed-loop training of the pull-up and pull-down driver impedances (of pull-up and pull-down drivers 102 and 103 respectively) and the closed loop training of the equalization granularity (of the equalizer 104), the impedance of pull-up and pull-down drivers 102 and 103 is kept substantially constant.
  • One technical effect of having the impedance of the pull-up and pull-down drivers 102 and 103 kept substantially constant is that the equalization (i.e., de-emphasis of the signal on pad 108) does not cause signal integrity issues that may be caused if the impedances of the pull-up and pull-down drivers 102 and 103 are allowed to vary during the de-emphasis of the signal on pad 108.
  • In this embodiment, since the equalization segment code is incremented by one in the second loop (of FIG. 4), the impedance of the equalization segment is a fraction of total impedance of the driver i.e., ⅕ with reference to 5 segments of FIG. 2. Accordingly, the embodiments of this disclosure allow the granularity of equalizer 104 to be controlled in finer increments (i.e., finer granularity) while maintaining the impedances of pull-up and pull-down drivers 102 and 103 substantially constant.
  • In one embodiment, flowchart 400 is implemented as computer executable instructions to be executed by processor 101. In one embodiment, the computer executable instructions are stored on a machine storage medium. In one embodiment, the computer executable instructions are part of an operating system.
  • FIG. 5 is a system-level diagram of a smart device 1600 comprising the processor or circuits of FIG. 1A, according to one embodiment of the disclosure. It is pointed out that those elements of FIG. 5 having the same reference numbers (or names) as the elements of any other figure can operate or function in any manner similar to that described, but are not limited to such.
  • FIG. 5 also illustrates a block diagram of an embodiment of a mobile device in which flat surface interface connectors could be used. In one embodiment, computing device 1600 represents a mobile computing device, such as a computing tablet, a mobile phone or smart-phone, a wireless-enabled e-reader, or other wireless mobile device. It will be understood that certain components are shown generally, and not all components of such a device are shown in device 1600.
  • In one embodiment, computing device 1600 includes a first processor 1610 with the components of processor 101 of FIG. 1A, and a second processor 1690 with the components of processor 101 of FIG. 1A, according to the embodiments discussed herein. Other blocks of the computing device with I/O drivers may also include the components of processor 101 of FIG. 1A. The various embodiments of the present disclosure may also comprise a network interface within 1670 such as a wireless interface so that a system embodiment may be incorporated into a wireless device, for example, cell phone or personal digital assistant.
  • In one embodiment, processor 1610 can include one or more physical devices, such as microprocessors, application processors, microcontrollers, programmable logic devices, or other processing means. The processing operations performed by processor 1610 include the execution of an operating platform or operating system on which applications and/or device functions are executed. The processing operations include operations related to I/O (input/output) with a human user or with other devices, operations related to power management, and/or operations related to connecting the computing device 1600 to another device. The processing operations may also include operations related to audio I/O and/or display I/O.
  • In one embodiment, computing device 1600 includes audio subsystem 1620, which represents hardware (e.g., audio hardware and audio circuits) and software (e.g., drivers, codecs) components associated with providing audio functions to the computing device. Audio functions can include speaker and/or headphone output, as well as microphone input. Devices for such functions can be integrated into device 1600, or connected to the computing device 1600. In one embodiment, a user interacts with the computing device 1600 by providing audio commands that are received and processed by processor 1610.
  • Display subsystem 1630 represents hardware (e.g., display devices) and software (e.g., drivers) components that provide a visual and/or tactile display for a user to interact with the computing device. Display subsystem 1630 includes display interface 1632, which includes the particular screen or hardware device used to provide a display to a user. In one embodiment, display interface 1632 includes logic separate from processor 1610 to perform at least some processing related to the display. In one embodiment, display subsystem 1630 includes a touch screen (or touch pad) device that provides both output and input to a user.
  • I/O controller 1640 represents hardware devices and software components related to interaction with a user. I/O controller 1640 is operable to manage hardware that is part of audio subsystem 1620 and/or display subsystem 1630. Additionally, I/O controller 1640 illustrates a connection point for additional devices that connect to device 1600 through which a user might interact with the system. For example, devices that can be attached to the computing device 1600 might include microphone devices, speaker or stereo systems, video systems or other display device, keyboard or keypad devices, or other I/O devices for use with specific applications such as card readers or other devices.
  • As mentioned above, I/O controller 1640 can interact with audio subsystem 1620 and/or display subsystem 1630. For example, input through a microphone or other audio device can provide input or commands for one or more applications or functions of the computing device 1600. Additionally, audio output can be provided instead of, or in addition to display output. In another example, if display subsystem includes a touch screen, the display device also acts as an input device, which can be at least partially managed by I/O controller 1640. There can also be additional buttons or switches on the computing device 1600 to provide I/O functions managed by I/O controller 1640.
  • In one embodiment, I/O controller 1640 manages devices such as accelerometers, cameras, light sensors or other environmental sensors, or other hardware that can be included in the computing device 1600. The input can be part of direct user interaction, as well as providing environmental input to the system to influence its operations (such as filtering for noise, adjusting displays for brightness detection, applying a flash for a camera, or other features).
  • In one embodiment, computing device 1600 includes power management 1650 that manages battery power usage, charging of the battery, and features related to power saving operation. Memory subsystem 1660 includes memory devices for storing information in device 1600. Memory can include nonvolatile (state does not change if power to the memory device is interrupted) and/or volatile (state is indeterminate if power to the memory device is interrupted) memory devices. Memory 1660 can store application data, user data, music, photos, documents, or other data, as well as system data (whether long-term or temporary) related to the execution of the applications and functions of the computing device 1600.
  • Elements of embodiments are also provided as a machine-readable medium (e.g., memory 1660) for storing the computer-executable instructions (e.g., instructions to implement any other processes discussed herein). The machine-readable medium (e.g., memory 1660) may include, but is not limited to, flash memory, optical disks, CD-ROMs, DVD ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or other type of machine-readable media suitable for storing electronic or computer-executable instructions. For example, embodiments of the disclosure may be downloaded as a computer program (e.g., BIOS) which may be transferred from a remote computer (e.g., a server) to a requesting computer (e.g., a client) by way of data signals via a communication link (e.g., a modem or network connection).
  • Connectivity 1670 includes hardware devices (e.g., wireless and/or wired connectors and communication hardware) and software components (e.g., drivers, protocol stacks) to enable the computing device 1600 to communicate with external devices. The device 1600 could be separate devices, such as other computing devices, wireless access points or base stations, as well as peripherals such as headsets, printers, or other devices.
  • Connectivity 1670 can include multiple different types of connectivity. To generalize, the computing device 1600 is illustrated with cellular connectivity 1672 and wireless connectivity 1674. Cellular connectivity 1672 refers generally to cellular network connectivity provided by wireless carriers, such as provided via GSM (global system for mobile communications) or variations or derivatives, CDMA (code division multiple access) or variations or derivatives, TDM (time division multiplexing) or variations or derivatives, or other cellular service standards. Wireless connectivity 1674 refers to wireless connectivity that is not cellular, and can include personal area networks (such as Bluetooth, Near Field, etc.), local area networks (such as Wi-Fi), and/or wide area networks (such as WiMax), or other wireless communication.
  • Peripheral connections 1680 include hardware interfaces and connectors, as well as software components (e.g., drivers, protocol stacks) to make peripheral connections. It will be understood that the computing device 1600 could both be a peripheral device (“to” 1682) to other computing devices, as well as have peripheral devices (“from” 1684) connected to it. The computing device 1600 commonly has a “docking” connector to connect to other computing devices for purposes such as managing (e.g., downloading and/or uploading, changing, synchronizing) content on device 1600. Additionally, a docking connector can allow device 1600 to connect to certain peripherals that allow the computing device 1600 to control content output, for example, to audiovisual or other systems.
  • In addition to a proprietary docking connector or other proprietary connection hardware, the computing device 1600 can make peripheral connections 1680 via common or standards-based connectors. Common types can include a Universal Serial Bus (USB) connector (which can include any of a number of different hardware interfaces), DisplayPort including MiniDisplayPort (MDP), High Definition Multimedia Interface (HDMI), Firewire, or other type.
  • Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments. If the specification states a component, feature, structure, or characteristic “may,” “might,” or “could” be included, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the elements. If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element.
  • Furthermore, the particular features, structures, functions, or characteristics may be combined in any suitable manner in one or more embodiments. For example, a first embodiment may be combined with a second embodiment anywhere the particular features, structures, functions, or characteristics associated with the two embodiments are not mutually exclusive.
  • While the disclosure has been described in conjunction with specific embodiments thereof, many alternatives, modifications and variations of such embodiments will be apparent to those of ordinary skill in the art in light of the foregoing description. The embodiments of the disclosure are intended to embrace all such alternatives, modifications, and variations as to fall within the broad scope of the appended claims.
  • In addition, well known power/ground connections to integrated circuit (IC) chips and other components may or may not be shown within the presented figures, for simplicity of illustration and discussion, and so as not to obscure the disclosure. Further, arrangements may be shown in block diagram form in order to avoid obscuring the disclosure, and also in view of the fact that specifics with respect to implementation of such block diagram arrangements are highly dependent upon the platform within which the present disclosure is to be implemented i.e., such specifics should be well within purview of one skilled in the art. Where specific details (e.g., circuits) are set forth in order to describe example embodiments of the disclosure, it should be apparent to one skilled in the art that the disclosure can be practiced without, or with variation of, these specific details. The description is thus to be regarded as illustrative instead of limiting.
  • The following examples pertain to further embodiments. Specifics in the examples may be used anywhere in one or more embodiments. All optional features of the apparatus described herein may also be implemented with respect to a method or process.
  • For example, in one embodiment, chip comprises: a pull-up driver with a first impedance, the pull-up driver coupled to a node; a pull-down driver with a second impedance, the pull-down driver coupled to the node; and an equalizer coupled to the pull-up and pull-down drivers, wherein the equalizer is operable to be trained to deemphasize a signal driven on the node while maintaining the first and second impedances substantially constant.
  • In one embodiment, the equalizer is part of a parallel input-output (I/O) link. In one embodiment, the first impedance is independently controllable from control of the second impedance. In one embodiment, the chip further comprises: a pull-up driver compensation unit which is operable to determine a code for setting the first impedance for the pull-up driver, and a code for setting a pull-up granularity for de-emphasizing the signal by the equalizer. In one embodiment, the chip further comprises: a pull-down driver compensation unit which is operable to determine a code for setting the second impedance for the pull-down driver, and a code for setting a pull-down granularity for de-emphasizing the signal by the equalizer. In one embodiment, the equalizer is disabled when the pull-up driver compensation unit is determining the code for setting the first impedance for the pull-up driver. In one embodiment, the equalizer is disabled when the pull-down driver compensation unit is determining the code for setting the second impedance for the pull-up driver.
  • In one embodiment, the pull-up driver compensation unit and the pull-down driver compensation unit determine the codes for setting the first and second impedances prior to setting the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer, and wherein the codes, for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer, are programmable. In one embodiment, the pull-up driver compensation unit and the pull-down driver compensation unit are operable to determine codes again for setting the first and second impedances after setting the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer.
  • In one embodiment, the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer are different when the equalizer is in equalization mode than codes for the pull-up and pull-down granularities when the equalizer is in non-equalization mode. In one embodiment, the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode. In one embodiment, the equalizer comprises: a pull-up section coupled to the node; and a pull-down section coupled to the node, wherein the pull-up and pull-down sections are controllable with control signals different from control signals for controlling the first and second impedances of the pull-up and pull-down drivers.
  • In another example, a processor comprises: a transmitter of a parallel input-output (I/O) link, the transmitter having a pull-up driver, a pull-down driver, and an equalizer coupled to the pull-up and pull-down drivers; and pull-up driver and pull-down driver compensation units to determine codes for first impedance of the pull-up driver and a second impedance of the pull-down driver respectively, wherein the equalizer is disabled when the pull-up driver and pull-down driver compensation units are determining codes for the first and second impedances.
  • In one embodiment, the first impedance is independently controllable from control of the second impedance. In one embodiment, the equalizer is operable to be trained to deemphasize a signal driven on a node, coupled to the pull-up driver, pull-down driver, and the equalizer, while maintaining the first and second impedances substantially constant. In one embodiment, the pull-up driver compensation unit is operable to determine a code for setting a pull-up granularity for de-emphasizing the signal by the equalizer, wherein the code, for setting a pull-up granularity for de-emphasizing the signal by the equalizer, is programmable; and the pull-down driver compensation unit is operable to determine a code for setting a pull-down granularity for de-emphasizing the signal by the equalizer, wherein the code, for setting a pull-down granularity for de-emphasizing the signal by the equalizer, is programmable. In one embodiment, the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode.
  • In another example, a method comprises: initializing non-equalization codes for a pull-up driver and a pull-down driver respectively; setting a reference signal to correspond to a target impedance value for the pull-up and pull-down drivers; incrementing the initialized non-equalization codes for the pull-up and pull-down drivers to adjust impedances of the pull-up and pull-down drivers; determining whether the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value; setting the reference signal to correspond to an equalization granularity level for an equalizer which coupled to the pull-up and pull-down drivers; and incrementing equalization codes for the equalizer when it is determined that the equalization granularity level for the equalizer is not met. In one embodiment, the equalizer is disabled when determining whether the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value, and wherein the equalizer is enabled after determining that the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value.
  • In another example, a system comprises: a memory unit; a processor, coupled to the memory unit, the processor including: a pull-up driver with a first impedance, the pull-up driver coupled to a node; a pull-down driver with a second impedance, the pull-down driver coupled to the node; and an equalizer coupled to the pull-up and pull-down drivers, wherein the equalizer is operable to be trained to deemphasize a signal driven on the node while maintaining the first and second impedances substantially constant; a wireless interface to allow the processor to communicate with another device; and a display unit.
  • In one embodiment, the equalizer is part of a parallel input-output (I/O) link. In one embodiment, the first impedance is independently controllable from control of the second impedance. In one embodiment, the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode.
  • An abstract is provided that will allow the reader to ascertain the nature and gist of the technical disclosure. The abstract is submitted with the understanding that it will not be used to limit the scope or meaning of the claims. The following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separate embodiment.

Claims (23)

1. A chip comprising:
a pull-up driver with a first impedance, the pull-up driver coupled to a node;
a pull-down driver with a second impedance, the pull-down driver coupled to the node; and
an equalizer coupled to the pull-up and pull-down drivers, wherein the equalizer is operable to be trained to deemphasize a signal driven on the node while maintaining the first and second impedances substantially constant.
2. The chip of claim 1, wherein the equalizer is part of a parallel input-output (I/O) link.
3. The chip of claim 1, wherein the first impedance is independently controllable from control of the second impedance.
4. The chip of claim 1 further comprises:
a pull-up driver compensation unit which is operable to determine a code for setting the first impedance for the pull-up driver, and a code for setting a pull-up granularity for de-emphasizing the signal by the equalizer.
5. The chip of claim 4 further comprises:
a pull-down driver compensation unit which is operable to determine a code for setting the second impedance for the pull-down driver, and a code for setting a pull-down granularity for de-emphasizing the signal by the equalizer.
6. The chip of claim 4, wherein the equalizer is disabled when the pull-up driver compensation unit is determining the code for setting the first impedance for the pull-up driver.
7. The chip of claim 5, wherein the equalizer is disabled when the pull-down driver compensation unit is determining the code for setting the second impedance for the pull-up driver.
8. The chip of claim 5, wherein the pull-up driver compensation unit and the pull-down driver compensation unit determine the codes for setting the first and second impedances prior to setting the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer, and wherein the codes, for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer, are programmable.
9. The chip of claim 5, wherein the pull-up driver compensation unit and the pull-down driver compensation unit are operable to determine codes again for setting the first and second impedances after setting the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer.
10. The chip of claim 5, wherein the codes for the pull-up and pull-down granularities for de-emphasizing the signal by the equalizer are different when the equalizer is in equalization mode than codes for the pull-up and pull-down granularities when the equalizer is in non-equalization mode.
11. The chip of claim 1, wherein the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode.
12. The chip of claim 1, wherein the equalizer comprises:
a pull-up section coupled to the node; and
a pull-down section coupled to the node, wherein the pull-up and pull-down sections are controllable with control signals different from control signals for controlling the first and second impedances of the pull-up and pull-down drivers.
13. A processor comprising:
a transmitter of a parallel input-output (I/O) link, the transmitter having a pull-up driver, a pull-down driver, and an equalizer coupled to the pull-up and pull-down drivers; and
pull-up driver and pull-down driver compensation units to determine codes for first impedance of the pull-up driver and a second impedance of the pull-down driver respectively,
wherein the equalizer is disabled when the pull-up driver and pull-down driver compensation units are determining codes for the first and second impedances.
14. The processor of claim 13, wherein the first impedance is independently controllable from control of the second impedance.
15. The processor of claim 13, wherein the equalizer is operable to be trained to deemphasize a signal driven on a node, coupled to the pull-up driver, pull-down driver, and the equalizer, while maintaining the first and second impedances substantially constant.
16. The processor of claim 13, wherein:
the pull-up driver compensation unit is operable to determine a code for setting a pull-up granularity for de-emphasizing the signal by the equalizer, wherein the code, for setting a pull-up granularity for de-emphasizing the signal by the equalizer, is programmable; and
the pull-down driver compensation unit is operable to determine a code for setting a pull-down granularity for de-emphasizing the signal by the equalizer, wherein the code, for setting a pull-down granularity for de-emphasizing the signal by the equalizer, is programmable.
17. The processor of claim 13, wherein the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode.
18. A method comprising:
initializing non-equalization codes for a pull-up driver and a pull-down driver respectively;
setting a reference signal to correspond to a target impedance value for the pull-up and pull-down drivers;
incrementing the initialized non-equalization codes for the pull-up and pull-down drivers to adjust impedances of the pull-up and pull-down drivers;
determining whether the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value;
setting the reference signal to correspond to an equalization granularity level for an equalizer which coupled to the pull-up and pull-down drivers; and
incrementing equalization codes for the equalizer when it is determined that the equalization granularity level for the equalizer is not met.
19. The method of claim 16, wherein the equalizer is disabled when determining whether the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value, and wherein the equalizer is enabled after determining that the impedances corresponding to the pull-up and pull-down drivers, respectively, are substantially equal to the target impedance value.
20. A system comprising:
a memory unit;
a processor, coupled to the memory unit, the processor including:
a pull-up driver with a first impedance, the pull-up driver coupled to a node;
a pull-down driver with a second impedance, the pull-down driver coupled to the node; and
an equalizer coupled to the pull-up and pull-down drivers, wherein the equalizer is operable to be trained to deemphasize a signal driven on the node while maintaining the first and second impedances substantially constant;
a wireless interface to allow the processor to communicate with another device; and
a display unit.
21. The system of claim 20, wherein the equalizer is part of a parallel input-output (I/O) link.
22. The system of claim 20, wherein the first impedance is independently controllable from control of the second impedance.
23. The system of claim 20, wherein the first and second impedances are substantially constant during a period when the equalizer is in non-equalization mode or equalization mode.
US14/727,685 2012-12-12 2015-06-01 Programmable equalization with compensated impedance Abandoned US20150270838A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/727,685 US20150270838A1 (en) 2012-12-12 2015-06-01 Programmable equalization with compensated impedance

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/712,574 US9048824B2 (en) 2012-12-12 2012-12-12 Programmable equalization with compensated impedance
US14/727,685 US20150270838A1 (en) 2012-12-12 2015-06-01 Programmable equalization with compensated impedance

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/712,574 Continuation US9048824B2 (en) 2012-12-12 2012-12-12 Programmable equalization with compensated impedance

Publications (1)

Publication Number Publication Date
US20150270838A1 true US20150270838A1 (en) 2015-09-24

Family

ID=50880286

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/712,574 Expired - Fee Related US9048824B2 (en) 2012-12-12 2012-12-12 Programmable equalization with compensated impedance
US14/727,685 Abandoned US20150270838A1 (en) 2012-12-12 2015-06-01 Programmable equalization with compensated impedance

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/712,574 Expired - Fee Related US9048824B2 (en) 2012-12-12 2012-12-12 Programmable equalization with compensated impedance

Country Status (2)

Country Link
US (2) US9048824B2 (en)
CN (1) CN205071039U (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11137785B2 (en) 2020-02-11 2021-10-05 Taiwan Semiconductor Manufacturing Company Limited On-chip power regulation system for MRAM operation
US11249192B2 (en) 2016-11-30 2022-02-15 Blackmore Sensors & Analytics, Llc Method and system for automatic real-time adaptive scanning with optical ranging systems
US11366228B2 (en) 2017-07-10 2022-06-21 Blackmore Sensors & Analytics, Llc Method and system for time separated quadrature detection of doppler effects in optical range measurements
US11500106B2 (en) 2018-04-23 2022-11-15 Blackmore Sensors & Analytics, Llc LIDAR system for autonomous vehicle
US11537808B2 (en) 2016-11-29 2022-12-27 Blackmore Sensors & Analytics, Llc Method and system for classification of an object in a point cloud data set
US11585925B2 (en) 2017-02-03 2023-02-21 Blackmore Sensors & Analytics, Llc LIDAR system to adjust doppler effects
US11624828B2 (en) 2016-11-30 2023-04-11 Blackmore Sensors & Analytics, Llc Method and system for adaptive scanning with optical ranging systems
US11802965B2 (en) 2016-11-30 2023-10-31 Blackmore Sensors & Analytics Llc Method and system for doppler detection and doppler correction of optical chirped range detection
US11822010B2 (en) 2019-01-04 2023-11-21 Blackmore Sensors & Analytics, Llc LIDAR system

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288082B1 (en) 2010-05-20 2016-03-15 Kandou Labs, S.A. Circuits for efficient detection of vector signaling codes for chip-to-chip communication using sums of differences
US9985634B2 (en) 2010-05-20 2018-05-29 Kandou Labs, S.A. Data-driven voltage regulator
US9077386B1 (en) 2010-05-20 2015-07-07 Kandou Labs, S.A. Methods and systems for selection of unions of vector signaling codes for power and pin efficient chip-to-chip communication
US9251873B1 (en) 2010-05-20 2016-02-02 Kandou Labs, S.A. Methods and systems for pin-efficient memory controller interface using vector signaling codes for chip-to-chip communications
US9136690B1 (en) * 2011-08-30 2015-09-15 Xilinx, Inc. Front-end circuit with electro-static discharge protection
KR102008019B1 (en) * 2012-06-29 2019-08-06 에스케이하이닉스 주식회사 Impedance calibraion circuit
US9755660B2 (en) * 2013-02-15 2017-09-05 Intel Corporation Apparatus for generating digital thermometer codes
JP2014187162A (en) * 2013-03-22 2014-10-02 Toshiba Corp Semiconductor device and method of trimming the same
WO2014172377A1 (en) 2013-04-16 2014-10-23 Kandou Labs, S.A. Methods and systems for high bandwidth communications interface
WO2014210074A1 (en) 2013-06-25 2014-12-31 Kandou Labs SA Vector signaling with reduced receiver complexity
KR102185284B1 (en) * 2013-12-12 2020-12-01 삼성전자 주식회사 Buffer circuit compensating mismatch of on die termination resistors, semiconductor device and operating method thereof
US9806761B1 (en) 2014-01-31 2017-10-31 Kandou Labs, S.A. Methods and systems for reduction of nearest-neighbor crosstalk
EP3100424B1 (en) 2014-02-02 2023-06-07 Kandou Labs S.A. Method and apparatus for low power chip-to-chip communications with constrained isi ratio
EP3111607B1 (en) 2014-02-28 2020-04-08 Kandou Labs SA Clock-embedded vector signaling codes
US9509437B2 (en) 2014-05-13 2016-11-29 Kandou Labs, S.A. Vector signaling code with improved noise margin
US9112550B1 (en) 2014-06-25 2015-08-18 Kandou Labs, SA Multilevel driver for high speed chip-to-chip communications
US9900186B2 (en) 2014-07-10 2018-02-20 Kandou Labs, S.A. Vector signaling codes with increased signal to noise characteristics
US9432082B2 (en) 2014-07-17 2016-08-30 Kandou Labs, S.A. Bus reversable orthogonal differential vector signaling codes
KR102243423B1 (en) 2014-07-21 2021-04-22 칸도우 랩스 에스에이 Multidrop data transfer
KR101949964B1 (en) 2014-08-01 2019-02-20 칸도우 랩스 에스에이 Orthogonal differential vector signaling codes with embedded clock
US9369128B1 (en) * 2014-08-15 2016-06-14 Altera Corporation Circuits and methods for impedance calibration
US9490805B2 (en) * 2014-09-02 2016-11-08 Integrated Device Technology, Inc. Low power driver with programmable output impedance
US9674014B2 (en) 2014-10-22 2017-06-06 Kandou Labs, S.A. Method and apparatus for high speed chip-to-chip communications
US9419588B1 (en) 2015-02-21 2016-08-16 Integrated Device Technology, Inc. Output driver having output impedance adaptable to supply voltage and method of use
US9912498B2 (en) * 2015-03-05 2018-03-06 Micron Technology, Inc. Testing impedance adjustment
US9621160B2 (en) * 2015-03-05 2017-04-11 Micron Technology, Inc. Circuits for impedance adjustment having multiple termination devices with switchable resistances and methods of adjusting impedance
US9484916B1 (en) * 2015-03-16 2016-11-01 Altera Corporation Adaptive on-chip termination circuitry
US9614703B2 (en) * 2015-03-30 2017-04-04 Qualcomm Incorporated Circuits and methods providing high-speed data link with equalizer
US9407268B1 (en) 2015-04-29 2016-08-02 Integrated Device Technology, Inc. Low voltage differential signaling (LVDS) driver with differential output signal amplitude regulation
EP3700154A1 (en) 2015-06-26 2020-08-26 Kandou Labs, S.A. High speed communications system
US10055372B2 (en) 2015-11-25 2018-08-21 Kandou Labs, S.A. Orthogonal differential vector signaling codes with embedded clock
US10003315B2 (en) 2016-01-25 2018-06-19 Kandou Labs S.A. Voltage sampler driver with enhanced high-frequency gain
CN115085727A (en) 2016-04-22 2022-09-20 康杜实验室公司 High performance phase locked loop
US10003454B2 (en) 2016-04-22 2018-06-19 Kandou Labs, S.A. Sampler with low input kickback
WO2017185070A1 (en) 2016-04-22 2017-10-26 Kandou Labs, S.A. Calibration apparatus and method for sampler with adjustable high frequency gain
EP3449606A4 (en) 2016-04-28 2019-11-27 Kandou Labs S.A. Low power multilevel driver
US10193716B2 (en) 2016-04-28 2019-01-29 Kandou Labs, S.A. Clock data recovery with decision feedback equalization
US10153591B2 (en) 2016-04-28 2018-12-11 Kandou Labs, S.A. Skew-resistant multi-wire channel
WO2017189931A1 (en) 2016-04-28 2017-11-02 Kandou Labs, S.A. Vector signaling codes for densely-routed wire groups
KR102529968B1 (en) * 2016-05-11 2023-05-08 삼성전자주식회사 Impedance calibration circuit of semiconductor memory device, semiconductor memory device and method of operating the same
JP2017216611A (en) * 2016-06-01 2017-12-07 マイクロン テクノロジー, インク. Semiconductor device
CN107544931B (en) * 2016-06-27 2020-05-26 新汉股份有限公司 Computer system with PCI-E intensifier and setting method of PCI-E intensifier
US9906358B1 (en) 2016-08-31 2018-02-27 Kandou Labs, S.A. Lock detector for phase lock loop
US10411922B2 (en) 2016-09-16 2019-09-10 Kandou Labs, S.A. Data-driven phase detector element for phase locked loops
US10355690B2 (en) * 2016-09-28 2019-07-16 Intel Corporation High speed driver with adaptive termination impedance
US10200188B2 (en) 2016-10-21 2019-02-05 Kandou Labs, S.A. Quadrature and duty cycle error correction in matrix phase lock loop
US10200218B2 (en) 2016-10-24 2019-02-05 Kandou Labs, S.A. Multi-stage sampler with increased gain
US10372665B2 (en) 2016-10-24 2019-08-06 Kandou Labs, S.A. Multiphase data receiver with distributed DFE
US9843324B1 (en) * 2016-11-10 2017-12-12 Qualcomm Incorporated Voltage-mode SerDes with self-calibration
US9948300B1 (en) * 2017-03-20 2018-04-17 Micron Technology, Inc. Apparatuses and methods for partial bit de-emphasis
US10116468B1 (en) 2017-06-28 2018-10-30 Kandou Labs, S.A. Low power chip-to-chip bidirectional communications
US10686583B2 (en) 2017-07-04 2020-06-16 Kandou Labs, S.A. Method for measuring and correcting multi-wire skew
US10425260B2 (en) 2017-08-07 2019-09-24 Micron Technology, Inc. Multi-level signaling in memory with wide system interface
US10447512B2 (en) 2017-08-07 2019-10-15 Micron Technology, Inc. Channel equalization for multi-level signaling
US10277435B2 (en) 2017-08-07 2019-04-30 Micron Technology, Inc. Method to vertically align multi-level cells
US10403337B2 (en) 2017-08-07 2019-09-03 Micron Technology, Inc. Output driver for multi-level signaling
US10530617B2 (en) 2017-08-07 2020-01-07 Micron Technology, Inc. Programmable channel equalization for multi-level signaling
US10203226B1 (en) 2017-08-11 2019-02-12 Kandou Labs, S.A. Phase interpolation circuit
US10496583B2 (en) 2017-09-07 2019-12-03 Kandou Labs, S.A. Low power multilevel driver for generating wire signals according to summations of a plurality of weighted analog signal components having wire-specific sub-channel weights
US10326623B1 (en) 2017-12-08 2019-06-18 Kandou Labs, S.A. Methods and systems for providing multi-stage distributed decision feedback equalization
US10554380B2 (en) 2018-01-26 2020-02-04 Kandou Labs, S.A. Dynamically weighted exclusive or gate having weighted output segments for phase detection and phase interpolation
US10128842B1 (en) 2018-03-23 2018-11-13 Micron Technology, Inc. Output impedance calibration for signaling
KR20220019321A (en) * 2020-08-10 2022-02-17 삼성전자주식회사 Storage devices and methods of operating storage devices
US11587598B2 (en) * 2020-09-09 2023-02-21 Samsung Electronics Co., Ltd. Memory device for generating pulse amplitude modulation-based DQ signal and memory system including the same

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2305082B (en) * 1995-09-06 1999-10-06 At & T Corp Wave shaping transmit circuit
KR100506976B1 (en) * 2003-01-03 2005-08-09 삼성전자주식회사 synchronous semiconductor memory device having on die termination circuit
US7126378B2 (en) * 2003-12-17 2006-10-24 Rambus, Inc. High speed signaling system with adaptive transmit pre-emphasis
JP4428504B2 (en) * 2003-04-23 2010-03-10 株式会社ルネサステクノロジ Semiconductor integrated circuit device
JP4201128B2 (en) * 2003-07-15 2008-12-24 株式会社ルネサステクノロジ Semiconductor integrated circuit device
KR100583636B1 (en) * 2003-08-19 2006-05-26 삼성전자주식회사 Device of controlling impedance of termination circuit and off-chip driver circuit using one reference resistor
JP4086757B2 (en) * 2003-10-23 2008-05-14 Necエレクトロニクス株式会社 Input / output interface circuit of semiconductor integrated circuit
US7005903B2 (en) 2003-12-02 2006-02-28 Intel Corporation Output buffer with adjustment of signal transitions
US20050127967A1 (en) * 2003-12-10 2005-06-16 Allen Andrew R. Method and apparatus for controlling slew
US7215144B2 (en) * 2004-05-20 2007-05-08 International Business Machines Corporation Pre-emphasis driver with constant impedance
US7148725B1 (en) 2004-06-04 2006-12-12 Intel Corporation Voltage clamp
US7295618B2 (en) * 2004-06-16 2007-11-13 International Business Machines Corporation Automatic adaptive equalization method and system for high-speed serial transmission link
US20060066350A1 (en) * 2004-09-27 2006-03-30 Chen Fred F Equalizing driver circuit and method of operating same
US7227382B1 (en) * 2005-02-01 2007-06-05 Advanced Micro Devices, Inc. Transmit based equalization using a voltage mode driver
JP2007036848A (en) * 2005-07-28 2007-02-08 Ricoh Co Ltd Driver circuit
US7307447B2 (en) * 2005-10-27 2007-12-11 International Business Machines Corporation Self series terminated serial link transmitter having segmentation for amplitude, pre-emphasis, and slew rate control and voltage regulation for amplitude accuracy and high voltage protection
US7446558B2 (en) * 2006-09-29 2008-11-04 Mediatek Inc. High speed IO buffer
US7579861B2 (en) * 2006-10-02 2009-08-25 Hynix Semiconductor Inc. Impedance-controlled pseudo-open drain output driver circuit and method for driving the same
US7692447B2 (en) * 2007-05-18 2010-04-06 International Business Machines Corporation Driver circuit
US20090167368A1 (en) 2007-12-27 2009-07-02 Chan Hong H Pre-driver circuit having a post-boost circuit
US7646215B2 (en) * 2008-03-24 2010-01-12 Sony Corporation Efficient method for implementing programmable impedance output drivers and programmable input on die termination on a bi-directional data bus
JP2009246725A (en) * 2008-03-31 2009-10-22 Renesas Technology Corp Semiconductor device equipped with impedance adjustable output buffer
KR20090121470A (en) * 2008-05-22 2009-11-26 주식회사 하이닉스반도체 Impedance calibration circuit, semiconductor memory device with the impedance calibration circuit, and layout method of internal resistance in the impedance calibration circuit
JP2010171781A (en) * 2009-01-23 2010-08-05 Renesas Electronics Corp Impedance adjusting circuit
KR101639762B1 (en) * 2009-02-02 2016-07-14 삼성전자주식회사 Output buffer circuit and integrated circuit including the same
US9608630B2 (en) * 2009-05-06 2017-03-28 Micron Technology, Inc. Reference voltage circuits and on-die termination circuits, methods for updating the same, and methods for tracking supply, temperature, and/or process variation
KR101642831B1 (en) * 2009-07-31 2016-07-26 삼성전자주식회사 Equalizer and semiconductor memory device comprising the same
JP2011101266A (en) * 2009-11-06 2011-05-19 Elpida Memory Inc Semiconductor device and information processing system
KR101045071B1 (en) * 2009-11-30 2011-06-29 주식회사 하이닉스반도체 Data output circuit
JP5587135B2 (en) * 2010-10-28 2014-09-10 ルネサスエレクトロニクス株式会社 Semiconductor device for wireless communication

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11921210B2 (en) 2016-11-29 2024-03-05 Aurora Operations, Inc. Method and system for classification of an object in a point cloud data set
US11537808B2 (en) 2016-11-29 2022-12-27 Blackmore Sensors & Analytics, Llc Method and system for classification of an object in a point cloud data set
US11802965B2 (en) 2016-11-30 2023-10-31 Blackmore Sensors & Analytics Llc Method and system for doppler detection and doppler correction of optical chirped range detection
US11249192B2 (en) 2016-11-30 2022-02-15 Blackmore Sensors & Analytics, Llc Method and system for automatic real-time adaptive scanning with optical ranging systems
US11874375B2 (en) 2016-11-30 2024-01-16 Blackmore Sensors & Analytics, LLC. Method and system for automatic real-time adaptive scanning with optical ranging systems
US11624828B2 (en) 2016-11-30 2023-04-11 Blackmore Sensors & Analytics, Llc Method and system for adaptive scanning with optical ranging systems
US11585925B2 (en) 2017-02-03 2023-02-21 Blackmore Sensors & Analytics, Llc LIDAR system to adjust doppler effects
US11366228B2 (en) 2017-07-10 2022-06-21 Blackmore Sensors & Analytics, Llc Method and system for time separated quadrature detection of doppler effects in optical range measurements
US11500106B2 (en) 2018-04-23 2022-11-15 Blackmore Sensors & Analytics, Llc LIDAR system for autonomous vehicle
US11947017B2 (en) 2018-04-23 2024-04-02 Aurora Operations, Inc. Lidar system for autonomous vehicle
US11822010B2 (en) 2019-01-04 2023-11-21 Blackmore Sensors & Analytics, Llc LIDAR system
US11720130B2 (en) 2020-02-11 2023-08-08 Taiwan Semiconductor Manufacturing Company Limited On-chip power regulation system for MRAM operation
TWI794678B (en) * 2020-02-11 2023-03-01 台灣積體電路製造股份有限公司 Voltage regulation circuit and method for controlling the same
US11137785B2 (en) 2020-02-11 2021-10-05 Taiwan Semiconductor Manufacturing Company Limited On-chip power regulation system for MRAM operation

Also Published As

Publication number Publication date
CN205071039U (en) 2016-03-02
US20140159769A1 (en) 2014-06-12
US9048824B2 (en) 2015-06-02

Similar Documents

Publication Publication Date Title
US9048824B2 (en) Programmable equalization with compensated impedance
US9024665B2 (en) Transmitter with voltage and current mode drivers
US9323263B2 (en) Low dropout regulator with hysteretic control
US9152257B2 (en) Low swing voltage mode driver
US11196595B2 (en) PAM-4 calibration
CN107978331B (en) Impedance calibration circuit and semiconductor memory device including the same
JP6723999B2 (en) Method, circuit, electronic device, program, apparatus and computer readable storage medium for transmitting signals between devices
US20140167821A1 (en) Linear resistor with high resolution and bandwidth
CN107077302B (en) Apparatus and method for interfacing with a host system
US9813064B2 (en) Apparatus for high voltage tolerant driver
US20180004281A1 (en) Reception interface circuit and memory system including the same
US9720471B2 (en) Voltage regulator with feed-forward and feedback control
KR20160061855A (en) Semiconductor apparatus with calibration circuit and system including the same
KR20170102215A (en) Voltage ramping detection
US10355690B2 (en) High speed driver with adaptive termination impedance
US10320430B2 (en) Transmitter with power supply rejection
US10158362B2 (en) Apparatus for providing shared reference device wherein an internal device is calibrated using reference device via calibrated circuit
US10230913B2 (en) Transmitter and communication system
TWI830758B (en) Transmitter with feedback control
US9804663B2 (en) Electronic device and voltage adjustment circuit for storage device thereof
KR20170117774A (en) Circuit for Impedance Calibration and Semiconductor Memory Apparatus Having the Same

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION