Escalator code-based DAC and delay-locked loop apparatus and corresponding methods

Abstract
A digital to analog converter (DAC) can comprise: an escalator code generator; and an escalator-code-to-analog converter (ECAC). The generator can (1) represent base 10 numbers with a mixed code having a coin code portion and a cash code portion, which will eliminate multi-bit changes in the cash code upon changes in count direction; and (2) represent a count in a first direction as the sum of the coin code and the cash code. The generator can alter the coin code when the count changes direction while the cash code remains the same until a count capacity of the coin code is exceeded, at which point the cash code can be altered. Cycling between adjacent base 10 numbers is absorbed by the coin code while keeping the cash code the same, which reduces noise introduced into an output of the ECAC due to such cycling.
Description


FIELD OF THE INVENTION

[0001] The invention is directed toward the field of digital-to-analog converters (DACS) and delay-locked-loops (DLLs), and more particularly to DACs and DLLs based upon an escalator code.



BACKGROUND OF THE INVENTION

[0002] Recent integrated circuits attached to a printed circuit board (PCB) e.g., synchronous DRAM (SDRAM), RAMBUS DRAM, etc. include a delay-locked-loop (DLL) circuit. The DLL circuit maintains a predetermined phase relationship between an internal clock and an external reference or system clock, e.g., supplied by a memory controller.


[0003] In its simplest form, a DLL has a programmable delay line and some control logic. The delay line produces a delayed version of the reference clock signal. The delayed clock signal is provided to the other internal circuitry of the integrated circuit, e.g., the DRAM integrated circuit (IC), of which the DLL is a part. In addition to being provided to the other internal circuitry of the IC, the internal clock signal is also fed back to delay control logic of the DLL. The delay control logic compares the clock signal which has been fed back against the reference clock signal in order to adjust an amount of delay to be caused by the programmable delay line.


[0004]
FIG. 1A depicts a DLL according to the Background Art. The DLL 100 receives a reference clock, REFCLK, which is provided to a variable delay line 110. The delayed clock signal, CLKOUT, is output to the remaining circuitry of the IC (not shown). The output clock signal CLKOUT is also fed back via replica delay unit 140 as signal FBCLK to a phase comparator 130, which also receives the reference clock REFCLK. The phase comparator 130 provides an up/down-count signal to a delay control circuit (DCC) 120. The DCC 120 includes a counter 122 which provides an N-bit output to an N-bit digital-to-analog converter (DAC). The DAC 121, and therefore the DCC 120, outputs a delay adjustment signal DLYADJ to the variable delay line 110.


[0005] The function of the DLL 100 is to achieve a predetermined amount of phase difference between the reference clock signal REFCLK and the output clock signal CLKOUT. For the sake of simplicity, the operation of the DLL 100 will be explained under the assumption that the amount of predetermined delay is 360° or one cycle. The operation of the DLL 100 will now be discussed in terms of the waveforms of FIG. 1B. In FIG. 1B, a waveform of the reference clock REFCLK is plotted. Below the REFCLK waveform, the feedback clock FBCLK waveform is plotted. As expected, the feedback clock FBCLK is delayed in phase, i.e., shifted to the right, relative to the reference clock REFCLK Waveform. Recalling that the predetermined phase is assumed to be one cycle, arrows 160-168 have been provided to emphasize the delay between the rising edges of the feedback clock FBCLK waveform and the rising edges of the next respective cycle in the reference clock REFCLK waveform. Inspection of FIG. 1B reveals that the effect of the DLL 100 is to shorten the delays indicated by the arrows 160-168.


[0006] The up-count waveform and down-count waveform of the phase comparator 130 are also depicted in FIG. 1B. Each of the arrows 160-168 indicates that additional delay is needed, albeit in lesser amounts for waveform 160 through waveform 168. Hence, the durations of the square pulses 170-178 in the up-count waveform diminish from pulse 170 through pulse 178.


[0007] The phase magnitude between the feedback clock signal FBCLK in the reference clock signal REFCLK is also plotted in FIG. 1B. Inspection of the phase (PH) waveform reveals that the magnitude of the phase difference decreases with the progression through the pulses 170-178, as indicated by upward arrows 180-188. Similarly, the delay adjust DLYADJ output by the N-bit DAC 121 increases inversely proportionally to the decrease in the phase difference. Similarly, the delay waveform, namely the waveform describing how close to a full cycle is the delay, decreases from left to right in correspondence to the decrease exhibited by the arrows 180-188 of the phase PH waveform.


[0008] The DAC 121 can be implemented in a number of ways. As simple implementation is to assign binary weighting to the individual transistors within the DAC 120. FIG. 3 is a schematic block diagram of a binary-weighted DAC 300 according to the Background Art. The DAC 300 includes four 1-bit converters 302, 306, 310 and 314, which reflects an assumption of a 4-bit weighting system (the number four is chosen for simplicity; typical DACs involve more bits). The 1-bit converter 302 includes an output transistor 322 having a channel whose width-to-length (W/L) ratio is such that it produces a unit current of magnitude, i. The 1-bit converter 306 has an output transistor 324 whose channel has a width-to-length ratio of 2W/L that can sink a current of magnitude to 2i, i.e., twice that of the converter 302. The 1-bit converter 310 has an output transistor 326 whose channel width-to-length ratio is 4W/L, which can sink a current of magnitude 4i. And the 1-bit converter 314 has an output transistor 328 whose channel width-to-length ratio is 8W/L, which can sink a current of magnitude 8i.


[0009] A binary system, like any positional number system, represents a number based upon the combination of individual bits, where each bit represents a sub-value based upon its relative position and whether it is in the zero state or the one state. A 4-bit binary number has bits b3 b2 b1 b0, where b0=20=1, b1=21=2, b2=22=4 and b3=23=8, i.e., b3=8b1, b2=4b1 and b2=2b1. Inspection of the 1-bit converters 314, 310, 306 and 302 reveals that their respective currents reflect a binary weighting for a 4-bit binary number.


[0010] The DAC 300 further includes a buffer 320. One output 318 of the buffer 320 is connected to the inputs 304, 308, 312 and 316 of the 1-bit converters 302, 306, 310 and 314, respectively. Based upon the control signals applied to each of the 1-bit converters, namely b0 and b0b for converter 302, b1 and b1b for converter 306, b2 and b2b for converter 310, and b3 and b3b for converter 314, each of the 1-bit converters is selectively turned on or off. When turned on, each 1-bit converter sinks its respective current. If all of the transistors are turned on, they collectively draw the sum of their individual currents out of the buffer 320 on the output line 318. Similarly, the second output line 321 of the buffer 320 outputs the same amount of current as is drawn out of the output line 318. The current on the second output line 321 represents the delay adjust signal DLYADJ.


[0011]
FIG. 2A is a depiction of an example amount of delay between the clock output CLKOUT of the DLL 100 and the reference clock REFCLK. Inspection of the waveform DLY reveals that it is a typical damping curve that settles down to a predetermined amount of delay 208. It is to be noted that the output clock CLKOUT is an analog signal that can vary continuously. In contrast, the delay control circuit (DCC) 120 is a digital device that translates the up/down control signal from the phase comparator 130 into a binary-weighted word. Due to a variety of reasons, e.g., thermal fluctuation, system voltage fluctuations, noise, etc., there will be some oscillation or jitter 210 in the delay waveform DLY even after the DLL has achieved a locked state, i.e., after the waveform DLY settles at the predetermined amount of delay 208. This jitter 210 falls within a range of values 220. The locked status of the DLL 100 is shown as being achieved after 4 μsec.


[0012]
FIG. 2B is a depiction of 6-bit binary words and their decimal equivalent. To simplify the explanation, it is assumed that the jitter 210 corresponds to the count values 3110 and 3210 output by the counter 122. In other words, it is assumed that the count values corresponding to the jitter 210 are 3110 and 3210. Inspection of FIG. 2B reveals that the transition from 3110 to 3210 involves a state change in each of the bits b0-b5. As the count value cycles (or jitters) between 3110 and 3210, each of the bits b0-b5 repeatedly change back and forth between a state of zero and a state of one.


[0013] When any of the bits in the count output by the counter 122 changes from one to zero or from zero to one, current either stops flowing or begins to flow through the corresponding transistor(s) of the respective 1-bit converter. If only the transistor corresponding to the least significant bit turns on or off, the difference in current can be negligible. But if all of the transistors change their conduction station, as in the transition from 3110 to 3210 or 3210 back to 3110 show in FIG. 2B, then large amounts of current are involved.


