PROGRAMMABLE CMOS BUS AND TRANSMISSION LINE DRIVER

Abstract: A driver for providing binary signals from a data system to a transmission line is disclosed. The driver includes a first field-effect transistor (FET) coupled between an output node and ground for conducting current from the output node to ground. The output node is connectable to the transmission line. An initial charging stage provides an initial charging current to the gate of the first FET for a period of time not to exceed an initial charging time period. The initial charging time period has a length approximately equal to a period of time necessary to increase the gate voltage of the first FET from ground to the threshold voltage of the first FET. A main charging stage provides a main charging current to the gate of the first FET for a period of time not to exceed a main charging time period. A discharging stage provides a discharging current from the gate of the first FET to ground. Finally, a temperature compensation circuit is coupled to the initial charging stage, the main charging stage, and the discharging stage for adjusting the level of the initial charging current, the main charging current, and the discharging current to compensate for variations in temperature and for controlling the length of the main charging time period.

Description: PROGRAMMABLE CMOS BUS AND TRANSMISSION LINE DRIVER Related Applications This application is related to the following copending applications that were all filed of even date herewith and are commonly assigned with this application to National Semiconductor Corporation of Santa Clara, California: U.S. Serial No. 08/073,939 titled "Programmable CMOS Current Source Having Positive Temperature Coefficient" by James Kuo; U.S. Serial No. 08/073.534 ticied "CMOS BTL Compatible Bus And Transmission Line Driver" by James Kuo; U.S. Serial No. 0P,/()7 , ~ 0 titled "CMOS Bus And Transmission Line Driver Having Compensated Edge Rate Control" by James Kuo; and, U.S. Serial No. 08/073,927 titled "Programmable CMOS Bus And Transmission Line Receiver" by James Kuo. The above- referenced applications are hereby incorporated by reference to provide background information regarding the present invention. Background of the Invention 1. Field of the Invention The present invention relates to line interface devices, and, in particular, to a CMOS driver having a programmable output voltage swing and programmable edge rate control that may be used for interfacing CMOS digital circuits to transmission lines. 2. Description of the Related Art Digital systems typically include several Very Large Scale Integrated (VLSI) circuits that cooperate and communicate with one-another to perform a desired task. Figure 1 illustrates a typical digital system. The VLSI circuits are mounted on several circuit boards that are referred to as "daughter boards". Each daughter board may accommodate several VLSI circuits. In turn, the daughter boards are received by a "mother board" that has circuitry for facilitating communication between the individual daughter boards. The individual VLSI circuits are interconnected for binary communication by transmission mediums. The transmission mediums, are generally collected together to form buses. The number, size and types of buses that are used in a digital system may be designed for general-purpose applications or according to a more specific, industry standard data- communications configuration. One such industry standard is the so-called IEEE 896.1 Futurebus+ standard. The Futurebus+ standard provides a protocol for implementing an internal computer bus architecture. Figure 1 illustrates the hierarchy of the several different bus levels utilizable in a Futurebus+ system. A "component level bus" is used to interconnect the several VLSI circuits that are located on a single daughter board, and a "backplane bus" is used to interconnect the VLSI circuits of one daughter board to the VLSI circuits of another daughter board. Thus, a component level bus is constructed on each daughter board, and a backplane bus is constructed on the mother board. The transmission mediums which form the component and backplane buses are typically traces which are formed on the printed circuit board (PCB) substrates of the daughter and mother boards. Microstrip traces and strip line traces can be employed to form transmission lines having characteristic impedances on the order of about 50Ω- 70Ω. Such transmission lines usually have their opposite ends terminated in their characteristic impedance. Because of these parallel resistive terminations, the effective resistance of the transmission line may be as low as 25Ω - 35Ω. Data transceivers (TRANSmitter/reCEIVER) are used to interface the VLSI circuits to the transmission medium. Figure 2 illustrates the positioning of a data transceiver between the backplane bus of a Futurebus+ system and the data bus of a VLSI circuit to facilitate communications between the VLSI circuit and the rest of the digital system. A data transceiver is a read/write terminal capable of transmitting information to and receiving information from the transmission medium. A transceiver typically includes a line driver stage (or simply "driver") and a receiver stage (or simply "receiver") . The common purpose of transmission line drivers and receivers is to transmit data quickly and reliably through a variety of environments over electrically long distances. This task is complicated by the fact that externally introduced noise and ground shifts can severely degrade the data. Drivers amplify digital signal outputs from the VLSI circuitry so that the signals can be properly transmitted on the transmission medium. Receivers are typically differential amplifiers that receive signals from the transmission medium and provide outputs to the VLSI circuitry that are representative of digital information received from the medium. Conventional drivers usually include level shifting capability to provide compatibility with different integrated circuit technologies. Specifically, before a driver transmits a signal across a transmission medium, the driver changes the nominal voltage swing (or the "dynamic signal range") utilized by the VLSI circuitry, e.g., CMOS, TTL, ECL, etc., to a different voltage swing that is utilized by the transmission medium. Thus, a driver not only amplifies a digital signal, but it changes the nominal voltage swing of the signal as well. A different nominal voltage swing is normally used when transmitting data across a transmission medium in order to conserve power. Specifically, the power internally dissipated by the driver is proportional to the nominal voltage swing of the binary signal it applies to the transmission line. Therefore, power dissipation is reduced if the driver transmits a signal having a relatively small voltage swing over the transmission line. It has become common for signals to be transmitted over transmission lines at BTL (Backplane Transceiver Logic) signal levels. The signal level standard is denoted "Backplane" because BTL has been used primarily in the backplane buses of mother boards. Because the nominal voltage swing of BTL is 1.0 Volt (logic low) to 2.1 Volts (logic high), power dissipation is less than it would be if the signals were transmitted over the transmission lines at CMOS (0 Volts to 3.3 Volts, or, 0 Volts to 5.0 Volts) or TTL (0 volts to 3.5 Volts) signal levels. Figure 3 illustrates a conventional BTL driver 20. The driver 20 receives CMOS level signals at input V IN and outputs BTL level signals to a terminated transmission line 22 at output V ∞1 . The driver 20 is implemented with bipolar transistors Ql, Q2, Q3, Q4, and Q5. Bipolar technology is attractive for implementing I/O devices, such as line or bus drivers, because of its unique high current gain characteristic. High current gain is important in a bus system such as future bus backplane because the driver 20 must be capable of driving the transmission line in both unloaded and loaded conditions. The bipolar NPN transistor Ql is particularly suited to be the driving device of the BTL driver 20. Although the BTL driver 20 is capable of generating the current required to drive a backplane bus, it suffers from a number of disadvantages due to its bipolar construction. First, because of the large collector capacitance of transistor Ql, a blocking schottky diode Dl is required in order to reduce the driver 20 output capacitance to less than 2.0 pF. Second, the driver 20 output has a very fast rising and falling edge. Without control, the fast rising and falling edge can create ground bouncing, output over/under shoot, and cross-talk between bus conductors. These adverse effects can significantly reduce a receiver's noise margin. In order to control the adverse effects that can be caused by a fast rising and falling edge, Futurebus+ specifies a minimum rise-time t r and fall-time t f l nano-second measured between 20% to 80% of the voltage swing levels. In order to meet the Futurebus+ specifications with respect to t r and t f , the BTL driver 20 uses a miller capacitor , between the collector of transistor Ql and the base of transistor Q2 to increase t f . Specifically, t is given by: t. = « ΔV, OUT L bQ2 where I^ is the base current of transistor Q2. Similarly, the BTL driver 20 uses the capacitance C ob at the collector-base junction of transistor Ql to control t r . Specifically, t r is given by: t r = C °° ΔV OU T ; where 1^ is the base current of transistor Ql. The problem with controlling t f and t r in this manner, however, is that both 1^ and I M1 are supply voltage V 0D and temperature dependant. When temperature decreases and the supply voltage V DD increases, 1^ and I M1 both increase which results in a decrease in t r and t . Thus, the t r and t f of the BTL driver 20 are difficult to control during variations in temperature and supply voltage V DD . If not controlled, t r and t f could fall below the Futurebus+ minimum specifications. Another disadvantage of the bipolar BTL driver 20 is the skew between its turn-on and turn-off delay. When temperature increases and supply voltage increases, the increase in the base turn-on current I b oio N and current gain of transistor Ql significantly increases transistor Ql's base over-drive. An increase in temperature of 100°C can increase the base turn-on current I^ ON and current gain of transistor Ql by 100%. Such an increase in transistor Ql's base over-drive causes t r , and thus, turn-on time, to get much shorter. However, the increase in the base turn-on current I bo. o N of transistor Ql due to the temperature and supply voltage increases causes more storage charge to accumulate in transistor Ql's collector and base region. The accumulation of storage charge causes the base turn-off current I MIOFF (V BE Q I /R1) of transistor Ql to decrease, and the decrease in I MIOFF causes t and the turn-off time of transistor Ql to be very long. Therefore, the skew between the turn-on and turn-off times tends to get worse as temperature and supply voltage increase. Other disadvantages of the BTL driver 20 due to its bipolar implementation are high power dissipation and the inefficiency of large scale integration due to lower gate density and higher cost. These disadvantages would also be present in a BiCMOS implementation. Signals have also been transmitted over transmission lines at the so-called "GTL" signal levels disclosed in United States Patent No. 5,023,488 to Gunning ("Gunning"). Gunning discloses such GTL drivers and receivers for interfacing VLSI CMOS circuits to transmission lines. The nominal voltage swing of GTL is approximately 0.3 Volts (logic low) to 1.2 Volts (logic high) . Figure 4 shows a GTL driver 30 that is disclosed in Gunning. A very wide channel, open drain, N- channel CMOS transistor Ml is used for transforming binary signals to a transmission line 32 from a more or less conventional CMOS signal source 34 which effectively isolates the transmission line 32 from the ordinary 5 v rail-to-rail signal swing of the signal source 34. Transistor Ml has its gate connected to the output of the signal source 34, its drain connected to the transmission line 32, and its source returned to ground (i.e., the same reference level as the 0 v rail of the signal source 34) . The channel width of the transistor Ml is orders of magnitude greater than its channel length to reduce the effective resistance of its source-drain circuit in conduction. In operation, when the signal at V IN drops to a low ("0") logic level, transistors M2 and M3 are switched into and out of conduction, respectively. Thus, the gate capacitance of transistor Ml is charged relatively rapidly by the current conducted by the source-drain circuit of transistor M2. The gate of transistor Ml is quickly pulled up toward the 5 Volt rail of the signal source 14, thereby causing transistor Ml to promptly switch into conduction. On the other hand, when the signal V 1N increases to a high ("1") logic level, transistor M2 switches out of conduction while transistor M3 switches into conduction. This causes the gate capacitance of transistor Ml to be quickly discharged by the current conducted by the source-drain circuit of transistor M3 so that the gate of transistor Ml is pulled down relatively rapidly toward the 0 Volt rail of the signal source 14, thereby promptly switching transistor Ml out of conduction. The signal level on the transmission line 32 tends to stabilize substantially at the voltage level to which the transmission line 32 is terminated a short time after transistor Ml is switched out of conduction (i.e., as soon as the switching transients have settled out) . On the other hand, when transistor Ml is switched into conduction, its source-drain circuit provides a ground return path for current flow through the parallel terminating resistors indicated by 36. The signal level at which the transmission line 32 tends to stabilize (again, after the switching transients have settled out) is determined by the voltage division which the parallel terminating resistor 36 and the source-drain resistance of the conductive transistor Ml perform on the voltage to which the transmission line 32 is terminated. Provision is made in the driver 30 for damping certain of the switching transients which are generated when transistor Ml is switched into and out of conduction. Some of the more troublesome switching transients occur when transistor Ml is switched from a conductive state to a non-conductive state. The drain-side parasitic packaging inductance and the drain-side parasitic capacitances of transistor Ml form a ringing circuit which tends to cause the voltage on the transmission line 32 to overshoot its nominal upper limit by a substantial margin and to oscillate for a prolonged period of time. Similarly, the source-side parasitic inductances and capacitances of transistor Ml form another ringing circuit which tends to cause a potentially troublesome oscillatory "ground bounce" perturbance of the reference voltage on the low level rail of the CMOS circuit. To reduce these switching transients, the driver 30 is equipped with a feedback circuit for briefly connecting the drain of transistor Ml to its gate when transistor Ml is switched from a conductive state to a non-conductive state. The feedback circuit includes a pair of n-channel transistors M4 and M5 which have their source-drain circuits connected in series between the drain and gate of transistor Ml. The input V 1N for the driver 30 is coupled to the gate of transistor M5, and two additional inverter stages 37 and 38 are coupled between the inverter 34 and the gate of transistor M4. The GTL driver 30 disclosed in Gunning suffers from a number of disadvantages which cause output pulse distortion. First, the feedback circuit that is used to control the rising edge of V(j T prevents the drain voltage of transistor Ml from increasing to a level significantly above its gate voltage. Because the drain voltage is held low, Vouγ cannot go high until the feedback circuit is disabled which increases the propagation delay of the driver 30. A second disadvantage of the driver 30 is that its rise time t r , fall time t τ , edge rate, turn-on delay, turn-off delay, and propagation delay are sensitive to temperature variations, supply voltage V cc variations, and process variations. A third disadvantage of the driver 30 is that its minimum rise time t r and fall time t are too fast which causes ground bouncing, output over-shooting, and large cross-talk. Thus, there is a need for a BTL driver that overcomes the disadvantages of the conventional bipolar BTL driver discussed above, and there is a need for a transmission line driver that provides an output voltage swing of approximately 0.3 Volts (logic low) to 1.2 Volts (logic high) and that overcomes the disadvantages of the GTL driver discussed above. Summary of the Invention The present invention provides a driver for providing binary signals from a data system to a transmission line. The driver includes a first field-effect transistor (FET) coupled between an output node and ground for conducting current from the output node to ground. The output node is connectable to the transmission line. A main charging stage provides a main charging current to the gate of the first FET for a period of time not to exceed a main charging time period. A discharging stage provides a discharge current from the gate of the first FET to ground. Programming circuitry is used for programming the length of the main charging time period. In another embodiment of the present invention, a driver is provided for providing binary signals from a data system to a transmission line. The driver includes a first FET, a main charging stage, a discharging stage, and a temperature compensation circuit. The temperature compensation circuit is coupled to the main charging stage and the discharging stage and adjusts the level of the main charging current and the level of the discharging current to compensate for variations in temperature and controls the length of the main charging time period. In another embodiment of the present invention, a driver is provided for providing binary signals from a data system to a transmission line. The driver includes a first FET, a main charging stage, a discharging stage, and an initial charging stage. The initial charging stage provides an initial charging current to the gate of the first FET for a period of time not to exceed an initial charging time period. The initial charging time period has a length approximately equal to a period of time necessary to increase the gate voltage of the first FET from ground to the threshold voltage of the first FET. A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description of the invention and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilized. Brief Description of the Drawings Figure 1 is a pictorial illustration of the hierarchy of bus levels in a Futurebus+ system. Figure 2 is a block diagram illustrating the placement of a data transceiver between the backplane bus of a Futurebus+ system and the data bus of a processor in the Futurebus+ system. Figure 3 is a schematic diagram illustrating a conventional bipolar transistor BTL transmission line driver. Figure 4 is a schematic diagram illustrating a prior art "GTL" driver. Figure 5 is a schematic diagram illustrating a CMOS transmission line driver in accordance with the present invention. Figure 6 is a schematic diagram illustrating a voltage sensing amplifier that may be used in the transmission line driver shown in Figure 5. Figure 7 is timing diagram illustrating some of the signal levels generated by the transmission line driver shown in Figure 5. Figure 8 is a schematic diagram illustrating a programmable CMOS temperature compensation circuit that may be used in the transmission line driver shown in Figure 5. Figure 9A is a schematic diagram illustrating control logic circuitry that may be used for programming the temperature compensation circuit shown in Figure 8, and Figure 9B is a truth table for the control logic circuitry shown in Figure 9A. Figure 10 is a more detailed schematic diagram illustrating the transmission line driver shown in Figure 5. Figure 11 is a more detailed schematic diagram illustrating the main stage pulse generation circuitry that may be used in the transmission line driver shown in Figures 5 and/or 10. Detailed Description of the Preferred Embodiment Figure 5 shows a programmable CMOS transmission line driver 100 in accordance with the present invention. It is referred to herein as the "KTL" driver 100. The KTL driver 100 is used for transferring data signals generated by a data system, such as a VLSI circuit, to a transmission line 102. The KTL driver 100 has a programmable output voltage swing at output Varr, and it has programmable edge rate control. It is a high speed bus driver that may be operated at a data rate of 250 MHz or more, and it has low output pulse distortion. The KTL driver 100 is designed to receive CMOS level binary signals, i.e., digital signals having a voltage swing of approximately 0 Volts (logic low) to 3.3 Volts (logic high), from a data system at the input V, N . The KTL driver 100 includes level shifting capability so that the data signals provided to the transmission line 102 via output operate within a different nominal voltage swing. The voltage swing of output voltage V^ of the KTL driver 100 is programmable. Specifically, output voltage VQ U T may be programmed to be in accordance with the Backplane Transceiver Logic (BTL) standard, i.e., digital signals having a voltage swing of approximately 1.0 Volt (logic low) to 2.1 Volts (logic high), or the so called "GTL" signal levels discussed above of 0.3 Volts ± 0.1 Volt (logic low) to 1.2 Volts ± 5% (logic high) , depending upon supply voltage variations. Thus, the output of the KTL driver 100 may be programmed to be compatible with the BTL standard and the so-called "GTL" levels. The transmission line 102 generally has a relatively low impedance and is terminated to voltage levels V τ . The transmission line 102 is typically a microstrip trace or a strip line trace having a characteristic impedance on the order of about 50Ω - 70Ω. Normally, the transmission line 102 has its opposite ends terminated in its characteristic impedance so that the effective resistance of the parallel terminating resistors R τ is approximately 25Ω - 35Ω. If the KTL driver 100 is programmed to operate at BTL signal levels, then the voltage V τ is equal to 2.1 Volts; on the other hand, if the KTL driver 100 is programmed to operate at GTL signal levels, then the voltage V τ is equal to 1.2 Volts. The KTL driver 100 shown in Figure 5 is implemented with n-channel and p-channel field-effect transistors (FETs) , i.e., it is a CMOS device and utilizes no bipolar transistors. The CMOS implementation overcomes the problems associated with large scale integration of the bipolar driver 20 described above, i.e., low gate density and high cost. The KTL driver 100 generally includes an output stage 104, a main charging stage 106, a discharging stage 108, an initial charging stage 110, and a temperature compensation circuit 40. The main charging stage 106, the initial charging stage 110, and the discharging stage 108 are responsive to data signals received at input VIN and cause the output stage 104 to generate either a logic low or logic high signal at the output node VQ UI - One of the functions of the output stage 104 is to interface with the transmission line 102 and to provide . data signals to the transmission line 102. An output node is connectable to the transmission line 102. The output stage 104 conducts current from the output node to ground. The output stage 104 includes a very wide channel, open drain, n-channel MOSFET M10. The drain of transistor M10 is coupled to the transmission line 102 and the source is coupled to ground. The channel width of transistor M10 should be orders of magnitude greater than its channel length to reduce the effective resistance of its drain-source circuit during conduction. Preferably, transistor M10 has a channel width of 1200 μm and a channel length of 1 μm. Furthermore, although only a single transistor M10 is shown, it is to be understood that it may be fabricated by connecting any number of n-channel transistors in parallel with each other; such parallelism may be used for producing a transistor M10 of the desired effective channel width. The purpose of the main charging stage 106 is to provide a main charging current !„ « ,•,, to the gate of transistor M10. Charging the gate of transistor M10 pulls it high which switches transistor M10 into a conducting state. Transistor M10 conducts current from the output node V(χj T to ground. Current flows through resistors R τ and creates a voltage drop thereacross which causes the voltage at output VQ UJ to go low. A voltage sensing amplifier 112 is used for sensing when is approximately equal to its pre¬ programmed logical low level. The value of in its low state depends upon whether the KTL driver 100 is programmed to be BTL or GTL compatible. As will be discussed in more detail below, the main charging stage 106 provides the main charging current. I^,,, to the gate of transistor MIO for a period of time not to exceed a main charging time period t^ n - The main charging current I^ n is provided to the gate of transistor MIO long enough to switch it on. Once transistor MIO is switched into the conducting state, the main charging current I m\n is stopped in order to conserve power. The purpose of the initial charging stage 110 is to provide an initial charging current I,- nit to the gate of transistor M10 for a period of time not to exceed an initial charging time period t jnjt . The initial charging time period tj njt is shorter than the main charging time period t^,-,,. The initial charging current I inι - t quickly charges the gate of transistor M10 up to the point where the gate-source voltage is approximately equal to the threshold voltage V TH . In other words, the initial charging current I jnjt quickly increases the gate voltage of transistor M10 to the point where transistor M10 starts conducting current and pulling output VQ UT low. The initial charging time period t, n ,- t has length approximately equal to the period of time necessary to increase the gate voltage of transistor M10 from ground to the threshold level V TH . Preferably, the initial charging time period tj n j is approximately equal to one logic gate delay time. The purpose of the discharging stage 108 is to provide a discharging current I djs from the gate of transistor M10 to ground. Discharging the gate of transistor M10 switches it into a non-conducting state. When transistor M10 is in a non-conducting state, current is no longer conducted from output v ouτ to ground. This causes output to go high because current stops flowing through resistors R τ . The value of in its high state depends upon whether the KTL driver 100 is programmed to be BTL or GTL compatible. The main charging stage 106 includes a voltage sensing amplifier 112, main stage pulse generation circuitry 114, a p-channel switching transistor M12, a p-channel current source transistor M15, and a smaller p-channel current source transistor M22. Transistor M12 has its source connected to a supply voltage V DD , its gate connected to the output of the main stage pulse generation circuitry 114, and its drain is connected to the source of transistor M15. The drain of transistor M15 is connected to the input V VSAIN of the voltage sensing amplifier 112, and the output V os1 of the voltage sensing amplifier 112 is connected directly to the gate of transistor MIO. Transistor M22 has its source connected to voltage supply VDD, its gate connected to the gate of transistor M15, and its drain connected to input VVSAIN• The voltage sensing amplifier 112 is a simple, well-known single stage CMOS differential amplifier. The amplifier 112 compares a reference input voltage V REF to the KTL driver 100 output voltage Vou T . The KTL driver 100 is programmed to output BTL or GTL level signals by setting V REF equal to 1.0 Volt for BTL or grounded for GTL. The amplifier 112 senses when the voltage at the output node V^ is substantially equal to the programmed logical low level. Figure 6 shows the detailed structure of the voltage sensing amplifier 112. Two p-channel transistors M6 and M7 have their sources connected to V VSAIN # i.e., the drain of transistor M15. The drains of transistors M6 and M7 are connected to the drains of two n-channel transistors M9 and M8, respectively, that have their sources grounded. The gates of transistors M9 and M8 are connected together and to the drain of transistor M7. The gate of transistor M6 is connected to the reference voltage V REF , and the gate of transistor M7 is connected to the output node Von. Finally, the drain of transistor M6 is connected to V os , i.e., the gate of transistor MIO. Referring back to Figure 5, the gate of the current source transistor M15 is connected to one output V 0P of a programmable CMOS temperature compensation circuit 40. The temperature compensation circuit 40, along with the current source transistor M15, provide a means for adjusting the source-drain current Isn conducted by transistor M12 to compensate for temperature and voltage supply V D0 variations. The effects of temperature and supply voltage variations on MOSFET transistors, as well as the structure and operation of the temperature compensation circuit 40, will be described in detail below with reference to Figures 7 and 8. For the present discussion regarding the basic operation of the KTL driver 100, however, it can be assumed that the output VQ P maintains a source-gate potential V SG on transistor M15 such that it will conduct current whenever transistor M12 is switched on. The purpose of the main stage pulse generation circuitry 114 is to provide a main pulse to the gate of transistor M12. The main pulse is a negative pulse and has a length approximately equal to the main charging time period t^ n . Because transistor M12 is a p-channel transistor, the negative main pulse switches transistor M12 on so that it conducts current for a period of time approximately equal to the main charging time period Therefore, the voltage sensing amplifier 112 conducts current to the gate of transistor MIO for a period of time that does not exceed the main charging time period t^ n - The main stage pulse generation circuitry 114 includes a p-channel transistor M16 and an n-channel transistor M18 connected to form a CMOS inverter 117. The drains of transistors M16 and M18 form the output of the CMOS inverter 117, and the gates of transistors M16 and M18 are connected together to form the input of the CMOS inverter 117. A NA D gate 118 has its output connected to the gate of transistor M12, one of its inputs connected to the drain of transistor M16 (the output of the CMOS inverter 117) , and its other input connected to the input of the CMOS inverter 117. The input of the CMOS inverter 117 is connected to the input node V IN of the KTL driver 100. The CMOS inverter 117 has a propagation delay that can be adjusted by the temperature compensation circuit 40. Specifically, an n-channel transistor M17 is connected in series with transistors M16 and M18. The gate of transistor M17 is connected to output VQ H of the temperature compensation circuit. As will be described in detail below, the temperature compensation circuit 40 varies the gate voltage of transistor M17, via V^, to compensate for temperature and supply voltage V DD variations. In addition, however, the output V w of the temperature compensation circuit 40 can be selectively programmed to be several different values, resulting in the gate voltage of transistor M17 being programmable to several different values. As will be explained below, outputs VQ,, and V^ are programmed by the binary settings of inputs Cl and C2. By programming the gate voltage of transistor M17, the current conducted by transistor M17 is also thereby programmed. The propagation delay of the CMOS inverter 117, i.e., the time between 50% of its input switching transition and 50% of its output switching transition, is dependent upon the speed at which its output goes high and low. The speed at which the output goes high and low depends upon the strength of the CMOS inverter 117 charging current conducted by transistor M16 and the strength of the CMOS inverter 117 discharging current conducted by transistor M18. The propagation delay of the CMOS inverter 117 will change if the charging and discharging currents are changed. Because the current conducted by transistor Ml7 is adjustable by the temperature compensation circuit 40, the discharging current of the CMOS inverter 117 conducted by transistor M18 is also adjustable. By adjusting the discharging current of the CMOS inverter 117, the speed at which its output is pulled low is adjusted. Thus, the output high to low propagation delay time of the CMOS inverter 117 is adjustable by the temperature compensation circuit 40. The NAND gate output 118 will only go low when both of its inputs are high. As will be explained in more detail below, both inputs of the NAND gate 118 will be high only for a period of time approximately equal to the high to low propagation delay of the CMOS inverter 117. The high to low propagation delay of the CMOS inverter is approximately equal to the main charging time period ^^. Thus, the main charging time period which is the amount of time that transistor M12 is in the conducting state, is progra med by programming the high to low propagation delay of the CMOS inverter 117. The initial charging stage 110 includes three p- channel transistors M19, M20, and M21 that are connected in series between voltage supply V DD and the gate of transistor MIO. The gate of transistor M20 is connected to output Vgp of the temperature compensation circuit 40 to compensate the initial charging stage 110 for temperature and supply voltage V DD variations. The gates of transistors M19 and M21 are connected to initial stage switching circuitry, comprised of inverters 120, 122, and 124, for switching transistors M19 and M21 into simultaneous conducting states for the initial charging time period t im - t . When transistors M19, M20, and M21 are all in the conducting state, then the initial stage charging current is provided to the gate of transistor M10. If transistors M19, M20, and M21 are only in simultaneous conducting states for the initial charging time period t,- n ,- t , then the initial charging current I, m - t is provided to the gate of transistor M10 only for the initial charging time period t init . The initial charging time period tj nit is preferably equal to approximately one logic gate delay time. Inverter 120 is connected between input V tN and the gate of transistor M21, and inverters 122 and 124 are connected in series between V IN and the gate of transistor M19. When the gate of transistor M21 goes from high to low to switch transistor M21 on, the gate of transistor M19 will remain low for the delay time of inverter 124. Thus, inverters 120, 122, and 124 switch transistors M19 and M21 into simultaneous conducting states for one logic gate delay time period. Transistor M20 is held in its conducting state by output VOP of the temperature compensation circuit 40. The discharging stage 108 includes an n-channel switching transistor M13 having its source connected to ground, its gate connected to the output of an inverter 116, and its drain connected to the source of an n-channel current source transistor M14. The drain of the current source transistor M14 is connected directly to the gate of transistor MIO, and the gate of the current source transistor M14 is connected to the other output V^ of the programmable CMOS temperature compensation circuit 40. Similar to output VQ P and transistor M15, it can be assumed for the present discussion that the output V^ maintains a gate-source potential V GS on transistor M14 such that it will conduct current whenever transistor M13 is switched on. Figure 7 shows a timing diagram for the KTL driver 100. In order to describe the operation of the KTL driver 100, it will be assumed that the input V IN initially receives a low or logic "0" level CMOS signal, i.e., V, N = 0 Volts. Thus, the initial charging stage 110 receives a low input, the main stage pulse generation circuitry 114 receives a low input, and the discharging stage 108 receives a high input due to inverter 116. The high input received by the discharging stage 108 pulls the gate of transistor M13 high which holds it in a conducting state. Because transistor M13 is conducting, it provides a discharge path from the gate of transistor M10 to ground. This pulls the gate of transistor M10 low which switches it into a non-conducting state. Because transistor M10 is not conducting, output is pulled high to V τ level. The value of V τ depends upon whether the KTL driver is programmed to be BTL or GTL compatible. Because it is assumed that V IN has been low for awhile, inverter 120 of the initial charging stage 110 pulls the gate of transistor M21 high, and inverters 122 and 124 pull the gate of transistor M19 low. Because the gate of transistor M21 is pulled high, transistor M21 does not conduct current and no initial charging current Ij n ,- t is provided to the gate of transistor MIO. Turning to the main charging stage 106, input 128 of the NAND gate 118 is pulled low because it is coupled to input V IN . Input 126 of the NAND gate 118 is pulled high because it is coupled to the output of the CMOS inverter 117. The output of the CMOS inverter 117 is high because the low input V 1N causes transistor M16 to be in the conducting state and transistor M18 to be in the non-conducting state. Because the NAND gate 118 has one input pulled low, it pulls the gate of transistor M12 high. The high output of the NAND gate 118 switches off the p-channel transistor M12. Because the p- channel transistor M12 is switched off, current source transistor M15 does not conduct current from source to drain. Because transistor M15 does not conduct current, the voltage sensing amplifier 112 is deenergized and its output V os has no effect on transistor M10. Thus, the main charging stage 106 has no effect on the signal generated at the output node Vαjγ. When the KTL driver 100 input V IN switches to a high or logic "1" level CMOS signal, i.e., V IN = 3.3 Volts, the initial charging stage 110 receives a high input, the main stage pulse generation circuitry 114 receives a high input, and the discharging stage 108 receives a low input due to inverter 116. The low input received at the discharging stage 108 pulls the gate of transistor M13 low which switches it into a non-conducting state. Thus, the discharge path from the gate of transistor MIO to ground is removed. The high input received by the initial charging stage 110 causes the gate of transistor M21 to be pulled low after one logic gate delay caused by inverter 120 and the gate of transistor M19 to be pulled high after two logic gate delays caused by inverters 122 and 124. This results in the gates of transistors M19 and M21 being pulled low simultaneously for one logic gate delay. For this one logic gate delay, referred to herein as the initial charging time period tj nit , the initial charging stage 110 provides an initial charging current I init to the gate of transistor M10. The initial charging current Ij njt quickly charges the gate of transistor M10 from ground level up to the threshold voltage V TH of transistor M10 (V TH - 0.8 Volts) . When the gate voltage of transistor M10 reaches its threshold level V TH , transistor M10 begins to conduct current from output V ∞ -j to ground. Current begins to flow through resistors R τ and V QUT begins to be pulled low. However, about the time that the gate of transistor M10 reaches its threshold level V TH , the initial charging current I jnit stops. The main charging stage 106 then takes over. The high input received by the main stage pulse generation circuitry 114 immediately pulls input 128 of the NAND gate 118 high. Input 126 of the NAND gate 118 remains high for the delay time of the CMOS inverter 117. As explained above, the propagation delay of the CMOS inverter 117 is equal to the main charging time period M ^. For this time period both inputs 126 and 128 of the NAND gate 118 are pulled high. Thus, the gate of transistor M12 is pulled low by the negative pulse produced by the NAND gate 118 for the main charging time period t m i n . While transistor M12 is in the conducting state (during the main charging time period ^ n ) , the current source transistor M15 conducts a current I SOMIS from source to drain. Thus, the input V VSAIN of the voltage sensing amplifier 112 is energized. It should be noted that the voltage sensing amplifier 112 can only be energized by transistors M12 and M15 during the output turn-on transition period when the KTL driver 100 input V, N is set at logic "1" (high) . Referring to Figure 6 along with Figure 5, because the reference voltage V REF (V REF = 1.0 Volt for BTL or 0 Volts for GTL) is lower than VQ UT (before V IN went high, = V τ = 2.1 Volts for BTL or 1.2 Volts for GTL) , the p-channel transistor M6 conducts the current I SOMIS conducted by transistor M15. The current I SOM I S conducted by transistor M6 charges the gate of transistor M10, via output V os1 , linearly upward at a rate of Iso M. s/ g M i, where C gH1 is the total node capacitance at the gate of transistor M10. As shown in the timing diagram of Figure 7, during the initial charging time period t 1nit , both the initial charging stage 110 and the main charging stage 106 charge the gate of transistor M10. This results in the gate voltage of transistor M10 rising very quickly to the threshold voltage VTH. However, the initial charging time period tj njt is shorter than the main charging time period t^ n . After the initial charging time period tj nit is complete, only the main charging stage 106 continues to charge the gate of transistor M10 for the duration of the main charging time period m . Thus, the gate of transistor M10 is charged more slowly for the remainder of the main charging time period t^^ . As the gate-source voltage V GSM10 of transistor MIO continues to rise, transistor MIO conducts more current from drain to source which continues to pull the output voltage V QJJ gradually toward a lower level. Output voltage is pulled lower because the stronger current increases the voltage drop across resistors R τ . The voltage drop across resistors R τ results in the voltage V τ being divided between the resistors R τ and the output node When V QUT decreases down to a point where it is substantially equal to V REF , transistor M6 stops conducting current to the gate of transistor MIO. The voltage at the output node remains at the low signal level, i.e., - 1 Volt for BTL and - .2 to .4 Volts for GTL. If voltage were to fall below V REF for some reason, then transistor M7 would begin to conduct current because it would have a lower gate voltage that transistor M6. Transistor M8 would begin to conduct current which would cause transistor M9 to conduct a substantially equal current because transistors M8 and M9 have equal channel sizes and form a current mirror. Transistor M9 tends to discharge the gate of transistor MIO which raises voltage V ∞1 . When voltage V ∞ -, rises to V REF , transistor M7 stops conducting current. Thus, the main charging stage 106 maintains the output V^ at a low level . As long as the gate of transistor M12 is pulled low by the NAND gate 118, transistors M12 and M15 continue to conduct current to the voltage sensing amplifier 112. This strong charging current is not needed to keep the gate of transistor MIO charged so that it stays in the conducting state. Thus, this current tends to be a waste of power. However, at the end of the main charging time period t ma j n . the output of the NAND gate 118 goes high which pulls the gate of transistor M12 high. Thus, one purpose of the main stage pulse generation circuitry 114 is to shut off transistor M12 and M15 in order to conserve power. The p-channel transistor M22 which has a very small conducting channel continues to provide a small current to the voltage sensing amplifier 112 just to insure that the gate of transistor MIO remains high. The output of the NAND gate 118 goes high at the end of the main charging time period t^,,, because that is when the CMOS inverter finally pulls input 126 of the NAND gate 118 low. As will be explained in more detail below, the temperature compensation circuit 40 can be programmed to provide various voltages to the gate of transistor M17. Thus, the current conducted by transistor Ml7 can be programmed which means that the high to low propagation delay of the CMOS inverter 117, i.e., the main charging time period t ma.n f can be programmed. As will be explained below, the edge rate of the KTL driver 100 is programmed by programming the main charging time period ^,,. When input V 1K is switched back to a low or logic "0" level CMOS signal, i.e., V JN = 0 Volts, the discharging stage 108 receives a high input due to inverter 116. The high input received by the discharging stage 108 pulls the gate of transistor M13 high which holds it in a conducting state. Because transistor M13 is conducting, it provides a discharge path from the gate of transistor M10 to ground. This pulls the gate of transistor M10 low which switches it into a non-conducting state which causes output ^ to go high. Furthermore, the initial charging stage 110 receives a low input which after one logic gate delay causes the gate of transistor M21 to go high so that it is switched off. The main stage pulse generation circuitry 114 receives a low input which immediately pulls input 128 of the NAND gate 118 low so that transistor M12 remains switched off. In summary, the main stage pulse generation circuitry 114 is used to generate a very narrow negative pulse to switch transistor M2 on to provide the main charging current I^ n to the gate of transistor MIO only for the output fall transition period. This eliminates the supply current during transistor MIO's turn-on period in order to conserve power. In the embodiment shown in Figure 5, transistor M12 has a channel width = 400 μm and a channel length = 1 μm, transistor M13 has a channel width = 100 μm and a channel length = 1 μm, transistor M14 has a channel width = 80 μm and a channel length = 1 μm, transistor M15 has a channel width = 180 μm and a channel length = 1 μm, transistor Ml6 has a channel width = 10 μm and a channel length = l μm, transistor M17 has a channel width = 20 μm and a channel length = 1 μm, and transistor Ml8 has a channel width = 20 μm and a channel length = l μm. In the embodiment shown in Figure 6, transistors M6 and M7 have channel widths = 200 μm and channel lengths = 1 μm, and transistors M8 and M9 have channel widths = 5 μm and channel lengths = 2 μm. It should be understood that these are only preferred channel sizes and that they may be varied to suit the needs of a particular application. The programmable CMOS temperature compensation circuit 40, along with the current source transistors M15, M14, M17 and M20, provide a means for adjusting the currents conducted by transistors connected in series with these transistors in order to compensate for temperature and supply voltage V DD variations. Use of the temperature compensation circuit 40 with the KTL driver 100 prevents the problematic variations in rise-time t r and fall time t f due to variations in temperature and voltage supply V DD that plague the bipolar driver 20 shown in Figure 3. Temperature variations affect the performance of FETs. Temperature variations may be in the form of ambient temperature variations, i.e., variations in the temperature of the air surrounding integrated circuits, and/or junction temperature variations, i.e., variations in the temperature of the silicon in an integrated circuit. Ambient temperature variations can cause junction temperature variations, and vice versa. FET performance is affected because temperature variations tend to cause the transconductance g m of the transistors to vary. The amount of current that is conducted by a transistor's current conducting channel, i.e., the current conducted between the drain and source (I DS for n-channel and Igj for p- channel) , is determined in part by g m . In the case of a MOSFET, when temperature increases, transconductance g m decreases which causes currents I DS and Iso to decrease. On the other hand, when temperature decreases, transconductance g m increases which causes I DS and Igj to increase. Thus, it may be said that the current conducted by the channel of a MOSFET has a negative temperature coefficient. Furthermore, I 0 s Iso» and g m vary linearly with temperature variations. Logic gates, such as the KTL driver 100, are typically constructed from several transistors. The speed of a logic gate is determined in part by the I os of the individual transistors, which results in gate speed being proportional to g m . If the g m of each transistor in a logic gate varies with temperature, then the I S of each transistor also varies which causes the speed of the logic gate to vary with temperature. For example, when temperature increases, gate speed decreases, and when temperature decreases, gate speed increases. Variations in gate speed due to temperature variations is an undesirable characteristic because such variations can adversely affect the synchronized timing operations of a digital system. Digital systems can be designed to operate more efficiently if the designer can be assured that gate speed will remain constant. Gate speed can be kept relatively constant if temperature is kept constant. However, because digital systems must operate in a variety of environments, ambient and junction temperature cannot always be controlled. A relatively constant logic gate speed can be maintained during temperature variations if the current conducted by the conducting channels of a logic gate's MOSFET transistors is maintained at relatively constant levels despite the temperature variations. Figure 8 shows the detailed structure of the programmable CMOS temperature compensation circuit 40. The circuit 40 is capable of adjusting the currents I DS and Iso generated by transistors Ml4 , M15, M17, and M20 to compensate for temperature and supply voltage V DD variations. In general, the circuit 40 adjusts the I SD generated by transistors M15 and M20 to compensate for variations in temperature by adjusting transistor's gate voltage in response to the temperature variations. Because transistors M15 and M20 are p-channel MOSFETs, when temperature increases, the circuit 40 adjusts the gate voltage of the transistor, via output V^, so that the source- gate voltage V SGH15 and V SGH2 o increases. By increasing the source-gate voltages, more current I SD will be conducted by the transistors' conducting channel which will compensate for the decrease in current I SD due to the increase in temperature. On the hand, when temperature decreases, the circuit 40 adjusts the gate voltages of transistors M15 and M20 so that the source-gate voltages V SGM15 and V SGH20 decrease. By decreasing the source-gate voltages, less current I SD will be conducted by the transistors' conducting channel which will compensate for the increase in current Iso due to the decrease in temperature. The output V 0N is for adjusting the gate voltage of the n-channel MOSFETs M14 and M17 to compensate for temperature variations. When temperature increases, V^ increases voltage V GSHI .. and V GSM17 which causes more current I DS to be conducted by transistors' conducting channels. The increase in current I DS compensates for the decrease in current I s due to the increase in temperature. On the other hand, when temperature decreases, V^, decreases voltage V GSMU and V GSH17 which causes less current I DS to be conducted by the transistors' conducting channels. The decrease in current I DS compensates for the increase in current I DS due to the decrease in temperature. Voltages V SGM15 , v GSH u. GSH ι 7 , V SGM2 o πiay be adjusted (via VQ P and V 0N ) so that the currents I SOMIS - I DSMK . etc., are maintained at relatively constant levels during temperature variations. Preferably, however, voltages V SGH15 , V GSMU , etc., are adjusted so that the currents I SOMIS/ I DSMH* etc., actually increase during temperature increases and decrease during temperature decreases. In the later scenario, voltages V SGM15 V GSHK/ etc., are simply increased or decreased slightly more than they would be in the first scenario. Increasing or decreasing the currents I SOMIS . I DSHK / etc., according to the later scenario tends to compensate other transistors in the KTL driver 100 that have no direct temperature compensation system, such as the transistors in the voltage sensing amplifier 112 and transistor MIO. For example, increasing the currents I SOH . 5 / IQ SMK / etc., in response to a temperature increase will tend to increase the current conducted by the other uncompensated MOSFETs in the circuit. The temperature compensation circuit 40 includes a positive temperature coefficient current generation stage 42, a programmable current transfer and modification stage 44, an output stage 46, and a start-up stage 48. The current generation stage 42 is an important component of the circuit 40 because it generates a drain-source current I M54 in a MOSFET that has a positive temperature coefficient. In other words, when temperature increases, current I M5 _, increases, and when temperature decreases, current I M5 _, decreases. As discussed above, the current conducted by the channel of a MOSFET normally has a negative temperature coefficient. Because current I M5 _, has a positive temperature coefficient, the current transfer and modification stage 44 and the output stage 46 are able to use current I M54 to generate the outputs VQ P and V^, which compensates for temperature variations . The current generation stage 42 includes an n- channel transistor M54, a monitoring circuit 80, and a current generator 82. In general, the positive temperature coefficient current I M5 _, is generated as follows: The current generator 82 generates and maintains two substantially equal currents I H54 and I M56 that are provided to the drain of transistor M54 and the monitoring circuit 80, respectively. When the strength of one of these currents changes, the current generator 82 changes the strength of the other current so that the two currents I M54 and I M56 remain substantially equal . The monitoring circuit 80 monitors the potential difference between the gate and source of transistor M54 and increases the strength of current I H56 in response to an increase in temperature, and decreases the strength of current IM56 in response to a decrease in temperature. Whether current I M56 is increased or decreased by the monitoring circuit 80, the current generator 82 adjusts current I M5 _, so that the two currents remain substantially equal. Thus, current IM54 increases when temperature increases and decreases when temperature decreases. The monitoring circuit 80 includes an n-channel transistor M56 which has its gate coupled to the gate of transistor M54. A resistor R30 is coupled between a first node that is common with the source of transistor M54 and a second node that is common with the source of transistor M56. In the embodiment shown in Figure 8, the first node is ground. As indicated in Figure 8, transistor M56 has a larger current conducting channel than the current conducting channel of transistor M54. Preferably, the channel of transistor M56 has a width of 160 μm (micro-meters) and a length of 2 μm, and the channel of transistor M54 has a width of 40 μm and a length of 2 μm. As will be discussed below, the smaller channel size of transistor M54 results in V GSH 5 being larger than V GSM56 when the channels of transistors M54 and M56 conduct equal currents. The current generator 82 includes two p-channel transistors M50 and M52 that have their gates coupled together. Transistor M50 has its drain coupled to the drain of transistor M54. Transistor M52 has its drain coupled to its gate and to the drain of transistor M56. The sources of transistors M50 and M52 are coupled to a common node so that the transistors function as a current mirror. In the embodiment shown in Figure 8, the common node is a supply voltage V DD . As indicated in Figure 8, transistors M50 and M52 have current conducting channels that are substantially the same size. Preferably, the channels of transistors M50 and M52 have widths of 80 μm and lengths of 2 μm. Furthermore, current I H5 _, flows from the drain of transistor M50, and current I M56 flows from the drain of transistor M52. During operation, the equal currents I H5i and I H56 generated by the current generator 82 force the currents through transistors M54 and M56 to be equal. Because transistor M54 has a higher current density than transistor M56 (due to transistor M54 having a smaller conducting channel) , the V GS of transistor M54, i.e., V GSM5 _,, is larger than the V GS of transistor M56, i.e., V GS „ 56 . The drain-source current I DS of a MOSFET is equal to: I os = μCo (V GS -V TH ) 2 where, W = conducting channel width; L = conducting channel length; V TH = threshold voltage; T = temperature From this equation it follows that, if current I DS of a MOSFET is held constant, then voltage V GS will increase when temperature increases, and vice versa. Thus, because the current generator 82 maintains both currents I M5 _, and I M56 at a relatively constant level, voltages V GSM5 _, and V GSH56 will both increase when temperature increases and both decrease when temperature decreases. Furthermore, because transistor M54 has a higher current density than transistor M56, voltage V GSH54 will increase or decrease more than voltage V GSM56 . The current through resistor R30 is equal to: L R30 = ( QSMSA - V GS „5 6 ) /R30 Furthermore, ΪR30 = M56 As temperature increases, voltages V GSM54 and V GSM56 both increase with voltage V GSM54 increasing more than voltage V GSM56 . Thus, the difference between voltages GSM5 _, and V GSH56 increases as temperature increases which causes I R30 , and thus, current I„ 56 , to increase. Because transistors M50 and M52 are connected to operate as a current mirror, current I M54 remains substantially equal to current I M56 - Therefore, as current I M56 increases with increasing temperature, current I H5 _, also increases. Conversely, as current I M56 decreases with decreasing temperature, current I H5 _, also decreases. Briefly summarizing, the drain-source current I DS of a MOSFET normally has a negative temperature coefficient, i.e., as temperature increases, current I DS decreases. However, the drain-source current I M5 _, of transistor M54 has a positive temperature coefficient, i.e., as temperature increases, current I H54 increases. This phenomenon that occurs in the current generation stage 42 permits the other components of the circuit 40 to provide an output V 0P to adjust the gate voltage of MOSFETs in order to compensate for variations in temperature. It should also be noted that the positive temperature coefficient current generation stage 42 is normally not affected by variations in voltage supply V DD . Specifically, transistors M50 and M52 operate in the saturation range while conducting currents I M54 and I H56 . If the supply voltage V DD changes, then the source-drain voltages V so of each transistor M50 and M52 also change because the drains of transistors M54 and M56 are very high impedance. However, the currents I H5 _, and I M56 do not change because the transistors M50 and M52 are operating in saturation. Current Iμ^t, , which has a positive temperature coefficient, is not affected by variations in voltage supply V DD . Therefore, the temperature compensation circuit 40 also compensates for variations in supply voltage V 0D . It is envisioned that the n-channel transistors M54 and M56 could be replaced with p-channel transistors, and that the p-channel current generating transistors M50 and M52 could be replaced with n-channel transistors. In this scenario, p- channel transistors M54 and M56 would have different size conducting channels and have their sources coupled to V DD , and n-channel transistors M50 and M52 would have equal size conducting channels and have their sources coupled to ground. An n-channel transistor M57, which is optional, is used to filter out noise that may be present on the ground line. Transistor M57 is capacitor connected between ground and the gates of transistors M54 and M56, i.e., transistor M57 has its source and drain coupled to ground and its gate coupled to the gates of transistors M54 and M56. Noise that is present on the ground line will reach the sources of transistors M54 and M56 via their connections to ground. Capacitor connected transistor M57 will let noise pass to the gates of transistors M54 and M56. Because the noise is present at both the gate and source of transistors M54 and M56, the V GS of each transistor should remain relatively constant. The programmable current transfer and modification stage generates a current I H58 that may be selectively programmed to be any one of several values that are linear proportional to current I H5 _, conducted by the channel of transistor M54. This progra mability allows current I H54 to be "modified" to have a desired value, and, whatever value is selected, current I M58 will have a positive temperature coefficient. Thus, the temperature compensation provided by outputs V^ and V 0N is capable of inducing currents in transistors M4 and M5 that are a fraction or a multiple of current I H5 _,. The current transfer and modification stage 44 includes four n-channel transistors M60, M62, M64, and M66 that each have a different size current conducting channel. Each of the transistors M60, M62, M64, and M66 has its gate coupled to the gate of transistor M54 and its drain coupled to the drain of transistor M58. Furthermore, each of the transistors M60, M62, M64, and M66 forms a current mirror with transistor M54; in other words, the V GS of transistor M54 will be substantially equal to the V GS of each one of the transistors M60, M62, M64, and M66. The current transfer and modification stage 44 also includes four n-channel transistors M70, M72, M74, and M76 which respectively couple the source of each of the transistors M60, M62, M64, and M66 to ground. The purpose of transistors M70, M72, M74, and M76 is to permit current I M58 to be selectively programmed to be conducted by the channel of only one of the transistors M60, M62, M64, and M66 at a time. The gate inputs V^o, V CH72 > ^.,, and V^^, which switch transistors M70, M72, M74, and M76 "on" and "off", respectively, will normally be set such that only one of transistors M60, M62, M64, and M66 conducts current. Transistor M60 conducts current when transistor M70 is "on", transistor M62 conducts current when transistor M72 is "on", and so on. In the embodiment shown in Figure 8, transistor M60 has a channel width = 80 μm and a channel length = 2 μm, transistor M62 has a channel width = 40 μm and a channel length = 2 μm, transistor M64 has a channel width = 27 μm and a channel length = 2 μm, and transistor M66 has a channel width = 20 μm and a channel length = 2 μm. Furthermore, transistor M70 has a channel width = 160 μm and a channel length = 2 μm, transistor M72 has a channel width = 80 μm and a channel length = 2 μm, transistor M74 has a channel width = 56 μm and a channel length = 2 μm, and transistor M76 has a channel width = 40 μm and a channel length = 2 μm. Current I M58 will vary according to the "on/off" status of transistors M70, M72, M74, and M76 because these transistors determine which one of the transistors M60, M62, M64, and M66, which all have different channel sizes, will conduct current I M58 . Current I M s 8 can be made equal to a fraction or a multiple of I N54 by adjusting the channel size of the transistor which conducts I SS - For example, when I M58 is conducted through transistor M60, I H58 will be twice as large as I M5 _, because transistor M60's channel is twice as large as transistor M54 ' s channel; when I H58 is conducted through transistor M62, I M58 will be equal to lust, because transistor M62 ' s channel is the same size as transistor M54 ' s channel. Thus: L M58 By selectively programming the inputs Vcn / n, V GM72 . GM74 , and current I M5 _, is "transferred" to current I M58 and "modified" to be a fraction or multiple of I M5 _,. The inputs V^o, V^, V^ . ,. and V f ^ are controlled by logic circuitry which will be discussed below with reference to Figures 9A and 9B. It should be noted that, because transistors M70, M72, M74, and M76 each have a channel size that is twice as large as their respective transistors M60, M62, M64, and M66, the presence of transistors M70, M72, M74 , and M76 does not significantly affect the current mirror relationship between transistor M54 and transistors M60, M62, M6 , and M66. Using the mirror effect and adjusting the channel size of transistor M62 may seem like a complex way to modify current I H54 because current I H5 _, can also be modified by adjusting the value of resistor R30. However, the temperature coefficient of current I M56 varies with its current level which is a function of the value of R30 and the channel width and length of transistors M54 and M56. Therefore, it is not desirable to adjust current I H5 _, by varying R30 because such variation will also change current I H54 ' s temperature coefficient. The transfer and modification stage 44 also includes an optional capacitor connected p-channel transistor M59 that is coupled between V 0D and the gate of transistor M58 in order to filter out noise that may be present in the V DD line. Specifically, transistor M59's source and drain are coupled to V DD and its gate is coupled to the gate of transistor M58. The output stage 46 is coupled to the gate of transistor M58. The purpose of the output stage 46 is to generate two currents, I^ and !* & , , that are linearly proportional to current I H58 - Current I H82 is used to generate output voltage V^ for application to the gates of n-channel MOSFETs to compensate for variations in temperature and supply voltage, and current 1^ is used to generate output voltage Vop for application to the gates of p-channel MOSFETs to compensate for variations in temperature and supply voltage. A p-channel transistor M80 has its source coupled to V 0D , its gate coupled to the gate of transistor M58, and its drain coupled to the drain of an n-channel transistor M82. Transistor M82 has its gate is coupled to its drain and its source coupled to ground. The channels of transistors M80 and M82 conduct current 1^ 2 , and the gate of transistor M82 provides output V^. Transistor M80 forms a current mirror with transistor M58; thus, the V GS of the two transistors will be substantially equal. Current I M82 will be linear proportional to current I H58 and have a positive temperature coefficient. The value of I H82 will depend on the channel size of transistor M80. In the embodiment shown in Figure 8, transistor M80 has a channel width = 50 μm and a channel length = 1 μm, and transistor M82 has a channel width = 10 μm and a channel length = 1 μm. Because transistor M80 has a larger channel than transistor M58, current I M82 will be larger than current I H58 - It should be understood, however, that by adjusting the channel size of transistor M80, the strength of current I H82 can be adjusted, and by adjusting the channel size of transistor M82 , the output voltage V^, which is equal to V GSM82 , can be adjusted. By connecting output V^ to the gate of n-channel transistor M4 , a current mirror is formed between transistor M82 and transistor M . Thus, the current conducted by the channel of transistor M4 will be linear proportional to current I M82 and have a positive temperature coefficient. A p-channel transistor M84 has its source coupled to V DD , its gate coupled to its drain, and its drain coupled to the drain of an n-channel transistor M86. Transistor M86 has its source coupled to ground and its gate coupled to the gate of transistor M82. The channels of transistors M84 and M86 conduct current I M8 -., and the gate of transistor M84 provides output VQ . Transistor M86 forms a current mirror with transistor M82; thus, the V GS of the two transistors will be substantially equal. Current I H84 will be linear proportional to currents I H82 and I H58 , and have a positive temperature coefficient. The value of I M will depend on the channel size of transistor M86. In the embodiment shown in Figure 8, transistor M86 has a channel width = 26 μm and a channel length = 1 μm, and transistor M84 has a channel width = 80 μm and a channel length = 1 μm. Because transistor M86 has a larger channel than transistor M82 , current I MW will be larger than current I M82 . It should be understood, however, that by adjusting the channel size of transistor M86, the strength of current I Mδ4 can be adjusted, and by adjusting the channel size of transistor M84, the output voltage V 0P , which is equal to V SGM84 , can be adjusted. By connecting output V^ to the gate of p-channel transistor M5, a current mirror is formed between transistor M84 and transistor M5. Thus, the current conducted by the channel of transistor M5 will be linear proportional to current 1^ and have a positive temperature coefficient. Optional capacitor connected p-channel transistor M88 and n-channel transistor M90 filter noise that may be present on the V 0D and ground lines, respectively. Transistor M88 has its source and drain coupled to V DD and its gate coupled to the gate of transistor M84. Transistor M90 has its source and drain coupled to ground and its gate coupled to the gates of transistors M82 and M86. The purpose of the start-up stage 48 is to feed current to transistor M54 when the voltage supply V D0 initially starts from ground level so that transistor M54 ' s conducting channel can begin to conduct current. An n-channel transistor M94 has its drain coupled to V D and its source coupled to the drain of transistor M54. A diode connected p-channel transistor M92 is coupled between V DD and the gate of transistor M94, and two diode connected n-channel transistors M96 and M98 couple the gate of transistor M94 to ground. In the embodiment shown in Figure 8, transistor M94 has a channel width = 5 μm and a channel length = 2 μm, transistor M92 has a channel width = 3 μm and a channel length = 100 μm, and transistors M96 and M98 have channel widths = 60 μm and channel lengths = 2 μm. The channel sizes of transistors M92, M94, M96, and M98 may be varied to suit the needs of a particular application. When voltage supply V DD initially starts from ground level, none of the transistors carry current. When V DD rises above three times the threshold voltage, i.e., 3 V TH , of transistor M94, transistor M94 feeds current into the drain of transistor M54. As the channel of transistor M54 begins to conduct current, a voltage drop is induced across the gate and source of transistor M56. Transistor M56 begins to conduct current which causes transistor M52 to begin to conduct current. Due to the current mirror action, transistor M50 also begins to conduct current which feeds back to transistor M54. This positive feedback continues until the current conducted by transistor M56 reaches its final value. Because the gate of transistor M94 is clamped by diode connected transistors M96 and M98, the rise of the drain potential of transistor M54 eventually shuts off transistor M94. Figure 9A shows the control logic circuitry for programming transistors M70, M72, M74, and M76 so that only one of transistors M60, M62, M64, and M66 conducts- current I M58 at a time. The control logic includes two inverters 60 and 62 that receive at their inputs control signals Cl and C2, respectively. The output of inverter 60 is coupled to the input of an inverter 64 and the input of a buffer 66, and the output of inverter 62 is coupled to the input of an inverter 68 and the input of a buffer 70. Four AND gates 72, 74, 76, and 78 receive the outputs of inverters 64 and 68 and buffers 66 and 70. Specifically, AND gate 72 receives the outputs of inverters 64 and 68, AND gate 74 receives the outputs of inverter 64 and buffer 70, AND gate 76 receives the outputs of buffer 66 and inverter 68, and AND gate 78 receives the outputs of buffers 66 and 70. AND gates 72, 74, 76, and 78 have their outputs V^™, V GM72 GM/ Z,, and VQ H76 coupled to the gates of transistors M70, M72, M74, and M76, respectively. Figure 9B shows a truth table for the logic circuit of Figure 9A. For each combination of control signals Cl and C2, only one of the outputs VQ H70 . V GM72 - VGH74, and will be logic "1" at a time. The inputs Cl and C2 of the temperature compensation circuit 40 are used to program the output edge rate of the KTL driver 100 shown in Figure 5. The fastest edge rate is achieved by applying logic "1" to Cl and C2, and slowest edge rate is achieved by applying logic "0" to Cl and C2 (See Figures 9A and 9B) . As mentioned above, the edge rate of the KTL driver 100 is programmable because the main charging time period t^., is programmable. In order to decrease the main charging time period t maln of the KTL driver 100, the current conducted by transistor M17 must be increased in order to speed up the CMOS inverter 117. The current conducted by transistor M17 is increased by setting inputs Cl and C2 of the temperature compensation circuit 40 such that current I H5 _, is amplified which in turn amplifies output V 0N . If VON is increased, then the current conducted by transistor M17 increases which speeds up the CMOS inverter 117. Furthermore, VQ P is decreased which increases the current conducted by transistor M15. By increasing the current conducted by transistor M17, the high to low propagation delay of the CMOS inverter 117 is decreased which decreases the main charging time period t^,-,,. However, a stronger main charging current I ma is conducted by transistor M15. Therefore, the gate of transistor MIO is charged the full amount in a shorter time period. This results in output VQ U T going low faster which decreases fall time t . Thus, the edge rate of the KTL driver 100 is speeded up by decreasing the main charging time period t^ r ,. It should be understood that the programmability feature of the current transfer and modification stage 44 that is implemented by the use of the several transistors M60, M62, M64, M66, M70, M72, M74, and M76, as well as the control logic circuitry shown in Figure 9A, is optional. Current I M5 _, may be modified, i.e., amplified, by simply substituting for transistors M60, M62, M64, and M66 various transistors that have various different channel sizes . Therefore, the temperature compensation circuit serves the dual purposes of: 1) compensating the currents conducted by transistors M14, M15, M17, and M20 for variations in temperature, voltage supply V D0 , and process; and, 2) providing a means of programming the output edge rate of the KTL driver 100. Because of the temperature compensation circuit 40, the propagation delay of the KTL driver 100 is relatively insensitive to variations in temperature and voltage supply V DD . This insensitivity to variations in temperature and voltage supply V DD greatly improves the KTL driver 100 over the prior art drivers 20 and 30 discussed above. Figure 10 shows a detailed schematic of the KTL driver 100, and Figure 11 shows a detailed schematic of the main stage pulse generation circuitry 114. It should be well understood that the specific channel sizes of the MOSFETs shown in Figures 5 through 11 and recited herein may be adjusted to achieve various different amplifications of generated currents and voltages without deviating from the spirit of the present invention. Although the embodiment of the present invention shown in Figures 5 through 11 utilizes MOSFETs, it is envisioned that the present invention may also be used in connection with other technologies, such as junction FETs (JFETs) or Gallium Arsenide (GaAs) . It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is intended that the following claims define the scope of the invention and that structures and methods within the scope of these claims and their equivalents be covered thereby.

Claims: Claims What is claimed is: 1. A driver for providing binary signals from a data system to a transmission line, the driver comprising: a first field-effect transistor (FET) coupled between an output node and ground for conducting current from the output node to ground, the output node being connectable to the transmission line; a main charging stage for providing a main charging current to the gate of the first FET for a period of time not to exceed a main charging time period; a discharging stage for providing a discharge current from the gate of the first FET to ground; and programming circuitry for programming the length of the main charging time period. 2. A driver according to claim 1, wherein the main charging stage comprises: a second FET for conducting the main charging current; and main stage pulse generation circuitry for providing a main pulse to the gate of the second FET, the main pulse having a length approximately equal to the main charging time period. 3. A driver according to claim 2, wherein the main stage pulse generation circuitry comprises: a first CMOS inverter having an input, an output, and a propagation delay that can be adjusted by the programming circuitry, the first CMOS inverter including a third p-channel transistor connected in series with a fourth n- channel transistor, the gates of the third and fourth transistors being coupled together to form the input for the first CMOS inverter. 4. A driver according to claim 3, wherein the main stage pulse generation circuitry further comprises: a NAND gate having an output coupled to the gate of the second FET, an input coupled to the output of the CMOS inverter, and another input coupled to a driver input node, the driver input node being connectable to the data system. 5. A driver according to claim 3, wherein the programming circuitry comprises: a fifth FET connected in series with the third and fourth transistors of the CMOS inverter; and a current generation circuit for controlling the gate voltage of the fifth FET. 6. A driver according to claim 5, wherein the programming circuitry further comprises: a programmable current transfer and modification stage for selectively programming the gate voltage of the fifth FET. 7. A driver according to claim 5, wherein the current generation stage has a positive temperature coefficient and comprises: a sixth field-effect transistor (FET) ; a seventh FET having a larger current conducting channel than the current conducting channel of the sixth FET, the seventh FET having its gate coupled to the gate of the sixth FET; a first resistor coupled between a first node that is common with the source of the sixth FET and a second node that is common with the source of the seventh FET; and current generating circuitry for generating and maintaining substantially equal drain currents in the sixth and seventh FETs . 8. A driver for providing binary signals from a data system to a transmission line, the driver comprising: a first field-effect transistor (FET) coupled between an output node and ground for conducting current from the output node to ground, the output node being connectable to the transmission line; a main charging stage for providing a main charging current to the gate of the first FET for a period of time not to exceed a main charging time period; a discharging stage for providing a discharge current from the gate of the first FET to ground; and a temperature compensation circuit coupled to the main charging stage and the discharging stage for adjusting the level of the main charging current and the level of the discharging current to compensate for variations in temperature and for controlling the length of the main charging time period. 9. A driver according to claim 8, wherein the main charging stage comprises : a second FET for conducting the main charging current; and main stage pulse generation circuitry for providing a main pulse to the gate of the second FET, the main pulse having a length approximately equal to the main charging time period. 10. A driver according to claim 9, wherein the main stage pulse generation circuitry comprises: a first CMOS inverter having an input, an output, and a propagation delay that can be adjusted by the temperature compensation circuit, the first CMOS inverter including a third p-channel transistor connected in series with a fourth n-channel transistor, the gates of the third and fourth transistors being coupled together to form the input for the first CMOS inverter; and a NAND gate having an output coupled to the gate of the second FET, an input coupled to the output of the CMOS inverter, and another input coupled to a driver input node, the driver input node being connectable to the data system. 11. A driver according to claim 10, wherein the temperature compensation circuit comprises: a fifth FET connected in series with the third and fourth transistors of the CMOS inverter; and a positive temperature coefficient current generation circuit for adjusting the gate voltage of the fifth FET to control the length of the main charging time period and to compensate for variations in temperature. 12. A driver according to claim 11, wherein the positive temperature coefficient current generation circuit comprises: a sixth field-effect transistor (FET) ; a seventh FET having a larger current conducting channel than the current conducting channel of the sixth FET, the seventh FET having its gate coupled to the gate of the sixth FET; a first resistor coupled between a first node that is common with the source of the sixth FET and a second node that is common with the source of the seventh FET; and current generating circuitry for generating and maintaining substantially equal drain currents in the sixth and seventh FETs . 13. A driver according to claim 11, wherein the temperature compensation circuit further comprises: a programmable current transfer and modification stage for selectively programming the gate voltage of the fifth FET to control the length of the main charging time period. 14. A driver for providing binary signals from a data system to a transmission line, the driver comprisin : a first field-effect transistor (FET) coupled between an output node and ground for conducting current from the output node to ground, the output node being connectable to the transmission line; an initial charging stage for providing an initial charging current to the gate of the first FET for a period of time not to exceed an initial charging time period, the initial ■ charging time period having a length approximately equal to a period of time necessary to increase the gate voltage of the first FET from ground to the threshold voltage of the first FET; a main charging stage for providing a main charging current to the gate of the first FET; and a discharging stage for providing a discharging current from the gate of the first FET to ground. 15. A driver according to claim 14, wherein the initial charging stage comprises: eighth and ninth FETs connected in series between a first voltage supply and the gate of the first FET; and initial stage switching circuitry for switching the eighth and ninth FETs into simultaneous conducting states for the initial charging time period. 16. A driver according to claim 15, wherein the initial charging time period is approximately equal to one logic gate delay time period. 17. A driver according to claim 15, wherein the initial stage switching circuitry comprises: second and third inverters connected in series between a driver input node and the gate of the eighth FET, the driver input node being connectable to the data system; and a fourth inverter connected between the driver input node and the gate of the ninth FET. 18. A driver according to claim 15, further comprising: a temperature compensation circuit coupled to the initial charging stage, the main charging stage, and the discharging stage for adjusting the level of the initial charging current, the main charging current and the discharging current to compensate for variations in temperature. 19. A driver according to claim 18, wherein the temperature compensation circuit comprises: a tenth FET connected in series with the eighth and ninth FETs of the initial charging stage; and a positive temperature coefficient current generation circuit for adjusting the gate voltage of the tenth FET to compensate for variations in temperature. 20. A driver according to claim 19, wherein the positive temperature coefficient current generation circuit comprises: a sixth field-effect transistor (FET) ; a seventh FET having a larger current conducting channel than the current conducting channel of the sixth FET, the seventh FET having its gate coupled to the gate of the sixth FET; a first resistor coupled between a first node that is common with the source of the sixth FET and a second node that is common with the source of the seventh FET; and current generating circuitry for generating and maintaining substantially equal drain currents in the sixth and seventh FETs. 21. A driver for providing binary signals from a data system to a transmission line, the driver comprising: a first field-effect transistor (FET) coupled between an output node and ground for conducting current from the output node to ground, the output node being connectable to the transmission line; an initial charging stage for providing an initial charging current to the gate of the first FET for a period of time not to exceed an initial charging time period, the initial charging time period having a length approximately equal to a period of time necessary to increase the gate voltage of the first FET from ground to the threshold voltage of the first FET; a main charging stage for providing a main charging current to the gate of the first FET for a period of time not to exceed a main charging time period; a discharging stage for providing a discharging current from the gate of the first FET to ground; and a temperature compensation circuit coupled to the initial charging stage, the main charging stage, and the discharging stage for adjusting the level of the initial charging current, the main charging current, and the discharging current to compensate for variations in temperature and for controlling the length of the main charging time period. 22. A driver according to claim 21, wherein the main charging stage comprises: a second FET for conducting the main charging current; and main stage pulse generation circuitry for providing a main pulse to the gate of the second FET, the main pulse having a length approximately equal to the main charging time period. 23. A driver according to claim 22, wherein the temperature compensation circuit comprises: a programmable current transfer and modification stage for selectively programming the length of the main pulse to control the length of the main charging time period. 24. A driver according to claim 21, wherein the initial charging stage comprises: eighth, ninth, and tenth FETs connected in series between a first voltage supply and the gate of the first FET, the gate voltage of the tenth FET being controlled by the temperature compensation circuit; and initial stage switching circuitry for switching the eighth and ninth FETs into simultaneous conducting states for the initial charging time period.

Inventors: KUO JAMES R, KUO, JAMES, R.
Applicants: NAT SEMICONDUCTOR CORP, NATIONAL SEMICONDUCTOR CORPORATION
Application year: 1994
Main classification: G06F13
IPC codes: G06F13