always @ (posedge clk or negedge rst_n)
begin
if(!rst_n)
flag <= 1'b0;
else if (Result_en_pos)
flag <= 1'b1;
else if(Result_en_neg)
flag <= 1'b0;
else
flag <= flag;
end
assign Result[15:0] = flag ? Count0_out[15:0] : Count0_out[31:16];
always @(posedge clk)
begin
Old_Result_en <= Result_en;
end
always @(posedge clk or posedge rst)
begin
if(rst==1'b1) Result <= 0;
else if((Old_Result_en==1'b0)&(Result_en==1'b1)) Result <= Count0_out[15:0];
else if((Old_Result_en==1'b1)&(Result_en==1'b0)) Result <= Count0_out[31:16];
else Result <= Result;
end