[0014]
FIG. 2C depicts current amounts for a theoretical situation in which all of the transistors turn on or off, respectively, i.e., a multi-bit transition. There, the x-axis corresponds to time and the y-axis corresponds to current. Line 240 depicts the total current that switches off at the multi-bit transition time 246 while line 242 plots the total current that switches on at the transition time or point 246. Line 244 plots the summation of lines 240 and 242. In this theoretical condition, the amount of current turning off substantially equals the amount of current turning on, hence there is little to no change in the total amount of current involved.


[0015]
FIG. 2D plots realistic values for the current amounts associated with the multi-bit transition point 246. Line 246 corresponds to line 240 in that it depicts the total amount of current being switched off at the multi-bit transition point 246. Line 250 corresponds to line 242 in that it plots the total amount of current being turned on at the multi-bit transition point 246. Inspection of lines 248 and 250 reveal that their transitions are very gradual in comparison to the abrupt transitions of theoretical lines 240 and 242. Line 252 corresponds to line 244 in that it plots the summation of the current represented by lines 248 and 250. Inspection of line 252 reveals that there is a significant decrease in the total current associated with the multi-bit transition point 246. This is a sharp contrast to the essentially flat line 244 of the corresponding theoretical situation.


[0016] The large change in total current passing through the DAC 121 during a multi-bit transition, as exhibited by the line 252 of FIG. 2D, generates a great deal of noise in the integrated circuit. This is a problem. When the DAC 121 is forced to cycle repeatedly through a multi-bit transition, e.g., from 3110 to 3210 and 3210 back to 3110, the problem is significantly worsened.


[0017] The Background Art attempted to deal with this problem by basing the digital-to-analog converter (DAC) 121 on a different code rather than the simple binary-weighted code. In particular, a hybrid of a binary-weighted code and a thermometer code was adopted. In the hybrid code, a number is represented in part by a binary-weighted code and in part by a thermometer code. In a thermometer code, each bit represents a predetermined decimal value.


[0018]
FIG. 4A is a table of an example hybrid thermometer/binary code. There the least significant bits correspond to the binary code portion, namely bits c0 and c1. The more significant bits are represented by the thermometer code portion, namely bits b0, b1, b2 and b4. The hybrid code of FIG. 4A assumes, for simplicity, a situation in which it is only desired to represent a maximum of 1910.


[0019] Inspection of the rows in FIG. 4A corresponding to the numbers 010-310 reveals that the thermometer code has all zero values while the binary code portion exhibits a typical binary progression. At the number 410, the binary code portion resets to zero while the b0 bit of the thermometer code takes on a value of one while bits b1-b3 remain at zero. Inspection of the progression from 410-710 reveals that the binary code portion increments again through the normal binary progression while the thermometer code portion remains the same. At the number 810, however, the binary code portion resets to zero while the b1 bit of the thermometer code takes a value of one. Inspection of the progression from 810 through 1110 again reveals that the binary code portion undergoes the normal binary progression while the thermometer code portion remains the same. At the number 1210, the binary code portion resets while the b2 bit of the thermometer code portion changes to a value of one.


[0020]
FIG. 4B is a schematic block diagram of a circuit for generating the hybrid code of FIG. 4A, according to the Background Art. Up/down count signals (from the comparator 130) are received by a 4-bit counter 410. The upper two most significant bits c3, c2 are provided to a thermal decoder 420, which outputs a 4-bit thermometer code b3b2b1b0.


[0021]
FIG. 4C is a schematic block diagram for a DAC 430 (according to the Background Art) based upon the hybrid code of FIGS. 4A-4B. The DAC 430 includes six 1-bit converters 4311, 4312, 4313, 4314, 4321 and 4322. The 1-bit converter 4321 has a W/L ratio that can be considered to produce a unit current having a magnitude known as i. Consistent with a binary weighting, the 1-bit converter has a ratio of 2W/L for a current capacity of 2i. The four 1-bit converters 4311-4314 each have the same ratio, namely 4W/L for a current capacity of 4i. The converters 4321 and 4322 receive the outputs c0-c1, respectively. The converters 4311-4314 receive the outputs b0-b2, respectively.


[0022] In terms of multi-bit transitions, the hybrid code of FIG. 4A exhibits a worst-case scenario at the transitions between 310 and 410, 710 and 810, 1110 and 1210, and 1510 and 1610. But it is to be noticed that only 3-bits change during those transitions, namely the binary code bits co and c1 and only one of the thermometer code bits. Consequently, the DAC based upon the hybrid code exhibits a much smaller change in total current during a multi-bit transition than does the purely binary-coded type of DAC. This is an advantage conferred by the thermometer code aspect of the hybrid code.


[0023] But the thermometer code aspect also confers some disadvantages. In order to keep the binary code portion to a relatively small number of bits, each bit of the thermometer code can be represent a relatively small decimal equivalent. In the example of FIG. 4A, each bit of the thermometer code portion represents the number 410, which corresponds to 22. Consequently, in the hybrid code of FIG. 4A, the binary code portion is kept to a mere two binary bits c0 and c1. If the binary code portion were increased to 3-bits so that the most significant bit in the binary code portion had a value representing 22=410, then each bit in the thermometer code would represent the next higher power of 2, namely 23=810.


[0024] This relationship is important because the number of thermometer code bits needed to represent a particular value increases as the decimal equivalent represented by each thermometer bit decreases. In the example of FIG. 4A, the hybrid code could represent only a maximum of 1910. This is a small number and yet it requires a 4-bit thermometer code. As such, a problem with using the thermometer code is that it typically requires a great many bits to represent a reasonably large number. Consequently, the corresponding transistor circuitry consumes a great deal of surface area on an integrated circuit and its wiring significantly complicates the architecture of the DAC of which it is a part.



SUMMARY OF THE INVENTION

[0025] Among others, an embodiment of the invention provides a digital to analog converter (DAC) (and corresponding method) comprising: an escalator code generator, responsive to an externally-provided count trigger signal, to generate an escalator code; and an escalator-code-to-analog converter (ECAC) to convert said escalator code from said generator; wherein said generator is arranged to (1) represent base 10 numbers with a mixed code having a coin code portion and a cash code portion so as to eliminate multi-bit changes in the cash code portion upon changes in count direction, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code; and (2) represent a count in a first direction as a summation of the base 10 number represented by said coin code and the base 10 number represented by said cash code; wherein said generator is operable to alter said coin code when said count changes direction while said cash code remains the same until a count capacity of said coin code is exceeded, said cash code being alterable after said count capacity of said coin code is exceeded; wherein cycling between adjacent base 10 numbers is manifested in said coin code portion while keeping said cash code portion the same; and wherein noise introduced into an output of said ECAC due to such cycling is reduced because said cycling is manifested in said coin code portion.


[0026] An escalator code generator according to an embodiment of the invention can include a coin code counter and a cash code counter. The coin code counter is for counting a value of a coin code, and can operate in response to count-up and count-down signals UP and DN outputted from a phase detector. The cash code counter can operate in response to output signals S1 and S0 from the coin code counter and the count-up and count-down signals UP and DN from the phase detector. That is, the coin counter receives count pulses from the phase detector to output a 2-bit coin code S[1:0]. A coin counter has any one of 00, 01, and 11 states based on count pulses. When the coin counter reaches the 11 state, i.e., full state, the count-up signal UP cannot increase the value in the coin counter but can increase the value in the cash counter.


[0027] For example, after the coin counter reaches the 00 state, i.e., empty state, the count-down signal DN cannot decrease the value in the coin counter but can decrease the value in the cash counter. The cash counter receives a count pulse from the phase detector and a coin code S[1:0] from the coin counter to output a cash code B[7:0]. When a coin code is in a full state (and cannot be increased), then a state of the cash counter is increased to the next state based on the count-up signal UP. But when the coin code is in an empty state, the state of the cash counter is maintained while a state of the coin counter is increased in response to a count pulse. The coin counter is sufficiently large that bang-bang jitter (or cycling or ringing) occurring during a synchronization state of a delay locked loop (DLL) will not cause a change in the value of the cash counter. In other words, the repetition of the count-up and count-down signals UP and DN, caused by the bang-bang jitter, can vary the value represented by the coin code and but will not disturb the value in the cash counter. For example, if a magnitude of the bang-bang jitter is within a second weight of the cash counter, a magnitude of the coin counter can be equal to a second bit of the cash counter 224.


[0028] Additional features and advantages of the invention will be more fully apparent from the following detailed description of example embodiments, the appended claims and the accompanying drawings.







BRIEF DESCRIPTION OF THE DRAWINGS

[0029] The accompanying drawings are: intended to depict example embodiments of the invention and should not be interpreted to limit the scope thereof; and not to be considered as drawn to scale unless explicitly noted.


[0030]
FIG. 1A is a schematic block diagram of a delay-locked loop (DLL) according to the Background Art


