Hi,
I am using Xilinx ISE 8.2 (SP3) targeted at a spartan 3 device.
We are attempting to use an FPGA for F/W and proof of concept work before taping out our ASIC, and are having difficulties with clocking.
Our product requires very low power consumption, and we perform global clock gating to reduce power consumption through the clock tree.
e.g. Master clock 16MHz, some logic is clocked at 8 or 4MHz, therefore only get a pulse every 2 or 4 clock cycles (we actually have about 12 clocks). In an ASIC flow, we can balance everything from the 16MHz clock and it will work.
For FPGA, it considers each clock independent, and we have hold problems, and setup problems (I haven't yet specified the multi-cycle paths for the "slow" clocks.
This is my first complex FPGA, and I have a number of questions
- When ISE has completed, there are a number of unplaced components, even thought utilization is low. Is this because it has failed timing, so it doesn't even bother.
- We may change to locally gated clocks (i.e. so that we only have one global clock). I still need to define the multi-cycle paths. Can anyone supply, or provide a link to, some example constraint files for this type of application.
- Any other pointers or suggestions would be greatly appreciated.
Thanks,
Steven