Checksums on Data I/O programmers do not match when I perform "load" and "read" operations.
("Load" operations are performed prior to programming a part, while "read" operations can occur any time before or after the part is programmed.)
This occurs because the Data I/O checksum algorithms for "load" and "read" operations differ. When the checksum is calculated after a "load," Data I/O includes the manufacturer's ID in its calculation. The manufacturer's ID is also included in the calculation when the checksum is calculated at the end of the programming process. However, Data I/O does not include this data when it calculates the checksum after a "read".
This applies to the devices in the Xilinx 1700 and 7000 families as well.
This may pose a problem for users who wish to obtain the same checksum for both operations. There is no way to work around this issue, but you should see the same checksum within the confines of what may be considered a single "operation" -- that is, the checksum given when you load a programming file to program a device should match the checksum reported at the end of programming. The checksum you see when you read a device as a master should also match the one reported when immediately programing a part using the same master.
For details on the actual checksum calculation algorithms used by a specific manufacturer (e.g., Data I/O), contact that manufacturer directly. (Note that this information may be proprietary in nature.)