Programming the board

The Hardware view, hw_server, programming and verifying a device.

The Hardware view#

The Hardware view in the HDL Studio side bar talks to Vivado’s hw_server:

  • Targets: the server with its version, the cable, and the devices with “programmed 12:06” and the XADC temperature and voltages, read when you refresh.
  • Bitstreams: the .bit and .ltx files of the work directory, with time and size.
  • Program log: what each programming run printed.

Without a server it offers Start local hw_server (hw_server -s tcp::3121 from the Vivado installation; it ends with the window) or Connect to remote server… (host:port, remembered for the workspace).

Programming#

HDL Studio: Program Device, the Program device button of the workspace dashboard, the program task, and hdl program all run the same script:

tcl
open_hw_manager
connect_hw_server -url localhost:3121
open_hw_target
current_hw_device [lindex [get_hw_devices] 0]
set_property PROGRAM.FILE "/p/.hdl-studio/vivado/blink.bit" [current_hw_device]
program_hw_devices
refresh_hw_device
puts "HDL-PROGRAMMED [get_property NAME [current_hw_device]]"
close_hw_manager
  • With a .ltx beside the bitstream, PROBES.FILE is set too.
  • With hdl.vivado.verifyAfterProgram, or hdl program --verify, it fails unless the DONE pin (REGISTER.IR.BIT5_DONE) is 1.
  • Without a board it stops with “No hardware target on host:port”.
sh
hdl program                                  # <workDir>/vivado/<top>.bit on localhost:3121
hdl program --bit build/top.bit --host lab-pc:3121 --verify

Documentation for HDL Studio 1.0.4.