Answers Database


FPGA Configuration: DONE Doesn't Go High; General XC4000 Debugging Hints


Record #102

Product Family: Hardware

Product Line: 4000

Product Part: 4000

Problem Title:
FPGA Configuration: DONE Doesn't Go High; General XC4000 Debugging Hints


Problem Description:
Urgency: Standard

General XC4000 Configuration Debugging Hints.

This section assumes you have understanding of how
configuration works in our XC4000 devices, so before you read
the following it is strongly recommended to carefully read
the configuration section in our "Programmable Data Book."


Solution 1:

Two conditions have to be met in order for the DONE pin on an
xc4000 device to go high:

1. The FPGA's internal configuration memory must be full.

2. The configuration length count must be met, EXACTLY.

This is important because the counter that determines when the
length count is met begins counting with the very first cclk,
not the first one after the preamble.

This means if a stray bit is inserted before the preamble or
the data source is not ready at the time of the first cclk, the
internal counter that holds the number of cclks will be one
ahead of the actual number of data bits read. Thus, at the end
of configuration the second condition will not be met until the
24 bit counter can roll past terminal count and then back up to
the lengthcount number stored in the lengthcount register. This
causes the FPGA to wait for no more than [ 2^24 * cclk
frequency] seconds.

If it is not possible to have the data ready at the time of the
first cclk, the problem could be circumvented by adding a few
buffer bits to the number in the length count.

Other things to check:

Remember that the xchecker expects to DRAW power from the pwr
and ground connections, not provide it.

If using the download cable, is the LCA configured in Slave
mode (M0=M1=M2=High)?

Is the DONE pin configured with the internal pullup or pulled
up externally?	Note that the download cable does not pull up
DONE.

Are the PROG and INIT pins pulled up?

The default MakeBits options are shown below.


     CRC Disable (1)
     Cfgosc F1Mhz
     Donepin Nopullup (2)
     Readcapture Disable
     Startupclk CCLK
     Synctodone No
     Outputsactive State1
     GSRactive State2
     Doneactive State0


(1) With CRC enabled, the INIT pin is pulled Low during
configuration if a data frame error is detected.

(2) Activate Pullup if an external pullup is not used.

The sections in the back of The User Guide and Tutorials book
are a good source for further information.




End of Record #102 - Last Modified: 10/19/98 11:31

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Technical Tips!