Vivado can be run remotely on a more powerful server for improved performance while still developing on the FPGA board at the local workstation. In this configuration, both the server and workstation must have the same version of Vivado installed, although the workstation is operating system agnostic. The workstation should be capable of displaying an x11 forwarded window via ssh. In Windows, this is possible using MobaXterm, or a similar alternative. In Linux, open-ssh will work. The FPGA development board should be plugged in and turned on. The workstation and server should be on the same LAN. The workstation can ssh into the server, and launch Vivado which will appear as a window on the workstation. On the workstation, launch Vivado HLS command prompt and type ”hw server” once it has started. Once a design has been implemented and a bitstream generated, the user will launch the Vivado hardware manager. Instead of auto-connect, for first time use, enter in the workstation IP address. It should find the FPGA connected to the workstation. After the first time, the board will appear under recent targets. From here, programming and debugging the FPGA works as expected on a traditional setup.
This tutorial used the Xilinx Kintex-7 FPGA KC705 Evaluation Kit shown below in Figure 1.
Both the local workstation and server should have the same version of Vivado installed. The server should be a Linux based server with x11 forwarding enabled. The FPGA should be plugged into the local workstation via the JTAG connector (often, micro-USB) and turned on. To start the hardware server, launch the Vivado Tcl Shell or Vivado HLS command prompt. Type ”hw server” and hit enter. This will launch Vivado’s hardware server on the local workstation. This allows other instances of Vivado to connect to the machine over the network. See the Figure 2 for an example of the running hardware server.
To run Vivado remotely, connect via ssh to the Linux server. Make sure that x11 forwarding is enabled. This requires the ’-x’ argument in open-ssh, but MobaXterm will automatically enable it. Once logged in, run ”vivado &” command to launch Vivado and retain use of the shell while it runs. Once it loads, a new window will appear. The new window is shown in the Figure 3; the Vivado application is running on the server, but the GUI window is forwarded to the local workstation. Note that the graphical fidelity of the text may be somewhat downgraded when compared to running the application on the local workstation.
Note that x11 forwarding can add latency to user interactions, so it is important that the server and workstation be as few links away as possible with a strong connection between them. Ethernet is preferred. If the Vivado window does not open, be sure that the server is configured to allow x11 forwarding and that the local workstation is configured to receive and display it.
Programming and Debugging the FPGA BoardNow that Vivado is running remotely, the last step is programming and debugging the FPGA board. Vivado’s hw server application must be running on the local workstation as instructed above. The FPGA should be plugged into the local machine via its JTAG port, commonly a micro-usb, and turned on. The local workstation should recognize the device.
Open the hardware manager in Vivado, select ”Open target” as usual. Instead of auto-connect, as is commonly used, go to ”Open New Target...” if this is the first time setting up the connection. This will open a new menu. Click ”Next”, then set the ”Connect to:” option to ”Remote Server”. Set the IP address of the local workstation. To get the IP address of the workstation in Windows, run ”ipconfig” in the command line prompt and select the IP address of the workstation corresponding to the local LAN. On Linux, run ”ifconfig” in the terminal and again, select the IP address of the workstation corresponding to the local LAN. Leave the port number on the default. See Figure 4 for opening the hardware manager and Figure 5 for configuring the target.
Click ”Next” to attempt to connect to the FPGA. This should take a few seconds before identifying a list of FPGA boards connected to the local workstation as shown in Figure 6. Select it, hit ”Next”, then ”Finish” The FPGA target will now be selected.
If the board as been used before in the same configuration, go to recent targets, and it should already be configured and saved in a list. This is show below in Figure 7.
Once connected as shown in Figure 8, use Vivado normally. The FPGA device can be programmed and debugged using ILA cores as if it were being done on the local workstation, while gaining the benefits of a more powerful server processor for synthesis and implementation.
Elliott Koehn
Comments
Please log in or sign up to comment.