Глядя на шаблоны использования , мы видим, что рекомендуемое использование:
program_hw_devices [lindex [get_hw_devices] 0]
Учитывая, что текст вывода get_hw_devices
является «простым» словом (без пробелов или метасимволов Tcl), я подозреваю, что токены устройства на самом деле являются специальными значениями, которые имеют нетривиальные типы, свисающие с задней части их представление. Мы не рекомендуем такой подход, так как он может привести к очень странным сообщениям об ошибках (например, тому, которое вы получили), но, учитывая, что это так, вам нужно использовать именно тот шаблон, как описано выше, чтобы вы удалили ровно один уровень отъезд.
Для дальнейшего использования сценарий по этой ссылке (который предположительно работал) был:
# Connect to the Digilent Cable on localhost:3121
connect_hw_server -url localhost:3121
current_hw_target [get_hw_targets */xilinx_tcf/Digilent/12345]
open_hw_target
# Program and Refresh the XC7K325T Device
current_hw_device [lindex [get_hw_devices] 0]
refresh_hw_device -update_hw_probes false [lindex [get_hw_devices] 0]
set_property PROGRAM.FILE {C:/design.bit} [lindex [get_hw_devices] 0]
set_property PROBES.FILE {C:/design.ltx} [lindex [get_hw_devices] 0]
program_hw_devices [lindex [get_hw_devices] 0]
refresh_hw_device [lindex [get_hw_devices] 0]
Я бы сам написал больше так:
# Connect to the Digilent Cable on localhost:3121
connect_hw_server -url localhost:3121
current_hw_target [get_hw_targets */xilinx_tcf/Digilent/12345]
open_hw_target
# Program and Refresh the XC7K325T Device
set Device [lindex [get_hw_devices] 0]
current_hw_device $Device
refresh_hw_device -update_hw_probes false $Device
set_property PROGRAM.FILE "C:/design.bit" $Device
set_property PROBES.FILE "C:/design.ltx" $Device
program_hw_devices $Device
refresh_hw_device $Device
так что я делаю извлечение списка только один раз, но это чисто стиль; если один работает, другой должен.