`timescale 1ns/1ns

module s_to_p(
	input 				clk 		,   
	input 				rst_n		,
	input				valid_a		,
	input	 			data_a		,
 
 	output	reg 		ready_a		,
 	output	reg			valid_b		,
	output  reg [5:0] 	data_b
);

reg[2:0] cnt;
reg[5:0] out;
always @ (posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
cnt=3'd0;
end
else
begin
	if(valid_a)
cnt= (cnt==3'd6) ? 3'd1:cnt+3'd1; 
end
end
always @(posedge clk or negedge rst_n)
begin
if(!rst_n)
begin
out=6'd0;
end
else
begin
	if(valid_a)
out={data_a,out[5:1]};
end
end
			always @(*)
			begin
			if(!rst_n)
			begin
			valid_b<=1'd0;
			data_b<=6'd0;
			end
			else
			begin
			valid_b<=(cnt==3'd6);
			data_b<= (cnt==3'd6) ? out : data_b;
			end
			end
					always @(posedge clk or negedge rst_n)
						begin
						if(!rst_n)
						begin
							ready_a<=1'd0;
						end
						else
						begin
						ready_a<=1'd1;
						end
						end
endmodule