diff --git a/libraries/io/eth/src/vhdl/eth_checksum.vhd b/libraries/io/eth/src/vhdl/eth_checksum.vhd index bfe6208f70468f77e50c6310d951bb0b882de2d1..aead4db3f1fa2b1d8d07ca5f448bef5d9b97d09c 100644 --- a/libraries/io/eth/src/vhdl/eth_checksum.vhd +++ b/libraries/io/eth/src/vhdl/eth_checksum.vhd @@ -150,7 +150,7 @@ BEGIN sum; -- Accumulate the last carry - last_dat <= sum(c_halfword_w-1 DOWNTO 0) + sum_cin; + last_dat <= sum(c_halfword_w-1 DOWNTO 0) + sum_cin + word_sum_cin; -- Also add word_sum_cin in the case that the last word has a carry. -- Checksum is 1-complement of the sum nxt_checksum <= NOT(STD_LOGIC_VECTOR(last_dat)) WHEN prev_in_eop_dly='1' ELSE i_checksum;