parameter N=8;
input clk,si,load;
input [N-1:0] din;
output so;
reg [N-1:0] tmp;
always @(posedge clk or posedge load)
if (load)
tmp <= din;
else
tmp <= {tmp[N-2:0], si};
assign so = tmp[N];
endmodule