Shift Operator

Keysymbols: >>, <<.

The shift operators are shift left and shift right. The shift operator takes a vector and a number indicating the shift. The empty bits caused by shifting are filled with zeros. See examples below.

        module shiftTest;
           reg [3:0] a;

           initial begin
              a = 4'b1010;

              $displayb(a << 1);   // shift left by 1, evaluates to 4'b0100
              $displayb(a >> 2);   // shift right by 2, evaluates to 4'b0010
           end

        endmodule // shiftTest

This operator is useful in modelling shift registers, long multiplication algorithms, etc.

EXERCISE
What does the following evaluate to ?

              $displayb((4'b0110 == (4'b1100 >> 1)));
              $displayb((4'b0110 == (4'b1100 << 1)));

Answers


previous next contents