Programmable Reed-Solomon Codec: Design and Implementation