[0031]
FIG. 1B is a set of waveforms depicting the operation of the DLL of FIG. 1 according to the Background Art.


[0032]
FIG. 2A is a plot depicting the progression toward and settling into of a locked state by the DLL of FIG. 1A according to the Background Art.


[0033]
FIG. 2B is a table depicting an example set of binary code values corresponding to the locked condition depicted in FIG. 2A according to the Background Art.


[0034]
FIG. 2C plots current for the theoretical circumstance in which all output transistors of a binary-coded DAC according to the Background Art turn on or off.


[0035]
FIG. 2D is a plot of realistic currents according to the Background Art corresponding to theoretical currents of FIG. 2C.


[0036]
FIG. 3 is a transistor level diagram of a binary-weighted DAC 300 according to the Background Art.


[0037]
FIG. 4A is a table listing a bit values for a progression from 100 through 1910 for the hybrid code corresponding to FIG. 4A.


[0038]
FIG. 4B is a schematic block diagram of a hybrid thermometer/binary code generator according to the Background Art that corresponds to the hybrid code of FIG. 4A.


[0039]
FIG. 4C is a schematic block diagram of a hybrid thermometer/binary code-based DAC according to the Background Art that corresponds to FIG. 4A.


[0040]
FIG. 5 is a schematic block diagram of a delay-locked loop (DLL) according to an embodiment of the invention.


[0041] FIGS. 6A-6B are tables illustrating an example of an escalator code according to an embodiment of the invention.


[0042]
FIG. 6C depicts another example of an escalator code according to an embodiment of the invention.


[0043]
FIG. 7A is a schematic block diagram of an escalator code generator according to an embodiment of the invention.


[0044]
FIG. 7B is a state diagram corresponding to the coin counter of FIG. 7A.


[0045]
FIG. 7C is a state diagram corresponding to the cash counter of FIG. 7A.


[0046]
FIG. 7D is a table illustrating changes in bit values for an example escalator code according to an embodiment of the invention.


[0047]
FIG. 7E is a table illustrating the cycling of FIG. 7D in more detail.


[0048]
FIG. 8 is a flow chart of operations according to an embodiment of the invention.


[0049]
FIG. 9 is a state diagram indicating changes in bit values for an example escalator code according to an embodiment of the invention.


[0050]
FIG. 10 is a circuit diagram example of a DAC according to an embodiment of the invention.


[0051] FIGS. 11A-11B are a circuit diagram example of an escalator code generator according to an embodiment of the invention.


[0052]
FIG. 12 is a circuit diagram example of a coin counter according to an embodiment of the invention.


[0053]
FIG. 13 is a circuit diagram example of even-numbered logic units found in FIGS. 11A-11B.


[0054]
FIG. 14 is a circuit diagram example of a flip-flop unit of FIG. 13.


[0055]
FIG. 15 is a circuit diagram example of odd-numbered logic units of FIGS. 11A-11B.


[0056]
FIG. 16 is a circuit diagram example of a flip-flop unit of FIG. 16.


[0057]
FIG. 17 is a schematic block diagram of a memory device according to an embodiment of the invention.


[0058]
FIG. 18 is a schematic block diagram of a memory system according to an embodiment of the invention.







DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

[0059] Operations of a counter device, according to an embodiment of the invention include: representing base N numbers with a mixed code having a non-N-based coin code portion and a non-N-based cash code portion, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code, said coin code portion of said mixed code representing a range of base N numbers, the range having an upper boundary and a lower boundary; determining, if a trigger signal is for upcounting, whether a previously attained value of said coin code portion equals said upper boundary value; upcounting, if it was determined that said previously attained value of said coin code portion is less than said upcount boundary value, using said coin code portion; upcounting, if it was determined that said previously attained value of said coin code portion equals said upper boundary value, using said cash code portion; determining, if said trigger signal is for downcounting, whether said previously attained value of said coin code portion equals said lower boundary value; downcounting, if it was determined that said previously attained value of said coin code portion is greater than said second boundary value, using said coin code portion; and downcounting, if it was determined that said previously attained value of said coin code portion equals said lower boundary value, using said cash code portion; wherein a change in counting direction is manifested as an alteration in the value of said coin code portion while the value of said cash code portion is kept the same.


[0060] For example, the variable N can be 10. Such a coin code can be, e.g., a thermometer code or a binary code and such a cash code can be, e.g., a binary code.


[0061] Operations of a counter device, according to an embodiment of the invention, include: representing base N numbers with a mixed code having a non-N-based coin code portion and a non-N-based cash code portion, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code; counting by representing the count as a summation of the base N number represented by said coin code and the base N number represented by said cash code; changing directions of the count by altering said coin code until a counting capacity of said coin code is exceeded, said cash code being alterable after said counting capacity of said coin code is exceeded; and wherein cycling between adjacent base N numbers is manifested in the value of said coin code portion while keeping the value of said cash code portion the same.


[0062] Operations of a counter device, according to an embodiment of the invention, include: representing base N numbers with a mixed code having a non-N-based coin code portion and a non-N-based cash code portion, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code; wherein a count is formed by summing the base N number represented by said coin code and the base N number represented by said cash code; attempting to count, in response to a trigger signal, using said coin code; upcounting with said cash code only when said coin code reaches an upper boundary; and downcounting with said cash code only when said coin code reaches a lower limit; wherein cycling between adjacent base numbers is manifested in said coin code portion while keeping said cash code portion the same.


[0063]
FIG. 5 is a schematic block diagram of a delay-locked loop (DLL) circuit 500 according to an embodiment of the invention. The circuit 500 includes a well known variable delay line 510 having delay units 511, 512, 513 and 514. Greater or fewer delay units can be included; for simplicity, only four have been presented here. The circuit 500 further includes a phase detector/comparator 540 and a delay control circuit 516. Included within the delay control circuit 516 are an escalator code generator 530 and an escalator-coded digital-to-analog converter (DAC) 520.


[0064] The first delay unit 511 and the phase comparator 540 each receive the system clock signal CLKSRC. In a known manner, the delay units 511-514 are cascaded together with their outputs connected together to form the output clock signal CLKOUT. The output clock signal is fed back to the phase comparator 540 as feedback signal FBCLK. The comparator 540 outputs an up-count signal or a down-count signal depending upon whether the phase of the output clock CLKOUT is a ahead or behind the reference clock CLKSRC. The escalator code generator 530 counts, i.e., generates escalator codes, in response to the up/down signals from the phase comparator 540. As will be discussed in more detail below, the escalator code has a coin code portion, S[i:0], and a cash code portion, B[i:0], that are provided to the escalator-coded DAC 520. The DAC 520 provides a delay adjust signal DLYADJ in parallel to each of the delay units 511-514.


[0065]
FIG. 6A has tables listing an example of an escalator code according to an embodiment of the invention. One of the tables (610) lists the cash code portion, which for the sake of a simple example takes the form of a 10-bit binary-weighted code. Example states of the respective bit positions have been indicated. The other table (620) lists an example 2-bit coin code as well as example states of the respective bit positions. The 2-bit coin code takes the form of a thermometer code. The escalator code of the FIG. 6A represents 33610 that is expressed as a combination of the cash code 33410 and the coin code 210. The escalator code can express a decimal value in multiple ways according to the combination of the cash code and the coin code.


[0066]
FIG. 6C shows an example of an escalator code that can express a decimal value in multiple ways. It is noted that the decimal equivalent to the binary code portions is shown enclosed in square (“[ ]”) brackets in FIG. 6C. So in FIG. 6C, a decimal value 32 can be expressed three ways according to the combination of the cash code and the coin code.


[0067]
FIG. 6B is similar to FIG. 6A except that the example coin code depicted is a 3-bit coin code that takes the form of a 3-bit binary-weighted code. Again in FIG. 6B, example states of the respective bit positions have been depicted. The escalator code of the FIG. 6B represents 33910 that is expressed as a combination of the cash code 33410 and the coin code 510.


[0068]
FIG. 7A is a schematic block diagram of the escalator code generator 530 according to an embodiment of the invention. The generator 530 includes a coin counter 710 and a cash counter 720. In this embodiment, the coin counter can be a 2-bit stack memory and the cash counter can be a 3-bit binary counter. Other implementations of the coin counter and the cash counter can be used.


[0069] Each of the coin counter 710 and the cash counter 720 receive the up-count and down-count signals from the phase comparator 540. The coin counter 710 outputs the coin code, which for the sake of simplicity in FIG. 7A has been assumed to be 2-bits in length, namely S[1:0]. In addition to being provided to the DAC 520, the output of the coin counter 710 is provided to the cash counter 720. The cash counter 720 outputs the cash code, which for the sake of simplicity in FIG. 7A takes the example of a 3-bit code, namely B[2:0].


