Abstract: A clock and data recovery circuit has an input port for receiving a data signal representing a sequence of data values, a pulse generator, a clock generator and a data storage element. The pulse generator generates a pulse whenever a data value change is detected in the received data signal. The clock generator generates a clock signal having an associated frequency and phase. The clock generator receives each pulse produced by the pulse generator so as to synchronize the clock signal's phase with data value changes on the input port. The data storage element stores data values in the data signal at times dictated by the generated clock signal. The data values stored by the data storage element is the recovered data signal and the generated clock signal is the recovered clock signal.