Shift Register Implementation

In reply to mago1991:

I believe you want to implement synthesizable logic.

The above code in any order will cause multiple drivers on Input_Delay[0].
Best way of writing is:

   Input_Delay <= {Input_Delay[3:1], Input};