Deploying Large LabVIEW FPGA Applications
description
Transcript of Deploying Large LabVIEW FPGA Applications
Deploying Large LabVIEW FPGA Applications
ni.com/largeappsni.com/community/largeapps
2
Managing FPGA Deployments
• Managing FPGA Files on Disk• Validating FPGA Logic During Development• Deploying Stand-alone FPGA Applications• Mass Deployment of an FPGA Application• Maintaining Existing FPGA Applications
3
Managing FPGA Files on Disk
Change in Specification
FPGA VI Developed
Compilation Process
Overwrites Bit file
• Versioning system often in place for LabVIEW FPGA VIs
• Versioning also needed for the associated bit files Compiled static file Ease of reference
4
Managing FPGA Files on Disk
• Considerations when incorporating bit files into Source Code Control (SCC) Back up to location other than default folder Give the bit file a meaningful name before submitting it to
SCC
5
Managing FPGA Files on Disk
• The versioning system used will affect how FPGA reference opened in the host Ensure that the appropriate file is
pointed to in the Configure Open FPGA reference
The reference points to a static path which is either an FPGA VI or bitfile
6
Validating FPGA Logic During Development
• Interactive Front Panel communication often used to deploy Completes complex compilation each time Requires that target is available to deploy to FPGA is volatile therefore bit file lost on target reboot
7
Validating FPGA Logic During Development
• Alternative to recompilation each time is simulation FPGA logic run on the development machine Use simulated or programmed I/O to test application Since running on PC cannot run at actual rates
8
Deploying Stand-alone FPGA Applications
Is communication to a host VI required in the FPGA Application?
If Yes: Use Host Interaction Method
If No: Store the Bit file in Onboard Flash
9
Deploying Stand-alone FPGA Applications
• Host interaction method Use an Open FPGA Reference in the host VI Reference embeds the FPGA bit file into the host VI
and/or executable
10
Deploying Stand-alone FPGA Applications
• Host interaction method FPGA bit file is downloaded when reference is called if
“Run the FPGA VI” selected If not selected only opens a reference to the FPGA
11
Deploying Stand-alone FPGA Applications
• Host interaction method Includes both host and FPGA files into one file Delay between power-up and FPGA running
• During this time the I/O lines are at unknown state
12
Deploying Stand-alone FPGA Applications
• Storing bit file in on board flash Download to flash using the RIO Device Setup utility FPGA will automatically load bit file from flash based on
three configurations• Do not autoload VI• Autoload VI on Device Powerup• Autoload VI on Device Reboot
13
Deploying Stand-alone FPGA Applications
• Storing bit file in on board flash Loading FPGA Immediately brings I/O up in known state Requires that the NI-RIO driver is installed on the
deploying machine
14
Deploying Stand-alone FPGA Applications
• Using both Deployment Methodologies Conflicts may arise since bit file being downloaded from
two locations Some scenarios do require both
• “Run FPGA VI” unselected• Bit files must be identical• Host does not know state of FPGA when connecting
15
Mass Deployment of an FPGA Application
• If using host interaction method Since bit file embedded into host VI use one of replication
tools for host• Real-Time Target System Replication API• Create Windows based installer• Develop a replication tool using FTP VIs
16
Mass Deployment of an FPGA Application
• If utilizing on board flash, FPGA Target System Replication API available at ni.com Programmatic calls into RIO Device Setup Build into a custom host deployment application
17
Maintaining Existing FPGA Applications
• Releasing updated application is same process as initial deployment
• Remote location deployment software requirements: Host Interaction – Technician only needs an FTP program Onboard Flash – NI-RIO driver is required on the
deployment machine
18
Best-practices summary
• Backup FPGA bit files in order to establish a versioning system• Validate FPGA logic by simulation on development PC rather than compiling
and deploying to the actual target each time• Use the run button deployment method only during development• Embed the FPGA application into the host application if they are dependent on
one another otherwise download the application to the on board flash• In order to mass deploy an FPGA application
Use the FPGA Replication toolkit if the application is downloaded to the onboard flash Use the Real-Time Replication toolkit and/or a PC installer if the application is
embedded in a host application• Use the same method for maintenance deployment as for the initial
deployment