Working with Remote Hardware

The Efinity software includes the Efinity Hardware Server that allows you to communicate with a development board that is attached to a remote host machine. For example, you may want to use your Efinix development board in a lab environment and let several developers access it from their own computers. With the Efinity Hardware Server, you can connect the board to the lab machine and then program or debug it from a remote networked computer. The Efinity Hardware Server is supported in the Programmer, Debugger, and SVF Player.

Important: The Efinity Hardware Server is beta in the Efinity software v2021.2, v2022.1, and 2023.1. Please excuse any random bugs, we will fix them.
Known issue: Currently, the hardware server does not arbitrate between multiple requests. Therefore, if more than one person tries to connect to the board, there will be a conflict and all users will see errors in the Programmer console or the Programmer may crash or hang. If the board is in the middle of programming when multiple requests occur, programming aborts in an unfinished state.

Start the Efinity Hardware Server

You start the Efinity Hardware Server using the efinity_hw_server.py command-line tool.

efinity_hw_server.py [--help] [--addr ADDR] [--port PORT]
Table 1. efinity_hw_server.py Options
Option (Long) Option (Short) Input Description
--help -h None Show help.
--addr -a Address Server address.
If you do not specify an address, the Efinity Hardware Server defaults to 0.0.0.0 (that is, all IPv4 addresses on the local machine).
--port -p Number Server port number.
If you do not specify a port, the Efinity Hardware Server defaults to 8080.

The tool issues the message Running Server at <IP address>:<port> when the Efinity Hardware Server begins running.

Windows:

Use the following commands in a Command Prompt to start the server:
<Efinity path>\bin\setup.bat
<Efinity path>\bin\python3.bat <efinity path>\pgm\bin\efx_pgm\efinity_hw_server.py 

Linux:

Use the following commands in a terminal to start the server:

source <Efinity path>/bin/setup.sh
python3 <Ffinity path>/pgm/bin/efx_pgm/efinity_hw_server.py 

Stop the Efinity Hardware Server

In the terminal or Command Prompt, enter Ctrl+C to stop the server.

Connect the Board to the Server

For Efinix development boards, connect the board to the server using a USB cable. When you connect to the remote host from your computer, the board name appears in the Programmer's USB Target list.

For your own board, use a JTAG Mini-Module or JTAG cable to connect the board to the server. When you connect to the remote host from your computer, the module or cable name appears in the Programmer's USB Target list. (Refer to JTAG Programming with FTDI Chip Hardware.)

Connect to a Remote Host

You use the Edit Remote Host dialog box to manage the list of remote server hosts. You access this dialog box from Programmer, Debugger, or SVF Player tools.

  1. Click the Edit Remote Host List button to open the Edit Remote Host dialog box.
  2. Press the + button.
  3. Double-click the cell under Address and enter the server's IP address.
  4. Double-click the cell under Port and enter the port.
  5. Click the + button to add another row. Click the - button to remove a selected row.
  6. Click OK.

The software refreshes the USB Target list; any boards connected to remote hosts appear in the list. Simply choose the board that you want to program or debug as usual.