/*Write your code here*/
module univ_barrel8(input [7:0]x,input [2:0]sh,mode, output reg [7:0]y);
always@* begin
case(mode)
3'b000: y=x;
3'b001: y=x[7:0]<<sh;
3'b010: y=x[7:0]>>sh;
3'b011: y=$signed(x)>>>sh;
3'b100: y=((x << sh) | (x >> (8 - sh))) & 8'hFF;
3'b101: y=((x >> sh) | (x << (8 - sh))) & 8'hFF;
endcase
end
endmodule