When I use the IBUFDS_DIFF_OUT primitive in a submodule of my design with a DIFF_TERM attribute, the attribute is dropped by MAP. This issue occurs when using Virtex-4 and Virtex-5 devices.
I checked the PAD report and the DIFF_TERM attribute is not there on the pins specified. Why does this occur?
This issue occurs because MAP drops the DIFF_TERM attribute on a IBUFDS_DIFF_OUT primitive when hierarchy is retained. Consequently, the attribute is not included in the PAD report. This issue will be fixed in a future software version.
You can work around this issue by enabling the "Allow Logic Optimization Across Hierarchy" option in MAP. When using the command line, set the -ignore_keep_hierarchy.
Another way to work around this issue is to set the environment variable as follows:
SET XIL_MAP_NO_PARTIAL_FLATTENING =1
Linux and Solaris
setenv XIL_MAP_NO_PARTIAL_FLATTENING 1
For general information on setting ISE environment variables, see (Xilinx Answer 11630).