We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Page Bookmarked

AR# 23146

System ACE CF - Virtex-4 configuration via CF fails to function although DONE goes High


When programming Virtex-4 devices from the System ACE CF, I find that the DONE pin can go High, but the devices do not function.

This problem is specific to running the ".ace" files after the Virtex-4 has been programmed and has to do with the timing of the JPROGRAM command in the SVF file.

If this is the issue, the system should boot up fine from a power up or when the PROG pin is pulsed manually.


The issue is caused by a missing time delay adjustment, which is needed after the JPROGRAM instruction is issued to the device.

The SVF files created in iMPACT are frequency independent and do not account for speeds faster than 1 MHz.

For the FPGAs, the SVF files will have a JPROGRAM command which will allow the JTAG logic to issue a PROG pulse to the device internally. The JPROG command will require a delay just as the PROG pin pulse requires.

In the iMPACT SVF file, the following sequence delivers the JPROGRAM instruction to erase the FPGA:

// Loading device with a `jprogram` instruction.

SIR 10 TDI (03cb) ;

// Loading device with a `cfg_in` instruction.

SIR 10 TDI (03c5) ;


To allow the file to properly issue the correct erase sequence to the device, the RUNTEST command that accompanies the cfg_in instruction must be scaled to match the system clock used.

For Virtex-4, the TCK wait cycles required after issuing the cfg_in instruction are calculated by multiplying the worse case wait time, 2 ms, by the TCK clock frequency used.

Example for Virtex-4

Tpl cycles = (2 ms delay required to clear configuration memory) x (max clocking frequency of 33 MHz) = Number of clock cycles to be inserted after the cfg_in instruction to ensure that the device has completely cleared the configuration memory.

Tpl cycles = (2 ms) x (33 MHz) = 66,000 clock cycles

Add the proper delay by editing the RUNTEST command in the SVF code:

// Loading device with a `jprogram` instruction.

SIR 10 TDI (03cb) ;

// Loading device with a `cfg_in` instruction.

SIR 10 TDI (03c5) ;


To make these changes, follow these steps:

1. In iMPACT, select Edit -> Preference.

2. Check "Keep the Intermediate SVF File" option in the File Generation Controls preference menu.

3. Create the System ACE CF file using the iMPACT. An SVF file will be saved with the ACE file (e.g., "rev0.svf" and "rev0.ace").

4. Edit the SVF file to change the RUNTEST wait time after the JPROGRAM instruction (as described above).

5. Generate a new ACE file from the modified SVF file using the SVF2ACE utility in iMPACT batch mode.

5a. To enter iMPACT batch mode from your computer's command prompt, enter "impact".

5b. To generate the ACE file from the iMPACT batch mode prompt, enter "svf2ace -wtck -d -m 16776192 -i modified.svf -o modified.ace". The new ACE file should be used to replace the existing ACE file generated via iMPACT.

AR# 23146
Date 12/15/2012
Status Active
Type General Article