From algorithm design to hardware implementation