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.