CRC is most often the "Cyclic Redundancy Check" code used for detecting (but not correcting) bit errors in transmitted data blocks.
Do a Google search.
If you really want to do CDR, check out the major Xilinx and Altera FPGA's, which have CDR built-in.
Otherwise it depends on the kind of data. Also look at the Opencores.org USB core. It has a kind of CDR by oversampling the signal and using a crystal at nearly the correct frequency. If the packet is short, this will ensure that all bits are reclocked correctly, even without having the ideal recovered clock available.
Also check out Hogge phase detectors in combination with phase locked loops. Again, do a Google search