US20140015573A1 - Method and apparatus to automatically scale dll code for use with slave dll operating at a different frequency than a master dll - Google Patents
Method and apparatus to automatically scale dll code for use with slave dll operating at a different frequency than a master dll Download PDFInfo
- Publication number
- US20140015573A1 US20140015573A1 US13/546,540 US201213546540A US2014015573A1 US 20140015573 A1 US20140015573 A1 US 20140015573A1 US 201213546540 A US201213546540 A US 201213546540A US 2014015573 A1 US2014015573 A1 US 2014015573A1
- Authority
- US
- United States
- Prior art keywords
- clock signal
- dll
- counter
- delay
- frequency
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
- H03L7/0814—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used the phase shifting device being digitally controlled
Definitions
- This invention relates to electronic circuits, and more particularly, to clocking circuits.
- Memory interfaces in electronic systems may be arranged to interface with more than one type of memory.
- a memory interface may be coupled to a storage-type memory, such as flash, and one of various types of random access memory (RAM).
- RAM random access memory
- these memories may be source synchronous.
- a clock may be sourced with the data provided.
- a clock may be provided when data is returned from the memory during a read.
- multiple clock domains may be created. In some cases, these clock signals may be delayed by at least a portion of a cycle for conducting reads to ensure enough set-up and hold time for the incoming data.
- multiple delay locked loops may be implemented to provide the delays.
- a DLL for one of the clock domains may be designated as a master DLL, while DLLs for the other clock domains may be designated as slave DLLs.
- the master DLL may be configured to provide the desired delay to the respective clock signal in its domain. A delay code indicating this delay may be provided to the slave DLLs, which may set their respective delay accordingly.
- an apparatus includes a master DLL coupled to receive a first clock signal and a group of series-coupled slave DLLs coupled to receive a second clock signal.
- the frequency of the second clock signal is less than that of the first clock signal.
- the master DLL may provide a specified fraction of a cycle of the first clock signal (e.g., 1 ⁇ 4 clock cycle).
- Scaling circuitry coupled between the master DLL and the group of slave DLLs may receive the first and second clock signals and determine a ratio of their respective frequencies. Based on the ratio and a delay code from the first DLL, the scaling circuitry may generate an adjusted delay code received by the group of slave DLLs to set a delay for the second clock signal to the specified fraction.
- a method in one embodiment, includes providing first and second clock signals to scaling circuitry coupled between a master DLL and a group of slave DLLs coupled in series.
- the master DLL is coupled to receive the first clock signal
- the group of slave DLLs is coupled to receive the second clock signal, wherein the frequency of the second clock signal is less than that of the first.
- the method further includes the scaling circuitry determining a ratio of the first clock signal to the frequency of the second clock signal. Using this ratio, and a delay code provided from the master DLL, an adjusted delay code is generated to be provided to the group of slave DLLs.
- FIG. 1 is a block diagram of one embodiment of a system having a memory interface coupled to multiple types of memories.
- FIG. 2 is a block diagram of one embodiment of clocking circuitry within a memory interface.
- FIG. 3 is a block diagram of one embodiment of a scale detection circuit.
- FIG. 4 is a flow diagram illustrating one embodiment of a method for scaling a DLL code when master and slave DLLs operate at different frequencies.
- FIG. 5 is a block diagram of one embodiment of a system.
- circuits, or other components may be described as “configured to” perform a task or tasks.
- “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation.
- the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on.
- the circuitry that forms the structure corresponding to “configured to” may include hardware circuits.
- various units/circuits/components may be described as performing a task or tasks, for convenience in the description.
- system 2 includes a system on a chip (SoC) 10 , a double data rate (DDR) memory 12 , and a flash memory 14 .
- SoC 10 in the embodiment shown includes a memory interface in the form of memory controller 11 .
- SoC functional logic 15 Internally to SoC 10 , memory controller 11 is coupled to SoC functional logic 15 , which may include various types of logic such as processor cores, graphics processing units, input/output (I/O) interfaces, and so forth.
- Memory controller 11 in the embodiment shown is coupled to DDR memory 12 and flash memory 14 .
- DDR memory 12 may serve as a random access memory (RAM) during operation of system 2
- flash memory 14 may provide bulk storage. Both of these memories may provide a respective clock signal along with data to memory controller 11 during read cycles. More particular, DDR memory 12 is configured to provide the DDR clock signal, while the flash memory is configured to provide the flash clock signal.
- Clocking circuitry 21 in memory controller 11 may provide some delay to received clock signals to allow a sufficient amount of setup and hold time to correctly read the data.
- clocking circuit 21 may delay a received clock signal by 1 ⁇ 4 of its respective cycle.
- clocking circuit 21 may be configured to delay clock cycles by a fixed fractional amount of a cycle, irrespective of the frequency of that clock signal.
- fractional delay and related terms may refer to an amount of delay provided to a clock signal as a fraction of one of its cycles. For example, a clock signal may have a fractional delay of 1 ⁇ 4 of a clock cycle.
- two clock signals having different frequencies/periods may be delayed by a different amount of time, but may nevertheless be delayed by the same amount of fractional delay.
- two clock signals having different frequencies may be each be delayed by 1 ⁇ 4 cycle of fractional delay, even though the amount of time each is delayed (e.g., in terms of nanoseconds) is different.
- the fractional delay of a clock signal may also be expressed in terms of the percentage of a cycle for which it is delayed (e.g., 1 ⁇ 4 cycle or 25% of a cycle).
- Each of the clock signals may be received by a delay locked loop (DLL) that may be an individual DLL or may be one of a number of series-coupled DLLs.
- the DLL or series of DLLs may provide the desired delay in terms of the fraction of a cycle for the respectively received clock signal.
- at least one of the DLLs may be designated as a master DLL, while at least one of the DLLs may be designated as a slave DLL.
- the master DLL may provide the desired fractional amount of delay and may generate a corresponding delay code. Based on the delay code, the slave DLLs may also generate the desired fractional amount of delay.
- the frequency of the DDR clock is greater than the flash clock.
- the DDR clock may be received by a DLL designated as the master, while the flash clock may be received by a number of series coupled DLLs which are designated as slave DLLs. Since the frequency of the DDR clock is greater than that of the flash clock, the delay code generated by the master DLL cannot be used directly to set the delay for the slave DLLs such that they both provide the same fractional amount of delay (e.g., 1 ⁇ 4 cycle for each of their respectively received clock signals). Accordingly, clocking circuit 21 includes scaling circuitry configured to generate an adjusted delay code based on a ratio of the frequencies of the clock signals and on the delay code provided by the master DLL. The adjusted delay code may be provided to the slave DLLs to set the desired fractional amount of delay.
- clocking circuit 21 includes a first DLL 22 coupled to receive the DDR clock signal, and a series-coupled chain of DLLs 22 coupled to receive the flash clock signal.
- the DLL 22 coupled to receive the DDR clock in the embodiment shown is designated as the master DLL, while the DLLs of the series-coupled chain are designated as slave DLLs.
- Each of the DLLs 22 is substantially identical to the others.
- each of DLLs 22 may include a phase detector, a loop filter, and a number of delay elements. Various ones of the delay elements may be activated to set the desired delay, while other delay elements may remain inactive during operation.
- the master DLL 22 may receive a signal from another source (not shown) indicating the amount of fractional delay desired. Responsive thereto, the master DLL may configure itself by enabling particular ones of its respective delay elements until the Delayed DDR clock signal lags the input DDR clock signal by the desired amount of fractional delay.
- a raw delay code may be provided by the master DLL 22 indicative of the number of delay elements activated to achieve the desired fractional delay.
- the flash clock signal has a lower frequency than the DDR clock signal in the embodiment shown, additional delay elements are utilized to achieve the same amount of fractional delay as provided by the singular master DLL 22 . Furthermore, since multiple slave DLLs 22 are used to achieve the desired fractional delay, the raw delay code generated by the master DLL 22 is not directly applied to the slave DLLs.
- scaling circuit 23 is implemented.
- scaling circuit 22 is configured to generate an adjusted delay code based on the raw delay code and a ratio of the DDR clock frequency to the flash clock frequency.
- the scaling circuit 23 is coupled to receive both the DDR clock signal, the flash clock signal, and the raw delay code as inputs.
- a scale detect circuit 24 in the embodiment shown is configured to determine the ratio, or scale, of the DDR clock frequency to the flash clock frequency.
- the scale value is provided to scaler 25 , which is configured to adjust the raw delay code by a scaling factor in order to generate the adjusted delay code.
- the adjusted delay code is then provided to the slave DLLs 22 . Responsive to the adjusted delay code, the slave DLLs 22 activate selected ones of their respective delay elements to provide the desired fractional delay to the Flash clock signal, thereby producing the delayed flash clock signal.
- FIG. 3 is a block diagram of one embodiment of scale detect circuit 24 .
- scale detect circuit 24 includes a first counter 32 that increments based on receiving the DDR clock signal, and a second counter 37 that increments based on receiving the flash clock signal.
- first counter 32 that increments based on receiving the DDR clock signal
- second counter 37 that increments based on receiving the flash clock signal.
- Scale detect circuit 24 in the embodiment shown includes a reset circuit comprising reset detection circuit 33 and a first synchronizer 35 .
- Reset detection circuit 33 is coupled to receive Count A, i.e. the count value output from counter 32 .
- reset detection 33 asserts a reset signal that is passed to the correspondingly coupled synchronizer 35 .
- Synchronizer 35 in the embodiment shown is coupled is a double flop circuit coupled to receive the flash clock circuit. Accordingly, the reset signal output by reset detection circuit 33 is synchronized to the flash clock signal and provided to counter 37 . Responsive to receiving the reset signal, the output of counter 37 , Count B, is reset to zero. Generation of the reset signal when Count A is at zero may ensure that both counter 32 and counter 37 begin incrementing from zero during the process of determining the ratio of the DDR clock frequency to the flash clock frequency.
- counter 32 is substantially identical to counter 37 . Accordingly, since counter 32 increments faster (since the DDR clock frequency is greater than the flash clock frequency), it will reach its maximum count value while counter 37 is still incrementing.
- Maximum count circuit 34 in the embodiment shown is coupled to receive Count A, and is configured to determine when counter 32 has reached its maximum count. When counter 32 has reached its maximum count, maximum count circuit 34 may assert a compare signal. The compare signal may be passed through another synchronizer 35 in order to synchronize it to the flash clock. The compare signal may then be received as in input to multiplexer 39 . When the compare signal is asserted on the select input of multiplexer 39 , Count B (the output of counter 39 ) is passed to synchronizer 38 . Since the maximum count value of counter 32 is a prior known value, the ratio of the two frequencies may be extrapolated from Count B alone when it is passed through multiplexer 39 .
- Count B may be passed as is to scaler 25 . Based on the value of Count B and the raw delay code, scaler 25 may generate the adjusted delay code.
- FIG. 4 is a flow diagram illustrating one embodiment of a method for scaling a DLL code when master and slave DLLs operate at different frequencies.
- Method 400 in the embodiment shown may be performed using various embodiments of the hardware/circuitry discussed above. It is further possible and contemplated that method 400 may be carried out using other embodiments of hardware/circuitry not explicitly discussed herein.
- Method 400 begins with providing a first clock signal to a first counter and a second clock signal to a second counter (block 405 ).
- the first clock signal may have a higher frequency than the second clock signal.
- the first clock signal may be that which is received by a master DLL, while the second clock signal is received by a slave DLL or a number of slave DLLs.
- the process of determining a ratio between the first and second clock frequencies may be initiated by resetting the first counter, and responsive thereto, resetting the second counter (block 410 ).
- the counters may then begin incrementing in synchronization with their respectively received clock signals (block 415 ). If the first counter has not yet reached its maximum count value (block 415 , no), counting may continue. When the first counter does finally reach its maximum count value (block 415 , yes), the count value of the second counter at that time may be determined (block 420 ).
- a ratio between the frequencies of the first and second clock signals may be determined (block 425 ).
- the ratio may be expressed in various ways, although in general, the generated value may be one from which the ratio of the frequencies may be derived.
- an adjusted delay code for the slave DLLs is generated (block 430 ).
- the system 150 includes at least one instance of an IC 5 (e.g., that implements SoC 10 of FIG. 1 ) coupled to one or more peripherals 154 and an external memory 158 .
- a power supply 156 is also provided which supplies the supply voltages to the IC 10 as well as one or more supply voltages to the memory 158 and/or the peripherals 154 .
- more than one instance of the IC 10 may be included (and more than one external memory 158 may be included as well).
- the peripherals 154 may include any desired circuitry, depending on the type of system 150 .
- the system 150 may be a mobile device (e.g. personal digital assistant (PDA), smart phone, etc.) and the peripherals 154 may include devices for various types of wireless communication, such as wifi, Bluetooth, cellular, global positioning system, etc.
- the peripherals 154 may also include additional storage, including RAM storage, solid-state storage, or disk storage.
- the peripherals 154 may include user interface devices such as a display screen, including touch display screens or multitouch display screens, keyboard or other input devices, microphones, speakers, etc.
- the system 150 may be any type of computing system (e.g. desktop personal computer, laptop, workstation, net top etc.).
- the external memory 158 may include any type of memory.
- the external memory 158 may be SRAM, dynamic RAM (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, LPDDR1, LPDDR2, etc.) SDRAM, RAMBUS DRAM, etc.
- DRAM dynamic RAM
- the external memory 158 may include one or more memory modules to which the memory devices are mounted, such as single inline memory modules (SIMMs), dual inline memory modules (DIMM5), etc.
Abstract
Description
- 1. Technical Field
- This invention relates to electronic circuits, and more particularly, to clocking circuits.
- 2. Description of the Related Art
- Memory interfaces in electronic systems may be arranged to interface with more than one type of memory. For example, a memory interface may be coupled to a storage-type memory, such as flash, and one of various types of random access memory (RAM). In some cases, these memories may be source synchronous. In a source synchronous system, a clock may be sourced with the data provided. Thus, in memory systems that implement source synchronous memories, a clock may be provided when data is returned from the memory during a read.
- Since multiple source synchronous memories may be coupled to a memory interface, multiple clock domains may be created. In some cases, these clock signals may be delayed by at least a portion of a cycle for conducting reads to ensure enough set-up and hold time for the incoming data. For multiple clock domains (e.g., from multiple source synchronous clocks from multiple memories), multiple delay locked loops (DLLs) may be implemented to provide the delays. To ensure consistency of the delay time across the clock domains, a DLL for one of the clock domains may be designated as a master DLL, while DLLs for the other clock domains may be designated as slave DLLs. The master DLL may be configured to provide the desired delay to the respective clock signal in its domain. A delay code indicating this delay may be provided to the slave DLLs, which may set their respective delay accordingly.
- A method and apparatus for scaling a DLL code for a slave DLL operating at a different frequency than a master DLL is disclosed. In one embodiment, an apparatus includes a master DLL coupled to receive a first clock signal and a group of series-coupled slave DLLs coupled to receive a second clock signal. The frequency of the second clock signal is less than that of the first clock signal. The master DLL may provide a specified fraction of a cycle of the first clock signal (e.g., ¼ clock cycle). Scaling circuitry coupled between the master DLL and the group of slave DLLs may receive the first and second clock signals and determine a ratio of their respective frequencies. Based on the ratio and a delay code from the first DLL, the scaling circuitry may generate an adjusted delay code received by the group of slave DLLs to set a delay for the second clock signal to the specified fraction.
- In one embodiment, a method includes providing first and second clock signals to scaling circuitry coupled between a master DLL and a group of slave DLLs coupled in series. The master DLL is coupled to receive the first clock signal, while the group of slave DLLs is coupled to receive the second clock signal, wherein the frequency of the second clock signal is less than that of the first. The method further includes the scaling circuitry determining a ratio of the first clock signal to the frequency of the second clock signal. Using this ratio, and a delay code provided from the master DLL, an adjusted delay code is generated to be provided to the group of slave DLLs.
- The following detailed description makes reference to the accompanying drawings, which are now briefly described.
-
FIG. 1 is a block diagram of one embodiment of a system having a memory interface coupled to multiple types of memories. -
FIG. 2 is a block diagram of one embodiment of clocking circuitry within a memory interface. -
FIG. 3 is a block diagram of one embodiment of a scale detection circuit. -
FIG. 4 is a flow diagram illustrating one embodiment of a method for scaling a DLL code when master and slave DLLs operate at different frequencies. -
FIG. 5 is a block diagram of one embodiment of a system. - While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.
- Various units, circuits, or other components may be described as “configured to” perform a task or tasks. In such contexts, “configured to” is a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation. As such, the unit/circuit/component can be configured to perform the task even when the unit/circuit/component is not currently on. In general, the circuitry that forms the structure corresponding to “configured to” may include hardware circuits. Similarly, various units/circuits/components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a unit/circuit/component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. §112, paragraph six interpretation for that unit/circuit/component.
- Turning now to
FIG. 1 , a block diagram of one embodiment of a system including a memory interface coupled to multiple types of memories. In the embodiment shown,system 2 includes a system on a chip (SoC) 10, a double data rate (DDR)memory 12, and aflash memory 14. Other components may also be included, but are not shown here for the sake of simplicity.SoC 10 in the embodiment shown includes a memory interface in the form ofmemory controller 11. Internally toSoC 10,memory controller 11 is coupled to SoCfunctional logic 15, which may include various types of logic such as processor cores, graphics processing units, input/output (I/O) interfaces, and so forth. -
Memory controller 11 in the embodiment shown is coupled toDDR memory 12 andflash memory 14.DDR memory 12 may serve as a random access memory (RAM) during operation ofsystem 2, whileflash memory 14 may provide bulk storage. Both of these memories may provide a respective clock signal along with data tomemory controller 11 during read cycles. More particular,DDR memory 12 is configured to provide the DDR clock signal, while the flash memory is configured to provide the flash clock signal. - Clocking
circuitry 21 inmemory controller 11 may provide some delay to received clock signals to allow a sufficient amount of setup and hold time to correctly read the data. In one embodiment, clockingcircuit 21 may delay a received clock signal by ¼ of its respective cycle. In general,clocking circuit 21 may be configured to delay clock cycles by a fixed fractional amount of a cycle, irrespective of the frequency of that clock signal. As defined herein, “fractional delay” and related terms may refer to an amount of delay provided to a clock signal as a fraction of one of its cycles. For example, a clock signal may have a fractional delay of ¼ of a clock cycle. Moreover, two clock signals having different frequencies/periods may be delayed by a different amount of time, but may nevertheless be delayed by the same amount of fractional delay. Thus, using the example above, two clock signals having different frequencies may be each be delayed by ¼ cycle of fractional delay, even though the amount of time each is delayed (e.g., in terms of nanoseconds) is different. The fractional delay of a clock signal may also be expressed in terms of the percentage of a cycle for which it is delayed (e.g., ¼ cycle or 25% of a cycle). - Each of the clock signals may be received by a delay locked loop (DLL) that may be an individual DLL or may be one of a number of series-coupled DLLs. The DLL or series of DLLs may provide the desired delay in terms of the fraction of a cycle for the respectively received clock signal. In one embodiment, at least one of the DLLs may be designated as a master DLL, while at least one of the DLLs may be designated as a slave DLL. The master DLL may provide the desired fractional amount of delay and may generate a corresponding delay code. Based on the delay code, the slave DLLs may also generate the desired fractional amount of delay.
- In the embodiment shown, the frequency of the DDR clock is greater than the flash clock. The DDR clock may be received by a DLL designated as the master, while the flash clock may be received by a number of series coupled DLLs which are designated as slave DLLs. Since the frequency of the DDR clock is greater than that of the flash clock, the delay code generated by the master DLL cannot be used directly to set the delay for the slave DLLs such that they both provide the same fractional amount of delay (e.g., ¼ cycle for each of their respectively received clock signals). Accordingly, clocking
circuit 21 includes scaling circuitry configured to generate an adjusted delay code based on a ratio of the frequencies of the clock signals and on the delay code provided by the master DLL. The adjusted delay code may be provided to the slave DLLs to set the desired fractional amount of delay. - Turning now to
FIG. 2 , a block diagram of one embodiment of clockingcircuit 21 is shown. In the embodiment shown, clocking circuit includes afirst DLL 22 coupled to receive the DDR clock signal, and a series-coupled chain ofDLLs 22 coupled to receive the flash clock signal. TheDLL 22 coupled to receive the DDR clock in the embodiment shown is designated as the master DLL, while the DLLs of the series-coupled chain are designated as slave DLLs. Each of theDLLs 22 is substantially identical to the others. Although not shown here, each ofDLLs 22 may include a phase detector, a loop filter, and a number of delay elements. Various ones of the delay elements may be activated to set the desired delay, while other delay elements may remain inactive during operation. - As noted above, it may be desired to delay both the DDR clock signal and the flash clock signal by a specified amount of fractional delay, e.g., by ¼ of a cycle. The
master DLL 22 may receive a signal from another source (not shown) indicating the amount of fractional delay desired. Responsive thereto, the master DLL may configure itself by enabling particular ones of its respective delay elements until the Delayed DDR clock signal lags the input DDR clock signal by the desired amount of fractional delay. A raw delay code may be provided by themaster DLL 22 indicative of the number of delay elements activated to achieve the desired fractional delay. - Since the flash clock signal has a lower frequency than the DDR clock signal in the embodiment shown, additional delay elements are utilized to achieve the same amount of fractional delay as provided by the
singular master DLL 22. Furthermore, sincemultiple slave DLLs 22 are used to achieve the desired fractional delay, the raw delay code generated by themaster DLL 22 is not directly applied to the slave DLLs. - To obtain the desired fractional delay in
slave DLLs 22, scalingcircuit 23 is implemented. In the embodiment shown, scalingcircuit 22 is configured to generate an adjusted delay code based on the raw delay code and a ratio of the DDR clock frequency to the flash clock frequency. The scalingcircuit 23 is coupled to receive both the DDR clock signal, the flash clock signal, and the raw delay code as inputs. A scale detectcircuit 24 in the embodiment shown is configured to determine the ratio, or scale, of the DDR clock frequency to the flash clock frequency. The scale value is provided toscaler 25, which is configured to adjust the raw delay code by a scaling factor in order to generate the adjusted delay code. The adjusted delay code is then provided to theslave DLLs 22. Responsive to the adjusted delay code, theslave DLLs 22 activate selected ones of their respective delay elements to provide the desired fractional delay to the Flash clock signal, thereby producing the delayed flash clock signal. -
FIG. 3 is a block diagram of one embodiment of scale detectcircuit 24. In the embodiment shown, scale detectcircuit 24 includes afirst counter 32 that increments based on receiving the DDR clock signal, and asecond counter 37 that increments based on receiving the flash clock signal. Thus, since the DDR clock has a higher frequency than the flash clock signal, counter 32 increments faster than counter 37 in this particular embodiment. - Scale detect
circuit 24 in the embodiment shown includes a reset circuit comprisingreset detection circuit 33 and afirst synchronizer 35.Reset detection circuit 33 is coupled to receive Count A, i.e. the count value output fromcounter 32. When the count ofcounter 32 is at zero,reset detection 33 asserts a reset signal that is passed to the correspondingly coupledsynchronizer 35.Synchronizer 35 in the embodiment shown is coupled is a double flop circuit coupled to receive the flash clock circuit. Accordingly, the reset signal output byreset detection circuit 33 is synchronized to the flash clock signal and provided to counter 37. Responsive to receiving the reset signal, the output ofcounter 37, Count B, is reset to zero. Generation of the reset signal when Count A is at zero may ensure that both counter 32 and counter 37 begin incrementing from zero during the process of determining the ratio of the DDR clock frequency to the flash clock frequency. - After both
counters counter 32 is substantially identical to counter 37. Accordingly, since counter 32 increments faster (since the DDR clock frequency is greater than the flash clock frequency), it will reach its maximum count value whilecounter 37 is still incrementing. -
Maximum count circuit 34 in the embodiment shown is coupled to receive Count A, and is configured to determine whencounter 32 has reached its maximum count. Whencounter 32 has reached its maximum count,maximum count circuit 34 may assert a compare signal. The compare signal may be passed through anothersynchronizer 35 in order to synchronize it to the flash clock. The compare signal may then be received as in input tomultiplexer 39. When the compare signal is asserted on the select input ofmultiplexer 39, Count B (the output of counter 39) is passed tosynchronizer 38. Since the maximum count value ofcounter 32 is a prior known value, the ratio of the two frequencies may be extrapolated from Count B alone when it is passed throughmultiplexer 39. For example, if the maximum count ofcounter 32 is 1024, and the Count B is passed through multiplexer as a value of 256, a frequency ratio of the DDR clock signal to the flash clock signal of 4:1 may be extrapolated, since 1024 is four times 256. Thus, Count B may be passed as is toscaler 25. Based on the value of Count B and the raw delay code,scaler 25 may generate the adjusted delay code. -
FIG. 4 is a flow diagram illustrating one embodiment of a method for scaling a DLL code when master and slave DLLs operate at different frequencies.Method 400 in the embodiment shown may be performed using various embodiments of the hardware/circuitry discussed above. It is further possible and contemplated thatmethod 400 may be carried out using other embodiments of hardware/circuitry not explicitly discussed herein. -
Method 400 begins with providing a first clock signal to a first counter and a second clock signal to a second counter (block 405). The first clock signal may have a higher frequency than the second clock signal. Furthermore, the first clock signal may be that which is received by a master DLL, while the second clock signal is received by a slave DLL or a number of slave DLLs. - The process of determining a ratio between the first and second clock frequencies may be initiated by resetting the first counter, and responsive thereto, resetting the second counter (block 410). The counters may then begin incrementing in synchronization with their respectively received clock signals (block 415). If the first counter has not yet reached its maximum count value (block 415, no), counting may continue. When the first counter does finally reach its maximum count value (block 415, yes), the count value of the second counter at that time may be determined (block 420).
- Based on the count value of the second counter at the time the first counter reaches its maximum count value, a ratio between the frequencies of the first and second clock signals may be determined (block 425). The ratio may be expressed in various ways, although in general, the generated value may be one from which the ratio of the frequencies may be derived. Based on the ratio, and a raw delay code provided by the master DLL, an adjusted delay code for the slave DLLs is generated (block 430).
- Turning next to
FIG. 5 , a block diagram of one embodiment of asystem 150 is shown. In the illustrated embodiment, thesystem 150 includes at least one instance of an IC 5 (e.g., that implementsSoC 10 ofFIG. 1 ) coupled to one ormore peripherals 154 and an external memory 158. Apower supply 156 is also provided which supplies the supply voltages to theIC 10 as well as one or more supply voltages to the memory 158 and/or theperipherals 154. In some embodiments, more than one instance of theIC 10 may be included (and more than one external memory 158 may be included as well). - The
peripherals 154 may include any desired circuitry, depending on the type ofsystem 150. For example, in one embodiment, thesystem 150 may be a mobile device (e.g. personal digital assistant (PDA), smart phone, etc.) and theperipherals 154 may include devices for various types of wireless communication, such as wifi, Bluetooth, cellular, global positioning system, etc. Theperipherals 154 may also include additional storage, including RAM storage, solid-state storage, or disk storage. Theperipherals 154 may include user interface devices such as a display screen, including touch display screens or multitouch display screens, keyboard or other input devices, microphones, speakers, etc. In other embodiments, thesystem 150 may be any type of computing system (e.g. desktop personal computer, laptop, workstation, net top etc.). - The external memory 158 may include any type of memory. For example, the external memory 158 may be SRAM, dynamic RAM (DRAM) such as synchronous DRAM (SDRAM), double data rate (DDR, DDR2, DDR3, LPDDR1, LPDDR2, etc.) SDRAM, RAMBUS DRAM, etc. The external memory 158 may include one or more memory modules to which the memory devices are mounted, such as single inline memory modules (SIMMs), dual inline memory modules (DIMM5), etc.
- Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/546,540 US8643417B1 (en) | 2012-07-11 | 2012-07-11 | Method and apparatus to automatically scale DLL code for use with slave DLL operating at a different frequency than a master DLL |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/546,540 US8643417B1 (en) | 2012-07-11 | 2012-07-11 | Method and apparatus to automatically scale DLL code for use with slave DLL operating at a different frequency than a master DLL |
Publications (2)
Publication Number | Publication Date |
---|---|
US20140015573A1 true US20140015573A1 (en) | 2014-01-16 |
US8643417B1 US8643417B1 (en) | 2014-02-04 |
Family
ID=49913473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/546,540 Active US8643417B1 (en) | 2012-07-11 | 2012-07-11 | Method and apparatus to automatically scale DLL code for use with slave DLL operating at a different frequency than a master DLL |
Country Status (1)
Country | Link |
---|---|
US (1) | US8643417B1 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140372691A1 (en) * | 2013-06-13 | 2014-12-18 | Hewlett-Packard Development Company, L. P. | Counter policy implementation |
US20150117582A1 (en) * | 2013-10-25 | 2015-04-30 | Advanced Micro Devices, Inc. | Predictive periodic synchronization using phase-locked loop digital ratio updates |
US20150188649A1 (en) * | 2014-01-02 | 2015-07-02 | Advanced Micro Devices, Inc. | Methods and systems of synchronizer selection |
US20160087638A1 (en) * | 2014-09-18 | 2016-03-24 | SK Hynix Inc. | Multi-channel delay locked loop |
US20170237442A1 (en) * | 2016-02-17 | 2017-08-17 | SK Hynix Inc. | Clock generation circuit, interface circuit and semiconductor system using the same |
US9996104B2 (en) * | 2016-03-31 | 2018-06-12 | Huawei Technologies Co., Ltd. | Frequency adjustment method, System-On-Chip, and terminal |
US11362667B1 (en) * | 2021-09-24 | 2022-06-14 | Cypress Semiconductor Corporation | Reducing delay-lock loop delay fluctuation |
US11664808B2 (en) | 2021-01-05 | 2023-05-30 | Taiwan Semiconductor Manufacturing Company Ltd. | Delay lock loop circuits and methods for operating same |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005004451A (en) | 2003-06-11 | 2005-01-06 | Nec Electronics Corp | Spread spectrum clock generation device |
US8132040B1 (en) | 2007-10-25 | 2012-03-06 | Lattice Semiconductor Corporation | Channel-to-channel deskew systems and methods |
JP5290589B2 (en) | 2008-02-06 | 2013-09-18 | ルネサスエレクトロニクス株式会社 | Semiconductor integrated circuit |
-
2012
- 2012-07-11 US US13/546,540 patent/US8643417B1/en active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140372691A1 (en) * | 2013-06-13 | 2014-12-18 | Hewlett-Packard Development Company, L. P. | Counter policy implementation |
US20150117582A1 (en) * | 2013-10-25 | 2015-04-30 | Advanced Micro Devices, Inc. | Predictive periodic synchronization using phase-locked loop digital ratio updates |
US9143315B2 (en) * | 2013-10-25 | 2015-09-22 | Advanced Micro Devices, Inc. | Predictive periodic synchronization using phase-locked loop digital ratio updates |
US20150188649A1 (en) * | 2014-01-02 | 2015-07-02 | Advanced Micro Devices, Inc. | Methods and systems of synchronizer selection |
US9294263B2 (en) * | 2014-01-02 | 2016-03-22 | Advanced Micro Devices, Inc. | Methods and systems of synchronizer selection |
US9564907B2 (en) * | 2014-09-18 | 2017-02-07 | SK Hynix Inc. | Multi-channel delay locked loop |
US20160087638A1 (en) * | 2014-09-18 | 2016-03-24 | SK Hynix Inc. | Multi-channel delay locked loop |
US20170237442A1 (en) * | 2016-02-17 | 2017-08-17 | SK Hynix Inc. | Clock generation circuit, interface circuit and semiconductor system using the same |
CN107093437A (en) * | 2016-02-17 | 2017-08-25 | 爱思开海力士有限公司 | Clock generating circuit, interface circuit and use its semiconductor system |
US9996104B2 (en) * | 2016-03-31 | 2018-06-12 | Huawei Technologies Co., Ltd. | Frequency adjustment method, System-On-Chip, and terminal |
US11664808B2 (en) | 2021-01-05 | 2023-05-30 | Taiwan Semiconductor Manufacturing Company Ltd. | Delay lock loop circuits and methods for operating same |
TWI823070B (en) * | 2021-01-05 | 2023-11-21 | 台灣積體電路製造股份有限公司 | Delay circuit and delay method |
US11362667B1 (en) * | 2021-09-24 | 2022-06-14 | Cypress Semiconductor Corporation | Reducing delay-lock loop delay fluctuation |
Also Published As
Publication number | Publication date |
---|---|
US8643417B1 (en) | 2014-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8643417B1 (en) | Method and apparatus to automatically scale DLL code for use with slave DLL operating at a different frequency than a master DLL | |
US11048284B2 (en) | Self-referenced droop detector circuitry | |
US8520455B2 (en) | Method and apparatus for training a DLL in a memory subsystem | |
US10128858B2 (en) | Phase-locked loop circuitry including improved phase alignment mechanism | |
US10600458B2 (en) | Memory device and method of operating the same for latency control | |
US8769332B2 (en) | Regional clock gating and dithering | |
US11018676B2 (en) | Coarse delay lock estimation for digital DLL circuits | |
EP2549354B1 (en) | Dynamic frequency control using coarse clock gating | |
EP2774151B1 (en) | Data transmission using delayed timing signals | |
US9584140B2 (en) | Apparatuses, methods, and circuits including a delay circuit | |
KR20130129270A (en) | Bus clock frequency scaling for a bus interconnect and related devices, systems, and methods | |
EP2939238B1 (en) | Clock generation and delay architecture | |
US7911873B1 (en) | Digital delay locked loop implementation for precise control of timing signals | |
US9209961B1 (en) | Method and apparatus for delay compensation in data transmission | |
US8558594B2 (en) | Reduced frequency clock delivery with local recovery | |
JP2022536593A (en) | Apparatus and method for maintaining stable clocking | |
US9306574B1 (en) | Clock divider circuit with synchronized switching | |
US8949756B2 (en) | Debug access with programmable return clock | |
US9234942B2 (en) | Transition fault testing of source synchronous interface | |
KR101891165B1 (en) | Reset signal generating device | |
US9742386B2 (en) | Efficient duty-cycle balanced clock generation circuit for single and multiple-phase clock signals | |
US9294103B2 (en) | Pre-program of clock generation circuit for faster lock coming out of reset | |
US9891853B1 (en) | Memory calibration abort | |
KR20140109209A (en) | Memory device and the method of operating the same | |
KR20150020009A (en) | Semiconductor device for compensating internal delay and data processing system having the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: APPLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ROSS, DIARMUID P.;LEE, DOUGLAS C.;WARREN, DAVID S.;SIGNING DATES FROM 20120629 TO 20120709;REEL/FRAME:028545/0762 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |