XST creates incorrect logic when there is an adder tree of depth three or more levels with std_logic_vector operands.
The resulting logic can result in a simulation mismatch.
The following options can be used as a work-around:
Following are fixes that are available when running XST via the ISE tools GUI and command line for fixing the issue by disabling the adder tree optimization:
1. XST run via ISE tools GUI - Lin64 and NT64 patches have been created for ISE 14.4, ISE 14.2, and ISE 13.4 to fix this issue for the ISE tools GUI and have been attached to this answer record. The patch needs the environment variable XIL_XST_ADDERTREE_ZERO to be set to 1.
2. XST run via command line - Add the following lines of code within .xst or .scr file before the run command:
set -checkcmdline no
set -addertree 0
The issue is fixed in ISE Design Suite 14.5 with the above work-around options mentioned for the ISE tools GUI and command line.