Generate SVF file for current_hw_target
Syntax
write_hw_svf [‑force] [‑quiet] [‑verbose] <file_name>
Usage
Name | Description |
---|---|
[-force]
|
overwrite svf file if it exists |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
<file_name>
|
SVF filename |
Categories
Description
The Vivado hardware manager supports programming of hardware devices through the use of Serial Vector Format (SVF) files. SVF files are ASCII files that contain both programming instructions and configuration data. These files are used by ATE machines and embedded controllers to perform boundary-scan operations. The SVF file captures the JTAG commands needed to program the bitstream directly into a Xilinx device, or indirectly into a flash memory device. The SVF file can be written using the write_hw_svf
command, or applied to an open hw_target through the execute_hw_svf
command. Refer to the Vivado Design Suite User Guide: Programming and Debugging (UG908) for more information.
- Create an SVF target using
create_hw_target
. - Open the SVF target.
- Create one or more devices on the SVF target using
create_hw_device
. - Program the devices using commands like
program_hw_devices
. - Write the SVF file of operation commands using
write_hw_svf
.
write_hw_svf
command saves the cache by giving it a file name and moving it to the specified file path.
write_hw_svf
command, the cache is cleared, and restarted to capture any new device commands.This command returns a message indicating success, or returns an error if it fails.
Arguments
-force
- (Optional) Overwrite an existing file of the same name.
-quiet
- (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
-verbose
- (Optional) Temporarily override any message limits and return all messages from this command.
set_msg_config
command.<file_name>
- Specifies the SVF file name to write. You should specify a suffix (.svf) for the file as one will not be automatically assigned.
Examples
program_hw_devices [lindex [get_hw_devices] 0]
write_hw_svf C:/Data/k7_design.svf
open_hw
connect_hw_server
create_hw_target my_svf_target
open_hw_target
create_hw_device -part xc7k325t
create_hw_device -idcode 01234567 -irlength 8 -mask ffffffff -part userPart1
create_hw_device -part xcku9p
set_property PROGRAM.FILE {C:/Data/k7_design.bit} [lindex [get_hw_devices] 0]
set_property PROGRAM.FILE {C:/Data/ku_design.bit} [lindex [get_hw_devices] 2]
program_hw_devices [lindex [get_hw_devices] 0]
program_hw_devices [lindex [get_hw_devices] 2]
write_hw_svf C:/Data/myDesign.svf
create_hw_target my_svf_target
open_hw_target
set device [create_hw_device -part xc7k325t]
set_property PROGRAM.FILE {C:/Data/k7_design.bit} $device
create_hw_cfgmem -hw_device $device -mem_dev [lindex \
[get_cfgmem_parts {28f00am29ew-bpi-x16}] 0]
set cfgMem [current_hw_cfgmem]
set_property PROGRAM.ADDRESS_RANGE {use_file} $cfgMem
set_property PROGRAM.BLANK_CHECK 0 $cfgMem
set_property PROGRAM.BPI_RS_PINS {none} $cfgMem
set_property PROGRAM.CFG_PROGRAM 1 $cfgMem
set_property PROGRAM.CHECKSUM 0 $cfgMem
set_property PROGRAM.ERASE 1 $cfgMem
set_property PROGRAM.UNUSED_PIN_TERMINATION {pull-none} $cfgMem
set_property PROGRAM.VERIFY 1 $cfgMem
set_property PROGRAM.FILES [list {C:/data/flash.mcs} ] $cfgMem
create_hw_bitstream -hw_device $device [get_property \
PROGRAM.HW_CFGMEM_BITFILE $device]
program_hw_devices $device
program_hw_cfgmem -hw_cfgmem $cfgMem
write_hw_svf C:/Data/myDesign.svf