The LabVIEW FPGA Course prepares you to design, debug, and implement efficient, optimized applications using the LabVIEW FPGA Module and reconfigurable I/O hardware. You will understand how to compile and deploy your VIs to different types of NI targets, such as CompactRIO Controllers and Modules, CompactRIO Single-Board Controllers, and more. You will learn how to develop applications, and you will learn to acquire digital and analog I/O, control loop timing, synchronize operations, implement signal processing, and pass data between your host VI and your FPGA target.

Course Details:

LabVIEW Core 1 Course Outline

Lesson Overview Topics
Introduction to LabVIEW FPGA This lesson introduces FPGA technology and the LabVIEW FPGA Modle. You will learn about the components of a LabVIEW FPGA system and the types of applications that are well-suited for LabVIEW FPGA. You also will explore a comparison between a LabVIEW FPGA system and a traditional measurement system.
  • Introduction to FPGA technology 

  • Components of a LabVIEW FPGA system 

  • Comparison with NI-DAQmx 

  • Examples of LabVIEW FPGA applications

Getting Started with LabVIEW FPGA In this lesson, you will learn about the two major RIO architectures: FPGA on Windows and FPGA for Real-Time. You also will learn about reconfigurable I/O devices and CompactRIO. The lesson also covers how to configure your RIO hardware in Measurement & Automation Explorer (MAX) and create a LabVIEW FPGA project.  
  • Evaluating system requirements 

  • Configuring your system 

  • Creating a LabVIEW FPGA project

Programming Using LabVIEW FPGA In this lesson, you will 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 can test, debug, compile and then execute on an FPGA target. You can examine different reports generated during compilation and learn techniques to optimize your code for size. 
  • Developing the FPGA VI 

  • Interactive front panel communication 

  • Selecting an execution mode 

  • Compiling the FPGA VI 

  • Basic optimizations  

Timing an FPGA VI In this lesson, you will learn to how to set FPGA loop rates, add delays between events, and benchmark your FPGA code.
  • Timing express VIs 

  • Implementing loop execution rates 

  • Creating delays between events 

  • Measuring time between events 

  • Benchmarking loop periods

Executing Code in Single-Cycle Timed Loops   This lesson covers how to improve performance of your FPGA VI by using the Single-Cycle Timed Loop (SCTL), which executes at the rate of selectable FPGA clocks.
  • Dataflow in FPGA 

  • Single-cycle timed loop 

  • Troubleshooting SCTL errors 

  • Using FPGA clocks 

  • Optimizing code within a While Loop 

  • Pipelining

Signal Processing In this lesson, you will learn about a variety of ways to process your signals in an FPGA VI.
  • Using fixed-point data types 

  • Using single-precision floating-point 

  • Performing FPGA math & analysis 

  • Performing high throughput math 

  • Integrating third-party intellectual property (IP)

Sharing Data on FPGA In this lesson, you will learn how to transfer data between multiple loops on your FPGA VI. You will examine data sharing methods including variables, memory items, register items, and FPGA First In First Out (FIFOs). You also will learn the benefits of each technique and when each should be used.
  • Parallel Loops 

  • Shared resources 

  • Sharing latest data 

  • Transferring buffered data 

  • Comparing data sharing methods

Synchronizing FPGA Loops and I/O This lesson how to synchronize loops and I/O in your FPGA VI.
  • Synchronizing FPGA loops 

  • Synchronizing C Series I/O modules

Modular Programming   This lesson covers how to most efficiently use subVIs in your FPGA application. You will learn when to set your VIs as reentrant or non-reentrant, depending on your FPGA needs. You also will learn about FPGA Controls so that you can reference FIFOS, memory items, register items, FPGA clocks, and I/O nodes in subVIs.
  • Review of subVIs 

  • Using subVIs on the FPGA 

  • Reentrancy and non-reentrancy in FPGA  

  • Passing FPGA items to subVIs 

  • Testing FPGA subVIs

Communicating Between the FPGA and Host In this lesson, you will learn how to interface with your FPGA VI from a Windows host or Real-Time host. You create host VIs to control and pass data between your FPGA and host system.
  • Programmatically communicating with the FPGA from the host 

  • Deploying an FPGA VI 

  • Transferring latest data 

  • Transferring buffered data  

  • Synchronizing the host VI and FPGA VI 

  • Implementing an FPGA watchdog

Get started with LabVIEW FPGA today