190 likes | 433 Views
Deploying Large LabVIEW FPGA Applications. ni.com/largeapps ni.com/community/largeapps. Managing FPGA Deployments. Managing FPGA Files on Disk Validating FPGA Logic During Development Deploying Stand-alone FPGA Applications Mass Deployment of an FPGA Application
E N D
Deploying Large LabVIEW FPGA Applications ni.com/largeapps ni.com/community/largeapps
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
Managing FPGA Files on Disk • Versioning system often in place for LabVIEW FPGA VIs • Versioning also needed for the associated bit files • Compiled static file • Ease of reference
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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