Verilog中有两种移位运算符:<<(左移) >>(右移)
module shift;
reg[3:0] start,result;
begin
start = 1; //初始时刻start赋值为1
result = (start << 2);
end
endmodule
移位之后空出来的位用0来填充。进行移位运算之后要注意移位前后变量的位数:
4'h1001<<1 移位之后的变量为5'b10010
4'b1001 <<2 移位之后的变量为6'b10010
1<<6 移位之后为32'b1000000
4'b1001 >>1 移位之后为4'b0100
4'b1001>>4 移位之后为4'b0000