Issue JTAG Program command to hw_device
Syntax
boot_hw_device [‑disable_done_check] [‑timeout <arg>] [‑quiet] [‑verbose]
<hw_device>
Usage
Name | Description |
---|---|
[-disable_done_check]
|
Disable done check for boot device |
[-timeout]
|
Time out for boot (seconds) Default: default |
[-quiet]
|
Ignore command errors |
[-verbose]
|
Suspend message limits during command execution |
<hw_device>
|
Target hw_device connection |
Categories
Description
Issue JTAG PROGRAM command to the hw_device (FPGA).
The boot_hw_device command triggers the FPGA boot and board startup sequence. The boot sequence starts the FPGA configuration process to clear the device of any prior programming, and then to load a new program, depending on the mode pin settings.
The hw_device will boot based on the mode pin settings. If the mode pins of the FPGA on the
device are set to JTAG mode, or the interface is not active (for example, the PROM is
not configured) the net effect of the boot_hw_device
command is to
clear the prior programming.
This command returns a 1 if it detects that the DONE pin has gone HIGH, or when the device has been cleared, otherwise it returns 0.
Arguments
-disable_done_check
- (Optional) Disable done check for boot device. Use this option when you intend to clear a programmed device without reprogramming it, in JTAG mode for instance.
-timeout <arg>
- (Optional) Specify the timeout value in seconds for when the
boot_hw_device
command will stop trying to boot the device.
-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.<hw_device> - (Optional) Specify the hw_device object to send the JTAG boot command to. The hw_device must be specified as an object as returned by the get_hw_devices
or current_hw_device
commands.
Example
The following example creates a memory device and associates it with the current_hw_device
, assigning various properties of the hw_cfgmem object. Then it uses the write_cfgmem
command to format the design bitstream, and associate the cfgmem (.mcs) file with the PROGRAM.FILE property of the hw_cfgmem object. Then it programs the hw_cfgmem object with the data from the MCS file starting at the specified offset address. After programming, the boot_hw_device
command is issued for the current_hw_device
and the DONE pin is checked, and an appropriate message is returned:
set memObj [create_hw_cfgmem -hw_device [current_hw_device] \
[lindex [get_cfgmem_parts {28f00ap30t-bpi-x16}] 0]]
set_property PROGRAM.BLANK_CHECK 1 $memObj
set_property PROGRAM.ERASE 1 $memObj
set_property PROGRAM.CFG_PROGRAM 1 $memObj
set_property PROGRAM.VERIFY 1 $memObj
write_cfgmem -force -format MCS -size 64 -interface BPIx16 \
-loadbit "up 0x0 ./project_netlist.runs/impl_1/sinegen_demo.bit" \
./config_28f00ap30t
set_property PROGRAM.FILE ./config_28f00ap30t.mcs $memObj
program_hw_cfgmem -hw_cfgmem $memObj
if {[boot_hw_device [current_hw_device]] == 1} {
puts stderr "DONE signal is HIGH"
} else {
puts stderr "DONE signal is LOW"
}