Common Use Cases
Common Use Cases — Common use cases for Simulink-programmable FPGA I/O
modules
Introduction
The following use cases and corresponding example models are provided to help you
get started. The documentation for these examples contains links to additional
information, such as the required interfaces, supported modules, required Toolboxes,
and more.
Configuring and Monitoring FPGA Signals and Interrupt Generation
A very basic example model showing the principal concept of CPU and FPGA
communication through PCIe ports. This model shows how to configure parameters on
the CPU, interact with the FPGA, read back signals from the FPGA to CPU and
illustrate these signals. The model also shows the use of interrupts triggered by
the FPGA.
Interfacing Analog Input and Output Signals
The examples listed below show interfacing with the analog input and output
channels in a synchronized (triggered) manner and processing the data once available
(data valid).
Fast FPGA/CPU Data Streaming
We provide data streaming capabilities using DMA for data transfer between the
FPGA and CPU with low latency or higher bandwidth requirements. The DMA data
transfer is implemented for both directions: (1) from FPGA to CPU as a data logging
use case; (2) from CPU to FPGA, if, for example, pre-recorded data is to be streamed
to the FPGA to play back with fast data rates and minimal delay. Both streaming
setups can be combined to achieve a co-processor setup where either the CPU or the
FPGA acts as a co-processor device.
High-Speed Data Logging Using On-Board RAM
To store large amounts of data with high-data-bandwidth requirements, most of our
Simulink-programmable FPGA I/O modules provide extensive external RAM on the module
itself. The memory is accessible from the FPGA and user algorithm through dedicated
AXI-Master ports. The memory can also be read and written from the CPU with
dedicated DMA driver blocks.
High-Speed Intermodule Communication
For communication between multiple modules or machines in order to: (1) aggregate
data from multiple instances and stream to the CPU; (2) obtain a centralized
processing unit from distributed notes; or (3) communicate to external FPGA modules
and machines, we provide communication capabilities using the Xilinx Aurora
protocol. The image below illustrates the use cases: