Facilitating Work-From-Home For FPGA Designers
The Coronavirus forces us FPGA designers to work from home (WFH) while still facing challenging engineering deadlines…
So, how can we work from home efficiently doing FPGA design, which typically requires access to FPGA hardware? Taking those FPGA boards home may not be the best option – particularly not when we need to collaborate through shared hardware / Devices-under-Test (DUT).
MLE, a Premier AMD/Xilinx Alliance Partner, has faced similar challenges and has put together a solution for remote and shared access to FPGA boards.
MLE, a Premier AMD/Xilinx Alliance Partner, has faced similar challenges and has put together a solution for remote and shared access to FPGA boards.
Application Use Cases
- Enable secure remote access from home to shared FPGA hardware in corporate labs
- Interactive development & debugging
- Automated testing and Continuous Integration for FPGA-based system
Key Benefits
- Compatible w/ corporate VPN setups
- Centralized DUT administration
- Transparent “who is currently using the shared FPGA hardware?”
- Efficient remote debugging with remote power cycling, when needed
- Remote FPGA config and boot-up
- Integrated w/ AMD/Xilinx Vivado Hardware JTAG Servers
- Interact with serial console (AMD/Xilinx FSBL, U-Boot, Linux)
- Interfaces with GPIO, UART, JTAG, USB-SD-Muxes and wireless SD cards
- Independent from DUT software stack
- User customizable and maintainable
Availability
- Builds on top of Open Source Labgrid
- Licensed under open source LGPL
- Per site NRE install fee $4,800.-
- Extra integration & support services available at $980.- per engineering day
Setup for Shared Remote Access to FPGA Hardware
Building upon Labgrid – an embedded board control Python library with a focus on testing, development and general automation – MLE provides setups for shared remote access to FPGA hardware.
The client (developer at home) connects to the gateway. The gateway can be a VPN server or a dedicated PC connected to the lab LAN.
The client can acquire a lab setup of a DUT (forming a “place”) via the coordinator. Then defined interfaces and functions are directly exported to the client, like
- power distribution unit
- JTAG
- UART – console interaction
- Wireless SD cards and USB-SD-Mux – allows to change the SD card content
- GPIO
- USB WebCam – remote lab setup observation
If more direct access is needed, the client may directly connect to the exporter host.
If more direct access is needed, the client may directly connect to the exporter host.
Example for Shared Remote Access to FPGA Hardware
An example workflow, that acquires the place, turns on power and accesses the serial console
looks like this:
labgrid-client -p place-1 acquire
labgrid-client -p place-1 power on
labgrid-client -p place-1 console
(do work on console)
labgrid-client -p place-1 power off
labgrid-client -p place-1 release
Labgrid ensures that a place cannot concurrently be acquired by multiple clients. This eases up
coordination when developers are not working physically close to each other in the lab.