US20080010479A1 - Method and system for dynamic temperature compensation for a source-synchronous interface - Google Patents
Method and system for dynamic temperature compensation for a source-synchronous interface Download PDFInfo
- Publication number
- US20080010479A1 US20080010479A1 US11/482,697 US48269706A US2008010479A1 US 20080010479 A1 US20080010479 A1 US 20080010479A1 US 48269706 A US48269706 A US 48269706A US 2008010479 A1 US2008010479 A1 US 2008010479A1
- Authority
- US
- United States
- Prior art keywords
- clock signal
- synchronous
- delay
- source
- data signal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000001360 synchronised effect Effects 0.000 claims abstract description 13
- 230000008859 change Effects 0.000 claims abstract description 12
- 230000001934 delay Effects 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 17
- 230000003111 delayed effect Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
Definitions
- This invention relates to the field of synchronous interfaces between electronic devices, and more specifically, to a method and system for dynamic temperature compensation for a source-synchronous interface between a field-programmable gate array device and a memory device.
- a field-programmable gate array (“FPGA”) is an integrated circuit (“IC”) that can be programmed in the field after manufacture.
- FPGAs typically contain programmable logic components and programmable interconnects.
- the programmable logic components can be programmed to duplicate the functionality of basic logic gates such as AND, OR, XOR, NOT or more complex combinatorial functions such as decoders or simple math functions.
- these programmable logic components (or logic blocks, in FPGA parlance) also include memory elements, which may be simple flip-flops or more complete blocks of memories.
- a hierarchy of programmable interconnects allows the logic blocks of an FPGA to be interconnected as needed by the system designer, somewhat like a one-chip programmable breadboard. These logic blocks and interconnects can be programmed after the manufacturing process by the customer/designer (hence the term “field programmable”) so that the FPGA can perform whatever logical function is needed.
- a source-synchronous system is a system that uses a clock signal generated by the address/data signal source (e.g., the FPGA) to latch or clock the address/data signals at the receiving agent (e.g., a random access memory (“RAM”) device such as a quad data rate (QDRTMII) synchronous RAM (“SRAM”) device or a reduced latency dynamic random access memory (“RLDRAM”) device).
- a clock signal generated by the address/data signal source (e.g., the FPGA) to latch or clock the address/data signals at the receiving agent (e.g., a random access memory (“RAM”) device such as a quad data rate (QDRTMII) synchronous RAM (“SRAM”) device or a reduced latency dynamic random access memory (“RLDRAM”) device).
- RAM random access memory
- QDRTMII quad data rate
- SRAM quad data rate synchronous RAM
- RLDRAM reduced latency dynamic random access memory
- the clock is usually sent along with the data.
- the FPGA uses the clock to recover the data.
- a clock is sent to the QDRTMII device and data is returned along with a re-generated clock. This returned clock will be delayed with respect to the original clock (i.e., the FPGA system clock).
- Read data can easily be recovered using the returned clock, but getting the data back into synchronization with the system clock is another problem.
- the Xilinx “ChipSync Technology” feature mentioned above solves this problem by delaying the data to align it with the system clock. Thus, the returned clock is not used to recover the data.
- the “ChipSync Technology” feature calibrates the amount of delay needed in order to recover the data back to the system clock of the FPGA.
- This calibration is intended to offset the delay caused by the board trace length and delay in the FPGA input/output (“IO”) pins.
- the delay portion caused by the IO is dependant on process and temperature variation. Since the calibration is performed once at start-up, the FPGA may have been at a cold temperature when the calibration was performed. The cold temperature would make the IO delay minimal, but once the FPGA warms up the delay would increase. This is problematic as it reduces timing margins in recovering the data which may cause bit errors.
- a method for synchronizing a data signal to a clock signal in a source-synchronous system the source-synchronous system having first and second systems linked by an interface, the first system providing the clock signal to the second system, the second system providing the data signal and a return clock signal synchronous to the data signal to the first system, the method comprising: determining a first time delay between the clock signal and the return clock signal and delaying the data signal by the first time delay; after a predetermined period, determining a second time delay between the clock signal and the return clock signal; determining a difference between the first and second time delays; and, further delaying the data signal by at least a portion of the difference to thereby compensate for a temperature change of the source-synchronous system.
- the first time delay may be determined during a start-up period of the source-synchronous system.
- the predetermined period may be one of a warm-up period and a cool-down period for the source-synchronous system.
- the first and second time delays may include a respective amount for centering the return clock signal with respect to the clock signal.
- the first system may be a field programmable gate array (“FPGA”) and the second system may be a memory device.
- the memory device may be a reduced latency dynamic random access memory (“RLDRAM”) device.
- the portion of the difference may be less than or equal to a refresh period for the RLDRAM device.
- the memory device may be a quad data rate (“QDR”) synchronous random access memory (“SRAM”) device.
- the portion of the difference may be a minimum time delay increment (e.g., 1 step) chosen to limit the further delaying of the data signal to prevent data signal errors.
- the portion of the difference may be an expected delay due to the temperature change.
- an apparatus such as a data processing system, a method for adapting this system, as well as articles of manufacture such as a computer readable medium having program instructions recorded thereon for practicing the method of the invention.
- FIG. 1 is a block diagram illustrating a source-synchronous system in accordance with an embodiment of the invention
- FIG. 2 is a flow chart illustrating operations of modules within the memory of a temperature compensation system for determining a temperature compensated delay setting in accordance with an embodiment of the invention.
- FIG. 3 is a flow chart illustrating operations of modules within the memory of a temperature compensation system for synchronizing a data signal to a clock signal in a source-synchronous system, the source-synchronous system having first and second systems linked by an interface, the first system providing the clock signal to the second system, the second system providing the data signal and a return clock signal synchronous to the data signal to the first system, in accordance with an embodiment of the invention.
- data processing system is used herein to refer to any machine for processing data.
- the present invention may be implemented in any computer programming language provided that the operating system of the data processing system provides the facilities that may support the requirements of the present invention. Any limitations presented would be a result of a particular type of operating system or computer programming language and would not be a limitation of the present invention.
- the present invention may also be implemented in hardware.
- FIG. 1 is a block diagram illustrating a source-synchronous system 100 in accordance with an embodiment of the invention.
- the source-synchronous system 100 includes a FPGA 190 coupled to a high speed memory device 110 through an interface 195 .
- the FPGA 190 may be a Xilinx VirtexTM-4 FPGA and the high speed memory device 110 may be a QDRTMII or RLDRAM device.
- the FPGA 190 includes a system clock 120 , a capture flip flop device 130 (i.e., for capturing data with the system clock), a delay unit 140 , a calibrating block 170 , and a temperature compensation system 300 .
- the system clock 120 provides a system clock signal 121 to the memory device 110 , to the capture flip flop device 130 , and to the calibrating block 170 .
- Data (e.g., double data rate (“DDR”) data) 150 is returned from the memory device 110 over the interface 195 and is input to the delay unit 140 .
- the delay unit 140 provides an adjustable delay (e.g., (0 to 63) ⁇ 80 pico seconds (ps)).
- the delayed data 145 from the delay unit 140 is provided to the capture flip flop device 130 .
- the calibrating block 170 may implement a calibrating method such as “ChipSync Technology” by XilinxTM to provide a delay setting 175 to the delay unit 140 .
- the temperature compensation system 300 receives the delay setting 175 from the calibrating block 170 and provides a temperature compensated delay setting 180 to the delay unit 140 .
- the temperature compensation system 300 may be implemented within the FPGA 190 or external to it. In FIG. 1 , the temperature compensation system 300 is shown within the FPGA 190 .
- the temperature compensation system 300 may be implemented as a state machine or as a data processing system.
- the temperature compensation system 300 may include a central processing unit (“CPU”) (not shown), memory 330 , and an interface device.
- the CPU may include dedicated coprocessors and memory devices.
- the memory 330 may include RAM, ROM, disk devices, and databases.
- the interface device may include a bus, serial, or network connection.
- the temperature compensation system 300 is adapted for communicating with other data processing systems (e.g., 110 , 190 ) over a bus, serial, or network connection via its interface device.
- the CPU of the system 300 is operatively coupled to memory 330 which may store an operating system (not shown) for general management of the system 300 .
- the temperature compensation system 300 has stored therein data representing sequences of instructions which when executed cause the method described herein to be performed.
- the temperature compensation system 300 may contain additional software and hardware a description of which is not necessary for understanding the invention.
- the temperature compensation system 300 includes computer executable programmed instructions for directing the system 300 to implement the embodiments of the present invention.
- the programmed instructions may be embodied in one or more hardware modules or software modules 331 resident in the memory 330 of the temperature compensation system 300 .
- the programmed instructions may be embodied on a computer readable medium (such as a CD disk or floppy disk) which may be used for transporting the programmed instructions to the memory 330 of the temperature compensation system 300 .
- the programmed instructions may be embedded in a computer-readable signal or signal-bearing medium that is uploaded to a network by a vendor or supplier of the programmed instructions, and this signal or signal-bearing medium may be downloaded through an interface to the temperature compensation system 300 from the network by end users or potential buyers.
- the present invention addresses the problem of timing compensation for integrated circuit (“IC”) delays caused due to temperature variation (i.e., a temperature rise or fall). It particular, it provides for timing compensation for a source-synchronous interface of a FPGA (such as the Xilinx VirtexTM-4 FPGA) when used with low latency, high speed RAM such as QDRTMII and RLDRAM.
- the invention enables on-the-fly timing calibration to be performed to compensate for temperature dependent delay variation without the risk of data errors that are likely to occur when using onboard calibrating functionality (such as the “ChipSync Technology” of the VirtexTM-4 FPGA) of the FPGA.
- the present invention allows the delay functionality of the “ChipSync Technology” feature to be used in an on-the-fly mode without risking bit errors in the data stream 150 coming from the source-synchronous interface 195 to the FPGA 190 . While the invention is discussed in the context of a FPGA such as the VirtexTM-4 FPGA, it will be understood that the invention may be applied generally.
- a calibration operation is performed at power-up of the FPGA 190 to generate compensation settings 175 that are applied within the FPGA 190 .
- calibration operations are repeated periodically.
- the compensation settings of subsequent calibration operations are compared to the current compensation settings and an adjustment is made to the compensation settings if there is a difference.
- Only a small, limited change in timing is allowed per calibration run. This prevents large updates which could disturb the source-synchronous interface 195 .
- this makes the timing calibration more reliable in that it protects against clock glitches or noise that could cause large variations in timing adjustment.
- the allowed timing adjustment per calibration run is in accordance with, or at least no greater than, the variance in delay that could be caused by temperature change between calibration runs.
- the calibration changes may be performed during a refresh window as during this window the bus is not used and hence there is no risk that timing changes may cause data errors.
- a QDRTMII interface for example, there is no idle time where a large adjustment can be made and so only very small adjustments are made (e.g., 1 step).
- the temperature compensation system (or state machine) 300 executes a calibration routine using the existing calibrating block 170 .
- the calibrating block 170 uses the returned clock signal 160 (which is synchronous to the data 150 ) from the interface 195 .
- the returned clock signal 160 is compared with the system clock signal 121 to determine the amount of delay needed to synchronize the data 150 with the system clock signal 121 .
- the calibrating block 170 (e.g., a XilinxTM calibrating block) returns a delay setting 175 along with a phase indicator or final value (“Val”) of the return clock 160 , which indicates which of two positive and negative edge triggered data streams egresses first from the calibrating block 170 .
- the phase indicator or Val along with the delay setting (i.e., a number from 0 to 63) 175 indicates the amount of IO buffer and circuit board delay within the FPGA 190 . That is, it indicates how much delay must be added to the data 150 to synchronize it to the system clock 121 .
- the temperature compensation system (or state machine) 300 takes the final value along with the delay setting 175 and translates these into a new setting (0-63) 180 , which keeps the timing adjustment between calibration runs within the aforementioned limits and avoids data loss that could occur by changing the sequence of positive and negative edge triggered data streams that egress from the calibration block 170 . Consequently, the invention makes the source-synchronous system 100 more reliable over a wide range in delay (e.g., 5 ns).
- the high speed memory 110 is a RLDRAM and the FPGA 190 is a XilinxTM VirtexTM-4 FPGA.
- the data 150 and return clock signal 160 transmitted from the RLDRAM 110 is edge aligned.
- either the clock 160 or the data 150 is delayed.
- the data 150 is delayed and is center aligned with respect to the internal FPGA clock 121 .
- the internal FPGA clock 121 captures the transmitted data 150 .
- the clock 160 transmitted from the memory 110 is used to determine the delay value for the associated data bits 150 .
- the VirtexTM-4 resource used by the clock 160 and the data 150 is a 64-step (i.e., 0-63 steps or taps) absolute delay line. Both the clock 160 and the data 150 are routed through the 64-step absolute delay line. Although the clock 160 is not used to capture data 150 , it is used to determine the number of taps required to center the data 150 with respect to the internal FPGA clock 121 .
- the delay value for the data bits 150 associated with a return clock 160 is the phase difference between the rising edge of internal FPGA clock 121 and the center of the return clock pulse.
- the assumption is that the clock 160 and the data 150 are edge aligned.
- the clock 160 is input through the 64-step absolute delay line and is sampled at incremental step outputs using the internal FPGA clock 121 .
- At least two edges or transitions of the clock 160 have to be detected to determine the center of the clock pulse.
- the difference between the number of steps required for detection of the second transition (second edge steps), and the number of steps required for detection of the first transition (first edge steps) is the clock pulse width.
- Half of this difference is the pulse center (pulse center steps).
- the number of taps required from the rising edge of the internal FPGA clock 121 to the center of the clock pulse is the sum of first edge steps and pulse center steps.
- An algorithm is used for detecting edges of the return clock 160 as follows.
- the return clock 160 is input to the calibrating block 170 with an initial value of 0.
- the return clock 160 is delayed in one-step increments until the first edge is detected.
- the number of steps required to detect the first edge is then recorded.
- the clock 160 continues to be delayed in one-step increments until the second edge is detected.
- the number of steps required to detect the second edge is then recorded.
- the pulse width is computed using both recorded values. After the pulse width of the clock 160 is determined in number of steps, the midpoint is obtained by dividing it by two. The sum of the midpoint and the number of steps required to detect the first edge is the required steps to delay data 150 . This is the delay setting 175 referred to above.
- the total number of steps available in the calibration unit 170 is 64. Therefore for a frequency of 200 MHz and below, it is not possible to detect two edges. At the end of 64 steps, if only one edge is detected, the number of steps required to delay data is the sum of the number of steps required to detect the first edge and 16 steps ( ⁇ 1.25 ns with a step resolution of 80 ps).
- the quarter cycle of a 200-MHz clock is about 16 steps. Based on timing analysis, this value can also be used for lower frequencies, down to 110 MHz. For frequencies below 110 MHz, if no edges are detected at the end of 64 steps, the number of steps required to delay data is 32 steps ( ⁇ 2.5 ns with a step resolution of ⁇ 80 ps). This value is sufficient to set the internal FPGA clock edge within the data window.
- the round trip delay includes the following:
- the round trip delay is typically 3.75 nano seconds (ns). Note that there is 90 degree phase shift or one-quarter cycle delay between the system clock 120 and the clock signal (“CK”) 121 sent out to the RLDRAM 110 . For a cycle time of 5 ns, this one-quarter cycle delay amounts to 1.25 ns. This 1.25 ns delay is not included in the round trip delay of 3.75 ns measured above. In addition, the best case delay is typically 2.32 ns and the worst case delay is typically 5.73 ns.
- the temperature compensation system 300 may now map the delay setting 175 from the calibration block 170 to a temperature compensated delay setting 180 (i.e., a mapped delay) to be output to the delay unit 140 .
- a temperature compensated delay setting 180 i.e., a mapped delay
- the typical round trip delay is typically 3.75 ns
- the best case delay is typically 2.32 ns
- the worst case delay is typically 5.73 ns.
- This mapping may be performed in accordance with the following table.
- return clock value (“Val”) is the state or value of the return clock 160 . It may be either 1 (i.e., high) or 0 (i.e., low).
- FIG. 2 is a flow chart illustrating operations 200 of modules 331 within the memory 330 of a temperature compensation system 300 for determining a temperature compensated delay setting 180 in accordance with an embodiment of the invention.
- the operations 200 start with the temperature compensation system 300 sending a signal to the calibrating block 170 to generate a delay setting 175 and a value (“Val”) of the return clock 160 .
- the operations 200 wait until the RLDRAM is in a refresh window.
- step 204 if the RLDRAM 110 is in a refresh window, a determination is made as to the value of the return clock 160 .
- the calibrating block 170 determines a delay setting (“Cal Delay”) 175 .
- step 208 continuing from step 206 , if Cal Delay 175 ⁇ 32 steps is greater than 4 steps, then the temperature compensated delay setting 180 will be adjusted by a maximum of 4 steps. Remaining adjustments to the temperature compensated delay setting 180 will be made by subsequent 1 step increments.
- step 209 continuing from step 207 , if Cal Delay 175 +32 steps is greater than 4 steps, then the temperature compensated delay setting 180 will be adjusted by a maximum of 4 steps. Remaining adjustments to the temperature compensated delay setting 180 will be made by subsequent 1 step increments.
- the calibrating block 170 determines a delay setting (“Cal Delay”) 175 .
- step 211 continuing from step 210 , if Cal Delay 175 is greater than 4 steps, then the temperature compensated delay setting 180 will be adjusted by a maximum of 4 steps. Remaining adjustments to the temperature compensated delay setting 180 will be made by subsequent 1 step increments.
- steps 210 and 211 for example, if the current temperature compensated delay setting (“Actual”) 180 is 10 steps and a calibration run is performed which yields a delay setting (“Cal Delay”) 175 of 15 steps. Then the new temperature compensated delay 180 will be 14 steps. This new temperature compensated delay 180 will be incremented by the remaining 1 step (i.e., to give 15 steps) upon running of the next calibration.
- the time that it takes to adjust 4 steps is approximately the same as the duration of the refresh window.
- the 4 steps amount may be varied depending on the properties of the memory device 110 and/or FPGA 190 .
- a calibration routine for synchronizing data signals 150 of a source-synchronous interface 195 to a system clock signal 121 is provided.
- a returned version of the system clock signal 160 is received from the interface 195 and is compared to the system clock signal 121 to determine a timing difference between the clock signals 121 , 160 .
- the data signals 150 are adjusted by adding to them an amount of delay 180 equal to the lesser of the timing difference or an amount that corresponds to a maximum temperature dependent delay variation that could occur since a previous run of the calibration routine.
- the source-synchronous interface 195 may be between a XilinxTM VirtexTM-4 FPGA 190 and either RLDRAM or QDR-II memory devices 110 .
- the calibration routine may be run periodically and the delay setting 175 determined by the calibrating block 170 may be adjusted by up to 320 ps (or 4 steps) by the temperature compensation system 300 .
- the invention provides several advantages. For example, it provides for an improvement in source-synchronous systems over a wide temperature range with a guaranteed latency.
- FIG. 3 is a flow chart illustrating operations 400 of modules 331 within the memory 330 of a temperature compensation system 300 for synchronizing a data signal 150 to a clock signal 121 in a source-synchronous system 100 , the source-synchronous system 100 having first and second systems 190 , 110 linked by an interface 195 , the first system 190 providing the clock signal 121 to the second system 110 , the second system 110 providing the data signal 150 and a return clock signal 160 synchronous to the data signal 150 to the first system 190 , in accordance with an embodiment of the invention.
- a first time delay between the clock signal 121 and the return clock signal 160 is determined and the data signal 150 is delayed by the first time delay.
- a second time delay between the clock signal 121 and the return clock signal 160 is determined.
- a difference between the first and second time delays is determined.
- the data signal 150 is further delayed by at least a portion of the difference to thereby compensate for a temperature change of the source-synchronous system 100 .
- the first time delay may be determined during a start-up period of the source-synchronous system 100 .
- the predetermined period may be one of a warm-up period and a cool-down period for the source-synchronous system 100 .
- the first and second time delays may include a respective amount for centering the return clock signal 160 with respect to the clock signal 121 .
- the first system 190 maybe a field programmable gate array (“FPGA”) and the second system may be a memory device 110 .
- the memory device 110 may be a reduced latency dynamic random access memory (“RLDRAM”) device.
- the portion of the difference may be less than or equal to a refresh period for the RLDRAM device 110 .
- the memory device 110 may be a quad data rate (“QDR”) synchronous random access memory (“SRAM”) device.
- the portion of the difference may be a minimum time delay increment (e.g., 1 step) chosen to limit the further delaying 405 of the data signal 150 to prevent data signal errors.
- the portion of the difference may be an expected
- a person of ordinary skill in the art will understand that the apparatus discussed above with reference to a temperature compensation system 300 , may be programmed to enable the practice of the method of the invention.
- an article of manufacture for use with a temperature compensation system 300 such as a pre-recorded storage device or other similar computer readable medium including program instructions recorded thereon, may direct the temperature compensation system 300 to facilitate the practice of the method of the invention. It is understood that such apparatus and articles of manufacture also come within the scope of the invention.
- sequences of instructions which when executed cause the method described herein to be performed by the temperature compensation system 300 of FIG. 1 can be contained in a data carrier product according to one embodiment of the invention. This data carrier product can be loaded into and run by the temperature compensation system 300 of FIG. 1 .
- sequences of instructions which when executed cause the method described herein to be performed by the temperature compensation system 300 of FIG. 1 can be contained in a computer software product according to one embodiment of the invention. This computer software product can be loaded into and run by the temperature compensation system 300 of FIG. 1 .
- sequences of instructions which when executed cause the method described herein to be performed by the temperature compensation system 300 of FIG. 1 can be contained in an integrated circuit product (e.g., hardware modules) including a coprocessor or memory according to one embodiment of the invention. This integrated circuit product can be installed in the temperature compensation system 300 of FIG. 1 .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
Description
- This invention relates to the field of synchronous interfaces between electronic devices, and more specifically, to a method and system for dynamic temperature compensation for a source-synchronous interface between a field-programmable gate array device and a memory device.
- A field-programmable gate array (“FPGA”) is an integrated circuit (“IC”) that can be programmed in the field after manufacture. FPGAs typically contain programmable logic components and programmable interconnects. The programmable logic components can be programmed to duplicate the functionality of basic logic gates such as AND, OR, XOR, NOT or more complex combinatorial functions such as decoders or simple math functions. In most FPGAs, these programmable logic components (or logic blocks, in FPGA parlance) also include memory elements, which may be simple flip-flops or more complete blocks of memories. A hierarchy of programmable interconnects allows the logic blocks of an FPGA to be interconnected as needed by the system designer, somewhat like a one-chip programmable breadboard. These logic blocks and interconnects can be programmed after the manufacturing process by the customer/designer (hence the term “field programmable”) so that the FPGA can perform whatever logical function is needed.
- An example of a FPGA is the Virtex™-4 FPGA from Xilinx™. The Virtex™-4 FPGA has a feature called “ChipSync Technology” which simplifies implementation of source-synchronous interfaces. For reference, a source-synchronous system is a system that uses a clock signal generated by the address/data signal source (e.g., the FPGA) to latch or clock the address/data signals at the receiving agent (e.g., a random access memory (“RAM”) device such as a quad data rate (QDR™II) synchronous RAM (“SRAM”) device or a reduced latency dynamic random access memory (“RLDRAM”) device). Implementing a self-timed clock at the receiver eliminates the flight time variable from system timing equations. Eliminating flight time allows the designer to maximize the potential bandwidth of any interface technology by increasing the operating frequency. Because interface signal timing is now working in “relative” time, the global skew requirements of the system clock are reduced.
- Thus, in a source-synchronous interface the clock is usually sent along with the data. The FPGA uses the clock to recover the data. For high speed SRAMs like a QDR™II SRAM, a clock is sent to the QDR™II device and data is returned along with a re-generated clock. This returned clock will be delayed with respect to the original clock (i.e., the FPGA system clock). Read data can easily be recovered using the returned clock, but getting the data back into synchronization with the system clock is another problem. The Xilinx “ChipSync Technology” feature mentioned above solves this problem by delaying the data to align it with the system clock. Thus, the returned clock is not used to recover the data.
- At startup, the “ChipSync Technology” feature calibrates the amount of delay needed in order to recover the data back to the system clock of the FPGA. This calibration is intended to offset the delay caused by the board trace length and delay in the FPGA input/output (“IO”) pins. The delay portion caused by the IO is dependant on process and temperature variation. Since the calibration is performed once at start-up, the FPGA may have been at a cold temperature when the calibration was performed. The cold temperature would make the IO delay minimal, but once the FPGA warms up the delay would increase. This is problematic as it reduces timing margins in recovering the data which may cause bit errors.
- One solution to this problem is simply to repeat the calibration routine as the FPGA warms up. However, because the data from a double or quad data rate RAM device is both positive and negative clock edge triggered, and due to the dual stream nature of the “ChipSync Technology” circuit (i.e., positive and negative edge triggered data streams), the data may shift 180 degrees out of phase if the calibration routine is run a second time. Such an occurrence may cause data corruption, or data loss, and therefore simply re-running the timing calibration to adjust for delay variances due to temperature variation is not a desirable solution. In addition, simply using a first-in first-out (“FIFO”) buffer device to align the system clock and data is not an option because of the low latency requirements of high speed FPGA applications.
- A need therefore exists for an improved method and system for dynamic temperature compensation for a source-synchronous interface between a field-programmable gate array device and a memory device. Accordingly, a solution that addresses, at least in part, the above and other shortcomings is desired.
- According to one aspect of the invention, there is provided a method for synchronizing a data signal to a clock signal in a source-synchronous system, the source-synchronous system having first and second systems linked by an interface, the first system providing the clock signal to the second system, the second system providing the data signal and a return clock signal synchronous to the data signal to the first system, the method comprising: determining a first time delay between the clock signal and the return clock signal and delaying the data signal by the first time delay; after a predetermined period, determining a second time delay between the clock signal and the return clock signal; determining a difference between the first and second time delays; and, further delaying the data signal by at least a portion of the difference to thereby compensate for a temperature change of the source-synchronous system.
- In the above method, the first time delay may be determined during a start-up period of the source-synchronous system. The predetermined period may be one of a warm-up period and a cool-down period for the source-synchronous system. The first and second time delays may include a respective amount for centering the return clock signal with respect to the clock signal. The first system may be a field programmable gate array (“FPGA”) and the second system may be a memory device. The memory device may be a reduced latency dynamic random access memory (“RLDRAM”) device. The portion of the difference may be less than or equal to a refresh period for the RLDRAM device. The memory device may be a quad data rate (“QDR”) synchronous random access memory (“SRAM”) device. The portion of the difference may be a minimum time delay increment (e.g., 1 step) chosen to limit the further delaying of the data signal to prevent data signal errors. And, the portion of the difference may be an expected delay due to the temperature change.
- In accordance with further aspects of the present invention there is provided an apparatus such as a data processing system, a method for adapting this system, as well as articles of manufacture such as a computer readable medium having program instructions recorded thereon for practicing the method of the invention.
- Further features and advantages of the embodiments of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
-
FIG. 1 is a block diagram illustrating a source-synchronous system in accordance with an embodiment of the invention; -
FIG. 2 is a flow chart illustrating operations of modules within the memory of a temperature compensation system for determining a temperature compensated delay setting in accordance with an embodiment of the invention; and, -
FIG. 3 is a flow chart illustrating operations of modules within the memory of a temperature compensation system for synchronizing a data signal to a clock signal in a source-synchronous system, the source-synchronous system having first and second systems linked by an interface, the first system providing the clock signal to the second system, the second system providing the data signal and a return clock signal synchronous to the data signal to the first system, in accordance with an embodiment of the invention. - It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
- In the following description, details are set forth to provide an understanding of the invention. In some instances, certain software, circuits, structures and techniques have not been described or shown in detail in order not to obscure the invention. The term “data processing system” is used herein to refer to any machine for processing data. The present invention may be implemented in any computer programming language provided that the operating system of the data processing system provides the facilities that may support the requirements of the present invention. Any limitations presented would be a result of a particular type of operating system or computer programming language and would not be a limitation of the present invention. The present invention may also be implemented in hardware.
-
FIG. 1 is a block diagram illustrating a source-synchronous system 100 in accordance with an embodiment of the invention. The source-synchronous system 100 includes aFPGA 190 coupled to a highspeed memory device 110 through aninterface 195. The FPGA 190 may be a Xilinx Virtex™-4 FPGA and the highspeed memory device 110 may be a QDR™II or RLDRAM device. TheFPGA 190 includes asystem clock 120, a capture flip flop device 130 (i.e., for capturing data with the system clock), adelay unit 140, acalibrating block 170, and atemperature compensation system 300. Thesystem clock 120 provides asystem clock signal 121 to thememory device 110, to the captureflip flop device 130, and to the calibratingblock 170. Data (e.g., double data rate (“DDR”) data) 150 is returned from thememory device 110 over theinterface 195 and is input to thedelay unit 140. Thedelay unit 140 provides an adjustable delay (e.g., (0 to 63)×80 pico seconds (ps)). The delayeddata 145 from thedelay unit 140 is provided to the captureflip flop device 130. The calibratingblock 170 may implement a calibrating method such as “ChipSync Technology” by Xilinx™ to provide a delay setting 175 to thedelay unit 140. In accordance with the present invention, thetemperature compensation system 300 receives the delay setting 175 from the calibratingblock 170 and provides a temperature compensated delay setting 180 to thedelay unit 140. Thetemperature compensation system 300 may be implemented within theFPGA 190 or external to it. InFIG. 1 , thetemperature compensation system 300 is shown within theFPGA 190. - The
temperature compensation system 300 may be implemented as a state machine or as a data processing system. As a data processing system, thetemperature compensation system 300 may include a central processing unit (“CPU”) (not shown),memory 330, and an interface device. The CPU may include dedicated coprocessors and memory devices. Thememory 330 may include RAM, ROM, disk devices, and databases. And, the interface device may include a bus, serial, or network connection. Thetemperature compensation system 300 is adapted for communicating with other data processing systems (e.g., 110, 190) over a bus, serial, or network connection via its interface device. The CPU of thesystem 300 is operatively coupled tomemory 330 which may store an operating system (not shown) for general management of thesystem 300. Thetemperature compensation system 300 has stored therein data representing sequences of instructions which when executed cause the method described herein to be performed. Of course, thetemperature compensation system 300 may contain additional software and hardware a description of which is not necessary for understanding the invention. - Thus, the
temperature compensation system 300 includes computer executable programmed instructions for directing thesystem 300 to implement the embodiments of the present invention. The programmed instructions may be embodied in one or more hardware modules orsoftware modules 331 resident in thememory 330 of thetemperature compensation system 300. Alternatively, the programmed instructions may be embodied on a computer readable medium (such as a CD disk or floppy disk) which may be used for transporting the programmed instructions to thememory 330 of thetemperature compensation system 300. Alternatively, the programmed instructions may be embedded in a computer-readable signal or signal-bearing medium that is uploaded to a network by a vendor or supplier of the programmed instructions, and this signal or signal-bearing medium may be downloaded through an interface to thetemperature compensation system 300 from the network by end users or potential buyers. - Now, the present invention addresses the problem of timing compensation for integrated circuit (“IC”) delays caused due to temperature variation (i.e., a temperature rise or fall). It particular, it provides for timing compensation for a source-synchronous interface of a FPGA (such as the Xilinx Virtex™-4 FPGA) when used with low latency, high speed RAM such as QDR™II and RLDRAM. The invention enables on-the-fly timing calibration to be performed to compensate for temperature dependent delay variation without the risk of data errors that are likely to occur when using onboard calibrating functionality (such as the “ChipSync Technology” of the Virtex™-4 FPGA) of the FPGA. In the case of the Virtex™-4 FPGA, for example, the present invention allows the delay functionality of the “ChipSync Technology” feature to be used in an on-the-fly mode without risking bit errors in the
data stream 150 coming from the source-synchronous interface 195 to theFPGA 190. While the invention is discussed in the context of a FPGA such as the Virtex™-4 FPGA, it will be understood that the invention may be applied generally. - According to one embodiment of the invention, a calibration operation is performed at power-up of the
FPGA 190 to generatecompensation settings 175 that are applied within theFPGA 190. Once this initial calibration operation is performed, calibration operations are repeated periodically. The compensation settings of subsequent calibration operations are compared to the current compensation settings and an adjustment is made to the compensation settings if there is a difference. Only a small, limited change in timing is allowed per calibration run. This prevents large updates which could disturb the source-synchronous interface 195. In turn, this makes the timing calibration more reliable in that it protects against clock glitches or noise that could cause large variations in timing adjustment. Basically, the allowed timing adjustment per calibration run is in accordance with, or at least no greater than, the variance in delay that could be caused by temperature change between calibration runs. For a RLDRAM interface, for example, the calibration changes may be performed during a refresh window as during this window the bus is not used and hence there is no risk that timing changes may cause data errors. For a QDR™II interface, for example, there is no idle time where a large adjustment can be made and so only very small adjustments are made (e.g., 1 step). - The temperature compensation system (or state machine) 300 executes a calibration routine using the existing
calibrating block 170. The calibratingblock 170 uses the returned clock signal 160 (which is synchronous to the data 150) from theinterface 195. The returnedclock signal 160 is compared with thesystem clock signal 121 to determine the amount of delay needed to synchronize thedata 150 with thesystem clock signal 121. - The calibrating block 170 (e.g., a Xilinx™ calibrating block) returns a delay setting 175 along with a phase indicator or final value (“Val”) of the
return clock 160, which indicates which of two positive and negative edge triggered data streams egresses first from the calibratingblock 170. The phase indicator or Val along with the delay setting (i.e., a number from 0 to 63) 175 indicates the amount of IO buffer and circuit board delay within theFPGA 190. That is, it indicates how much delay must be added to thedata 150 to synchronize it to thesystem clock 121. - The temperature compensation system (or state machine) 300 takes the final value along with the delay setting 175 and translates these into a new setting (0-63) 180, which keeps the timing adjustment between calibration runs within the aforementioned limits and avoids data loss that could occur by changing the sequence of positive and negative edge triggered data streams that egress from the
calibration block 170. Consequently, the invention makes the source-synchronous system 100 more reliable over a wide range in delay (e.g., 5 ns). - Consider the case where the
high speed memory 110 is a RLDRAM and theFPGA 190 is a Xilinx™ Virtex™-4 FPGA. Typically, thedata 150 and returnclock signal 160 transmitted from theRLDRAM 110 is edge aligned. To capture this transmitteddata 150 in the Virtex™-4FPGA 190, either theclock 160 or thedata 150 is delayed. In the direct-clocking technique, thedata 150 is delayed and is center aligned with respect to theinternal FPGA clock 121. In this scheme, theinternal FPGA clock 121 captures the transmitteddata 150. Theclock 160 transmitted from thememory 110 is used to determine the delay value for the associateddata bits 150. The Virtex™-4 resource used by theclock 160 and thedata 150 is a 64-step (i.e., 0-63 steps or taps) absolute delay line. Both theclock 160 and thedata 150 are routed through the 64-step absolute delay line. Although theclock 160 is not used to capturedata 150, it is used to determine the number of taps required to center thedata 150 with respect to theinternal FPGA clock 121. - The delay value for the
data bits 150 associated with areturn clock 160 is the phase difference between the rising edge ofinternal FPGA clock 121 and the center of the return clock pulse. The assumption is that theclock 160 and thedata 150 are edge aligned. In order to determine this phase difference, theclock 160 is input through the 64-step absolute delay line and is sampled at incremental step outputs using theinternal FPGA clock 121. At least two edges or transitions of theclock 160 have to be detected to determine the center of the clock pulse. The difference between the number of steps required for detection of the second transition (second edge steps), and the number of steps required for detection of the first transition (first edge steps) is the clock pulse width. Half of this difference is the pulse center (pulse center steps). The number of taps required from the rising edge of theinternal FPGA clock 121 to the center of the clock pulse is the sum of first edge steps and pulse center steps. - An algorithm is used for detecting edges of the
return clock 160 as follows. Thereturn clock 160 is input to the calibratingblock 170 with an initial value of 0. Thereturn clock 160 is delayed in one-step increments until the first edge is detected. The number of steps required to detect the first edge is then recorded. Theclock 160 continues to be delayed in one-step increments until the second edge is detected. The number of steps required to detect the second edge is then recorded. The pulse width is computed using both recorded values. After the pulse width of theclock 160 is determined in number of steps, the midpoint is obtained by dividing it by two. The sum of the midpoint and the number of steps required to detect the first edge is the required steps to delaydata 150. This is the delay setting 175 referred to above. - The total number of steps available in the
calibration unit 170 is 64. Therefore for a frequency of 200 MHz and below, it is not possible to detect two edges. At the end of 64 steps, if only one edge is detected, the number of steps required to delay data is the sum of the number of steps required to detect the first edge and 16 steps (˜1.25 ns with a step resolution of 80 ps). The quarter cycle of a 200-MHz clock is about 16 steps. Based on timing analysis, this value can also be used for lower frequencies, down to 110 MHz. For frequencies below 110 MHz, if no edges are detected at the end of 64 steps, the number of steps required to delay data is 32 steps (˜2.5 ns with a step resolution of ˜80 ps). This value is sufficient to set the internal FPGA clock edge within the data window. - An analysis may be performed to determine the minimum and maximum round trip delay for the
RLDRAM memory interface 195. The round trip delay includes the following: -
- 1) Source clock delay from the
system clock 120 to the RLDRAM 110 (including high speed transceiver logic (“HSTL”) driver delay and clock tracking delay to the RLDRAM 110); - 2) RLDRAM clock to
output data 150; and, - 3) Read data delay from the
RLDRAM 110 to the delay unit 140 (includes HSTL and tracking delays).
- 1) Source clock delay from the
- The round trip delay is typically 3.75 nano seconds (ns). Note that there is 90 degree phase shift or one-quarter cycle delay between the
system clock 120 and the clock signal (“CK”) 121 sent out to theRLDRAM 110. For a cycle time of 5 ns, this one-quarter cycle delay amounts to 1.25 ns. This 1.25 ns delay is not included in the round trip delay of 3.75 ns measured above. In addition, the best case delay is typically 2.32 ns and the worst case delay is typically 5.73 ns. - Having determined or measured a round trip delay range, the
temperature compensation system 300 may now map the delay setting 175 from thecalibration block 170 to a temperature compensated delay setting 180 (i.e., a mapped delay) to be output to thedelay unit 140. As mentioned above, in the case of theRLDRAM interface 195, the typical round trip delay is typically 3.75 ns, the best case delay is typically 2.32 ns, and the worst case delay is typically 5.73 ns. This mapping may be performed in accordance with the following table. -
Return Calibrating Clock Block Temperature Compensation Value (0, 1) Delay (0–63) System Delay (0–63) Comments 1 0–63 =Calibrating Block Delay Typical (0–63) 0 0–31 =Calibrating Block Delay + 32 Best Case (32–63) 0 32–63 =Calibrating Block Delay − 32 Worst (0–31) Case - In the above table, return clock value (“Val”) is the state or value of the
return clock 160. It may be either 1 (i.e., high) or 0 (i.e., low). The calibratingblock 170 increments until it samples a different value of thereturn clock 160. Then it backs up and proceeds in the opposite direction unit it meets the other edge. Val is simply the value that is sampled by the calibratingblock 170. Depending on the round trip delay, the calibratingblock 170 will either read a Val=1 or Val=0. It will then determine a delay setting 175 that will indicate the middle of the window (i.e., between the two switching edges of the return clock pulse). Thus, the calibratingblock 170 locates two edges in thereturn clock pulse 160 and the Val value indicates whether these edges occurred when the return clock was high (Val=1) or low (Val=0). - Referring to the above table, if Val=1 and the delay setting 175 from the calibrating
block 170 is between 0 and 63 steps (i.e., of 80 ps each) and the round trip delay is typical, then the output of the temperature compensated delay setting 180 from thetemperature compensation system 300 will equal the delay setting 175. If Val=0 and the delay setting 175 from the calibratingblock 170 is between 0 and 31 steps and the round trip delay is best case, then the output of the temperature compensated delay setting 180 from thetemperature compensation system 300 will equal the delay setting 175 plus 32 steps. And, if Val=0 and the delay setting 175 from the calibratingblock 170 is between 32 and 63 steps and the round trip delay is worst case, then the output of the temperature compensated delay setting 180 from thetemperature compensation system 300 will equal the delay setting 175 minus 32 steps. -
FIG. 2 is a flowchart illustrating operations 200 ofmodules 331 within thememory 330 of atemperature compensation system 300 for determining a temperature compensated delay setting 180 in accordance with an embodiment of the invention. - At
step 201, theoperations 200 start with thetemperature compensation system 300 sending a signal to the calibratingblock 170 to generate a delay setting 175 and a value (“Val”) of thereturn clock 160. - At
step 202, if theRLDRAM 110 is not in a refresh window, theoperations 200 wait until the RLDRAM is in a refresh window. - At
step 203, a determination is made as to whether theRLDRAM 110 is in a refresh window. - At
step 204, if theRLDRAM 110 is in a refresh window, a determination is made as to the value of thereturn clock 160. - At
step 205, if the value of thereturn clock 160 is 0, the calibratingblock 170 determines a delay setting (“Cal Delay”) 175. - At
step 206, ifCal Delay 175 is >=32 steps, then the temperature compensated delay setting (“Actual”) 180 will be set equal to the lesser ofCal Delay 175−32 steps and 4 steps (i.e., # step=4). IfCal Delay 175−32 steps is 4 steps or less, then the temperature compensated delay setting 180 will be set toCal Delay 175−32 steps and theoperations 200 will return to step 201. - At
step 207, ifCal Delay 175 is <32 steps, then the temperature compensated delay setting (“Actual”) 180 will be set equal to the lesser ofCal Delay 175+32 steps and 4 steps (i.e., # step=4). IfCal Delay 175+32 steps is 4 steps or less, then the temperature compensated delay setting 180 will be set toCal Delay 175+32 steps and theoperations 200 will return to step 201. - At
step 208, continuing fromstep 206, ifCal Delay 175−32 steps is greater than 4 steps, then the temperature compensated delay setting 180 will be adjusted by a maximum of 4 steps. Remaining adjustments to the temperature compensated delay setting 180 will be made by subsequent 1 step increments. - At
step 209, continuing fromstep 207, ifCal Delay 175+32 steps is greater than 4 steps, then the temperature compensated delay setting 180 will be adjusted by a maximum of 4 steps. Remaining adjustments to the temperature compensated delay setting 180 will be made by subsequent 1 step increments. - At
step 210, if the value of thereturn clock 160 is 1, the calibratingblock 170 determines a delay setting (“Cal Delay”) 175. The temperature compensated delay setting (“Actual”) 180 will be set equal to the lesser ofCal Delay Cal Delay 175 is 4 steps or less, then the temperature compensated delay setting 180 will be set toCal Delay 175 and theoperations 200 will return to step 201. - At
step 211, continuing fromstep 210, ifCal Delay 175 is greater than 4 steps, then the temperature compensated delay setting 180 will be adjusted by a maximum of 4 steps. Remaining adjustments to the temperature compensated delay setting 180 will be made by subsequent 1 step increments. - With respect to
steps delay 180 will be 14 steps. This new temperature compensateddelay 180 will be incremented by the remaining 1 step (i.e., to give 15 steps) upon running of the next calibration. - In the case of the
RLDRAM 110 described above, only 4 steps are allowed to occur per calibration loop for two reasons. First, the time that it takes to adjust 4 steps is approximately the same as the duration of the refresh window. Second, it is safer to have minimal changes between calibration loops, especially when the changes are meant to address temperature change related delays. Of course, the 4 steps amount may be varied depending on the properties of thememory device 110 and/orFPGA 190. - Thus, according to one embodiment, a calibration routine for synchronizing
data signals 150 of a source-synchronous interface 195 to asystem clock signal 121 is provided. A returned version of thesystem clock signal 160 is received from theinterface 195 and is compared to thesystem clock signal 121 to determine a timing difference between the clock signals 121, 160. The data signals 150 are adjusted by adding to them an amount ofdelay 180 equal to the lesser of the timing difference or an amount that corresponds to a maximum temperature dependent delay variation that could occur since a previous run of the calibration routine. According to one embodiment, the source-synchronous interface 195 may be between a Xilinx™ Virtex™-4FPGA 190 and either RLDRAM or QDR-II memory devices 110. For example, the calibration routine may be run periodically and the delay setting 175 determined by the calibratingblock 170 may be adjusted by up to 320 ps (or 4 steps) by thetemperature compensation system 300. - The invention provides several advantages. For example, it provides for an improvement in source-synchronous systems over a wide temperature range with a guaranteed latency.
- The above described method may be summarized with the aid of a flowchart.
FIG. 3 is a flowchart illustrating operations 400 ofmodules 331 within thememory 330 of atemperature compensation system 300 for synchronizing adata signal 150 to aclock signal 121 in a source-synchronous system 100, the source-synchronous system 100 having first andsecond systems interface 195, thefirst system 190 providing theclock signal 121 to thesecond system 110, thesecond system 110 providing the data signal 150 and areturn clock signal 160 synchronous to the data signal 150 to thefirst system 190, in accordance with an embodiment of the invention. - At
step 401, theoperations 400 start. - At
step 402, a first time delay between theclock signal 121 and thereturn clock signal 160 is determined and the data signal 150 is delayed by the first time delay. - At
step 403, after a predetermined period, a second time delay between theclock signal 121 and thereturn clock signal 160 is determined. - At
step 404, a difference between the first and second time delays is determined. - At
step 405, the data signal 150 is further delayed by at least a portion of the difference to thereby compensate for a temperature change of the source-synchronous system 100. - At
step 406, theoperations 400 end. - In the above method, the first time delay may be determined during a start-up period of the source-
synchronous system 100. The predetermined period may be one of a warm-up period and a cool-down period for the source-synchronous system 100. The first and second time delays may include a respective amount for centering thereturn clock signal 160 with respect to theclock signal 121. Thefirst system 190 maybe a field programmable gate array (“FPGA”) and the second system may be amemory device 110. Thememory device 110 may be a reduced latency dynamic random access memory (“RLDRAM”) device. The portion of the difference may be less than or equal to a refresh period for theRLDRAM device 110. Thememory device 110 may be a quad data rate (“QDR”) synchronous random access memory (“SRAM”) device. The portion of the difference may be a minimum time delay increment (e.g., 1 step) chosen to limit the further delaying 405 of the data signal 150 to prevent data signal errors. And, the portion of the difference may be an expected delay due to the temperature change. - While this invention is primarily discussed as a method, a person of ordinary skill in the art will understand that the apparatus discussed above with reference to a
temperature compensation system 300, may be programmed to enable the practice of the method of the invention. Moreover, an article of manufacture for use with atemperature compensation system 300, such as a pre-recorded storage device or other similar computer readable medium including program instructions recorded thereon, may direct thetemperature compensation system 300 to facilitate the practice of the method of the invention. It is understood that such apparatus and articles of manufacture also come within the scope of the invention. - In particular, the sequences of instructions which when executed cause the method described herein to be performed by the
temperature compensation system 300 ofFIG. 1 can be contained in a data carrier product according to one embodiment of the invention. This data carrier product can be loaded into and run by thetemperature compensation system 300 ofFIG. 1 . In addition, the sequences of instructions which when executed cause the method described herein to be performed by thetemperature compensation system 300 ofFIG. 1 can be contained in a computer software product according to one embodiment of the invention. This computer software product can be loaded into and run by thetemperature compensation system 300 ofFIG. 1 . Moreover, the sequences of instructions which when executed cause the method described herein to be performed by thetemperature compensation system 300 ofFIG. 1 can be contained in an integrated circuit product (e.g., hardware modules) including a coprocessor or memory according to one embodiment of the invention. This integrated circuit product can be installed in thetemperature compensation system 300 ofFIG. 1 . - The embodiments of the invention described above are intended to be exemplary only. Those skilled in this art will understand that various modifications of detail may be made to these embodiments, all of which come within the scope of the invention.
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/482,697 US7543171B2 (en) | 2006-07-10 | 2006-07-10 | Method and system for dynamic temperature compensation for a source-synchronous interface |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/482,697 US7543171B2 (en) | 2006-07-10 | 2006-07-10 | Method and system for dynamic temperature compensation for a source-synchronous interface |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080010479A1 true US20080010479A1 (en) | 2008-01-10 |
US7543171B2 US7543171B2 (en) | 2009-06-02 |
Family
ID=38920365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/482,697 Active 2027-11-30 US7543171B2 (en) | 2006-07-10 | 2006-07-10 | Method and system for dynamic temperature compensation for a source-synchronous interface |
Country Status (1)
Country | Link |
---|---|
US (1) | US7543171B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10032502B1 (en) | 2008-06-06 | 2018-07-24 | Uniquify IP Company, LLC | Method for calibrating capturing read data in a read data path for a DDR memory interface circuit |
US10289786B1 (en) * | 2017-06-27 | 2019-05-14 | Xilinx, Inc. | Circuit design transformation for automatic latency reduction |
US10690721B2 (en) | 2018-09-12 | 2020-06-23 | Stmicroelectronics Asia Pacific Pte Ltd | Adaptive glitch detector for system on a chip |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8149570B2 (en) * | 2010-03-18 | 2012-04-03 | Keebler John C | Universal power supply system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794020A (en) * | 1995-06-16 | 1998-08-11 | Hitachi, Ltd. | Data transfer apparatus fetching reception data at maximum margin of timing |
US6452421B2 (en) * | 2000-03-06 | 2002-09-17 | Hitachi, Ltd. | Phase-controlled source synchronous interface circuit |
US6505149B1 (en) * | 1999-08-02 | 2003-01-07 | International Business Machines Corporation | Method and system for verifying a source-synchronous communication interface of a device |
US7222036B1 (en) * | 2006-03-31 | 2007-05-22 | Altera Corporation | Method for providing PVT compensation |
US7453302B2 (en) * | 2003-12-23 | 2008-11-18 | Infineon Technologies Ag | Temperature compensated delay signals |
-
2006
- 2006-07-10 US US11/482,697 patent/US7543171B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794020A (en) * | 1995-06-16 | 1998-08-11 | Hitachi, Ltd. | Data transfer apparatus fetching reception data at maximum margin of timing |
US6505149B1 (en) * | 1999-08-02 | 2003-01-07 | International Business Machines Corporation | Method and system for verifying a source-synchronous communication interface of a device |
US6452421B2 (en) * | 2000-03-06 | 2002-09-17 | Hitachi, Ltd. | Phase-controlled source synchronous interface circuit |
US7453302B2 (en) * | 2003-12-23 | 2008-11-18 | Infineon Technologies Ag | Temperature compensated delay signals |
US7222036B1 (en) * | 2006-03-31 | 2007-05-22 | Altera Corporation | Method for providing PVT compensation |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10032502B1 (en) | 2008-06-06 | 2018-07-24 | Uniquify IP Company, LLC | Method for calibrating capturing read data in a read data path for a DDR memory interface circuit |
US10229729B2 (en) | 2008-06-06 | 2019-03-12 | Uniquify IP Company, LLC | Method for calibrating capturing read data in a read data path for a DDR memory interface circuit |
US10289786B1 (en) * | 2017-06-27 | 2019-05-14 | Xilinx, Inc. | Circuit design transformation for automatic latency reduction |
US10690721B2 (en) | 2018-09-12 | 2020-06-23 | Stmicroelectronics Asia Pacific Pte Ltd | Adaptive glitch detector for system on a chip |
Also Published As
Publication number | Publication date |
---|---|
US7543171B2 (en) | 2009-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210082534A1 (en) | Methods for memory interface calibration | |
US7368966B2 (en) | Clock generator and clock duty cycle correction method | |
US8824224B2 (en) | Frequency-agile strobe window generation | |
US7590008B1 (en) | PVT compensated auto-calibration scheme for DDR3 | |
US7825711B2 (en) | Clock jitter compensated clock circuits and methods for generating jitter compensated clock signals | |
US7088156B2 (en) | Delay-locked loop having a pre-shift phase detector | |
US20080276112A1 (en) | Semiconductor integrated circuit | |
US20240345618A1 (en) | Memory system using asymmetric source-synchronous clocking | |
US7839193B2 (en) | Duty cycle correction circuits including a transition generator circuit for generating transitions in a duty cycle corrected signal responsive to an input signal and a delayed version of the input signal and methods of operating the same | |
US6581017B2 (en) | System and method for minimizing delay variation in double data rate strobes | |
KR20070059083A (en) | Method and apparatus for high-speed input sampling | |
US9401189B1 (en) | Methods and apparatus for performing runtime data eye monitoring and continuous data strobe calibration | |
US7590879B1 (en) | Clock edge de-skew | |
US9620196B2 (en) | Reception circuit, method for adjusting timing in reception circuit, and semiconductor device | |
US7639054B1 (en) | Techniques for generating programmable delays | |
US7543171B2 (en) | Method and system for dynamic temperature compensation for a source-synchronous interface | |
JP2005530297A (en) | Method and apparatus for delay circuit | |
US20120319752A1 (en) | Look-up tables for delay circuitry in field programmable gate array (fpga) chipsets | |
KR101172270B1 (en) | Duty-cycle correction in a delay-locked loop | |
US9106230B1 (en) | Input-output circuitry for integrated circuits | |
US8929162B1 (en) | Gating and sampling a data strobe signal using a shared enable signal | |
US8742809B2 (en) | Delay-locked loop having a loop bandwidth dependency on phase error | |
JP2004070800A (en) | Memory system and memory module | |
US8254189B2 (en) | Method for tuning control signal associated with at least one memory device | |
KR20110138140A (en) | Delay-locked loop having loop bandwidth dependency on operating frequency |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ALCATEL, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FORTIN, ERIC;HARVEY, DAVID MARTIN;BUYUKTEPE, HAYRETTIN;REEL/FRAME:018049/0944;SIGNING DATES FROM 20060705 TO 20060706 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: ALCATEL LUCENT, FRANCE Free format text: CHANGE OF NAME;ASSIGNOR:ALCATEL;REEL/FRAME:022480/0523 Effective date: 20061130 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: PROVENANCE ASSET GROUP LLC, CONNECTICUT Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NOKIA TECHNOLOGIES OY;NOKIA SOLUTIONS AND NETWORKS BV;ALCATEL LUCENT SAS;REEL/FRAME:043877/0001 Effective date: 20170912 Owner name: NOKIA USA INC., CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNORS:PROVENANCE ASSET GROUP HOLDINGS, LLC;PROVENANCE ASSET GROUP LLC;REEL/FRAME:043879/0001 Effective date: 20170913 Owner name: CORTLAND CAPITAL MARKET SERVICES, LLC, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:PROVENANCE ASSET GROUP HOLDINGS, LLC;PROVENANCE ASSET GROUP, LLC;REEL/FRAME:043967/0001 Effective date: 20170913 |
|
AS | Assignment |
Owner name: NOKIA US HOLDINGS INC., NEW JERSEY Free format text: ASSIGNMENT AND ASSUMPTION AGREEMENT;ASSIGNOR:NOKIA USA INC.;REEL/FRAME:048370/0682 Effective date: 20181220 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
AS | Assignment |
Owner name: PROVENANCE ASSET GROUP LLC, CONNECTICUT Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKETS SERVICES LLC;REEL/FRAME:058983/0104 Effective date: 20211101 Owner name: PROVENANCE ASSET GROUP HOLDINGS LLC, CONNECTICUT Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CORTLAND CAPITAL MARKETS SERVICES LLC;REEL/FRAME:058983/0104 Effective date: 20211101 Owner name: PROVENANCE ASSET GROUP LLC, CONNECTICUT Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:NOKIA US HOLDINGS INC.;REEL/FRAME:058363/0723 Effective date: 20211129 Owner name: PROVENANCE ASSET GROUP HOLDINGS LLC, CONNECTICUT Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:NOKIA US HOLDINGS INC.;REEL/FRAME:058363/0723 Effective date: 20211129 |
|
AS | Assignment |
Owner name: RPX CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PROVENANCE ASSET GROUP LLC;REEL/FRAME:059352/0001 Effective date: 20211129 |
|
AS | Assignment |
Owner name: BARINGS FINANCE LLC, AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:RPX CORPORATION;REEL/FRAME:063429/0001 Effective date: 20220107 |
|
AS | Assignment |
Owner name: RPX CORPORATION, CALIFORNIA Free format text: RELEASE OF LIEN ON PATENTS;ASSIGNOR:BARINGS FINANCE LLC;REEL/FRAME:068328/0278 Effective date: 20240802 |
|
AS | Assignment |
Owner name: BARINGS FINANCE LLC, AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:RPX CORPORATION;RPX CLEARINGHOUSE LLC;REEL/FRAME:068328/0674 Effective date: 20240802 |