`timescale 1ns / 1ps

module cdc (
	input tclk, // target domain's clock
	input rst,
	
	input sin, // input data from the source domain
	output tout // output data to the target domain
);

reg [1:0] pipe;
always @(posedge tclk)
begin
	if (rst)
	begin
		pipe <= 0;
	end
	else
	begin
		pipe[0] <= sin;
		pipe[1] <= pipe[0];
	end
end

assign tout = pipe[1];

endmodule
