The present invention provides a cyclic redundancy check (CRC) calculation system
for a packet arriving on an n-byte wide bus. In one embodiment, the system includes
a bus-wide CRC subsystem configured to calculate an intermediate CRC value based
on complete segments of the packet. In addition, the system includes a byte-wide
CRC subsystem, coupled to the bus-wide subsystem, configured to calculate a remaining
CRC value based on the intermediate CRC value and one or more bytes within an incomplete
segment of the packet on a byte by byte basis. In addition, a method of calculating
a CRC value for a packet arriving on a n-byte wide bus and a data transmission
system incorporating the system are also disclosed.