[0070]
FIG. 7B is a state diagram of the coin code output by the coin counter 710. In the embodiment of FIG. 7B, the coin code is a 2-bit thermometer code generated by the 2-bit stack memory. The operation of the coin counter 710 restricts the coin code to three states. Those states are illustrated in blocks 712, 714 and 716. Each of the coin code bits S0 and S1 represents a decimal equivalent of one.


[0071] Assuming that counting starts at zero, the output of the coin counter 710 is initially at state 00, as indicated by the box 712, which equals 010. When the count is incremented, the output of the coin counter 710 becomes 01, as indicated by the box 714, which corresponds to 110. Incrementing the count again causes the output of the coin counter 710 to become 11, as indicated by the box 716, which equals 210. If the phase comparator 540 provides another up-count signal, the coin counter 710 does not change its output, i.e., the output remains as indicated by the box 716.


[0072] Instead of the coin counter being overflowed, the cash counter correspondingly increments its output. FIG. 7C is a state diagram of the cash code output by the cash counter 720. Again assuming that counting starts at 0, the cash code initially takes the state 000 and keeps it during the first three counts corresponding to 010, 110 and 210. But on the fourth count, when the coin counter overflows, the cash code increments to 001. In the example of FIG. 7C, the cash code takes the form of a binary-weighted code. If the phase comparator continues to provide upcount pulses to the counters 710 and 720, the coin counter 710 will remain in an overflow state and the cash counter will absorb the increment, progressing from the state 001 to the state 010 to the state 011 to the state 100, etc.


[0073] If a down-count pulse is provided by the phase comparator 540, then the change is initially absorbed by the coin code, not by the cash code. The state of the cash code would remain the same while the coin code decremented from state 716 down to state 714. If another down-count is received, then the coin code would again absorb the decrement, changing from the state 714 to the state 712. If yet another down-count is received, the coin counter would reach an underflow situation where it cannot decrement further. Accordingly, the coin code would remain in the state 712 while the decrement would be absorbed by the cash code, which is correspondingly decremented.


[0074] By establishing a relatively small upper boundary and a relatively small lower boundary, the bulk of the numeric representation can be handled by the cash code. Choosing the cash code to be a binary-weighted form significantly reduces the number of 1-bit converters that are needed. Alternatively, other codes can be used for the cash counter. For example, a thermometer code can be used if it is more important to reduce the number of bits in transition during a worst case scenario for multi-bit transitions than is the factor of reducing IC surface area consumption.


[0075] The coin code also has the advantage that it, rather than the cash code, absorbs a change in counting direction. This is important, e.g., in a situation in which a DLL locks and yet exhibits some cycling due to jitter. The smaller transistors in the one-bit converters associated with the coin code, which absorbs the cycling, generate less noise than most of the transistors in the one-bit converters associated with the cash code.


[0076]
FIG. 7D depicts a 9-bit escalator code according to an embodiment of the invention. The escalator code includes a 2-bit coin code and a 7-bit cash code. In this example, the cash code again takes the form of a binary-weighted code while the coin code takes the form of a simple binary code in which each bit position represents the same numeric value, e.g., 1. FIG. 7D illustrates a situation that is analogous to the situation illustrated in Background Art FIG. 2B (namely where cycling occurs around numeric values 3110 and 3210). In FIG. 7D, because of the extra two bits S1 corresponding to the cash code, which both represent 110, the back and forth cycling around 3110 and 3210 in Background Art FIG. 2B corresponds to cycling in FIG. 7D between 3310 and 3410. The cycling situation illustrated in FIG. 7D differs from Background Art FIG. 2B in that this cycling is being handled by an escalator code according to an embodiment of the invention.


[0077] Again, the cycling happens because of jitter of a locked status of a DLL. The size of the coin code can be designed to absorb the jitter. Appropriate bit lengths for the coin code and the cash code depend upon the circumstances in which the escalator code is to be employed. As the range of the cycling increases, the corresponding number of bits in the coin counter can increase.


[0078] Assuming that the phase comparator has continually provided up-count signals, then the escalator code would have reached a state of 3110 corresponding to a coin code of 01 and a cash code of 0011110. A subsequent up-count would increment the coin code to the state 11 and leave the cash code the same. A further increment to 3310 would leave the coin code the same, namely 11, and increment the cash code to the state 0011111. A further increment to 3410 would leave the coin code the same at 11 and increment the cash code to the state 0100000 as shown in row 731. The transition 730 from 3310 to 3410 is a multi-bit transition in the cash code. Should the next signal from the phase comparator 540 be a down-count, it is desired to prevent another multi-bit transition 730, e.g., because of the associated noise due to the change in states of the six output transistors of the respective one-bit converters.


[0079] Assuming that the next count signal from the phase comparator 540 is a decrement signal, the coin counter absorbs the decrement rather than the cash counter, taking the state 01 in row 732. If a decrement signal is then received, the decrement is again absorbed by the coin code, taking the state 00 in row 734. But if the next count signal from the phase comparator 540 is an up-count signal, the increment is still reflected by the coin code, taking state 01 as indicated in row 736. A further increment is again absorbed by the coin code, taking state 11 as indicated in row 738. But at this point, the coin code has reached its upper boundary. The immediately following increment would then be absorbed by the cash code.


[0080] However, if the subsequent count signal is a down-count, then the increment is absorbed by the coin code, taking the state 01 as indicated by row 740. Cycling between 3310 and 3410 is absorbed by transitions in the coin code rather than transitions in the cash code. This eliminates the repeated multi-bit transitions suffered by the corresponding Background Art DAC, as depicted in FIG. 2B.


[0081]
FIG. 7E is a chart depicting cycling (again, caused by jitter) between 3410 and 3210 and how it is absorbed by the coin code. FIG. 7E merely presents aspects of FIG. 7D in more detail. In FIG. 7E, the x-axis corresponds to time and the y-axis corresponds to the magnitude of the number represented by the coin code. The bottom row 742 has the coin code state 00, corresponding to 3210 The middle row 744 has the coin code state 01, corresponding to 3310. And the top row 746 has the coin code state 11, corresponding to 3410. The time increments t731, t732, t734 . . . t740 correspond to the states depicted in rows 731, 732 , 734 . . . 740, respectively. Inspection of FIG. 7E as a whole reveals that the cycling is absorbed entirely by the coin code.


[0082]
FIG. 8 is a flow chart 800 according to an embodiment of the invention. Flow starts at block 802 and proceeds to decision block 804, where it is determined whether the count pulse from the phase comparator 540 is in an up-count or a down-count. If an up-count has been received, flow proceeds from block 804 to block 806, where it is determined whether the coin counter is full, i.e., whether the state of the coin code is currently at its upper boundary. If so, then flow proceeds to block 810, where the increment is absorbed by the cash counter, i.e., the cash counter is incremented. From block 810, flow proceeds to block 812, where the sum of the coin code and the cash code represents the numeric value of the escalator code.


[0083] But if it is determined at block 806 that the coin counter is not full, then flow proceeds to block 814, where the increment is absorbed by the coin counter, i.e., the coin counter is incremented. From block 814 flow proceeds to block 812, where the coin code and cash code are summed to provide the numerical equivalent of the escalator code.


[0084] Back at block 804, if it is determined that the count pulse is a down-count, then flow proceeds to block 808. At block 808, it is determined whether the coin code is empty, i.e., whether the coin counter is currently at its lower boundary. If so, then flow proceeds to block 810, where the decrement is absorbed by the cash code, i.e., the value in the cash code is decremented. As before, flow proceeds from block 810 to block 812. If, however, it is determined at block 808 that the coin code is not empty, then flow proceeds to block 814, where the coin code absorbs the decrement, i.e., the coin code is decremented. From block 814 flow proceeds to block 812.


[0085]
FIG. 9 is a state diagram for the example of an escalator code according to an embodiment of the invention having a 2-bit coin code and a 7-bit cash code. Again, the coin code can be a thermometer code. The upper boundary state of the coin code can be 11 while the lower boundary state can be 00. The cash code can be a binary-weighted code. FIG. 9 illustrates how the coin code portion of the escalator code absorbs changes in counting direction while the cash code portion is unaffected. In addition, FIG. 9 illustrates how different combinations of values taken by the coin code portion and the cash code portion of the escalator code can represent the same numeric values.


[0086] In FIG. 9, each oval represents a state of the escalator code. The six bits preceding the “+” correspond to the cash code, while the two bits following the “+” represent the coin code. In addition, the underlined member within the oval represents the decimal equivalent of the escalator code. During typical operation of a delay-locked loop (DLL) according to embodiments of the invention, when the DLL reaches a locked status, the escalator code generator 530 can be set to cycle between two numbers in order to accommodate jitter noise.


