XST generates a netlist with bad connectivity which then errors out with the following message during Translate when security attributes (ATTRIBUTE SECURE_CONFIG) are added to a module.
ERROR:NgdBuild:456 - logical net
'EtherCAT_IPCore_inst/EtherCAT_IPCore_inst/ESC_EEPROM0_CONFIG<2>' has both
active and tristate drivers...
Active driver(s) of net
'EtherCAT_IPCore_inst/EtherCAT_IPCore_inst/ESC_EEPROM0_CONFIG<2>':
XST puts a KEEP_HIERARCHY attribute on a module/entity with the secure attribute. As a result, this module/entity is not flattened, and all instances below this module/entity or external to this module/entity that do not have the security attributes will be flattened. This is how XST treats the security attributes. The problem is that the internal tri-state logic, within the module/entity containing the security attributes, is not converted to logic. Therefore, XST is not able to bring them to the top level where the I/O Pads are available (as they are deep down due to the hierarchy being preserved and, as a result multi-drivers are obtained).
This issue has been fixed in the 14.5 tools in the following manner:
The security attributes in the HDL need only be placed on the top-level entity and is enough to protect all lower level entities. In addition, the following settings have to incorporated.
For GUI:
For command line:
The 14.4 patch is attached to this answer record which can be used with the above options.
For GUI:
Patch_Bosch_14.4_updated.zip needs to be used along with the above mentioned GUI setting.
For command line:
Patch_Bosch_14.4.zip needs to be used along with the above mentioned command line environmental settings.