Synthesizable RTL can be broken down into the following categories:
See
(Xilinx Answer 39079) for help debugging issues regarding inference.
Many Xilinx primitives and/or macros can be inferred; although not all. When running into any inference concerns, please refer to this section of the design assistant
See
(Xilinx Answer 39648) for help debugging issues with instantiations.
Whether instantiating a lower level module, black-box, or a primitive this is a great starting point to help debug instantiation issues.
See
(Xilinx Answer 40085) for help with performance considerations.
XST provides performance enhancements to help achieve high speed design.
See
(Xilinx Answer 40609) for help with logic optimization.
XST will optimize logic to improve performance and area.