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!

Showing results for 
Search instead for 
Did you mean: 
Participant jesperjustesen
Registered: ‎01-19-2016

Trouble with "execute_hw_svf"


I have been struggling with "execute_hw_svf" but I have now found a solution which I want to share.

In Vivado I have been generating SVF files as described in UG908 Chapter 8. The SVF files is supposed to be used by EMS sub-suppliers for FPGA programming. I do not have access to any third-party JTAG programmers my self, so I wanted to validate the SVF files using Vivado and Xilinx programmers. The "execute_hw_svf" command is intended for exactly such validation.

When I called the command from the console within Vivado, the process in most cases seemed to lock following the only message printed to terminal (shown below).

execute_hw_svf -verbose C:/svftarget.svf
INFO: [Labtoolstcl 44-615] Merging header information for SVF file. This may take a while depending on your SVF file size.

I needed to terminate Vivado to get out of this lock.

I have now identified two occasions for trouble.

  • Opening "Hardware Manager" without any active project
    If I open the "Hardware Manager" out of context with any project I always get into a lock if I call "execute_hw_svf".
    I would have thought that the SVF file itself would feature all required information needed to be able to do the programming, but apparently there is some kind of issue.
  • Temporary file \project.hw\preProcessesSvf.svf
    A temporary file called preProcessesSvf.svf will be left if "execute_hw_svf" is aborted at certain points. Calling "execute_hw_svf" while preProcessesSvf.svf file is present, will always result in the lock state.
    The file can manually be removed and then will "execute_hw_svf" succeed again.

So... if facing issues with "execute_hw_svf", make sure not to use the hardware manager independently and make sure to remove preProcessesSvf.svf file.

Note: I have not tried to investigate the issues using Vivado TCL mode.

4 Replies
Registered: ‎06-05-2013

Re: Trouble with "execute_hw_svf"

Thanks for sharing the above details. I just tried to reproduce the above behavior with KC705 board but everything works. It would be good to know the Vivado version which you are using. I gave a try with 2018.3

Don’t forget to reply, kudo, and accept as solution.
0 Kudos
Participant jesperjustesen
Registered: ‎01-19-2016

Re: Trouble with "execute_hw_svf"

Hi Harshit

Thank you for your interest.

I use a a "Platform Cable USB II" (DLC10) programmer.
The Vivado version is 2018.2

I have tried to replicate my issues again and I still have the same observations.

If I use the hardware programmer independently from any project the "execute_hw_svf" process still stalls after "Merging header information...".

When I use the hardware programmer from within a open project I still have issues.
If I abort (by forced close of Vivado) the "execute_hw_svf" process right after "Merging header information..." the preProcessesSvf.svf file will be left and all subsequent use of "execute_hw_svf" will be impossible.
I can recover from the situation by manually deleting preProcessesSvf.svf. Hence will "execute_hw_svf" succeed continuously afterwards.
I think the reason why I am able to terminate at the critical point (right after "Merging header information...") is that my SVF file includes "Indirect programming" and that makes the "execute_hw_svf" process very very slow.
So if you want to replicate the misbehaviour, you need the have a "large" or "complex" SVF file that will leave you plenty of time to about during "Merging header information...".

BR Jesper

0 Kudos
Xilinx Employee
Xilinx Employee
Registered: ‎03-07-2018

Re: Trouble with "execute_hw_svf"

Hello @jesperjustesen 

Please share your FPGA device details. 

Did you tried generating any other SVF (for simple design like counter) and tried configuring FPGA?


Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Participant jesperjustesen
Registered: ‎01-19-2016

Re: Trouble with "execute_hw_svf"


I have now tried to perform the same tests on a KC705. I see the exact same behaviour.

Initially I made a MCS image based on the BIST bit-file provided by xilinx.

write_cfgmem -format MCS -size 128 -interface SPIx1 -loadbit "up 0x0 C:/tmp/kc705-bist-rdf0102-14.4/kc705_bist/ready_for_download/download.bit" C:/tmp/kc705-bist-rdf0102-14.4/kc705_bist/ready_for_download/download.mcs

I configured the physical KC705 to have "configuration mode" equal to "Master SPI".

Then i generated a SVF file that features only erase of the entire Configuration Memory.



"Hardware Manager" out of context with any project

  • If I try to execute the SVF file then I get into a lock.


"Hardware Manager" opened while project is open

  • Calling execute_hw_svf works fine (given that preProcessesSvf.svf is not present). It will produce the following terminal output.
execute_hw_svf -verbose C:/tmp/kc705-bist-rdf0102-14.4/kc705_bist/ready_for_download/erase.svf
INFO: [Labtoolstcl 44-615] Merging header information for SVF file. This may take a while depending on your SVF file size.
INFO: [Labtoolstcl 44-548] Creating JTAG TCL script from SVF file. This may take a while depending on your SVF file size.
INFO: [Labtoolstcl 44-549] Re-opening target in JTAG mode
set current_hw_jtag [get_property hw_jtag [get_hw_target localhost:3121/xilinx_tcf/Digilent/210203A02181A]]
INFO: [Labtoolstcl 44-551] Sourcing JTAG TCL script: C:/vivado_project_device2/project_device2.hw/erase.tcl
source C:/vivado_project_device2/project_device2.hw/erase.tcl
# set_property ENDSTATE_IR {IDLE} $current_hw_jtag
# set_property ENDSTATE_DR {IDLE} $current_hw_jtag
# run_state_hw_jtag RESET
  • Calling execute_hw_svf and terminating Vivado immediately after (while the line below is shown) will provoke the error state.
INFO: [Labtoolstcl 44-615] Merging header information for SVF file. This may take a while depending on your SVF file size. 
  • preProcessesSvf.svf is now left abandoned and any calls to execute_hw_svf will lock.


Hopefully you can recreate this.


BR Jesper





0 Kudos