[0087] First consider the situation in which the locked status and the associated jitter noise are manifested as cycling between the values 29 and 30, as indicated by the oval 9291 and 9301, respectively. At state 9291, the coin code takes the state 00, while the cash code takes the state 011101. If an up-count is received, then the increment can be absorbed by the coin code, as reflected by the state 9301, corresponding to 3010. If a decrement signal is received while in state 9301, the decrement can be absorbed by the coin code thereby returning the escalator code to state 9291, corresponding to 2910. Cycling caused by jitter noise exists between states 9291 and 9301 without affecting the cash code, i.e., the cash code of each of these states can be the same because the cycling can be absorbed by the coin code.


[0088] If a decrement signal is received while the escalator code is at state 9291, the decrement can be absorbed by the cash code because the coin code currently is at its lower boundary of 00. Hence, the decrement from state 9291 results in the escalator code taking the state 928 in which the coin code is 00 while the cash code is 011100. If an increment signal is then received, the increment can be absorbed by the coin code because it is at the state 00 rather than its upper boundary of 11, hence the escalator code transitions to the state 9292, corresponding to 2910. The cash code in state 9292 is the same as in the state 928, but the coin code has changed to 01. If a decrement signal is received while the escalator code is in the state 9292, then the decrement can be absorbed by the coin code (01) because it is not at its lower boundary 00. Hence, the escalator code transitions from state 9292 back to state 928. It is to be noted that states 9291 and 9292 both represent 92910 and yet do so via different combinations of the coin code and the cash code.


[0089] Now consider the situation in which the locked status of the DLL and the associated jitter noise are manifested as cycling between 31 and 30, as indicated by the ovals 931 and 9302, respectively. In state 931, the coin code is 01 and the cash code is 011110. Receiving a decrement signal while the escalator code is in state 931 results in a transition to the state 9302 because the coin code (01) in state 931 is not at the lower boundary (00), i.e., the coin code can absorb the decrement. Inspection of states 931 and 9302 reveal that they have the same cash code, but different coin codes. It also reveals that the transition from state 931 to state 9302 reflects a transition from 3110 to 3010. It is to be noted that states 9301 and 9302 both represent 3010 and yet are different combinations of the coin code and the cash code.


[0090] Receiving a decrement signal at state 9302 transitions the escalator code down to state 9291. This transition can be absorbed by the cash code because, in the state 9302, the coin code (00) is at its lower boundary. If an increment signal is received while the escalator code is in state 9302, the increment can be absorbed by the coin code because, in state 9302, the coin code (00) is not at its upper boundary. Hence, an increment at state 9302 transitions the escalator code to state 931. Again, cycling between states 9302 and 931 can be absorbed by the coin code, not the cash code.


[0091] At state 931 corresponding to 3110, the coin code (01) is not at its upper boundary (11). Receiving an increment signal while in state 931 results in the increment being absorbed by the coin code and the escalator code transitioning to the state 9321 (corresponding to 3210). Inspection of 931 and 9321 reveals that their cash codes are the same, but their coin codes are different. In state 9321, the coin code (11) is at its upper boundary. If a decrement signal is received in state 9321, the decrement can be absorbed by the coin code, hence the escalator code transitions back to state 931.


[0092] At state 9321, if an increment signal is received, the increment cannot be absorbed by the coin code (11) because it is at its upper boundary. Hence, the increment can be absorbed by the cash code, as reflected by the transition to the state 9331. Inspection of states 9321 and 9331 reveals that their coin codes are the same, but their cash codes are different.


[0093] Now consider the situation in which the locked status of the DLL and the associated jitter noise are manifested as cycling between 34 and 33, as indicated by the oval 934 and 9332, respectively. If an increment signal is received while the escalator code is in state 9331, the escalator code transitions to state 934. In state 9331, the coin code (11) is at its upper boundary, so it cannot absorb an increment. Instead, the increment can be absorbed by the cash code. Inspection of states 9331 and 934 reveal that their cash codes differ, but their coin codes are the same. Also, the transition from state 9331 to state 934 is a multi-bit transition in the cash code.


[0094] It is to be observed that states 9321 and 9322 both represent the value 3210 albeit using different combinations of the cash code and the coin code. It is also to be observed that cycling back and forth between 3310 and 3210 corresponds to cycling between states 9331 and 9322 wherein the difference can be absorbed by the coin counter. In other words, only the coin counter cycles between states 9331 and 9322.


[0095] If an increment signal is received while the escalator code is in state 9331, the escalator code transitions to state 934. In state 9331, the coin code (11) is at its upper boundary, so it cannot absorb an increment. Instead, the increment can be absorbed by the cash code. Inspection of states 9331 and 934 reveal that their cash codes differ, but their coin codes are the same. Also, the transition from state 9331 to state 934 is a multi-bit transition in the cash code.


[0096] If a decrement signal is received while in state 934 (again corresponding to 3410), the decrement can be absorbed by the coin code (11) which is not at its lower boundary (00). Hence, the escalator code responds to a decrement signal by transitioning from state 934 to state 9332 (representing 3310), not state 9331. Inspection of states 934 and 9332 reveal that they have the same cash code, but different coin codes. If an increment signal is received in state 9332, the increment can be absorbed by the coin code (10) because it is not at its upper boundary (11). Hence, an increment received while in state 9332 causes the escalator code to transition back to state 934. It is to be observed that cycling between 3310 and 3410 involves transitions back and forth between states 9332 and 934. For a transition between state 9332 and 934, the change can be absorbed by the coin code, not the cash code.


[0097]
FIG. 9 shows that a multi-bit transition in the cash code can be avoided once cycling begins. Such cycling-induced multi-bit transitions could not be avoided in the DLL arrangements according to the Background Art.


[0098]
FIG. 10 is a circuit diagram of an embodiment of the delay control circuit 516 according to an embodiment of the invention. The escalator code generator (EC-GEN) 530 is depicted as including the coin counter 710 in the cash counter 720. The escalator-coded DAC (EC-DAC) 520 is depicted as including two equally-weighted output transistors in a block 1200 corresponding to the coin counter and eight binary-weighted transistors in a converter block 1100 corresponding to the cash counter. The transistors SWS0 and SWS1 correspond to bits as S0 and S1 of the coin code. The transistors SWB0, SWB1 . . . SWB7 correspond to bits B0, B1, . . . B7 of the cash counter. Again, in this example, the cash counter has been limited to 8-bits for simplicity of depiction and explanation. Again, the appropriate number of bits for the cash code, and for the coin code, will depend upon the circumstances to which embodiments of the invention are applied.


[0099] As in the Background Art, the weighting of the binary-coded converter 1100 is carried out by varying the widths and lengths of the respective transistors. In the escalator code embodied in the example circuit of FIG. 10, as in the previous examples of the escalator code, bits S0, S1 and B0 all represent the same numeric value, e.g., 1. Accordingly, the width-to-length ratio (W/L) of the transistors SWS0, SWS1 and SWB0 are the same. But the W/L ratios of the transistors SWB1-SWB7 follow the binary weighting. For example, if the W/L ratio of transistor SWB0=W/L, then the corresponding ratio for the transistor SWB1=2 W/L, . . . for transistor SWB5 is 32 W/L, for transistor SWB6 is 64 W/L, etc. The EC-DAC 520 also includes a buffer 1300 of a type similar to the buffer 320 of the Background Art. In operation, the sum of the currents sunk by the respective transistors can be sourced by the buffer 1300 via the resistance R through the transistor MP0. Substantially the same current can be output by the buffer 1300 through the transistor MP1 as the delay adjust signal DLYADJ.


[0100] FIGS. 11A-11B are a circuit diagram example of the escalator-code generator (EC-GEN) 530 according to an embodiment of the invention. There, the coin counter 710 is embodied by a logic device 222 while the cash counter 720 can be embodied by a plurality of cascaded logic devices UC0, UC1, UC2, . . . UC7. Again, the embodiment of FIGS. 11A-11B continues the example in which the cash code portion has 8-bits, namely B0-B7, corresponding to logic devices UC0-UC7, respectively.


[0101] Referring to FIG. 12, the coin counter logic device 222 is depicted in more detail. The coin device 222 is initialized by a reset signal RESET and generates a coin code S[i:0] (in this embodiment, i=0, 1) in response to a count-up signal UP and a count-down signal DN. In this embodiment, the coin code is a 2-bit thermometer code expressed as a uniform weight number system. Such a coin code “S1S0” is transmitted to the cash code counter 720 arranged as the next stage. The coin code counter 222 includes NAND gates G10 and G12, PMOS transistors MP10, MP12, MN14, MP16, MP18, and MP20, NMOS transistors MN10, MN12, MN14, MN18, MN20, MN22, and MN24, and inverters INV10, INV12, . . . , and INV30, which are connected as shown in FIG. 12. Pairs of inverters INV12 and INV30, INV16 and INV18, INV22 and INV24, and INV26 and INV28 are each coupled to constitute a latch.


