Introduction to LabVIEW FPGA
This lesson introduces FPGA and LabVIEW FPGA. You learn the components of a LabVIEW FPGA system and the types of applications that are well-suited for LabVIEW FPGA. You also explore a comparison between a LabVIEW FPGA system and a traditional measurement system. Topics include:
Introduction to FPGA Technology
LabVIEW FPGA System Comparison with DAQmx
LabVIEW FPGA Applications
LabVIEW FPGA Basics
In this lesson, you learn about the two major RIO architectures: FPGA on Windows and FPGA for Real-Time. You also learn about R Series devices and CompactRIO, two of the different RIO platforms. You then learn to configure your RIO hardware in Measurement and Automation Explorer (MAX) and create a LabVIEW FPGA project. Topics include:
Evaluating system requirements
Reconfigurable I/O architectures
FPGA Platforms
System Configuration
Creating a LabVIEW FPGA project
FPGA Programming Basics
In this lesson, you learn how to reconfigure an FPGA target using the LabVIEW FPGA Module. You gain a high-level understanding of how logic is implemented on the FPGA and how LabVIEW code is translated and compiled into FPGA hardware. After you develop an FPGA VI, you test and debug on the development computer and then compile and execute the VI on an FPGA target using Interactive Front Panel Communication. You examine different reports that are generated during compilation and learn several techniques to optimize your code for size. Topics include:
Defining FPGA Logic with LabVIEW
Developing the FPGA VI
Interactive Front Panel Communication
Selecting an Execution Mode
Compiling the FPGA VI
Basic Optimizations
FPGA I/O
In this lesson, you learn how to add FPGA I/O to your LabVIEW project and use it on the block diagram. You also learn about the differences between performing I/O on an R Series device and on a CompactRIO chassis, and you learn the differences between integer and fixed-point data. Using I/O Nodes, you learn how to access both analog and digital data. Topics include:
Configuring FPGA I/O
I/O Types
Integer Math
Fixed-Point Math
CompactRIO Error Handling
Timing an FPGA VI
In this lesson, you learn to use the Loop Timer to set your FPGA loop rates, the Wait to add delays between events, and the Tick Count to benchmark your FPGA code. Topics include:
Timing Express VIs
Implementing Loop Execution Rates
Creating Delays between Events
Measuring Time between Events
Benchmarking Loop Periods
Data Sharing on FPGA
In this lesson, you learn how to transfer data between multiple loops on your FPGA VI. You examine three data sharing methods: variables, FPGA memory, and FPGA FIFOs. You learn the benefits of each technique and when each should be used. Topics include:
Parallel Loops
Shared Resources
Variables
Memory Nodes
Race Conditions
FPGA FIFOs
Comparison of Data Sharing Methods
Single-Cycle Timed Loop Execution
In this lesson you learn to improve performance of your FPGA VI by using the Single-Cycle Timed Loop (SCTL) which executes at the rate of selectable FPGA clocks. Topics include:
Data Flow in FPGA
Single-Cycle Timed Loop
Single-cycle Timed Loop Errors
Optimizing Code within a While Loop
Basic Host Integration
In this lesson, you learn how to interface with your FPGA VI from your host PC or real-time controller. You create host VIs to control and pass data between your FPGA and host system. Topics include:
Windows Host Integration
Developing a Windows Host VI
Introduction to Real-Time
Developing a RT Host VI
Developing a Windows VI
Prepare RT Host for Final Application
DMA Data Transfers
In this lesson, you expand your knowledge of transferring data between your host system and FPGA by using DMA FIFOs . With DMA FIFOs you can ensure that no data is lost when streaming data to your host system. Topics include:
LabVIEW FPGA and Host Communication
DMA FIFOs
Lossless DMA Transfer
Interleaving
Modular Programming and Code Reuse
In this lesson, you learn how to most efficiently use subVIs in your FPGA application. You learn when to set your VIs as re-entrant or non-reentrant, depending on your FPGA needs. You also learn about FPGA Controls so that you can reference FIFOS, memory, and I/O nodes in subVIs. Topics include:
Review of SubVIs
Using SubVIs on the FPGA
Reentrancy and Non-reentrancy in FPGA
Control Types for Passing to SubVIs
Testing FPGA SubVIs
LabVIEW FPGA IPNet