DETAILED DESCRIPTION OF THE INVENTION
[0024] FIG. 3 is a functional block diagram of a rising-edge portion of an SMD 300 that eliminates the relatively large and high power forward and backward delay lines 108, 114 contained in the conventional SMD 100 of FIG. 1, and instead includes a ring oscillator 302 that clocks coarse counter circuitry 304 to define a coarse delay CD and is utilized by fine delay circuitry 306 to define a fine delay FD. In operation, the SMD 300 adjusts the values of the coarse and fine delays CD, FD to generate a delayed clock signal CLKDEL that is synchronized with (i.e., has a desired delay relative to) an external clock signal CLK, as will be described in more detail below. In the following description, certain details are set forth to provide a sufficient understanding of the invention. It will be clear to one skilled in the art, however, that the invention may be practiced without these particular details. In other instances, well-known circuits, control signals, timing protocols, and software operations have not been shown in detail or omitted entirely in order to avoid unnecessarily obscuring the invention.
[0025] In the SMD 300, an input buffer 308 receives the CLK signal and develops a clock buffer signal CLKBUF in response to the CLK signal. The input buffer 308 introduces an input buffer delay D1, causing the CLKBUF signal to be delayed by the input buffer delay D1 relative to the CLK signal. A model delay line 310 receives the CLKBUF signal and generates an up-count delayed clock signal CLKUP having a model delay D1+D2
bold> relative to the CLKBUF signal. The model delays D1 and D2 simulate the delay D1 introduced by the input buffer 308 and a delay D2 introduced by an output buffer (not shown).
[0026] The ring oscillator 302 includes a NAND gate 314A and a plurality of inverters 314B-G connected in series, with the outputs from the NAND gate 314A and inverters 314A-G generating tap clock signals T1-T7
bold>, respectively. The NAND gate 314A includes a second input that receives the CLKUP signal. Each tap clock signal T1-T7
bold> has a unit fine delay UFD relative to the preceding tap clock signal, and also has a corresponding delay relative to the tap clock signal T7. The tap clock signal T7 from the final inverter 314G is applied through an inverter 315 to generate an oscillator clock signal CLKOSC. The unit fine delay UFD corresponds to the respective propagation delays of the AND gate 314A and the inverters 314B-G. Once skilled in the art will understand suitable circuitry for forming the NAND gate 314A having approximately the same unit fine delay UFD as the inverters 314B-G. Thus, the tap clock signal T1 is inverted and has a delay UFD relative to the tap clock signal T7, as does the tap clock signal T2 relative to the tap clock signal T1, and so on for the remaining tap clock signals T3-T6
bold>. The fine delay circuitry 306 utilizes the tap clock signals T1-T7
bold> in defining the fine delay FD of the CLKDEL signal, as will be described in more detail below. The ring oscillator 302 may include more or fewer inverters 324, as will be appreciated by those skilled in the art.
[0027] The coarse delay circuitry 304 includes an up/down coarse delay counter 316 that is clocked by the CLKOSC signal and develops a coarse delay count CDC in response to the CLKOSC signal. The counter 316 receives the CLKUP signal on an up count input, and operates in an up-count mode in response to rising edge of the CLKUP signal to increment the CDC count in response to each rising edge of the CLKOSC signal. The counter 316 operates in the up-count mode until a rising edge of the CLKIRUF signal is received on a down-count input. In response to the rising edge of the CLKBUF signal, the counter 316 operates in a down-count mode to decrement the CDC count in response to each rising edge of the CLKOSC signal. In operation, the counter 316 operates in the up-count mode in response to a rising-edge of the CLKUP signal to increment the CDC count from an initial value responsive to each rising-edge of the CLKOSC signal. When the counter 316 receives a rising-edge of the CLKBUF signal, operation in the down-count mode commences and the counter decrements the CDC count responsive to each rising edge of the CLKOSC signal to decrement the CDC count from the final value reached in the up-count mode to the initial value. Each increment or decrement of the CDC count corresponds to a period TCK of the CLKOSC signal since the CDC count is incremented or decremented in response to each rising edge of the CLKOSC signal. If a unit coarse delay UCD is defined as being equal to the period TCK of the CLKOSC signal, then each unit coarse delay equals fourteen unit fine delays UFD (UCD=14×UFD) since the CLKOSC signal propagates through the NAND gate 314A and each inverter 314B-G twice during each cycle of the CLKOSC signal. A digital comparator 318 receives the CDC count, and generates an active coarse enable signal CEN when the CDC count is equal to the initial value.
[0028] The fine delay circuitry 306 includes a latch and compare circuit 320 that latches the tap clock signals T1-T7
bold> from the ring oscillator 302 in response to a rising edge of the CLKBUF signal. In this way, the latch and compare circuit 320 captures the state of the ring oscillator 302 at a given point in time (i.e., at the rising edge of the CLKBUF signal). The latch and compare circuit 320 thereafter generates a plurality of fine delay signals FD1-FD7
from the latched tap clock signals T1-T7
bold>. More specifically, the latch and compare circuit 320 performs an XOR operation on each pair of adjacent tap clock signals T1-T7
bold>, with the result of each XOR operation generating the corresponding FD1-FD7
signal. For example, the latch and compare circuit 320 performs an XOR of the tap clock signals T1 and T2 to generate the FD1 signal, performs an XOR of the tap clock signals T2 and T3 to generate the FD2 signal, and so on, with the XOR of the tap clock signals T7 and T1 generating the FD7 signal.
[0029] In operation, the latch and compare circuit 320 will activate the FD1-FD7
signal that corresponds to the location of the rising or falling edge of the CLKOSC at the point in time that a rising edge of the CLKBUF signal occurs. In this way, the latch and compare circuit 320 latches the location of the rising or falling edge of the clock signal that is propagating through the NAND gate 314A and inverters 314B-G when a rising edge of the CLKBUF signal occurs. This is true because during operation of the ring oscillator 302, rising and falling edges of the tap clock signal T1 propagate through the NAND gate 314A and inverters 314A-G to thereby sequentially generate corresponding rising and falling edges of the tap clock signals T2-T7
bold>. At any given point in time, one of the NAND gate 314A and inverters 314B-G will be developing the rising or falling edge of the tap clock signal T7. The XOR of the pair of tap clock signals T1-T7
bold> associated with this particular NAND gate 314A or inverter 314B-G will equal “0,”, while the XORs of all other tap clock signal pairs will equal “1.” This is understood by noting that any inverter 314BA-G or the NAND gate 314A that is not developing the rising or falling edge of the tap clock signal T7 will have either a high input and low output or vice versa, and thus the XOR of the associated tap clock signals T1-T7
bold> will equal 1. In contrast, the NAND gate 314A or inverter 314B-G that is developing the edge of the tap clock signal T7 will have an input tap clock signal T1-T7
bold> having the same logic level as the output tap clock signal, and thus the XOR of these tap clock signals will equal 0. The logic levels of the input and output tap clock signals T1-T7
bold> of the NAND gate 314A or inverter 314B-G that is developing the edge of the tap clock signal T7 are the same due to the propagation delays of the NAND gate and inverters, as will be appreciated by those skilled in the art. For example, if the NAND gate 314A is developing the rising edge of the tap clock signal T1, the inverter 314G will first generate the rising edge of the tap clock signal T7 and this rising edge is applied to the NAND gate 314A. Prior to the rising edge of the tap clock signal T7 being applied to the NAND gate 314A, the NAND gate drives the T1 signal high. Thus, when the rising edge of the tap clock signal T7 is initially applied to the input of the NAND gate 314A, the NAND gate has a high input (tap clock signal T7) and a high output (T1 signal). If this is the point at which the T7 and T1 signals are latched, the XOR of these signals will equal 0, which corresponds to the FD1 signal.
[0030] A fine delay transform circuit 322 receives the FD1-7
bold> signals from the latch and compare circuit 320 and processes these signals to select one of a plurality of fine delay control signals FDC1-7<
/bold>, as will be explained in more detail below. In response to a rising edge of the CEN signal, the transform circuit 322 activates the selected one of the FDC1-7<
/bold> signals. A plurality of transmission gates 324A-G receive the FDC1-7<
/bold> signals, respectively, and also receive the tap clock signal T1-T7
bold> on respective first signal terminals. A second signal terminal of each transmission gate 324A-G is coupled to a first input of an AND gate 326. In response to the FDC1-7<
/bold> signals, a selected one of the transmission gates 324A-G turns ON and outputs the corresponding tap clock signal T1-T7
bold> as a fine enable signal FEN on the second signal terminal. For example, when the FDC3 signal is activated, the transmission gate 324C turns ON and outputs the T3 signal as the FEN signal. The AND gate 336 also receives the CEN signal from the comparator 318 on a second input and develops the delayed clock signal CLKDEL in response to the CEN and FEN signals. The CLKDEL signal has a desired delay relative to particular rising edges of the CLK signal, as will be described in more detail below.
[0031] The overall operation of the SMD 300 will now be described in more detail with reference to the block diagram of FIG. 3 and a signal timing diagram of FIG. 4 that illustrates various signals generated by the SMD during operation. In the example of FIG. 4, the up/down coarse delay counter 316 initially sets the CDC count to a value of zero, and the transmission gates 324A-G are initially assumed to all be turned OFF and the FEN signal to be low so that the AND gate 326 drives the CLKDEL low. At a time T0, an initial rising edge N of the CLK signal occurs and the input buffer 308 drives the CLKBUF signal high the delay D1 later at a time T1 in response to the rising edge of the CLK signal. In response to the rising edge of the CLKBUF signal, the model delay line 310 drives the CLKUP signal high the model delay D1+D2
bold> later at a time T2. Note that the rising edge of the CLKBUF signal is also applied to the latch and compare circuit 320, but that at this point the operation of latch and compare circuit in response to this signal does not affect operation of the SMD 300 and is thus ignored in this description.
[0032] In response to the CLKUP signal at the time T2, the ring oscillator 302 is activated (i.e., the NAND gate 314A is enabled and the corresponding edge of a clock signal begins propagating through the NAND gate and inverters 314B-G). The delay counter 316 also begins operating in the up-count mode responsive to the CLKUP signal, and increments the CDC count in response to each rising edge of the CLKOSC signal from the ring oscillator 302. The counter 316 increments the CDC count in response to each rising edge of the CLKOSC signal until a time T3, which corresponds to the last rising edge of the CLKOSC signal that occurs before the next rising edge of the CLKBUF signal is applied to the counter 316 at a time T4. The rising edge of the CLKBUF signal at the time T4 occurs in response to the next rising edge N+1 of the CLK signal. In response to the rising edge of the CLKBUF signal at the time T4, the counter 316 commences operation in the down-count mode and begins decrementing the CDC count at the time T5 in response to the next rising edge of the CLKOSC signal. Also in response to the rising edge of the CLKBUF signal at time T4, the latch and compare circuit 320 latches the state of the tap clock signals T1-T7
bold> at this point in time. As indicated in FIG. 4, the period from the time T2 until the time T3 is designated an up count coarse delay UCD, and the period from the time T3 to the time T4 is designated an up count fine delay UFD, with the sum of the delays UCD+UFD equaling a delay TCK−(D1+D2), where TCK is the period of the CLK signal. The latch and compare circuit 320 generates the FD1-FD7
signals indicating the location of the current edge of the CLKOSC signal in the ring oscillator 302 at the time T4, and the fine delay transform circuit 322 thereafter activates one of the FDC1-7<
/bold> signals in response to the FD1-FD7
signals. The activated FDC1-7<
/bold> signal activates the corresponding transmission gate 324A-G to thereby output the corresponding tap clock signal T1-T7
bold> as the FEN signal, as previously described.
[0033] From the time T4 to a time T6 the delay counter 316 continues operating in the down-count mode and decrements the CDC count in response to each rising edge of the CLKOSC signal. At the time T6, the digital comparator 318 determines the CDC count is equal to the initial value and activates the CEN signal to thereby enable the NAND gate 326. At a time T7, the activated transmission gate 324A-G outputs the selected tap clock signal T1-T7
bold> as the FEN signal to the NAND gate 326. The period from the time T4 until the time T6 is designated a down-count coarse delay DCD, and the period from the time T6 to the time T7 is designated a down-count fine delay DFD, with the sum of the delays DCD+DFD equaling the delays UCD+UFD and thus equaling TCK−(D1+D2). At the time T7, the AND gate 326 receives the high FEN and CEN signals and accordingly drives the CLKDEL signal high, with the CLKDEL signal having a desired delay relative to the N+2 rising edge of the CLK signal. Thus, the SMD 300 generates the CLKDEL signal having a rising edge having a desired delay relative to the N rising edge of the CLK signal and in this way synchronizes the CLK and CLKDEL signals.
[0034] In the SMD 300, the generated CLKDEL signal has rising edges that are synchronized with every other rising edge of the CLK signal. For example, the initial rising edge of the CLKDEL signal occurs at the time T7 as just described, and the next rising edge occurs at a time T9 in synchronism with the N+4 rising edge of the CLK signal. Thus, in the embodiment of FIG. 3, the CLKDEL signal is only synchronized with alternate rising edges of the CLK signal. This is true because the up/down counter 316 begins operation in the down-count mode to time the delay DCD in response to the intervening rising edges of the CLK signal (actually in response to the CLKBUF signal generated in response to the intervening rising edges of the CLK signal). For example, in the example of FIG. 4 the N+1 rising edge of the CLK signal generates the CLUBUF signal at the time T4 that place the counter 316 in the down-count mode of operation. Since the counter 316 cannot be simultaneously operating in the up-count mode to time the delay UCD for the N+1 edge of the CLK signal, only alternate rising edges of CLK can be synchronized in the SMD 300. To generate a CLKDEL signal having rising edges synchronized to each rising edge of the CLK signal, another SMD 300 could simply be utilized, with the CLKDEL signals from each SMD then being applied through an OR gate (not shown) to clock the output buffer 312, as will be appreciated by those skilled in the art.
[0035] In the SMD 300, the single ring oscillator 302 is utilized to replace the large and relatively high-power forward and backward delay lines 108, 114 previously described with reference to the SMD 100 of FIG. 1. Moreover, the single ring oscillator 302 is utilized in generating both the coarse and fine delays of the CLKDEL signal. By utilizing the ring oscillator 302, a wide range of CLK signals may be synchronized, with a low or frequency CLK signals having correspondingly longer periods being accommodated merely by increasing the number of bits of the up/down coarse delay counter 316, as will be appreciated by those skilled in the art.
[0036] In addition, with the approach utilized by the SMD 300 in generating the CLKDEL signal, once the initial up-count delay UCD+UFD is determined, this delay may be mirrored or replayed in a variety of different ways, such as by another counter and ring oscillator circuit that is initialized with these values. Also, the value of the measured up-count delay UCD+UFD can be varied, such as dividing or multiplying the delay by an integer to thereby generate multiples or submultiples of the delay. In this way, the measured up-count delay UCD+UFD can be used, for example, to generate a clock signal having a frequency that is a multiple of the frequency of an applied clock signal.
[0037] Another situation where the use of separate counters and ring oscillators for measurement and replay is where the required model delay D1+D2
bold> generated by the delay line 310 (FIG. 3) is longer than a single cycle of the applied clock signal. When the model delay D1+D2
bold> is greater than a cycle of the applied clock signal, the measurement interval must be at least two clock cycles long to allow the up-count delay UCD+UFD to be properly measured. This is understood by referring to FIG. 4 and noting that if the model delay D1+D2
bold> is greater than a cycle of the applied CLK signal, the rising edge of the CLKBUF signal at time T4, which is generated in response to the N+1 rising edge of the CLK signal at time T3, may not be used to terminate measurement of the up-count delay UCD+UFD since the model delay alone could extend beyond the time T4. In this situation, more SMDs 300 are needed to generate each edge of the applied CLK signal since each SMD requires longer to generate the respective delayed edge, and during this longer time additional edges of the applied CLK signal occur. This will be better understood with reference to FIG. 7 below which illustrates an SMD 700 including four SMDs that operate in the same way as the SMD 300 to generate all rising and falling edges of the applied CLK signal. If the model delay D1+D2
bold> is greater than a cycle of the CLK signal but less than two cycles, the SMD 700 would require eight SMDs equivalent to the SMD 300, unless the measure and replay functions are separated and thereby performed by different counters and ring oscillators. If the measure and replay functions are separated, only one measure circuit and four replay circuits are required, even where the model delay D1+D2
bold> is greater than a cycle of the applied CLK signal, as will be appreciated by those skilled in the art. FIG. 7 will be described in more detail below.
[0038] The operation of the transform circuit 322 in selecting which FDC 1-7 signal to activate will now be described in more detail with reference to FIG. 4 and a signal timing diagram of FIG. 5 that depicts several signals in the SMD 300 to illustrate the operation of the transform circuit 322 in more detail. In FIG. 5, the times T4-T7 correspond to the times with the same designations in FIG. 4. The transform circuit 322 selects the FDC1-7<
/bold> signal to compensate for the additional delay that occurs between the time T4 and time T5 in FIG. 4, as will now be described in more detail. As illustrated in FIG. 5, when the rising edge of the CLKBUF signal occurs at the time T4 the corresponding up-count fine delay UFD is defined and the total delay UCD+UFD developed in the up-count mode is defined. The UFD delay corresponds to the location of the current edge of the CLKOSC signal in the ring oscillator 302 at the time T4. At the time T4, the up-count mode is terminated and the down-count mode of operation begins. Thus, the delay developed during the down-count mode includes a residual delay RD corresponding to the period between the times T4 and T5. Even though the counter 316 is not clocked until the time T5 to begin decrementing the CDC count in the down-count mode, this residual delay RD is part of the delay developed during the down-count mode. Accordingly, the down-count fine delay DFD corresponding to the period from time T6 to time T7, which is developed by the transform circuit 322, must account for the residual delay RD. Thus, the transform circuit 322 selects the FDC1-7<
/bold> signal that makes the DFD delay equal to the UFD minus the RD delay (DFD=UFD−RD).
[0039] Table 1 below illustrates in table form the operation of the transform circuit 322 determining the location of the rising or falling edge of the clock signal propagating through the ring oscillator 302 and, from this determined location, selecting which tap signal T1-T7
bold> that is to be output to activate the CLKDEL signal.
1| TABLE 1 |
|
|
| Operation of Transform Fine Delay Transform Circuit 322 |
| in Mapping Measure and Replay Functions of Ring Oscillator 302 |
| During Measure | During Replay |
| | | | Selected T1-T7 |
| | | | Signal from |
| | | | RO stage |
| RO Stored | Stored | Ending Coarse | Ending | output as Fine |
| Stage (i.e., | State of | Down Count | State of | Output Signal |
| active FD1-7) | T7 signal | (CDC) | T7 signal | FEN |
|
| 1 | 0 | 0 | 0 | T1 |
| 2 | 0 | 0 | 0 | T3 |
| 3 | 0 | 0 | 0 | T5 |
| 4 | 0 | 0 | 0 | T7 |
| 5 | 0 | 0 | 1 | T2 |
| 6 | 0 | 0 | 1 | T4 |
| 7 | 0 | 0 | 1 | T6 |
| 1 | 1 | −1* | 0
| T1 |
| 2 | 1 | −1* | <
td>0T3 |
| 3 | 1 | −1*
td> | 0 | T5 |
| 4 | 1 | −
1* | 0 | T7 |
| 5 | 1 | −1* | 1 | T2 |
| 6 | 1 | −1* | 1 | T4 |
| 7 | 1
| −1* | 1 | T6 |
|
| *Count down past 0 to −1 (i.e . . . 3, 2, 1, 0, −1, . . . ) |
[0040] The columns of Table 1 will be referred to as columns 1-5 from left to right in the following discussion. Column 1 illustrates the location of the rising or falling edge of the clock signal propagating through the ring oscillator 302 in the form of the activated FD1-FD7
signal from the latch and compare circuit 320. When the latch and compare circuit 320 latches the states of the T1-T7
bold> signals and activates one of the FD1-FD7
signals, the latched T7 signal will be either a binary “1” or “0” as indicated in the column 2 of Table 1. The columns 1 and 2 illustrate the final state of the various signals received by the transform circuit 322.
[0041] Columns 3 indicates the ending value of the down count CDC has when the CEN signal is activated, and as indicated by the “*” in rows 8-14 in Table 1 the CDC count goes past zero to −1 in some cases before the CEN signal is activated. Column 4 indicates the binary state of the T7 signal when the CDC count reaches the value designated in column 3, and column 5 indicates which T1-T7
bold> signal is output as the CEN signal to thereby activate the CLKDEL signal. The transform circuit 322 activates the appropriate FDC1-FDC7 signal to output the desired T1-T7
bold> signals, respectively. As the fifth row of Table 1 illustrates; when the FD5 signal is activated and the latched T7 signal is a binary 0 at the end of the measurement interval, the transform circuit 322 thereafter outputs the T2 signal as the CEN signal during the replay interval when the CDC count equals 0. Thus, Table 1 illustrates the operation of the transform circuit 322 for all possible latched combinations of the T1-T7
bold> signals at the end of the measure interval and the T1-T7
bold> signal output as the CEN signal at the end of the corresponding replay interval, as will be understood by those skilled in the art.
[0042] FIG. 6 is a functional block diagram and schematic illustrating one embodiment of the ring oscillator 302 and the latch and compare circuit 320 of FIG. 3. The ring oscillator 302 includes a NAND gate 600 coupled in series with a plurality of series-connected inverters 602A-F, with the NAND gate and inverters 602-612
generating tap clock signals T1-T7
bold>, respectively. The NAND gate 600 corresponds to the inverter 314G in FIG. 3, and has a unit fine delay UFD that is matched to the unit fine delays of the inverters 602A-F, which correspond to the inverters 314A-F in FIG. 3. A second input of the NAND gate 600 receives a start signal START that goes low to cause the NAND gate 600 and inverters 602A-F to drive the T1-T7
bold> signals to initial values, and thereafter goes high to enable the AND gate and thereby initiate operation of the ring oscillator 302.
[0043] The tap clock signals T1-T7
bold> are applied through respective inverters 604A-G to a plurality of sample and hold circuits 606A-G. Each sample and hold circuit 606A-G latches the signal from the corresponding inverter 604A-G in response to a rising edged of a sample signal SAMPLE, and places the latched signal on an output. When the SAMPLE signal is low, each sample and hold circuit 606A-G drives the signal on its output low. The CEN signal is applied through a buffer 608 to generate the SAMPLE signal. A plurality of XOR gates 610A-G receive the outputs from pairs of sample and hold circuits 606A-G to thereby provide adjacent tap clock signals T1-T7
bold> to each XOR gate. The XOR gates 610A-G generate the FD1-7
bold> signals, respectively, in response to the outputs from the corresponding sample and hold circuits 606A-G. For example, the sample and hold circuits 606A and 606B latch the states of the tap clock signals T1 and T2, respectively, in response to a rising edge of the SAMPLE signal. The sample and hold circuits 606A, 606B apply the latched T1, T2 signals to the XOR gate 606A, which develops the FD1 signal having a value corresponding the XOR of the sampled T1 and T2 signals.
[0044] In operation, the START signal initially goes inactive low, causing the NAND gate 600 to drive the T7 signal high and the inverters 602A-F to drive the signals T1-T6
bold> either high or low in response to the high T7 signal. At this point, the SAMPLE signal is low, causing each sample and hold circuit 606A-G to drive its output low which, in turn, causes the XOR gates 610A-G to drive the FD1-7
bold> signals low. The START signal thereafter goes active high, causing the NAND gate 600 to drive the tap clock signal T7 low and starting an edge propagating through the inverters 604A-F and the NAND gate 600, as will be appreciated by those skilled in the art. When ever the CEN signal goes high, the buffer 608 drives the SAMPLE signal high, and the sample and hold circuits 606A-G latch the tap clock signals T1-T7
bold> applied through the inverters 604A-G and apply these latched data clock signals to the XOR gates 610A-G. The XOR gates 610A-G thereafter generate the FD1-7
bold> signals in response to the applied tap clock signals T1-T7
bold>. The XOR gate 610A-G that receives the pair of tap clock signals T1-T7
bold> from the inverter 604A-G that was generating the current edge of the CLKOSC signal when the SAMPLE signal went high (i.e., both tap clock signals either high or low), drives the corresponding FD1-7
bold> signal low.
[0045] FIG. 7 is a functional block diagram illustrating an SMD 700 that generates a synchronized clock signal CLKSYNC having rising and the falling edges that are synchronized with corresponding rising and falling edges of an applied clock signal CLK. The SMD 700 includes an input buffer 702 and a delay line 704 that develop a CLKBUF and a CLKUP signal, respectively, in response to an applied clock signal CLK in the same way as previously described for the corresponding components in the SMD 300 of FIG. 3. The CLKBUF and CLKUP signals are applied to first and second rising-edge ring oscillator SMD circuits 706, 708 that correspond to the components in the SMD 300 that receive the CLKBUF and CLKUP signals and generate the CLKDEL signal in response to these signals. The circuit 706 generates a rising-edge delayed clock signal CLKDELR1 having a desired delay relative to even alternate rising edges of the CLK signal, and the circuit 708 generates a rising-edge delayed clock signal CLKDELR2 having a desired delay relative to odd alternate rising edges of the CLK signal. An OR gate 710 receives the CLKDELR1-2 signals and generates a rising edge strobe RES in response to these signals. An RS flip-flop 712 formed by two cross-coupled NOR gates 714, 716 receive the RES signal on a set input and generates a CLKDEL signal having rising edges that have a predetermined delay relative to rising edges of the CLK signal. In response to the CLKDEL signal, an output buffer 718 generates the CLKSYNC signal having rising edges that are synchronized with rising edges of the CLK signal
[0046] An input buffer 720 and a delay line 722 develop a CLKBUF* and a CLKUP* signal, respectively, in response to an applied complementary clock signal CLK* in the same way as previously described for the corresponding components in the SMD 300 of FIG. 3. The CLKBUF*, CLKUP* signals are applied to SMD circuits 724, 726 that correspond to the components in the SMD 300 that receive the CLKBUF and CLKUP signals and generate the CLKDEL signal in response to these signals. The circuit 724 generates a falling-edge delayed clock signal CLKDELF1 having a desired delay relative to even alternate falling edges of the CLK signal, and the circuit 726 generates a falling-edge delayed clock signal CLKDELF2 having a desired delay relative to odd alternate falling edges of the CLK signal. The OR gate 710 receives the CLKDELF1-2 signals and generates a falling edge strobe FES in response to these signals. The RS flip-flop 712 receives the FES signal on a reset input and generates the CLKDEL signal having falling edges that have a predetermined delay relative to falling edges of the CLK signal. The output buffer 718 generates the CLKSYNC signal having falling edges that are synchronized with falling edges of the CLK signal in response to the CLKDEL signal.
[0047] FIG. 8 is a functional block diagram of a memory device 800 including the SMD 300 of FIG. 3 and/or the SMD 700 of FIG. 7. The memory device 800 in FIG. 8 is a double-data rate (DDR) synchronous dynamic random access memory (“SDRAM”), although the principles described herein are applicable to any memory device that may include a delay-locked loop for synchronizing internal and external signals, such as conventional synchronous DRAMs (SDRAMs), as well as packetized memory devices like SLDRAMs and RDRAMs, and are equally applicable to any integrated circuit that must synchronize internal and external clocking signals.
[0048] The memory device 800 includes an address register 802 that receives row, column, and bank addresses over an address bus ADDR, with a memory controller (not shown) typically supplying the addresses. The address register 802 receives a row address and a bank address that are applied to a row address multiplexer 804 and bank control logic circuit 806, respectively. The row address multiplexer 804 applies either the row address received from the address register 802 or a refresh row address from a refresh counter 808 to a plurality of row address latch and decoders 810A-D. The bank control logic 806 activates the row address latch and decoder 810A-D corresponding to either the bank address received from the address register 802 or a refresh bank address from the refresh counter 808, and the activated row address latch and decoder latches and decodes the received row address. In response to the decoded row address, the activated row address latch and decoder 810A-D applies various signals to a corresponding memory bank 812A-D to thereby activate a row of memory cells corresponding to the decoded row address. Each memory bank 812A-D includes a memory-cell array having a plurality of memory cells arranged in rows and columns, and the data stored in the memory cells in the activated row is stored in sense amplifiers in the corresponding memory bank. The row address multiplexer 804 applies the refresh row address from the refresh counter 808 to the decoders 810A-D and the bank control logic circuit 806 uses the refresh bank address from the refresh counter when the memory device 800 operates in an auto-refresh or self-refresh mode of operation in response to an auto- or self-refresh command being applied to the memory device 800, as will be appreciated by those skilled in the art.
[0049] A column address is applied on the ADDR bus after the row and bank addresses, and the address register 802 applies the column address to a column address counter and latch 814 which, in turn, latches the column address and applies the latched column address to a plurality of column decoders 816A-D. The bank control logic 806 activates the column decoder 816A-D corresponding to the received bank address, and the activated column decoder decodes the applied column address. Depending on the operating mode of the memory device 800, the column address counter and latch 814 either directly applies the latched column address to the decoders 816A-D, or applies a sequence of column addresses to the decoders starting at the column address provided by the address register 802. In response to the column address from the counter and latch 814, the activated column decoder 816A-D applies decode and control signals to an I/O gating and data masking circuit 818 which, in turn, accesses memory cells corresponding to the decoded column address in the activated row of memory cells in the memory bank 812A-D being accessed.
[0050] During data read operations, data being read from the addressed memory cells is coupled through the I/O gating and data masking circuit 818 to a read latch 820. The I/O gating and data masking circuit 818 supplies N bits of data to the read latch 820, which then applies two N/2 bit words to a multiplexer 822. In the embodiment of FIG. 3, the circuit 818 provides 64 bits to the read latch 820 which, in turn, provides two 32 bits words to the multiplexer 822. A data driver 824 sequentially receives the N/2 bit words from the multiplexer 822 and also receives a data strobe signal DQS from a strobe signal generator 826 and a delayed clock signal CLKDEL from the SMD 300/700
. The DQS signal is used by an external circuit such as a memory controller (not shown) in latching data from the memory device 800 during read operations. In response to the delayed clock signal CLKDEL, the data driver 824 sequentially outputs the received N/2 bits words as a corresponding data word DQ, each data word being output in synchronism with a rising or falling edge of a CLK signal that is applied to clock the memory device 800. The data driver 824 also outputs the data strobe signal DQS having rising and falling edges in synchronism with rising and falling edges of the CLK signal, respectively. Each data word DQ and the data strobe signal DQS collectively define a data bus DATA. As will be appreciated by those skilled in the art, the CLKDEL signal from the SMD is a delayed version of the CLK signal, and the SMD 300/700
adjusts the delay of the CLKDEL signal relative to the CLK signal to ensure that the DQS signal and the DQ words are placed on the DATA bus in synchronism with the CLK signal, as previously described with reference to FIGS. 3-6. The DATA bus also includes masking signals DM0-M, which will be described in more detail below with reference to data write operations.
[0051] During data write operations, an external circuit such as a memory controller (not shown) applies N/2 bit data words DQ, the strobe signal DQS, and corresponding data masking signals DM0-X on the data bus DATA. A data receiver 828 receives each DQ word and the associated DM0-X signals, and applies these signals to input registers 830 that are clocked by the DQS signal. In response to a rising edge of the DQS signal, the input registers 830 latch a first N/2 bit DQ word and the associated DM0-X signals, and in response to a falling edge of the DQS signal the input registers latch the second N/2 bit DQ word and associated DM0-X signals. The input register 830 provides the two latched N/2 bit DQ words as an N-bit word to a write FIFO and driver 832, which clocks the applied DQ word and DM0-X signals into th