^

AR# 42128 FPGA Configuration - How many clock cycles should I apply to CCLK after DONE has gone High?

How many clock cycles should be applied to CCLK after DONE has gone High to ensure my FPGA device is fully operational?

DONE is released by the Startup sequence to indicate that configuration has completed. The state is defined in BitGen using the "-g DONE_cycle" option. By default, DONE is released in cycle 4. DONE indicates that configuration is complete and all data has been loaded, but some extra clock cycles need to be applied to ensure the startup sequence completes correctly. The startup is controlled by a sequential 7-state machine. A conservative number for the clock cycles required after DONE is 24; this will catch most use cases where there is ideal clock of DONE and default options are used. Some BitGen options add some extra latency to the startup sequence. These include:

  • LCK_cycle - delays the startup until all DCM/MMCMs are locked; hence, the number of clock cycles added is undefined.
  • Match_cycle - delays startup until DCI is matched; hence, thenumber of clock cycles added is undefined.
  • DONE_PIPE - adds a clock cycle to the state assigned in DONE_CYCLE.

If you do not clock the startup completely, some of the following symptoms can be observed:

  • I/O remains tri-stated.
  • Dual mode pins operate in LVCMOS rather than the specified I/O standard.If you are using DCI on these Dual Mode pins, your DCI will calibrate for LVCMOS rather than your chosen I/O standard. This can be worked around referring to (Xilinx Answer 14887)
  • ICAP interface cannot be accessed from the FPGA fabric as the configuration logic is locked.

This will occur if the device has not reached the End of Startup state machine. The device can be fully operational before the device reaches this End of Startup state. This can leadto ICAP read and write failures or dual mode pins notoperating in the correctI/O standard.This event is indicated by the EOS signal being driven High. This can be observed in the STAT register or detected in the FPGA fabric using the STARTUP primitive.

For designs accessing the ICAP, it is good design practice to instantiate the STARTUP primitive. This primitive has an EOS pin, this will indicate when the configuration process has completed and the ICAP is available for read and write access. One exception here is when the JTAG configuration is used. JTAGhas top priority access to configuration logic. If JTAG is accessing configuration logic, then ICAP read and writes will fail. This EOS pin value will not indicate that JTAG has access.

AR# 42128
Date Created 07/21/2011
Last Updated 03/08/2013
Status Active
Type General Article
Devices
  • Spartan/XL
  • Spartan-3
  • Spartan-3A
  • More
  • Spartan-3AN
  • Spartan-6 LX
  • Spartan-6 LXT
  • Spartan-II
  • Spartan-IIE
  • Virtex
  • Virtex-4 FX
  • Virtex-4 LX
  • Virtex-4 SX
  • Virtex-5 FXT
  • Virtex-5 LX
  • Virtex-5 LXT
  • Virtex-5 SXT
  • Virtex-5 TXT
  • Virtex-6 CXT
  • Virtex-6 HXT
  • Virtex-6 LX
  • Virtex-6 LXT
  • Virtex-6 SXT
  • Virtex-7
  • Virtex-7 HT
  • Artix-7
  • Kintex-7
  • Less
Feed Back