A method for error detection and correction (EDC) includes: generating a
complete EDC code in response to a data packet; distributing the complete
EDC code among the data packet to create a plurality of bytes, each
including a data portion from the data packet and an EDC code portion
from the complete EDC code; storing the bytes in a memory module;
retrieving the bytes from the memory module; forwarding the data portions
of the bytes retrieved from the memory module to a requesting device;
providing the data portions of the bytes retrieved from the memory module
to an EDC functional block; providing the EDC code portions of the bytes
retrieved from the memory module to the EDC functional block; and
performing error checking and correction in the EDC functional block upon
receiving the complete EDC code from the provided EDC code portions.