[0102] In the above circuit structure, when a coin code signal S0 is “1”, the count-up signal UP is transmitted to a coin code signal S1. When the coin code signal S1 is “1”, the count-up signal UP is transmitted to the cash code counter 224. This is explained below in detail.


[0103] When the reset signal reset becomes active high, latches LAT1 and LAT3 of the coin code counter 222 are initialized. Afterwards, when the count-up signal UP becomes active, the PMOS transistor MP10 is turned on by an inverted count-up signal UPB. In this case, a value stored in the latch LAT1 is inverted from “0” to “1”. Next, when the count-up signal up becomes inactive, the NMOS transistors MN14 and MN16 and the PMOS transistors MP12 and MP14 are turned on. As a result, the value stored in the latch LAT1 is transmitted to the latch LAT2 through the NMOS transistors MN14 and MN16 and the PMOS transistors MP12 and MP14. That is, as the count-up signal up becomes active, the coin code “S1S0” becomes “01”.


[0104] When the count-up signal up becomes re-active, the output signal UPB of a NAND gate G12 becomes low and a value stored in the latch LAT3 is inverted from “0” to “1”. This is because an output signal S0 of the latch LAT2 becomes high. Next, when the count-up signal UP becomes inactive, the NMOS transistors MN22 and MN24 and the PMOS transistors MP18 and MP20 are turned on. As a result, the value stored in the latch LAT3 is transmitted to a latch LAT4 through the NMOS transistors MN22 and MN24 and the PMOS transistors MP18 and MP20. That is, when the count-up signal becomes re-active one more time, the coin code “S1S0” becomes “11”.


[0105] When the coin code “S1S0” is “11” and the count-up signal becomes re-active, the coin code “S1S0” is maintained, whereas a cash code value is varied. This will be explained in detail later. In conclusion, while a coin code increases in value, a cash code is not affected by the variation of an input binary code.


[0106] When a coin code signal S0b is “1”, the count-down signal DN is transmitted to the cash code counter 224. When a coin code signal S1b is “1”, the count-down signal DN is transmitted to the coin code signal S0. This is now described more fully hereinbelow.


[0107] When the coin code “S1S0” is “11” and the count-down signal DN becomes active, the latch LAT3 is initialized through the NMOS transistor MN18. When the count-down signal DN becomes inactive, a value stored in the latch LAT3 is transmitted to the latch LAT4 through the NMOS transistors MN22 and MN24 and the PMOS transistors MP18 and MP20. As a result, the coin code signal S1 is varied from “1” to “0” and the coin code signal S0 is maintained in a previous value. When the count-down signal DN becomes active once more, the latch LAT1 is initialized through the NMOS transistor MN10. The NMOS transistor MN10 is controlled by an output of the inverter INV10. Because the signal S1b of “1” is transmitted to one input terminal of the NAND gate G10, the NMOS transistor MN10 is turned on when the count-down signal DN becomes active. When the count-down signal DN becomes inactive, the value stored in the latch LAT1 is transmitted to the latch LAT2 through the NMOS transistors MN14 and MN16 and the PMOS transistors MP12 and MP14. As a result, the coin code signal S0 is varied from “1” to “0”.


[0108] When the coin code “S1S0” is “00” and the count-down signal DN becomes reactive, the coin code “S1S0” is maintained, whereas the cash code value is varied. This will be explained in detail later. In conclusion, while the coin code decreases in value, the cash code is not affected by the variation of the input binary code.


[0109] Returning to FIGS. 11A-11B, the cash code counter 224 operates in response to an output value of the coin code counter 222 and the count-up and count-down signals UP and DN from the phase detector 540. The cash code counter 224 includes eight unit counters UC0-UC7, which are initialized by a reset signal RESET and constitute a 8-bit counter. The even number unit counters UC0, UC2, UC4, and UC6 operate in response to the count-up and count-down signals UP and DN. The odd number unit counters UC1, UC3, UC5, and UC7 operate in response to inverted count-up and count-down signals UPB and DNB. The cash code counter 224 carries out a count-up/down operation, which is similar to a binary counter except that the cash code counter 224 is affected by an output of the coin code counter 222.


[0110] Any one of the even number counters UC0, UC2, UC6, and UC8 is in more detail via FIG. 13. A unit counter UCi (i=0, 2, 4, and 6) includes five NAND gates G14, G16, G18, G20, and G22 and a flip-flop FF1, which are connected as shown in the figure. The unit counter UCi operates in response to count-up and count-down signals UP and DN and a value stored in a unit counter of a previous stage. The flip-flop FF1 has a latch LAT5 comprised of inverters INV44 and INV46, transmission gates TG10 and TG12, an NMOS transistor MN26, and inverters INV48, INV50, INV52, and INV54, as shown in FIG. 14.


[0111] When the reset signal reset becomes active, the latch LAT5 of the flip-flop FF1 is initialized through the NMOS transistor MN26. When an input signal In_Carry_Up is high and the count-up signal UP becomes active, an output signal Flag_Inv of the NAND gate G18 becomes high. When the the input signal In_Carry_Up is high, this indicates that a value stored in a unit counter of a previous stage (or a value of S1 of a coin code counter) is “1”. The output signal Flag_Inv of a high level causes the transmission gate TG10 to become inactive, and the transmission gate TG12 to become active. The latch LAT5 is maintained in a previous value or inverted based on an output value Qb. Since the transmission gate TG10 is in the inactive state, output signals Q and Qb of a flip-flop FF are maintained in previous values. Afterwards, when the count-up signal UP becomes inactive, the output signal Flag_Inv of the NAND gate G18 becomes low. This causes the transmission gate TG10 to become active, and the transmission gate TG12 to become inactive. A value stored in the latch LAT5 is outputted as the output signal Q through the transmission gate TG10. The output signals Q and Qb are transmitted to a unit counter of the next stage through corresponding NAND gates G20 and G22.


[0112] For example, when the output signal Q is high, a latch node ND1 of the latch LAT5 of the flip-flop FF1 becomes high and a latch node ND2 becomes low. If signals In_Carry_Up and In_Carry_Dn transmitted from a previous stage are high and low, respectively (all values of unit counters positioned at the previous stage are “1”), the output signal Flag_Inv of the NAND gate G18 becomes high when the count-up signal UP becomes active. This causes the transmission gate TG12 to become active, and the transmission gate TG10 to becomes inactive. The latch node ND1 is coupled to the output signal Qb through the transmission gate TG12. That is, the value stored in the latch LAT5 is inverted from “1” to “0”. Afterwards, when the count-up signal UP becomes inactive, the output signal Flag_Inv of the NAND gate G18 becomes low and the value stored in the latch LAT5 is outputted as the output signal Q through the transmission gate TG10. The output signal Q and Qb of the unit counter UCi are transmitted to a unit counter of the next stage through corresponding NAND gates G20 and G22.


[0113] On the other hand, when the input signal In_Carry_Dn is high and the count-down signal DN becomes active, the output signal Flag_Inv of the NAND gate G18 becomes high. This causes the transmission gate TG10 to become inactive, and the transmission gate TG12 to become active. The latch LAT5 is maintained in a previous value or inverted based on the output value Qb. Since the transmission gate TG10 is in the inactive state, the output signal Q and Qb of the flip-flop FF are maintained in previous values. Afterwards, when the count-down signal DN becomes inactive, the output signal Flag_Inv of the NAND gate G18 becomes low. This causes the transmission gate TG10 to become active, and the transmission gate TG12 to become inactive. A value stored in the latch LAT5 is outputted as the output signal Q through the transmission gate TG10. The output signals Q and Qb are transmitted to a unit counter of the next stage through the NAND gates G20 and G22.


[0114] For example, when the output signal Q is high, the latch node ND1 of the latch LAT5 of the flip-flop FF1 becomes high and the latch node ND2 becomes low. If the signals In_Carry_Up and In_Carry_Dn transmitted from the previous stage are low and high, respectively (all values stored in unit counters positioned at the previous stage are “0”), the output signal Flag_Inv of the NAND gate G18 becomes high when the count-down signal DN becomes active. This causes the transmission gate TG12 to become active, and the transmission gate TG10 to become inactive. The latch node ND1 is coupled to the output signal Qb through the transmission gate TG12. That is, the value stored in the latch LAT5 is inverted from “1” to “0”. Afterwards, when the count-up signal UP becomes inactive, the output signal Flag_Inv of the NAND gate G18 becomes low and the value stored in the latch LAT5 is outputted as the output signal Qb through the transmission gate TG10. The output signals Q and Qb of the unit counter UCi are transmitted to a unit counter of the next stage through corresponding NAND gates G20 and G22.


