When I instantiate several block RAMs that have the same signal driving their write enable signals (WEA), the following error is generated in MAP:
Duplicating signal causes "ERROR:LIT:250 - Pins WEA0, WEA1, WEA2, and WEA3 of RAMB16 symbol "<symbol_name>" do not share the same signal. When WRITE_WIDTH_A is set to 1, 2, 4 or 9, these pins should be connected to the same signal."
If the design fanout is manually fixed to a certain limit, XST duplicates the register driving "WEA," which causes the MAP error.
You can work around this problem by increasing the fanout of the signal or by leaving the fanout at default.
Max Fanout can be set via the Project Navigator GUI from Synthesis properties under Xilinx Specific options, or this can be set as a constraint. For more information on Max Fanout, refer to page 336 of the XST User Guide:
This issue has been fixed in ISE 9.1i.