a calibration module for a data storage control system . the calibration system includes a programmable delay module configured to i ) receive a data strobe signal , ii ) receive a delay value , and iii ) output a delayed data strobe signal to a buffer based on the delay value , wherein data is read from the buffer based on the delayed data strobe signal . the calibration module further includes a delay calculation module configured to calculate the delay value based on a comparison between the data strobe signal and the delayed data strobe signal .