[0115] Any one of the odd number unit counters UC1, UC3, UC5, and UC7 is illustrated in more detail via FIG. 15. A unit counter UCi (i=1, 3, 5, and 7) includes five NOR gates G24, G26, G28, G30, and G32 and a flip-flop FF2, which are connected as shown in the figure. The unit counter UCi operates in response to inverted count-up and count-down signals UPB and DNB and a value stored in a unit counter of a previous stage. The flip-flop FF2 has a latch LAT6 comprised of inverters INV56 and INV58, transmission gates TG14 and TG16, an NMOS transistor MN28, and inverters INV60, INV62, INV64, and INV66, which are connected as shown in FIG. 16.


[0116] When the reset signal reset becomes active, a latch LAT6 of the flip-flop FF2 is initialized through the NMOS transistor MN28. When the input signal In_Carry_Up and low and the count-up signal UP becomes active, an output signal Flag_Invb of the NOR gate G28 becomes low. This causes the transmission gate TG14 to become inactive, and the transmission gate TG16 to become active. The latch LAT6 is maintained in a previous value or inverted according to an output signal Qb. Since the transmission gate TG10 is in the inactive state, output signals Q and Qb of a flip-flop FF are maintained in previous values. Afterwards, when the count-up signal up becomes inactive, the output signal Flag_Invb of the NOR gate G28 becomes high. This causes the transmission gate TG14 to become active, and the transmission gate TG16 to become inactive. A value stored in the latch LAT6 is outputted as the output signal Q through the transmission gate TG14. The output signal Q and Qb are transmitted to a unit counter of the next stage through corresponding NOR gates G30 and G32.


[0117] For example, when the output signal Q is high, a latch node ND3 of the latch LAT6 of the flip-flop FF2 becomes high and a latch node ND4 thereof becomes low. If signals In_Carry_Up and In_Carry_Dn transmitted from a previous stage are low and high, respectively (all values of unit counters positioned at the previous stage are “1”), the output signal Flag_Inv of the NOR gate G28 becomes low when the count-up signal UP becomes active. This causes the transmission gate TG16 to become active, and the transmission gate TG14 to become inactive. The latch node ND3 is coupled to the output signal Qb through the transmission gate TG16. That is, a value stored in the latch LAT6 is inverted from “1” to “0”. Afterwards, when the count-up signal UP becomes inactive, the output signal Flag_Invb of the NOR gate G28 becomes high and the value stored in the latch LAT6 is outputted as the output signal Q through the transmission gate TG14. The output signals Q and Qb of the unit counter UCi are transmitted to a unit counter of the next stage through corresponding NOR gates G30 and G32.


[0118] On the other hand, when the input signal In_Carry_Dn is low and the count-down signal DN becomes active, the output signal Flag_Invb of the NOR gate G28 becomes high. This causes the transmission gate TG14 to become inactive, and the transmission gate TG16 to become active. The latch LAT6 is maintained in a previous value or inverted based on the output value Qb. Since the transmission gate TG14 is in the inactive state, the output signals Q and Qb of the flip-flop FF2 are maintained in previous values. Afterwards, when the count-down signal DN becomes inactive, the output signal Flag_Invb of the NOR gate G28 becomes high. This causes the transmission gate TG14 to become active, and the transmission gate TG16 to become inactive. The value stored in the latch LAT6 is outputted as the output signal Q through the transmission gate TG14. The output signal Q and Qb are transmitted to a unit counter of the next stage through corresponding NOR gates G30 and G32.


[0119] For example, when the output signal Q is high, a latch node ND3 of the latch LAT6 of the flip-flop FF2 becomes high and a latch node ND4 thereof becomes low. If signals In_Carry_Up and In_Carry_Dn transmitted from a previous stage are high and low, respectively (all values stored in unit counters positioned at the previous stage are “0”), the output signal Flag_Invb of the NOR gate G28 becomes low when the count-down signal DN becomes active. This causes the transmission gate TG16 to become active, and the transmission gate TG14 to become inactive. The latch node ND3 is coupled to the output signal Qb through the transmission gate TG16. That is, the value stored in the latch LAT6 is inverted from “1” to “0”. Afterwards, when the count-down signal DN becomes inactive, the output signal Flag_Invb of the NOR gate G28 becomes high and the value stored in the latch LAT6 is outputted as the output signal Q through the transmission gate TG14. The output signals Q and Qb of the counter unit UCi of are transmitted to a unit counter of the next stage through corresponding NOR gate G30 and G32.


[0120]
FIG. 17 is a schematic block diagram of a memory device, e.g., a synchronous DRAM (SDRAM) 1800 according to an embodiment of the invention. The SDRAM 1800 includes a DLL 1802 according to an embodiment of the invention. The DLL 1802 includes an EC-DAC 1804 according to an embodiment of the invention.


[0121]
FIG. 18 is a schematic block diagram of a memory system 1806 according to an embodiment of the invention. The system 1806 includes a well known memory controller 1808 and a plurality of SDRAMs 1800 according to an embodiment of the invention. In FIG. 1806, the memory controller and the plurality of SDRAMs 1800 each receive a system clock REFCLK. The memory controller 1808 provides memory commands to the plurality of SDRAMs 1800.


[0122] An appropriate size of the coin code can be selected by determining the amplitude swing of the jitter that can be expected. Again, this corresponds to the range 220 of Background Art FIG. 2A. The coin code can be selected so as to accommodate the range 220. Doing so will provide a coin code that is large enough to absorb the cycling caused by the jitter 210 without the need to rely upon the cash code to absorb the jitter. In other words, such a design of the cash code eliminates the cycling-induced multi-bit transitions. Again, e.g., as reflected in FIG. 9, cycling that occurs in a locked state of a DLL can be manifested as a transition of 1-bit within the cash code.


[0123] The origin of the terms, namely coin code and cash code, lies in the two most common forms of legal tender: coins; and paper money or tender. Though coins are technically considered cash, many people imply only paper money when referring to cash. People typically carry a small amount of money in coins and a much larger amount in cash (paper money). This small versus large dichotomy gives rise to the terms coin code and cash code.


[0124] The invention may be embodied in other forms without departing from its spirit and essential characteristics. The described embodiments are to be considered only non-limiting examples of the invention. The scope of the invention is to be measured by the appended claims. All changes which come within the meaning and equivalency of the claims are to be embraced within their scope.


