tcp/ip校验和计算:
第一步:校验和位清零,16bit累加,累加结果用sum[31:0]表示;
第二步:高低位相加,即sum_r1[31:0] <= sum[31:16]+sum[15:0];
第三步:再次高低位相加,防止第一次高低位相加的结果溢出16bit,
即sum_r2[15:0] <= sum_r1[31:16]+sum_r1[15:0];
第四步:取反,check_sum_r[15:0] = ~sum_r2[15:0];
经过以上四步即可得到正确的校验和结果。
tcp/ip校验和计算:
第一步:校验和位清零,16bit累加,累加结果用sum[31:0]表示;
第二步:高低位相加,即sum_r1[31:0] <= sum[31:16]+sum[15:0];
第三步:再次高低位相加,防止第一次高低位相加的结果溢出16bit,
即sum_r2[15:0] <= sum_r1[31:16]+sum_r1[15:0];
第四步:取反,check_sum_r[15:0] = ~sum_r2[15:0];
经过以上四步即可得到正确的校验和结果。