UPGRADE YOUR BROWSER

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!

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

Trouble with "execute_hw_svf"

Hi

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
Moderator
Moderator
425 Views
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

Thanks
Harshit
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Participant jesperjustesen
Participant
404 Views
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
394 Views
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?

Regards,
Bhushan

-------------------------------------------------------------------------------------------------------------------------------------------------
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
Participant
375 Views
Registered: ‎01-19-2016

Re: Trouble with "execute_hw_svf"

Hi

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.

image.png

 

"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