Claims
  • 1. A digital to analog converter (DAC) comprising: an escalator code generator, responsive to an externally-provided count trigger signal, to generate an escalator code; and an escalator-code-to-analog converter (ECAC) to convert said escalator code from said generator; wherein said generator is arranged to represent base 10 numbers with a mixed code having a coin code portion and a cash code portion so as to eliminate multi-bit changes in the cash code portion upon changes in count direction, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code; and represent a count in a first direction as a summation of the base 10 number represented by said coin code and the base 10 number represented by said cash code; wherein said generator is operable to alter said coin code when said count changes direction while said cash code remains the same until a count capacity of said coin code is exceeded, said cash code being alterable after said count capacity of said coin code is exceeded; and wherein cycling between adjacent base 10 numbers is manifested in said coin code portion while keeping said cash code portion the same; and wherein noise introduced into an output of said ECAC due to such cycling is reduced because said cycling is manifested in said coin code portion.
  • 2. The DAC of claim 1, wherein said coin code is a thermometer code and said cash code is a binary-weighted code.
  • 3. The DAC of claim 1, wherein said cash code is one of a binary-weighted code and a thermometer code.
  • 4. A digital to analog converter (DAC) comprising: an escalator code generator, responsive to an externally-provided count trigger signal, to generate an escalator code; and an escalator-code-to-analog converter (ECAC) to convert said escalator code from said generator; wherein said generator is arranged to; represent base 10 numbers with a mixed code having a coin code portion and a cash code portion so as to eliminate multi-bit changes in the cash code portion upon changes in count direction, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code; and represent a count in a first direction as a summation of the base 10 number represented by said coin code and the base 10 number represented by said cash code; wherein said generator is operable to: attempt to count, in response to a trigger signal, using said coin code; upcount with said cash code only when said coin code reaches an upper boundary; and downcount with said cash code only when said coin code reaches a lower limit; wherein cycling between adjacent base 10 numbers is manifested in said coin code portion while keeping said cash code portion the same; and wherein noise introduced into an output of said ECAC due to such cycling is reduced because said cycling is manifested in said coin code portion.
  • 5. A digital to analog converter (DAC) comprising: an escalator code generator, responsive to an externally-provided count trigger signal, to generate an escalator code; and an escalator-code-to-analog converter (ECAC) to convert said escalator code from said generator; wherein said generator is arranged to represent base 10 numbers with a mixed coin and cash code having a coin code portion and a cash code portion so as to eliminate multi-bit alterations in the cash code portion upon changes in counting direction, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code, said coin code portion of said mixed code representing a range of base 10 numbers, the range having a first boundary and a second boundary; wherein said generator is operable to: determine whether said count trigger signal is for a first direction or a second direction opposite to said first direction; determine, if said trigger signal is in said first direction, whether said coin code portion has currently attained a first boundary value associated with said first direction; count, if it was determined that said currently attained value of said coin code portion is not said first boundary value, in said first direction using said coin code portion; count, if it was determined that said currently attained value of said coin code portion is said first boundary value, in said first direction using said cash code portion; determine, if said trigger signal is in said second direction, whether said coin code portion has currently attained a second boundary value associated with said second direction; count, if it was determined that said currently attained value of said coin code portion is not said second boundary value, in said second direction using said coin code portion; and count, if it was determined that said currently attained value of said coin code portion is said second boundary value, in said second direction using said cash code portion; wherein a change in count direction is always manifested as an alteration in the base 10 value represented by said coin code portion before being manifested as an alteration in the base 10 value represented by said cash code portion such that cycling between adjacent base 10 numbers is manifested in said coin code portion before being manifested in said cash code portion; and wherein noise introduced into an output of said ECAC due to such cycling is reduced because said cycling is manifested in said coin code portion.
  • 6. A digital to analog converter (DAC) comprising: escalator code means, responsive to an externally-provided count trigger signal, for generating an escalator code; and escalator-code-to-analog conversion (ECAC) means for converting said escalator code from said generator; wherein said code means is operable to represent base 10 numbers with a mixed code having a coin code portion and a cash code portion so as to eliminate multi-bit changes in the cash code portion upon changes in count direction; wherein said code means is operable to alter said coin code when said count changes direction while said cash code remains the same until a count capacity of said coin code is exceeded, said cash code being alterable after said count capacity of said coin code is exceeded; and wherein cycling between adjacent base 10 numbers is manifested in said coin code portion while keeping said cash code portion the same; and wherein noise introduced into an output of said ECAC means due to such cycling is reduced because said cycling is manifested in said coin code portion.
  • 7. A delay-locked loop (DLL) including the DAC of claim 1.
  • 8. A delay-locked loop (DLL) comprising: a variable delay line arrangement operable to receive a reference clock and to output a delayed local clock; a phase comparator device operable to compare said reference clock and said local clock and to provide an up/down indication; and a delay control circuit, responsive to said up/down count-indication, to provide a reduced-noise delay control signal to said variable delay line arrangement, said delay control circuit being operable to count said up/down indication using an escalator code arrangement.
  • 9. The DLL of claim 8, wherein said delay control circuit includes: an escalator code generator, responsive to an externally-provided count trigger signal, to generate an escalator code; and an escalator-code-to-analog converter (ECAC) to convert said escalator code from said generator.
  • 10. The DLL of claim 9, wherein said generator is arranged to represent base 10 numbers with a mixed code having a coin code portion and a cash code portion so as to eliminate multi-bit changes in the cash code portion upon changes in count direction, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code; and represent a count in a first direction as a summation of the base 10 number represented by said coin code and the base 10 number represented by said cash code;
  • 11. The DLL of claim 10, wherein said coin code is a thermometer code and said cash code is a binary-weighted code.
  • 12. The DLL of claim 10, wherein said cash code is one of a binary-weighted code and a thermometer code.
  • 13. A delay-locked loop (DLL) comprising: variable delay line means for receiving a reference clock and outputting a delayed a local clock; phase comparator means for comparing said reference clock and said local clock and to provide an up/down indication; and delay control means, responsive to said up/down count-indication, for providing a reduced-noise delay control signal to said variable delay line arrangement, said delay control circuit being operable to count said up/down indication using an escalator code arrangement.
  • 14. A memory device including the DLL of claim 8.
  • 15. The memory device of claim 14, wherein said memory device is a synchronous DRAM.
  • 16. A memory system comprising: a plurality of memory devices, each memory device including the DLL of claim 7; and a memory controller to control said plurality of memory devices, respectively.
  • 17. In a digital to analog converter (DAC) having a code generator, responsive to an externally-provided count trigger signal, and a plurality of bit converters to convert said code, a method of counting comprising: representing base 10 numbers with a mixed code having a coin code portion and a cash code portion so as to eliminate multi-bit changes in the cash code portion upon changes in count direction, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code; and representing a count in a first direction as a summation of the base 10 number represented by said coin code and the base 10 number represented by said cash code; and altering said coin code when said count changes direction while keeping said cash code the same until a count capacity of said coin code is exceeded, said cash code being alterable after said count capacity of said coin code is exceeded; and wherein cycling between adjacent base 10 numbers is manifested in said coin code portion while keeping said cash code portion the same; and wherein noise introduced into an output of said plurality of bit converters due to such cycling is reduced because said cycling is manifested in said coin code portion.
  • 18. In digital to analog converter (DAC) having a code generator, responsive to an externally-provided count trigger signal, and a plurality of bit converters to convert said code, a method of counting comprising: representing base 10 numbers with a mixed code having a coin code portion and a cash code portion so as to eliminate multi-bit changes in the cash code portion upon changes in count direction, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code; and representing a count in a first direction as a summation of the base 10 number represented by said coin code and the base 10 number represented by said cash code; attempting to count, in response to a trigger signal, using said coin code; upcounting with said cash code only when said coin code reaches an upper boundary; and downcounting with said cash code only when said coin code reaches a lower limit; wherein cycling between adjacent base 10 numbers is manifested in said coin code portion while keeping said cash code portion the same; and wherein noise introduced into an output of said plurality of bit converters due to such cycling is reduced because said cycling is manifested in said coin code portion.
  • 19. In digital to analog converter (DAC) having a code generator, responsive to an externally-provided count trigger signal, and a plurality of bit converters to convert said code, a method of counting comprising: representing base 10 numbers with a mixed coin and cash code having a coin code portion and a cash code portion so as to eliminate multi-bit alterations in the cash code portion upon changes in counting direction, said coin code corresponding to one or more of the least significant bits of said cash code but fewer than all bits of said cash code, said coin code portion of said mixed code representing a range of base 10 numbers, the range having a first boundary and a second boundary; determining whether said count trigger signal is for a first direction or a second direction opposite to said first direction; determining, if said trigger signal is in said first direction, whether said coin code portion has currently attained a first boundary value associated with said first direction; counting, if it was determined that said currently attained value of said coin code portion is not said first boundary value, in said first direction using said coin code portion; counting, if it was determined that said currently attained value of said coin code portion is said first boundary value, in said first direction using said cash code portion; determining, if said trigger signal is in said second direction, whether said coin code portion has currently attained a second boundary value associated with said second direction; counting, if it was determined that said currently attained value of said coin code portion is not said second boundary value, in said second direction using said coin code portion; and counting, if it was determined that said currently attained value of said coin code portion is said second boundary value, in said second direction using said cash code portion; wherein a change in count direction is always manifested as an alteration in the base 10 value represented by said coin code portion before being manifested as an alteration in the base 10 value represented by said cash code portion such that cycling between adjacent base 10 numbers is manifested in said coin code portion before being manifested in said cash code portion; and wherein noise introduced into an output of said plurality of bit converters due to such cycling is reduced because said cycling is manifested in said coin code portion.
  • 20. The DAC of claim 1, wherein said externally-provided count trigger signal takes the form of an upcount signal or a downcount signal; said generator includes a coin counter to selectively count said upcount and said downcount signals and to output said coin code portion; and a cash counter, responsive to said coin code portion and said upcount and said downcount signals, to selectively count said upcount and said downcount signals and to output said cash code portion.
  • 21. The DAC of claim 4, wherein said externally-provided count trigger signal takes the form of an upcount signal or a downcount signal; said generator includes a coin counter to selectively count said upcount and said downcount signals and to output said coin code portion; and a cash counter, responsive to said coin code portion and said upcount and said downcount signals, to selectively count said upcount and said downcount signals and to output said cash code portion.
  • 22. The DAC of claim 5, wherein said externally-provided count trigger signal takes the form of an upcount signal or a downcount signal; said generator includes a coin counter to selectively count said upcount and said downcount signals and to output said coin code portion; and a cash counter, responsive to said coin code portion and said upcount and said downcount signals, to selectively count said upcount and said downcount signals and to output said cash code portion.
Priority Claims (1)
Number Date Country Kind
P2002-0024738 May 2002 JP