Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI
What is Developer Zone?
United States

Document TypeTutorial
NI Supported: Yes
Publish Date: Feb 06, 2013


Feedback


Yes No

Related Categories

Related Links - Developer Zone

Related Links -Products and Services

Setting up a Linux-based FPGA Compile Worker

0 Ratings | 0.00 out of 5
 Print |  PDF

Overview

The NI LabVIEW FPGA Module, along with standard NI reconfigurable I/O (RIO) hardware, has made field-programmable gate arrays (FPGAs) more accessible to engineers and scientists for a decade. However, FPGA programmers industry-wide know that one difficulty with FPGA technology is overcoming the processor-intensive task of synthesizing, placing, and routing an FPGA design, which results in compile times that can last minutes to hours. The following procedures outline step-by-step how to use Linux-based FPGA Compile Workers for the LabVIEW 2012 FPGA Module and above, either through NI’s compile service or through your own hardware setup. Selecting an appropriate Linux-based compile system may reduce your compile times. Note: For access to the latest hardware using a Linux operating system without any installation or maintenance required at your office, consider using the NI LabVIEW FPGA Compile Cloud Service. This service includes a per-user one-year unlimited subscription. Refer to ni.com for more information about the LabVIEW FPGA Compile Cloud Service.

Table of Contents

  1. LabVIEW FPGA Compile System Overview
  2. Requirements
  3. Offloading One Compile at a Time
  4. Offloading Multiple Compiles at a Time

LabVIEW FPGA Compile System Overview

NI has architected the LabVIEW FPGA compile system with three fundamental software components, resulting in a modular, scalable compile solution. The compile system is split into three parts: the development computer, the server, and any number of workers.

LabVIEW FPGA Module Development Environment —The LabVIEW development environment that you are familiar with is where you create your application. Once you click Run on your FPGA VI, it completes the Generating Intermediate Files step (see LabVIEW FPGA Compilation Process for more information). After generation, the development computer sends the intermediate files through web services communication to the FPGA compile server.

FPGA Compile Server—The server accepts compile jobs from one or many LabVIEW FPGA development systems and looks for available workers to farm out the compilation job. If no workers are available, the server holds the compile job in a queue until a worker becomes available.

FPGA Compile Worker—The worker has the Xilinx compilation tools installed for FPGA design synthesis, mapping, placing, and routing. With these tools, a worker executes the compile on the design and eventually generates a bitfile that it sends back to the server, where the server sends it back to the development computer.

 

Figure 1. The LabVIEW FPGA compile system architecture includes three parts: the development computer, the compile server, and the compile worker(s). The compile server functionality may run on the development computer or on separate computer.

 

Requirements

A LabVIEW FPGA target that does not have a Virtex-II – Only the Xilinx 13.4 tools are supported on Linux.

Installation Media – The installation process requires the Additional Xilinx Tools DVD, found in your FPGA kit. If you did not receive this DVD with your purchase, you can download the installation materials online.

Dedicated Computer – A computer with a minimum of 8GB of RAM per core. 

Note: Faster hard drives or solid state disks do not add significant gains to remote compile speeds. When selecting a computer to run remote compiles on Linux, select for high CPU speed over number of cores.

Linux OS – RHEL 5.6 64bit

Familiarity with Linux – Installing and configuring the Linux Compile Worker does not require advanced Linux knowledge. However, you should have some familiarity with Linux.

Offloading One Compile at a Time

 

For small teams, consider offloading compiles to a single Linux computer. The following image represents the computers and software necessary for two people to offload their compiles to the Compile Worker for Linux.

Note: In this example, though two development computers can communicate with the Linux Compile Worker, only one can offload a compile at one time. 

Installation Overview

LabVIEW FPGA Dev Computer (Compile Server)

    1. LabVIEW
    2. LabVIEW FPGA

Linux Compile Worker

Xilinx Tools 13.4

Setting Up the Computers

LabVIEW FPGA Dev Computer (Compile Server)

  1. Select Start>>National Instruments>> FPGA>> FPGA Compile Server Configuration to launch the FPGA Compile Server Configuration dialog box.
  2. Place a checkmark in the Allow users to connect remotely to this compile server checkbox and click OK.

  1. Ensure that your firewall settings permit other computers to request information from this computer.

If the Linux worker connected to the Windows computer, the compile appears in the Status field in the FPGA Compile Worker window.

Note: In Linux, closing the Compile Worker window closes the program.

Linux Compile Worker

  1. Select Applications >>National Instruments >>Compile Worker.

  1. Click Configure to launch the Configure Compile Worker dialog box.
  2. In the Hostname field, enter the name of the computer configured as the compile server. In this example, WindowsComputer1 is the compile server.

Testing your Setup

Now when you initiate an LV FPGA compile using any configured Windows computer, the compile appears in the Status field in the FPGA Compile Worker Window.

If you receive an error or are unable to connect to the compile worker, follow these steps on your development computer:

  1. Open the Windows Task Manager (Ctrl + Shift + Esc) >> Processes and look for a CompileWorker process. If you find it, click on it and then click End Process.
  2. In LabVIEW, select Tools >>Options>> FPGA Module>>Use local compile server. Remove the checkmark from the Prompt to select a compile server for each compilation checkbox. Click OK.
  3. Try to compile your VI. The job first looks for a local compile worker. Failing that, the job uses the remote Linux Compile Worker.

Offloading Multiple Compiles at a Time

For larger teams, offload compiles to a farm of multiple Linux computers. The following image represents the computers and software necessary for multiple people to offload their compiles to a Linux compile farm.

Installation Overview

LabVIEW FPGA Compile Farm Server

NI LabVIEW FPGA Compile Farm Toolkit

Linux Compile Workers

Xilinx Tools 13.4

Setting Up the Computers

LabVIEW FPGA Compile Farm Server

  1. Install the NI LabVIEW FPGA Compile Farm Toolkit. For more information, refer to Getting Started with the LabVIEW FPGA Compile Farm Toolkit.
  2. Ensure that your firewall settings permit other computers to request information from this computer.

LabVIEW FPGA Development Environment Computers

Configure LabVIEW FPGA to compile to the LabVIEW FPGA Compile Farm Server. For more information about configuring LabVIEW compile servers, refer to the Configure Remote Compile Server topic in the LabVIEW FPGA Module Help.

Linux Compile Workers

Refer to the instructions for configuring a Linux Compile Worker under Offloading One Parallel Compile at a Time.

0 Ratings | 0.00 out of 5
 Print |  PDF

Reader Comments | Submit a comment »

Where is the download link for
It mentions that for the Linux compile worker, the "Additional Xilinx Tools DVD, is found in your FPGA kit. If you did not receive this DVD with your purchase, you can download the installation materials online." Can you post a link where this can be downloaded? I can't find it.
- Dan Milkie,Coleman Technologies Inc. d.milkie@colemantech.com - Aug 21, 2012

Supported Linux distros
What Linux distros are supported?
- Dan Milkie,Coleman Technologies Inc. d.milkie@colemantech.com - Aug 08, 2012

 

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).