The first steps are the same as programming a ".bit" file manually, starting with entering boundary scan mode and selecting Initialize Chain to identify the devices in the chain. If the physical board is not available, the ".bsd" files can be manually added from the ISE designtools install directory. Note that the resulting chain built from this method should be identical to that which appears after using the Initialize Chain command.
Start writing to the SVF file by selecting Output -> SVF File -> Create SVF File... Note that the STAPL and XSVF file options appear here as well. SVF is an industry standard format that can be used with third-party SVF players. XSVF is a similar file, but in a proprietary Xilinx file format.
A prompt will appear to select the SVF file name and location.Select this location on your hard drive.
When this is done, any subsequent actions in the GUI will be recorded to the SVF file. Note the blue SVF FILE MODE text in the upper right corner indicating that the SVF is being written to. Batch mode commands will be similar to those used in programming a physical device, but will use the setCable -port svf -file "file name" format instead of the regular cable assignment (as shown in the console window here as well).
When an operation completes successfully, a message appears in the GUI.
From here, use:
Output -> SVF File -> Stop Writing to SVF File
This will stop writing to the SVF file and the file will be complete.
To generate a file for indirect programming, repeat the normal process and add the SPI/BPI flash. The Create SVF File... step to start the SVF can be performed immediately before starting the programming step and SVF writing can be stopped immediately after.
The SVF file will record the commands exactly as they appear as transitions in the JTAG chain. It will also record the command line operations used within the SVF itself, which can be read with a text editor.