diff options
Diffstat (limited to '')
| -rw-r--r-- | shifter.sv | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/shifter.sv b/shifter.sv new file mode 100644 index 0000000..da6fd77 --- /dev/null +++ b/shifter.sv @@ -0,0 +1,18 @@ +module shifter(in,shift,sout);
+ input [15:0] in;
+ input [1:0] shift;
+ output reg [15:0] sout;
+
+ always_comb begin
+ case (shift)
+ //no shift
+ 2'b00: sout = in;
+ 2'b01: sout = in << 1; //left bit shift
+ 2'b10: sout = in >> 1; //right bit shift
+ 2'b11: begin
+ sout = in >> 1;
+ sout[15] = sout[14]; //in[15] copied to to MSB after right bit shift
+ end
+ endcase
+ end
+endmodule
\ No newline at end of file |