Global training solutions for engineers creating the world's electronics

Remote Programming of FPGAs

Sometimes it can be convenient to program an FPGA remotely - perhaps you are accessing a Linux server using VNC, but your FPGA board is attached to your Windows PC in front of you? Perhaps you are sharing one board between a number of designers?

Both Altera and Xilinx have a system which allows you to remotely program an FPGA. Let's look at setting these systems up.

Altera Remote JTAG Server

The Altera Remote JTAG Server is part of the Quartus tools. However if you only want the programming tools and nothing else, you can download a cut down piece of software which only contains the programming tools. This is available here, or just search for "Quartus II Programmer".

Install the software (it can be installed alongside Quartus II itself if you like, though there's no point - if you have Quartus II installed, then you have the Programmer already!).

You then need to set the Remote JTAG Server up to accept incoming connections.

  1. Run the Quartus II Programmer
  2. Select menu Edit > Hardware Setup...
  3. In the Hardware Setup dialogue, click the JTAG Settings tab
  4. Click the button Configure Local JTAG Server
  5. Make sure Enable Remote Clients to Connect to Local JTAG Server is checked
  6. Enter and confirm a password, and click OK
  7. Close down the dialogue boxes

 

One more step: you must open a port in your firewall (you do have your firewall enabled, don't you??). The required port is TCP 1309. On the Windows operating system, this can be done by creating an Exception from the firewall settings in the Control Panel.

The JTAG server can be used by adding it to the Quartus II software in a similar manner:

  1. Run the Quartus II Software and select menu Tools > Programmer
  2. Select menu Edit > Hardware Setup...
  3. In the Hardware Setup dialogue, click the JTAG Settings tab
  4. Click the button Add Server...
  5. Type in the server name (or IP address) and password, and click OK
  6. If connection is successful, you will see your remote server as an option in the Hardware Setup dialogue

 

If you get a message "no hardware" this is simply telling you that hardware is not connected to the Remote JTAG Server. If you get a message "unable to connect" then you need to check your firewall settings to make sure the port TCP 1309 is allowed.

Xilinx Cable Server

Xilinx ISE includes a program called the Cable Server, which allows remote programming. Xilinx also provide a set of programming tools, a kind of cut-down version of ISE, which you can install to access the Cable Server.

Getting the Cable Server to run is very easy. In a full installation of Xilinx ISE 10.1, simply run the program

C:\Xilinx\10.1\ISE\bin\nt\cableserver.exe

When it runs, you may be prompted to unblock the program on Windows operating System, so that certain firewall ports are opened. You will have to allow these ports to be opened, or the Cable Server won't work.

To use the Cable Server remotely, you need to specify a remote server in Impact, the downloading tool.

  1. Run Impact, either as a stand-alone program, or from ISE
  2. Open an existing project, or create a new one as required
  3. If there is no local hardware, Impact will warn that it cannot find the cable. Click OK to close the warning
  4. Select menu Output > Cable Setup...
  5. Select Cable Location Remote, and type in the name or IP address of the computer where the Cable Server is running
  6. Click OK

 

Assuming the firewall is set up correctly, and the hardware is connected correctly to the Cable Server computer, you will be able to program the board/device attached to the remote computer.

Scripting

It is possible to access both the Remote JTAG Server and the Cable Server from a Tcl script - but that is a topic for another day.

Great training!! Excellent Instructor, Excellent facility ...Met all my expectations.
Henry Hastings
Lockheed Martin

View more references