FPGA compilation grows computationally more complex and, as a result, longer, as developers use more sophisticated FPGA technology. To conserve resources on your development computer, the LabVIEW FPGA compile system architecture includes options to offload the compilation to dedicated computers. These should be high-end computers with good processors and high levels of RAM. Table 1 shows the minimum RAM needs for various Xilinx Virtex-5 FPGAs.
Table 1. Follow these recommended RAM guidelines for Xilinx Virtex-5 and Zynq-700 FPGAs. (Source: Xilinx Memory Recommendations Using the ISE Design Suite)
Performance for a compile job is most negatively impacted when the process is starved for system memory and has to page on the hard drive or, in some cases, quit. Follow the recommendations in Table 1 for the best results. For a 32-bit server, you should have 4 GB of RAM and only the Xilinx compilation tools installed. You can use the 3 GB Windows switch to maximize the amount of RAM the OS can allocate to the compilation. As you can see from the table, 64-bit systems should have more RAM installed. Of course, those systems can address much more than 4 GB of RAM, so, in this case, the more the better—up to 16 GB.
Offload to a Single Computer
You can use the LabVIEW FPGA Module to install the compile server and compile worker on a separate computer and target compilation. To do this, follow the steps in the Installing and Activating the LabVIEW FPGA Compile Server on a Remote Computer article.
Figure 5. A simple, single-machine, offloaded compile server is supported by the LabVIEW FPGA Module without any add-ons.
Offload to a Compile Farm
With the FPGA Compile Farm Server, you can create an on-site compile farm that includes multiple compile workers that may be targeted by multiple developers. Note: With LabVIEW 2013 FPGA Module and earlier, use the NI LabVIEW FPGA Compile Farm Toolkit.
The compile server is responsible for farming out compile jobs to all available compile workers. Compiles run in parallel because there are multiple compile workers. If there are no available compile workers, the compile server queues the requests, using FIFOs, and farms them out when a compile worker becomes available.
Figure 6. On-site compile farm architecture with one compile server and multiple compile workers.
Offload to an Online Compile Cloud Server
The final FPGA compile option uses the compile servers and compile workers that National Instruments makes available online in the cloud. For ease of use, National Instruments has added hooks directly from LabVIEW FPGA to enter a login, and with no additional installation, you can offload your compiles to the cloud. Compared to a standard Windows desktop, FPGA VIs experience a substantial reduction in compile times because the LabVIEW FPGA Compile Cloud Service runs the Xilinx compilation tools on Linux with the latest dedicated high-RAM high-end computers. When you compile in the cloud, you also can compile many VIs in parallel.
To target the cloud service, use the dialog box for the LabVIEW FPGA compile server, select the online cloud service, and enter your user name and password.
Figure 7. Connect to the cloud through LabVIEW to reduce compile time and offload compilations.
Once you have the compile cloud set up, the service compiles to the cloud rather than your local computer or local compile farm. The connection uses the latest IT industry security measures, which are similar to those used by other Internet services, such as banking.
Figure 8. Cloud architecture for offloading compilations.