# SVF file generation using tigard

**URL:** <https://discourse.securinghardware.com/t/svf-file-generation-using-tigard/72>\
**Category:** APA#2: Hardware Pentesting\
**Created:** [May 8, 2022, 3:09pm UTC](https://discourse.securinghardware.com/t/svf-file-generation-using-tigard/72 "2022-05-08T15:09:50Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![nsuazo](https://discourse.securinghardware.com/letter_avatar_proxy/v4/letter/n/e274bd/32.png) [@nsuazo](https://discourse.securinghardware.com/u/nsuazo)\
**Post date:** [May 8, 2022, 3:09pm UTC](https://discourse.securinghardware.com/t/svf-file-generation-using-tigard/72/1 "2022-05-08T15:09:50Z")

</div>

I am on SSD 6 and I am attempting to work on .svf file generation so I can learn how it is done and utilized. I am unable to find any specific software other than that produced by AMD’s Xilinx and Intel’s Cyclone branches for their FPGA suits that build .svf files, I also was unable to find sufficient documentation on svf command format for writing your own line by line. I did see that there was a similar post on APA#1 that was also asking about svf files but I do not believe it has sufficiently answered the question of actually building your own from captures or logs. If it is possible may I get the normal .svf chain explanation from capture to replay.

I understand this may not be necessarily part of the course so I thank anyone for their responses!

---

<div class="post-metadata">

**Author:** ![admin](https://discourse.securinghardware.com/letter_avatar_proxy/v4/letter/a/3ec8ea/32.png) [@admin](https://discourse.securinghardware.com/u/admin)\
**Post date:** [May 9, 2022, 5:10pm UTC](https://discourse.securinghardware.com/t/svf-file-generation-using-tigard/72/2 "2022-05-09T17:10:52Z")

</div>

In order to get the SVF for the demo video, we ran OpenOCD in debug mode which logged all the IRs and DRs. At that point, we made a script to parse it and turn it into an svf file.

SVF is generally only used for configuring FPGAs - but it was an existing standard file format for JTAG transactions - and one that had several readily available software implementations. We chose to use it because while generating the SVF itself wasn’t exactly trivial, all the others steps were.

I believe we were using OpenOCD 8.0 at the time, and so much has likely changed since we generated those SVF files. While OpenOCD has the ability to ‘play’ svf files, I don’t know of anyone else who’s use it to generate them. The most i’ve done in the recent past was doing a few minor JTAG operations with hand-coded SVF files, which i did from an ESP microcontroller board using [GitHub - emard/LibXSVF-ESP: ESP32/8266 Arduino as (X)SVF JTAG programmer](https://github.com/emard/LibXSVF-ESP)

I’d love to hear if anyone else has poked around with SVF’s though!

Hope this helps,  
-joe
