Replying because I can't edit.
This is way too complex, a purely combinatorial version would never meet timing in a design where you cared enough to make it in an FPGA. The question doesn't make sense on it's face. You want a pipelined version.
I asked why to get to the bottom of wht he's really asking.