AR# 46738: Xilinx Spartan-6 FPGA Design Assistant - Setting logic controls in the fabric
Xilinx Spartan-6 FPGA Design Assistant - Setting logic controls in the fabric
This Answer Record provides an explanation on using flip-flop and logic controls that can be set to help improve performance of your design.
NOTE: This Answer Record is part of the XilinxSpartan-6 FPGA Solution Center (Xilinx Answer 44744).The XilinxSpartan-6 FPGASolution Center is available to address all questions related toSpartan-6 devices.Whether you are starting a new design withSpartan-6 FPGA or troubleshooting a problem, use theSpartan-6 FPGA Solution Center to guide you to the right information.
There are many primitives in the Spartan-6 FPGA fabric that can be used with Set/Reset control, clock enables, and other logic control functions.These types of logic control can either be inferred in your logic or instantiated manually.
For clocks in your design, you should always use clockenables when available in order to save your clock resources, improve timing characteristics, and reduce power. If you want to enable a clock onan entire clock tree, you can use the clock enable available on BUFGs.If only registers need to be enabled, use the individual clock enable controls that are available in the registers.
When using a set or reset function in your design, always use the set or reset synchronously. Using an asynchronous reset can result in degraded performance as the synthesis tools cannot perform optimizations as easily.For other control ports used in different primitives, synchronous control should be used for the same reason since asynchronous operation limits optimization during synthesis.
In addition, the Spartan-6 User Guides describe the primitives and blocks (blockRAM, CLB, DCM, PLL, buffers, etc.) in more detail so that you have a better understanding of how the Spartan-6 FPGA fabric can work for you in a design.